kimu-cli 0.1.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/CHANGELOG.md +38 -0
- package/README.md +291 -0
- package/bin/kimu.js +48 -0
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +115 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +20 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/info.d.ts +9 -0
- package/dist/commands/info.d.ts.map +1 -0
- package/dist/commands/info.js +149 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/version.d.ts +9 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +45 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/constants.d.ts +50 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +61 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/defaults.d.ts +59 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +127 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/types/cli-types.d.ts +55 -0
- package/dist/types/cli-types.d.ts.map +1 -0
- package/dist/types/cli-types.js +6 -0
- package/dist/types/cli-types.js.map +1 -0
- package/dist/types/project-types.d.ts +79 -0
- package/dist/types/project-types.d.ts.map +1 -0
- package/dist/types/project-types.js +6 -0
- package/dist/types/project-types.js.map +1 -0
- package/dist/types/registry-types.d.ts +87 -0
- package/dist/types/registry-types.d.ts.map +1 -0
- package/dist/types/registry-types.js +6 -0
- package/dist/types/registry-types.js.map +1 -0
- package/dist/utils/logger.d.ts +39 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +115 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/command-kimu-new.md +207 -0
- package/docs/command-kimu-old.md +51 -0
- package/docs/command-kimu.md +207 -0
- package/docs/commands/build.md +82 -0
- package/docs/commands/create.md +58 -0
- package/docs/commands/dev.md +87 -0
- package/docs/commands/doctor.md +129 -0
- package/docs/commands/help.md +37 -0
- package/docs/commands/info.md +46 -0
- package/docs/commands/install.md +67 -0
- package/docs/commands/list.md +85 -0
- package/docs/commands/remove.md +67 -0
- package/docs/commands/serve.md +91 -0
- package/docs/commands/version.md +31 -0
- package/docs/distribution.md +93 -0
- package/docs/index.md +127 -0
- package/docs/intro.md +86 -0
- package/package.json +101 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] - 2025-09-02
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Initial release of KIMU-CLI
|
|
12
|
+
- Basic project structure and configuration
|
|
13
|
+
- `version` command with detailed information
|
|
14
|
+
- `info` command for project diagnostics
|
|
15
|
+
- TypeScript support with strict configuration
|
|
16
|
+
- ESLint and Prettier configuration
|
|
17
|
+
- Jest testing framework setup
|
|
18
|
+
- Comprehensive logging utilities
|
|
19
|
+
- Type definitions for CLI operations
|
|
20
|
+
- Project template system foundation
|
|
21
|
+
- Registry integration architecture
|
|
22
|
+
- Build system configuration
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
- Command-line interface with commander.js
|
|
26
|
+
- Colored output with chalk
|
|
27
|
+
- Loading indicators with ora
|
|
28
|
+
- File system operations with fs-extra
|
|
29
|
+
- Project configuration management
|
|
30
|
+
- Error handling and logging
|
|
31
|
+
- Development workflow tools
|
|
32
|
+
|
|
33
|
+
### Development
|
|
34
|
+
- Complete TypeScript setup
|
|
35
|
+
- Testing infrastructure
|
|
36
|
+
- Code quality tools
|
|
37
|
+
- Documentation generation
|
|
38
|
+
- CI/CD foundation
|
package/README.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# KIMU-CLI
|
|
2
|
+
|
|
3
|
+
Official command-line interface for the KIMU framework ecosystem.
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/js/@kimu%2Fcli)
|
|
6
|
+
[](https://opensource.org/licenses/MPL-2.0)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
### Global Installation (Recommended)
|
|
12
|
+
|
|
13
|
+
Install globally to use `kimu` command anywhere:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @kimu/cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Verify Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
kimu --version
|
|
23
|
+
kimu --help
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Alternative: Use with npx
|
|
27
|
+
|
|
28
|
+
Run without installation:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx @kimu/cli create my-app
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
Create a new KIMU application:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Create a new project
|
|
40
|
+
kimu create my-app
|
|
41
|
+
|
|
42
|
+
# Navigate to project
|
|
43
|
+
cd my-app
|
|
44
|
+
|
|
45
|
+
# Start development server
|
|
46
|
+
npm run dev
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Your application will be available at `http://localhost:5173/`
|
|
50
|
+
|
|
51
|
+
## Features
|
|
52
|
+
|
|
53
|
+
- 🚀 **Project Creation**: Create new KIMU applications from templates with `kimu create`
|
|
54
|
+
- 📦 **Module Management**: Install and manage modules from kimu-modules registry (planned)
|
|
55
|
+
- 🧩 **Extension Management**: Install and manage UI extensions (planned)
|
|
56
|
+
- 🔧 **Build Tools**: Build and serve KIMU applications with optimization (planned)
|
|
57
|
+
- 🔍 **Diagnostics**: Project health checks and compatibility validation (planned)
|
|
58
|
+
- 🌐 **Ecosystem Integration**: Discover and explore KIMU packages (planned)
|
|
59
|
+
|
|
60
|
+
## Current Status
|
|
61
|
+
|
|
62
|
+
✅ **Available Commands:**
|
|
63
|
+
- `kimu create` - Create new KIMU projects
|
|
64
|
+
- `kimu info` - Show project information
|
|
65
|
+
- `kimu version` - Show version information
|
|
66
|
+
- `kimu help` - Command help system
|
|
67
|
+
|
|
68
|
+
⏳ **Planned Commands:**
|
|
69
|
+
- `kimu install/remove` - Package management
|
|
70
|
+
- `kimu dev/build/serve` - Development workflow
|
|
71
|
+
- `kimu list` - Browse packages
|
|
72
|
+
- `kimu doctor` - Project diagnostics
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Author
|
|
76
|
+
|
|
77
|
+
**Marco Di Pasquale**
|
|
78
|
+
Collettivo [UnicòVerso](https://unicoverso.org)
|
|
79
|
+
Progetto [KIMU Framework](https://github.com/UnicoVerso/kimu)
|
|
80
|
+
|
|
81
|
+
Per la lista completa degli autori e collaboratori, vedi [AUTHORS.md](AUTHORS.md).
|
|
82
|
+
|
|
83
|
+
Per contatti, suggerimenti o collaborazioni: [GitHub @marcodipasquale](https://github.com/marcodipasquale)
|
|
84
|
+
|
|
85
|
+
## Contributions
|
|
86
|
+
|
|
87
|
+
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
88
|
+
If you use KIMU-CLI or want to improve it, open an issue or a pull request.
|
|
89
|
+
|
|
90
|
+
## References & Useful Links
|
|
91
|
+
|
|
92
|
+
- [KIMU Framework](https://github.com/UnicoVerso/kimu)
|
|
93
|
+
- [KIMU Core](https://github.com/UnicoVerso/kimu-core)
|
|
94
|
+
- [KIMU Modules](https://github.com/UnicoVerso/kimu-modules)
|
|
95
|
+
- [KIMU Extensions](https://github.com/UnicoVerso/kimu-extensions)
|
|
96
|
+
- [Documentation online](https://unicoverso.com/kimu/docs)
|
|
97
|
+
- [UnicòVerso](https://unicoverso.org)
|
|
98
|
+
|
|
99
|
+
- [📖 Complete Documentation Index](docs/index.md)
|
|
100
|
+
- [Intro to KIMU-CLI](docs/intro.md)
|
|
101
|
+
- [Command Reference: kimu](docs/command-kimu.md)
|
|
102
|
+
- [Distribution & Installation Guide](docs/distribution.md)
|
|
103
|
+
|
|
104
|
+
### Available Commands
|
|
105
|
+
- [Command: create](docs/commands/create.md)
|
|
106
|
+
- [Command: info](docs/commands/info.md)
|
|
107
|
+
- [Command: help](docs/commands/help.md)
|
|
108
|
+
- [Command: version](docs/commands/version.md)
|
|
109
|
+
|
|
110
|
+
### Planned Commands
|
|
111
|
+
- [Command: install](docs/commands/install.md) ⏳
|
|
112
|
+
- [Command: remove](docs/commands/remove.md) ⏳
|
|
113
|
+
- [Command: list](docs/commands/list.md) ⏳
|
|
114
|
+
- [Command: build](docs/commands/build.md) ⏳
|
|
115
|
+
- [Command: dev](docs/commands/dev.md) ⏳
|
|
116
|
+
- [Command: serve](docs/commands/serve.md) ⏳
|
|
117
|
+
- [Command: doctor](docs/commands/doctor.md) ⏳
|
|
118
|
+
|
|
119
|
+
## Installation
|
|
120
|
+
|
|
121
|
+
### Global Installation (Recommended)
|
|
122
|
+
```bash
|
|
123
|
+
npm install -g kimu-cli
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Local Installation
|
|
127
|
+
```bash
|
|
128
|
+
npm install --save-dev kimu-cli
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Quick Start
|
|
132
|
+
|
|
133
|
+
### Create a New KIMU Project
|
|
134
|
+
```bash
|
|
135
|
+
# Create a basic KIMU application
|
|
136
|
+
kimu create my-app
|
|
137
|
+
|
|
138
|
+
# Create with git initialization
|
|
139
|
+
kimu create my-dashboard --git
|
|
140
|
+
|
|
141
|
+
# Create and force overwrite if directory exists
|
|
142
|
+
kimu create my-app --force
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Project Information
|
|
146
|
+
```bash
|
|
147
|
+
# Show project info
|
|
148
|
+
kimu info
|
|
149
|
+
|
|
150
|
+
# Show detailed information
|
|
151
|
+
kimu info --verbose
|
|
152
|
+
|
|
153
|
+
# JSON output for automation
|
|
154
|
+
kimu info --json
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Version Information
|
|
158
|
+
```bash
|
|
159
|
+
# Show CLI version
|
|
160
|
+
kimu version
|
|
161
|
+
|
|
162
|
+
# Show detailed version info
|
|
163
|
+
kimu version --verbose
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Get Help
|
|
167
|
+
```bash
|
|
168
|
+
# Show all available commands
|
|
169
|
+
kimu help
|
|
170
|
+
|
|
171
|
+
# Show help for specific command
|
|
172
|
+
kimu help create
|
|
173
|
+
kimu create --help
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Commands
|
|
177
|
+
|
|
178
|
+
### ✅ Available Commands
|
|
179
|
+
- `kimu create <name>` - Create a new KIMU project with basic structure
|
|
180
|
+
- `kimu info` - Show information about the current KIMU project
|
|
181
|
+
- `kimu version` - Show KIMU-CLI version and system information
|
|
182
|
+
- `kimu help` - Show help for all commands or specific command
|
|
183
|
+
|
|
184
|
+
### ⏳ Planned Commands (Coming Soon)
|
|
185
|
+
- `kimu install <name>` - Install modules and extensions
|
|
186
|
+
- `kimu remove <name>` - Remove modules and extensions
|
|
187
|
+
- `kimu list [type]` - List available or installed packages
|
|
188
|
+
- `kimu dev` - Start development server with hot reload
|
|
189
|
+
- `kimu build` - Build project for production
|
|
190
|
+
- `kimu serve` - Serve built project for testing
|
|
191
|
+
- `kimu doctor` - Run project health diagnostics
|
|
192
|
+
- `kimu install module <name>` - Install a module
|
|
193
|
+
- `kimu remove <name>` - Remove a module or extension
|
|
194
|
+
- `kimu list modules` - List available modules
|
|
195
|
+
- `kimu list installed` - List installed packages
|
|
196
|
+
|
|
197
|
+
### Project Operations
|
|
198
|
+
- `kimu build` - Build the project
|
|
199
|
+
- `kimu dev` - Start development server
|
|
200
|
+
- `kimu serve` - Serve built project
|
|
201
|
+
|
|
202
|
+
### Information & Diagnostics
|
|
203
|
+
- `kimu info` - Show project information
|
|
204
|
+
- `kimu doctor` - Run diagnostics
|
|
205
|
+
- `kimu version` - Show version information
|
|
206
|
+
|
|
207
|
+
## Project Structure
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
my-kimu-app/
|
|
211
|
+
├── src/
|
|
212
|
+
│ ├── main.ts # Application entry point
|
|
213
|
+
│ ├── app.ts # Main application component
|
|
214
|
+
│ └── components/ # Custom components
|
|
215
|
+
├── public/ # Static assets
|
|
216
|
+
├── dist/ # Built files
|
|
217
|
+
├── package.json # NPM configuration
|
|
218
|
+
├── kimu.config.json # KIMU project configuration
|
|
219
|
+
├── tsconfig.json # TypeScript configuration
|
|
220
|
+
└── vite.config.ts # Build configuration
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Configuration
|
|
224
|
+
|
|
225
|
+
### kimu.config.json
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"name": "my-kimu-app",
|
|
229
|
+
"version": "1.0.0",
|
|
230
|
+
"kimuCore": "^1.0.0",
|
|
231
|
+
"template": "basic",
|
|
232
|
+
"modules": {
|
|
233
|
+
"installed": ["router", "i18n"],
|
|
234
|
+
"registry": "https://github.com/unicoverso/kimu-modules"
|
|
235
|
+
},
|
|
236
|
+
"extensions": {
|
|
237
|
+
"installed": ["kimu-home"],
|
|
238
|
+
"main": "kimu-home"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## Development
|
|
244
|
+
|
|
245
|
+
### Requirements
|
|
246
|
+
- Node.js >= 18.0.0
|
|
247
|
+
- npm >= 8.0.0
|
|
248
|
+
|
|
249
|
+
### Local Development
|
|
250
|
+
```bash
|
|
251
|
+
git clone https://github.com/UnicoVerso/kimu-cli.git
|
|
252
|
+
cd kimu-cli
|
|
253
|
+
npm install
|
|
254
|
+
npm run build
|
|
255
|
+
npm link
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Testing
|
|
259
|
+
```bash
|
|
260
|
+
npm test # Run tests
|
|
261
|
+
npm run test:watch # Watch mode
|
|
262
|
+
npm run test:coverage # With coverage
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Code Quality
|
|
266
|
+
```bash
|
|
267
|
+
npm run lint # Check code quality
|
|
268
|
+
npm run lint:fix # Fix linting issues
|
|
269
|
+
npm run format # Format code
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Contributing
|
|
273
|
+
|
|
274
|
+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
275
|
+
|
|
276
|
+
## License
|
|
277
|
+
|
|
278
|
+
This project is licensed under the Mozilla Public License 2.0 - see the [LICENSE](LICENSE) file for details.
|
|
279
|
+
|
|
280
|
+
## Links
|
|
281
|
+
|
|
282
|
+
- [KIMU Framework](https://github.com/UnicoVerso/kimu)
|
|
283
|
+
- [KIMU Core](https://github.com/UnicoVerso/kimu-core)
|
|
284
|
+
- [KIMU Modules](https://github.com/UnicoVerso/kimu-modules)
|
|
285
|
+
- [Documentation online](https://unicoverso.com/kimu/docs)
|
|
286
|
+
|
|
287
|
+
## Support
|
|
288
|
+
|
|
289
|
+
- 📖 [Documentation repository](https://github.com/UnicoVerso/kimu-docs)
|
|
290
|
+
- 🐛 [Issue Tracker](https://github.com/UnicoVerso/kimu-cli/issues)
|
|
291
|
+
- 💬 [Discussions](https://github.com/UnicoVerso/kimu-cli/discussions)
|
package/bin/kimu.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
// TODO: Import other commands as they are implemented
|
|
17
|
+
// const { setupInstallCommand } = require('../dist/commands/install');
|
|
18
|
+
// const { setupBuildCommand } = require('../dist/commands/build');
|
|
19
|
+
// const { setupListCommand } = require('../dist/commands/list');
|
|
20
|
+
|
|
21
|
+
const program = new Command();
|
|
22
|
+
|
|
23
|
+
// Configure main program
|
|
24
|
+
program
|
|
25
|
+
.name(CLI_NAME)
|
|
26
|
+
.description('Official command-line interface for the KIMU framework ecosystem')
|
|
27
|
+
.version(CLI_VERSION, '-v, --version', 'display version number')
|
|
28
|
+
.option('--verbose', 'enable verbose output')
|
|
29
|
+
.helpOption('-h, --help', 'display help for command');
|
|
30
|
+
|
|
31
|
+
// Setup commands
|
|
32
|
+
setupVersionCommand(program);
|
|
33
|
+
setupInfoCommand(program);
|
|
34
|
+
setupHelpCommand(program);
|
|
35
|
+
setupCreateCommand(program);
|
|
36
|
+
|
|
37
|
+
// TODO: Setup other commands as they are implemented
|
|
38
|
+
// setupInstallCommand(program);
|
|
39
|
+
// setupBuildCommand(program);
|
|
40
|
+
// setupListCommand(program);
|
|
41
|
+
|
|
42
|
+
// Parse command line arguments
|
|
43
|
+
program.parse(process.argv);
|
|
44
|
+
|
|
45
|
+
// Show help if no command provided
|
|
46
|
+
if (!process.argv.slice(2).length) {
|
|
47
|
+
program.outputHelp();
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsHzD"}
|
|
@@ -0,0 +1,115 @@
|
|
|
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.setupCreateCommand = setupCreateCommand;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
// test command: node ../bin/kimu.js create test-project --git --no-install
|
|
11
|
+
function setupCreateCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command('create <name>')
|
|
14
|
+
.description('Create a new KIMU project in a new folder')
|
|
15
|
+
.option('--no-install', 'Skip npm install')
|
|
16
|
+
.option('--git', 'Initialize a git repository')
|
|
17
|
+
.option('--force', 'Overwrite if folder exists')
|
|
18
|
+
.action(async (name, options) => {
|
|
19
|
+
console.log(`Creating KIMU project: ${name}...`);
|
|
20
|
+
const targetDir = path_1.default.resolve(process.cwd(), name);
|
|
21
|
+
// Check if directory exists
|
|
22
|
+
if (fs_extra_1.default.existsSync(targetDir) && !options.force) {
|
|
23
|
+
console.error(`Folder ${name} already exists. Use --force to overwrite.`);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
// Remove existing directory if force is used
|
|
28
|
+
if (fs_extra_1.default.existsSync(targetDir) && options.force) {
|
|
29
|
+
console.log('Removing existing directory...');
|
|
30
|
+
fs_extra_1.default.removeSync(targetDir);
|
|
31
|
+
}
|
|
32
|
+
// Step 1: Create project folder
|
|
33
|
+
fs_extra_1.default.mkdirSync(targetDir);
|
|
34
|
+
process.chdir(targetDir);
|
|
35
|
+
// Step 2: npm init
|
|
36
|
+
console.log('Initializing npm project...');
|
|
37
|
+
(0, child_process_1.execSync)('npm init -y', { stdio: 'inherit' });
|
|
38
|
+
// Step 3: Install kimu-core
|
|
39
|
+
console.log('Installing kimu-core...');
|
|
40
|
+
(0, child_process_1.execSync)('npm install kimu-core', { stdio: 'inherit' });
|
|
41
|
+
// Step 4: Copy ALL files from kimu-core except node_modules, dist, .git, .env, etc.
|
|
42
|
+
const kimuCorePath = path_1.default.join(targetDir, 'node_modules', 'kimu-core');
|
|
43
|
+
if (!fs_extra_1.default.existsSync(kimuCorePath)) {
|
|
44
|
+
throw new Error('kimu-core not found in node_modules.');
|
|
45
|
+
}
|
|
46
|
+
// List of folders/files to exclude
|
|
47
|
+
const exclude = [
|
|
48
|
+
'node_modules',
|
|
49
|
+
'dist',
|
|
50
|
+
'.git',
|
|
51
|
+
'.env',
|
|
52
|
+
'package-lock.json',
|
|
53
|
+
];
|
|
54
|
+
const items = fs_extra_1.default.readdirSync(kimuCorePath);
|
|
55
|
+
for (const item of items) {
|
|
56
|
+
if (exclude.includes(item))
|
|
57
|
+
continue;
|
|
58
|
+
const srcPath = path_1.default.join(kimuCorePath, item);
|
|
59
|
+
const destPath = path_1.default.join(targetDir, item);
|
|
60
|
+
fs_extra_1.default.copySync(srcPath, destPath);
|
|
61
|
+
}
|
|
62
|
+
// Step 5: Remove node_modules/kimu-core (optional)
|
|
63
|
+
if (fs_extra_1.default.existsSync(kimuCorePath)) {
|
|
64
|
+
fs_extra_1.default.removeSync(kimuCorePath);
|
|
65
|
+
}
|
|
66
|
+
// Step 6: Install all dependencies
|
|
67
|
+
if (options.install !== false) {
|
|
68
|
+
console.log('Installing all dependencies...');
|
|
69
|
+
(0, child_process_1.execSync)('npm install', { stdio: 'inherit' });
|
|
70
|
+
}
|
|
71
|
+
// Step 6.5: Generate kimu-build-config
|
|
72
|
+
console.log('Generating KIMU build configuration...');
|
|
73
|
+
(0, child_process_1.execSync)('npm run generate-config:dev', { stdio: 'inherit' });
|
|
74
|
+
// Step 7: Update package.json (only name)
|
|
75
|
+
const packageJsonPath = path_1.default.join(targetDir, 'package.json');
|
|
76
|
+
if (fs_extra_1.default.existsSync(packageJsonPath)) {
|
|
77
|
+
const packageJson = fs_extra_1.default.readJsonSync(packageJsonPath);
|
|
78
|
+
packageJson.name = name;
|
|
79
|
+
fs_extra_1.default.writeJsonSync(packageJsonPath, packageJson, { spaces: 2 });
|
|
80
|
+
console.log('Updated package.json with project name.');
|
|
81
|
+
}
|
|
82
|
+
// Step 8: Initialize git if requested
|
|
83
|
+
if (options.git) {
|
|
84
|
+
console.log('Initializing new git repository...');
|
|
85
|
+
(0, child_process_1.execSync)('git init', { stdio: 'inherit' });
|
|
86
|
+
(0, child_process_1.execSync)('git add .', { stdio: 'inherit' });
|
|
87
|
+
(0, child_process_1.execSync)('git commit -m "Initial commit from KIMU-CLI"', {
|
|
88
|
+
stdio: 'inherit',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// Step 9: Final message
|
|
92
|
+
console.log(`✅ Project ${name} created successfully!`);
|
|
93
|
+
console.log(`📁 Location: ${targetDir}`);
|
|
94
|
+
console.log(`🚀 Next steps:`);
|
|
95
|
+
console.log(` cd ${name}`);
|
|
96
|
+
if (options.install === false) {
|
|
97
|
+
console.log(` npm install`);
|
|
98
|
+
}
|
|
99
|
+
console.log(` npm run dev`);
|
|
100
|
+
console.log('📖 Documentation: https://github.com/UnicoVerso/kimu-core');
|
|
101
|
+
console.log('🔗 NPM package: https://www.npmjs.com/package/kimu-core');
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
105
|
+
console.error(`❌ Error creating project: ${errorMessage}`);
|
|
106
|
+
// Cleanup on error
|
|
107
|
+
if (fs_extra_1.default.existsSync(targetDir)) {
|
|
108
|
+
console.log('Cleaning up incomplete project...');
|
|
109
|
+
fs_extra_1.default.removeSync(targetDir);
|
|
110
|
+
}
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAWvD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupHelpCommand = setupHelpCommand;
|
|
4
|
+
function setupHelpCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command('help [command]')
|
|
7
|
+
.description('Show help for kimu or a specific command')
|
|
8
|
+
.action((cmd) => {
|
|
9
|
+
if (cmd) {
|
|
10
|
+
program.commands.find(c => c.name() === cmd)?.help();
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
program.help();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
// Usage (in main CLI setup):
|
|
18
|
+
// import { setupHelpCommand } from './commands/help';
|
|
19
|
+
// setupHelpCommand(program);
|
|
20
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":";;AAEA,4CAWC;AAXD,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,CAAC,GAAuB,EAAE,EAAE;QAClC,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,6BAA6B;AAC7B,sDAAsD;AACtD,6BAA6B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Info command implementation
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { Logger } from '../utils/logger';
|
|
6
|
+
import { InfoOptions } from '../types/cli-types';
|
|
7
|
+
export declare function setupInfoCommand(program: Command): void;
|
|
8
|
+
export declare function handleInfoCommand(options: InfoOptions, logger: Logger): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUvD;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf"}
|