kimu-cli 0.1.1 → 1.0.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 +47 -2
- package/README.md +18 -7
- package/bin/kimu.js +7 -5
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +58 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +167 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/new.d.ts +16 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +316 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/types/cli-types.d.ts +7 -0
- package/dist/types/cli-types.d.ts.map +1 -1
- package/dist/utils/module-installer.d.ts +11 -0
- package/dist/utils/module-installer.d.ts.map +1 -0
- package/dist/utils/module-installer.js +21 -0
- package/dist/utils/module-installer.js.map +1 -0
- package/dist/utils/registry.d.ts +8 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +109 -0
- package/dist/utils/registry.js.map +1 -0
- package/docs/README.md +126 -0
- package/docs/command-kimu.md +14 -0
- package/docs/commands/create.md +60 -15
- package/docs/commands/install.md +52 -8
- package/docs/commands/list.md +39 -51
- package/docs/commands/new.md +626 -0
- package/docs/configuration-files.md +192 -0
- package/docs/getting-started.md +386 -0
- package/docs/index.md +57 -27
- package/docs/intro.md +30 -8
- package/docs/quick-reference.md +335 -0
- package/package.json +101 -101
- package/templates/generators/README.md +76 -0
- package/templates/generators/extension/config.json +45 -0
- package/templates/generators/extension/templates/component.ts.template +66 -0
- package/templates/generators/extension/templates/style.css.template +40 -0
- package/templates/generators/extension/templates/view.html.template +9 -0
- package/templates/generators/module/config.json +35 -0
- package/templates/generators/module/templates/README.md.template +62 -0
- package/templates/generators/module/templates/module.ts.template +36 -0
- package/templates/generators/module/templates/service.ts.template +41 -0
- package/docs/command-kimu-new.md +0 -207
- package/docs/command-kimu-old.md +0 -51
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* New command implementation - Create components from templates
|
|
4
|
+
* Template-based generator system for extensibility
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.setupNewCommand = setupNewCommand;
|
|
44
|
+
exports.handleNewCommand = handleNewCommand;
|
|
45
|
+
const fs = __importStar(require("fs-extra"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
const ora_1 = __importDefault(require("ora"));
|
|
49
|
+
const logger_1 = require("../utils/logger");
|
|
50
|
+
const constants_1 = require("../config/constants");
|
|
51
|
+
/**
|
|
52
|
+
* Get the templates directory path
|
|
53
|
+
*/
|
|
54
|
+
function getTemplatesDir() {
|
|
55
|
+
// In development, templates are in the project root
|
|
56
|
+
// When published, they're in the package root
|
|
57
|
+
const devPath = path.join(__dirname, '../../templates/generators');
|
|
58
|
+
const prodPath = path.join(__dirname, '../templates/generators');
|
|
59
|
+
if (fs.existsSync(devPath)) {
|
|
60
|
+
return devPath;
|
|
61
|
+
}
|
|
62
|
+
else if (fs.existsSync(prodPath)) {
|
|
63
|
+
return prodPath;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
throw new Error('Templates directory not found');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Discover available generator types
|
|
71
|
+
*/
|
|
72
|
+
function discoverGenerators() {
|
|
73
|
+
const templatesDir = getTemplatesDir();
|
|
74
|
+
if (!fs.existsSync(templatesDir)) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
const entries = fs.readdirSync(templatesDir, { withFileTypes: true });
|
|
78
|
+
return entries
|
|
79
|
+
.filter(entry => entry.isDirectory())
|
|
80
|
+
.map(entry => entry.name)
|
|
81
|
+
.filter(name => fs.existsSync(path.join(templatesDir, name, 'config.json')));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Load generator configuration
|
|
85
|
+
*/
|
|
86
|
+
function loadGeneratorConfig(type) {
|
|
87
|
+
const templatesDir = getTemplatesDir();
|
|
88
|
+
const configPath = path.join(templatesDir, type, 'config.json');
|
|
89
|
+
if (!fs.existsSync(configPath)) {
|
|
90
|
+
throw new Error(`Generator config not found: ${configPath}`);
|
|
91
|
+
}
|
|
92
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Convert kebab-case to PascalCase
|
|
96
|
+
*/
|
|
97
|
+
function toPascalCase(str) {
|
|
98
|
+
return str
|
|
99
|
+
.split('-')
|
|
100
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
101
|
+
.join('');
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Convert kebab-case to camelCase
|
|
105
|
+
*/
|
|
106
|
+
function toCamelCase(str) {
|
|
107
|
+
const pascal = toPascalCase(str);
|
|
108
|
+
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Convert kebab-case to Title Case
|
|
112
|
+
*/
|
|
113
|
+
function toTitleCase(str) {
|
|
114
|
+
return str
|
|
115
|
+
.split('-')
|
|
116
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
117
|
+
.join(' ');
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Convert kebab-case to snake_case
|
|
121
|
+
*/
|
|
122
|
+
function toSnakeCase(str) {
|
|
123
|
+
return str.replace(/-/g, '_');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Replace placeholders in text
|
|
127
|
+
*/
|
|
128
|
+
function replacePlaceholders(text, name, targetPath) {
|
|
129
|
+
const replacements = {
|
|
130
|
+
'{{name}}': name,
|
|
131
|
+
'{{className}}': toPascalCase(name),
|
|
132
|
+
'{{kebabName}}': name,
|
|
133
|
+
'{{camelName}}': toCamelCase(name),
|
|
134
|
+
'{{titleName}}': toTitleCase(name),
|
|
135
|
+
'{{snakeName}}': toSnakeCase(name),
|
|
136
|
+
'{{targetPath}}': targetPath,
|
|
137
|
+
};
|
|
138
|
+
let result = text;
|
|
139
|
+
for (const [placeholder, value] of Object.entries(replacements)) {
|
|
140
|
+
result = result.replace(new RegExp(placeholder.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), value);
|
|
141
|
+
}
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Register component in manifest or config
|
|
146
|
+
*/
|
|
147
|
+
async function registerComponent(config, name, targetPath, logger) {
|
|
148
|
+
if (!config.registration || !config.registration.enabled) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const { file, type, path: configPath, entry } = config.registration;
|
|
152
|
+
if (!fs.existsSync(file)) {
|
|
153
|
+
logger.warn(`Registration file not found: ${file}. Skipping registration.`);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const content = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
157
|
+
if (type === 'array') {
|
|
158
|
+
// Add to array (e.g., extension-manifest.json)
|
|
159
|
+
const entryWithPlaceholders = JSON.stringify(entry);
|
|
160
|
+
const finalEntry = JSON.parse(replacePlaceholders(entryWithPlaceholders, name, targetPath));
|
|
161
|
+
content.push(finalEntry);
|
|
162
|
+
}
|
|
163
|
+
else if (type === 'object' && configPath) {
|
|
164
|
+
// Add to nested object (e.g., kimu.config.json modules.installed)
|
|
165
|
+
const pathParts = configPath.split('.');
|
|
166
|
+
let current = content;
|
|
167
|
+
for (let i = 0; i < pathParts.length - 1; i++) {
|
|
168
|
+
const key = pathParts[i];
|
|
169
|
+
if (key && !current[key]) {
|
|
170
|
+
current[key] = {};
|
|
171
|
+
}
|
|
172
|
+
if (key) {
|
|
173
|
+
current = current[key];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const lastKey = pathParts[pathParts.length - 1];
|
|
177
|
+
if (lastKey && !Array.isArray(current[lastKey])) {
|
|
178
|
+
current[lastKey] = [];
|
|
179
|
+
}
|
|
180
|
+
if (lastKey) {
|
|
181
|
+
current[lastKey].push(name);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
fs.writeFileSync(file, JSON.stringify(content, null, 2) + '\n');
|
|
185
|
+
logger.success(`Registered in ${file}`);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Create component from generator template
|
|
189
|
+
*/
|
|
190
|
+
async function createFromTemplate(type, name, options, logger, spinner) {
|
|
191
|
+
// Load generator configuration
|
|
192
|
+
const config = loadGeneratorConfig(type);
|
|
193
|
+
const templatesDir = getTemplatesDir();
|
|
194
|
+
const templateDir = path.join(templatesDir, type, 'templates');
|
|
195
|
+
// Resolve target path with placeholders
|
|
196
|
+
const targetPath = options.path || replacePlaceholders(config.targetPath, name, '');
|
|
197
|
+
// Check if component already exists
|
|
198
|
+
if (fs.existsSync(targetPath) && !options.force) {
|
|
199
|
+
spinner.fail(chalk_1.default.red(`Component already exists: ${targetPath}`));
|
|
200
|
+
logger.error('Use --force to overwrite');
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
// Create target directory
|
|
204
|
+
fs.ensureDirSync(targetPath);
|
|
205
|
+
spinner.text = `Creating ${type} structure...`;
|
|
206
|
+
// Process each template file
|
|
207
|
+
for (const fileConfig of config.files) {
|
|
208
|
+
const templatePath = path.join(templateDir, fileConfig.template);
|
|
209
|
+
const outputPath = path.join(targetPath, replacePlaceholders(fileConfig.output, name, targetPath));
|
|
210
|
+
if (!fs.existsSync(templatePath)) {
|
|
211
|
+
logger.warn(`Template not found: ${templatePath}`);
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
// Read template content
|
|
215
|
+
const templateContent = fs.readFileSync(templatePath, 'utf-8');
|
|
216
|
+
// Replace placeholders
|
|
217
|
+
const finalContent = replacePlaceholders(templateContent, name, targetPath);
|
|
218
|
+
// Write output file
|
|
219
|
+
fs.writeFileSync(outputPath, finalContent);
|
|
220
|
+
if (options.verbose) {
|
|
221
|
+
logger.debug(`Created: ${outputPath}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Register component if enabled
|
|
225
|
+
if (options.register !== false) {
|
|
226
|
+
spinner.text = `Registering ${type}...`;
|
|
227
|
+
await registerComponent(config, name, targetPath, logger);
|
|
228
|
+
}
|
|
229
|
+
spinner.succeed(chalk_1.default.green(`✅ ${config.name} ${chalk_1.default.cyan(name)} created successfully!`));
|
|
230
|
+
// Show post-creation instructions
|
|
231
|
+
if (config.postCreate && config.postCreate.length > 0) {
|
|
232
|
+
logger.newLine();
|
|
233
|
+
logger.info(chalk_1.default.bold('Next steps:'));
|
|
234
|
+
for (const instruction of config.postCreate) {
|
|
235
|
+
const finalInstruction = replacePlaceholders(instruction, name, targetPath);
|
|
236
|
+
logger.bullet(finalInstruction);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Setup new command
|
|
242
|
+
*/
|
|
243
|
+
function setupNewCommand(program) {
|
|
244
|
+
program
|
|
245
|
+
.command('new <type> <name>')
|
|
246
|
+
.description('Create a new component from template (extension, module, etc.)')
|
|
247
|
+
.option('--path <path>', 'custom path for the component')
|
|
248
|
+
.option('--force', 'overwrite if component already exists')
|
|
249
|
+
.option('--no-register', 'skip registration in manifest/config')
|
|
250
|
+
.option('--verbose', 'enable verbose output')
|
|
251
|
+
.action(async (type, name, options) => {
|
|
252
|
+
const logger = new logger_1.Logger(options.verbose);
|
|
253
|
+
await handleNewCommand(type, name, options, logger);
|
|
254
|
+
});
|
|
255
|
+
// Add list subcommand to show available generators
|
|
256
|
+
program
|
|
257
|
+
.command('new:list')
|
|
258
|
+
.description('List all available component generators')
|
|
259
|
+
.action(() => {
|
|
260
|
+
const generators = discoverGenerators();
|
|
261
|
+
console.log(chalk_1.default.bold('\nAvailable component generators:\n'));
|
|
262
|
+
if (generators.length === 0) {
|
|
263
|
+
console.log(chalk_1.default.yellow(' No generators found.'));
|
|
264
|
+
console.log(chalk_1.default.gray(' Check templates/generators/ directory.\n'));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
for (const type of generators) {
|
|
268
|
+
try {
|
|
269
|
+
const config = loadGeneratorConfig(type);
|
|
270
|
+
console.log(` ${chalk_1.default.cyan(type.padEnd(15))} ${chalk_1.default.gray(config.description)}`);
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
console.log(` ${chalk_1.default.cyan(type.padEnd(15))} ${chalk_1.default.red('(config error)')}`);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
console.log('\nUsage: kimu new <type> <name>\n');
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Handle new command
|
|
281
|
+
*/
|
|
282
|
+
async function handleNewCommand(type, name, options, logger) {
|
|
283
|
+
const spinner = (0, ora_1.default)('Creating component...').start();
|
|
284
|
+
try {
|
|
285
|
+
// Check if we're in a KIMU project
|
|
286
|
+
if (!fs.existsSync(constants_1.KIMU_CONFIG_FILE)) {
|
|
287
|
+
spinner.fail(chalk_1.default.red('Not in a KIMU project directory'));
|
|
288
|
+
logger.error(`Run this command from the root of a KIMU project (${constants_1.KIMU_CONFIG_FILE} not found)`);
|
|
289
|
+
process.exit(1);
|
|
290
|
+
}
|
|
291
|
+
// Validate component type
|
|
292
|
+
const availableTypes = discoverGenerators();
|
|
293
|
+
if (!availableTypes.includes(type)) {
|
|
294
|
+
spinner.fail(chalk_1.default.red(`Invalid component type: ${type}`));
|
|
295
|
+
logger.error(`Valid types: ${availableTypes.join(', ')}`);
|
|
296
|
+
logger.info('Run "kimu new:list" to see all available generators');
|
|
297
|
+
process.exit(1);
|
|
298
|
+
}
|
|
299
|
+
// Validate component name
|
|
300
|
+
const namePattern = /^[a-z0-9-]+$/;
|
|
301
|
+
if (!namePattern.test(name)) {
|
|
302
|
+
spinner.fail(chalk_1.default.red('Invalid component name'));
|
|
303
|
+
logger.error('Component name must contain only lowercase letters, numbers, and hyphens');
|
|
304
|
+
process.exit(1);
|
|
305
|
+
}
|
|
306
|
+
spinner.text = `Creating ${type} ${chalk_1.default.cyan(name)}...`;
|
|
307
|
+
// Create component from template
|
|
308
|
+
await createFromTemplate(type, name, options, logger, spinner);
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
spinner.fail(chalk_1.default.red('Failed to create component'));
|
|
312
|
+
logger.error('Error details:', error);
|
|
313
|
+
process.exit(1);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,13 @@ export interface CreateOptions {
|
|
|
7
7
|
verbose: boolean;
|
|
8
8
|
yes: boolean;
|
|
9
9
|
}
|
|
10
|
+
export interface NewOptions {
|
|
11
|
+
path?: string;
|
|
12
|
+
force: boolean;
|
|
13
|
+
register: boolean;
|
|
14
|
+
verbose: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type ComponentType = 'extension' | 'module';
|
|
10
17
|
export interface InstallOptions {
|
|
11
18
|
verbose: boolean;
|
|
12
19
|
save: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-types.d.ts","sourceRoot":"","sources":["../../src/types/cli-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"cli-types.d.ts","sourceRoot":"","sources":["../../src/types/cli-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface InstallOptions {
|
|
2
|
+
verbose?: boolean;
|
|
3
|
+
type?: 'module' | 'extension';
|
|
4
|
+
saveDev?: boolean;
|
|
5
|
+
registry?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
force?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function installModuleOrExtension(name: string, options: InstallOptions): Promise<any>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=module-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-installer.d.ts","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":"AAGA,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;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,gBAmBxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installModuleOrExtension = installModuleOrExtension;
|
|
4
|
+
// module-installer.ts: logica di installazione moduli/estensioni KIMU
|
|
5
|
+
const registry_1 = require("./registry");
|
|
6
|
+
async function installModuleOrExtension(name, options) {
|
|
7
|
+
const registry = registry_1.KimuRegistry.getInstance();
|
|
8
|
+
const info = await registry.getModuleInfo(name, options.type);
|
|
9
|
+
if (!info) {
|
|
10
|
+
throw new Error(`${options.type || 'Module/Extension'} "${name}" not found in registry.`);
|
|
11
|
+
}
|
|
12
|
+
// TODO: download, extraction, file copy, config update, etc.
|
|
13
|
+
// Mock implementation for now
|
|
14
|
+
if (options.verbose) {
|
|
15
|
+
console.log(`[DEBUG] Mock installation of ${info.type}: ${info.name} (${info.version})`);
|
|
16
|
+
}
|
|
17
|
+
// Simulate installation
|
|
18
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
19
|
+
return info;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=module-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-installer.js","sourceRoot":"","sources":["../../src/utils/module-installer.ts"],"names":[],"mappings":";;AAYA,4DAqBC;AAjCD,sEAAsE;AACtE,yCAA0C;AAWnC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,OAAuB;IAEvB,MAAM,QAAQ,GAAG,uBAAY,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,IAAI,IAAI,kBAAkB,KAAK,IAAI,0BAA0B,CACzE,CAAC;IACJ,CAAC;IACD,6DAA6D;IAC7D,8BAA8B;IAC9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,gCAAgC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,CAC5E,CAAC;IACJ,CAAC;IACD,wBAAwB;IACxB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class KimuRegistry {
|
|
2
|
+
private static instance;
|
|
3
|
+
static getInstance(): KimuRegistry;
|
|
4
|
+
getModuleInfo(name: string, type?: 'module' | 'extension'): Promise<any | null>;
|
|
5
|
+
listModules(): Promise<any[]>;
|
|
6
|
+
listExtensions(): Promise<any[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,MAAM,CAAC,WAAW,IAAI,YAAY;IAO5B,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAC5B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAqDhB,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA2B7B,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;CAoBvC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// KimuRegistry: manages the catalog of modules/extensions from the official registry
|
|
3
|
+
// (Initial stub, to be expanded with real fetch, cache, etc.)
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.KimuRegistry = void 0;
|
|
6
|
+
class KimuRegistry {
|
|
7
|
+
static getInstance() {
|
|
8
|
+
if (!KimuRegistry.instance) {
|
|
9
|
+
KimuRegistry.instance = new KimuRegistry();
|
|
10
|
+
}
|
|
11
|
+
return KimuRegistry.instance;
|
|
12
|
+
}
|
|
13
|
+
async getModuleInfo(name, type) {
|
|
14
|
+
// TODO: real fetch from remote registry
|
|
15
|
+
// Mock for now: "router" module and "kimu-home" extension
|
|
16
|
+
const mockCatalog = {
|
|
17
|
+
modules: {
|
|
18
|
+
router: {
|
|
19
|
+
name: 'router',
|
|
20
|
+
type: 'module',
|
|
21
|
+
version: '1.2.0',
|
|
22
|
+
description: 'Routing module',
|
|
23
|
+
},
|
|
24
|
+
i18n: {
|
|
25
|
+
name: 'i18n',
|
|
26
|
+
type: 'module',
|
|
27
|
+
version: '1.5.0',
|
|
28
|
+
description: 'Internationalization module',
|
|
29
|
+
},
|
|
30
|
+
analytics: {
|
|
31
|
+
name: 'analytics',
|
|
32
|
+
type: 'module',
|
|
33
|
+
version: '0.8.0',
|
|
34
|
+
description: 'Analytics tracking module',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
extensions: {
|
|
38
|
+
'kimu-home': {
|
|
39
|
+
name: 'kimu-home',
|
|
40
|
+
type: 'extension',
|
|
41
|
+
version: '1.0.0',
|
|
42
|
+
description: 'Home extension',
|
|
43
|
+
},
|
|
44
|
+
'kimu-dashboard': {
|
|
45
|
+
name: 'kimu-dashboard',
|
|
46
|
+
type: 'extension',
|
|
47
|
+
version: '2.1.0',
|
|
48
|
+
description: 'Dashboard extension',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
if (type === 'module') {
|
|
53
|
+
return mockCatalog.modules[name] || null;
|
|
54
|
+
}
|
|
55
|
+
else if (type === 'extension') {
|
|
56
|
+
return mockCatalog.extensions[name] || null;
|
|
57
|
+
}
|
|
58
|
+
// Fallback: search in both
|
|
59
|
+
return mockCatalog.modules[name] || mockCatalog.extensions[name] || null;
|
|
60
|
+
}
|
|
61
|
+
async listModules() {
|
|
62
|
+
// TODO: real fetch from remote registry
|
|
63
|
+
const mockCatalog = {
|
|
64
|
+
modules: {
|
|
65
|
+
router: {
|
|
66
|
+
name: 'router',
|
|
67
|
+
type: 'module',
|
|
68
|
+
version: '1.2.0',
|
|
69
|
+
description: 'Routing module',
|
|
70
|
+
},
|
|
71
|
+
i18n: {
|
|
72
|
+
name: 'i18n',
|
|
73
|
+
type: 'module',
|
|
74
|
+
version: '1.5.0',
|
|
75
|
+
description: 'Internationalization module',
|
|
76
|
+
},
|
|
77
|
+
analytics: {
|
|
78
|
+
name: 'analytics',
|
|
79
|
+
type: 'module',
|
|
80
|
+
version: '0.8.0',
|
|
81
|
+
description: 'Analytics tracking module',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
return Object.values(mockCatalog.modules);
|
|
86
|
+
}
|
|
87
|
+
async listExtensions() {
|
|
88
|
+
// TODO: real fetch from remote registry
|
|
89
|
+
const mockCatalog = {
|
|
90
|
+
extensions: {
|
|
91
|
+
'kimu-home': {
|
|
92
|
+
name: 'kimu-home',
|
|
93
|
+
type: 'extension',
|
|
94
|
+
version: '1.0.0',
|
|
95
|
+
description: 'Home extension',
|
|
96
|
+
},
|
|
97
|
+
'kimu-dashboard': {
|
|
98
|
+
name: 'kimu-dashboard',
|
|
99
|
+
type: 'extension',
|
|
100
|
+
version: '2.1.0',
|
|
101
|
+
description: 'Dashboard extension',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
return Object.values(mockCatalog.extensions);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.KimuRegistry = KimuRegistry;
|
|
109
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# KIMU-CLI Documentation
|
|
2
|
+
|
|
3
|
+
Welcome to the official documentation for KIMU-CLI, the command-line interface for the KIMU framework ecosystem.
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick Links
|
|
6
|
+
|
|
7
|
+
### **New to KIMU-CLI?**
|
|
8
|
+
Start here: [**Getting Started Guide**](getting-started.md) ⭐
|
|
9
|
+
|
|
10
|
+
This comprehensive guide walks you through:
|
|
11
|
+
- Installing KIMU-CLI
|
|
12
|
+
- Creating your first project
|
|
13
|
+
- Understanding the project structure
|
|
14
|
+
- Making your first changes
|
|
15
|
+
- Building and deploying
|
|
16
|
+
|
|
17
|
+
### **Need Quick Reference?**
|
|
18
|
+
Common commands: [**Quick Reference**](quick-reference.md) 🚀
|
|
19
|
+
|
|
20
|
+
One-page guide with:
|
|
21
|
+
- Most used commands
|
|
22
|
+
- Common workflows
|
|
23
|
+
- Troubleshooting tips
|
|
24
|
+
- Configuration examples
|
|
25
|
+
|
|
26
|
+
### Documentation Index
|
|
27
|
+
- [**Documentation Index**](index.md) - Complete documentation map
|
|
28
|
+
- [**Introduction**](intro.md) - What is KIMU-CLI and why use it
|
|
29
|
+
- [**Command Reference**](command-kimu.md) - All available commands
|
|
30
|
+
- [**Distribution Guide**](distribution.md) - Advanced installation and publishing
|
|
31
|
+
|
|
32
|
+
## 📚 Available Commands
|
|
33
|
+
|
|
34
|
+
### ✅ Ready to Use
|
|
35
|
+
- [`kimu create`](commands/create.md) - Create new KIMU projects
|
|
36
|
+
- [`kimu new`](commands/new.md) - Create components from templates
|
|
37
|
+
- [`kimu info`](commands/info.md) - Show project information
|
|
38
|
+
- [`kimu version`](commands/version.md) - Display version information
|
|
39
|
+
- [`kimu help`](commands/help.md) - Get command help
|
|
40
|
+
|
|
41
|
+
### ⏳ Coming Soon
|
|
42
|
+
- [`kimu install`](commands/install.md) - Install modules and extensions
|
|
43
|
+
- [`kimu remove`](commands/remove.md) - Remove packages
|
|
44
|
+
- [`kimu list`](commands/list.md) - List available/installed packages
|
|
45
|
+
- [`kimu build`](commands/build.md) - Build for production
|
|
46
|
+
- [`kimu dev`](commands/dev.md) - Start development server
|
|
47
|
+
- [`kimu serve`](commands/serve.md) - Serve built project
|
|
48
|
+
- [`kimu doctor`](commands/doctor.md) - Project diagnostics
|
|
49
|
+
|
|
50
|
+
## 🎯 Quick Start
|
|
51
|
+
|
|
52
|
+
### Installation
|
|
53
|
+
```bash
|
|
54
|
+
# Global installation
|
|
55
|
+
npm install -g kimu-cli
|
|
56
|
+
|
|
57
|
+
# Or use with npx
|
|
58
|
+
npx kimu-cli create my-app
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Create a Project
|
|
62
|
+
```bash
|
|
63
|
+
# Create new project
|
|
64
|
+
kimu create my-awesome-app
|
|
65
|
+
|
|
66
|
+
# Navigate to it
|
|
67
|
+
cd my-awesome-app
|
|
68
|
+
|
|
69
|
+
# Start developing
|
|
70
|
+
npm run dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Get Help
|
|
74
|
+
```bash
|
|
75
|
+
# General help
|
|
76
|
+
kimu --help
|
|
77
|
+
|
|
78
|
+
# Command-specific help
|
|
79
|
+
kimu create --help
|
|
80
|
+
|
|
81
|
+
# Check version
|
|
82
|
+
kimu --version
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 📖 Documentation Structure
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
docs/
|
|
89
|
+
├── README.md # This file
|
|
90
|
+
├── index.md # Documentation index and navigation
|
|
91
|
+
├── getting-started.md # Complete tutorial for beginners
|
|
92
|
+
├── intro.md # Introduction to KIMU-CLI
|
|
93
|
+
├── command-kimu.md # Complete command reference
|
|
94
|
+
├── distribution.md # Installation and publishing guide
|
|
95
|
+
└── commands/ # Detailed command documentation
|
|
96
|
+
├── create.md
|
|
97
|
+
├── info.md
|
|
98
|
+
├── version.md
|
|
99
|
+
├── help.md
|
|
100
|
+
└── ... (more commands)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 🔗 External Resources
|
|
104
|
+
|
|
105
|
+
- **NPM Package**: [kimu-cli on npm](https://www.npmjs.com/package/kimu-cli)
|
|
106
|
+
- **GitHub Repository**: [UnicoVerso/kimu-cli](https://github.com/UnicoVerso/kimu-cli)
|
|
107
|
+
- **KIMU Core Framework**: [kimu-core on npm](https://www.npmjs.com/package/kimu-core)
|
|
108
|
+
- **KIMU Core Repo**: [UnicoVerso/kimu-core](https://github.com/UnicoVerso/kimu-core)
|
|
109
|
+
|
|
110
|
+
## 💡 Need Help?
|
|
111
|
+
|
|
112
|
+
- **Documentation**: You're reading it! Browse the links above
|
|
113
|
+
- **GitHub Issues**: [Report bugs or request features](https://github.com/UnicoVerso/kimu-cli/issues)
|
|
114
|
+
- **GitHub Discussions**: [Ask questions and share ideas](https://github.com/UnicoVerso/kimu-cli/discussions)
|
|
115
|
+
|
|
116
|
+
## 📝 Contributing to Documentation
|
|
117
|
+
|
|
118
|
+
Found an error or want to improve the docs? Contributions are welcome!
|
|
119
|
+
|
|
120
|
+
1. Fork the repository
|
|
121
|
+
2. Edit the markdown files in `/docs/`
|
|
122
|
+
3. Submit a pull request
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
**Ready to start building with KIMU?** Begin with the [Getting Started Guide](getting-started.md)! 🚀
|