kimu-cli 0.1.0 → 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.
Files changed (52) hide show
  1. package/CHANGELOG.md +47 -2
  2. package/README.md +21 -10
  3. package/bin/kimu.js +6 -4
  4. package/dist/commands/install.d.ts +3 -0
  5. package/dist/commands/install.d.ts.map +1 -0
  6. package/dist/commands/install.js +58 -0
  7. package/dist/commands/install.js.map +1 -0
  8. package/dist/commands/list.d.ts +3 -0
  9. package/dist/commands/list.d.ts.map +1 -0
  10. package/dist/commands/list.js +167 -0
  11. package/dist/commands/list.js.map +1 -0
  12. package/dist/commands/new.d.ts +16 -0
  13. package/dist/commands/new.d.ts.map +1 -0
  14. package/dist/commands/new.js +316 -0
  15. package/dist/commands/new.js.map +1 -0
  16. package/dist/config/constants.d.ts +1 -1
  17. package/dist/config/constants.d.ts.map +1 -1
  18. package/dist/config/constants.js +6 -1
  19. package/dist/config/constants.js.map +1 -1
  20. package/dist/types/cli-types.d.ts +7 -0
  21. package/dist/types/cli-types.d.ts.map +1 -1
  22. package/dist/utils/module-installer.d.ts +11 -0
  23. package/dist/utils/module-installer.d.ts.map +1 -0
  24. package/dist/utils/module-installer.js +21 -0
  25. package/dist/utils/module-installer.js.map +1 -0
  26. package/dist/utils/registry.d.ts +8 -0
  27. package/dist/utils/registry.d.ts.map +1 -0
  28. package/dist/utils/registry.js +109 -0
  29. package/dist/utils/registry.js.map +1 -0
  30. package/docs/README.md +126 -0
  31. package/docs/command-kimu.md +14 -0
  32. package/docs/commands/create.md +60 -15
  33. package/docs/commands/install.md +52 -8
  34. package/docs/commands/list.md +39 -51
  35. package/docs/commands/new.md +626 -0
  36. package/docs/configuration-files.md +192 -0
  37. package/docs/getting-started.md +386 -0
  38. package/docs/index.md +57 -27
  39. package/docs/intro.md +30 -8
  40. package/docs/quick-reference.md +335 -0
  41. package/package.json +101 -101
  42. package/templates/generators/README.md +76 -0
  43. package/templates/generators/extension/config.json +45 -0
  44. package/templates/generators/extension/templates/component.ts.template +66 -0
  45. package/templates/generators/extension/templates/style.css.template +40 -0
  46. package/templates/generators/extension/templates/view.html.template +9 -0
  47. package/templates/generators/module/config.json +35 -0
  48. package/templates/generators/module/templates/README.md.template +62 -0
  49. package/templates/generators/module/templates/module.ts.template +36 -0
  50. package/templates/generators/module/templates/service.ts.template +41 -0
  51. package/docs/command-kimu-new.md +0 -207
  52. 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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"}
@@ -2,7 +2,7 @@
2
2
  * Global constants for KIMU-CLI
3
3
  */
4
4
  export declare const CLI_NAME = "kimu";
5
- export declare const CLI_VERSION = "1.0.0";
5
+ export declare const CLI_VERSION: any;
6
6
  export declare const DEFAULT_REGISTRY_URL = "https://github.com/unicoverso/kimu-modules";
7
7
  export declare const REGISTRY_API_ENDPOINT = "https://api.github.com/repos/unicoverso/kimu-modules";
8
8
  export declare const REGISTRY_TIMEOUT = 30000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,WAAW,UAAU,CAAC;AAGnC,eAAO,MAAM,oBAAoB,+CACa,CAAC;AAC/C,eAAO,MAAM,qBAAqB,yDACsB,CAAC;AACzD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,SAAS,UAAU,CAAC;AAGjC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,OAAO,QAAQ,CAAC;AAC7B,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,cAAc,eAAe,CAAC;AAG3C,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAGhD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,mBAAmB,UAAiC,CAAC;AAGlE,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAG5C,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AACnD,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAGlD,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,WAAW,KAAsB,CAAC;AAG/C,eAAO,MAAM,oBAAoB,+CACa,CAAC;AAC/C,eAAO,MAAM,qBAAqB,yDACsB,CAAC;AACzD,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,SAAS,UAAU,CAAC;AAGjC,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,OAAO,QAAQ,CAAC;AAC7B,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,cAAc,eAAe,CAAC;AAG3C,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAClD,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAGhD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,mBAAmB,UAAiC,CAAC;AAGlE,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAG5C,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AACnD,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAGlD,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC"}
@@ -4,8 +4,13 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.EXIT_CODES = exports.SYMBOLS = exports.MODULE_NAME_PATTERN = exports.PROJECT_NAME_PATTERN = exports.DEFAULT_DEV_HOST = exports.DEFAULT_DEV_PORT = exports.DEFAULT_BUILD_FORMAT = exports.DEFAULT_BUILD_TARGET = exports.AVAILABLE_TEMPLATES = exports.DEFAULT_TEMPLATE = exports.SUPPORTED_NPM_VERSIONS = exports.SUPPORTED_NODE_VERSIONS = exports.DEFAULT_KIMU_CORE_VERSION = exports.EXTENSIONS_DIR = exports.MODULES_DIR = exports.DIST_DIR = exports.SRC_DIR = exports.VITE_CONFIG_FILE = exports.TSCONFIG_FILE = exports.PACKAGE_JSON_FILE = exports.KIMU_CONFIG_FILE = exports.CACHE_TTL = exports.REGISTRY_RETRIES = exports.REGISTRY_TIMEOUT = exports.REGISTRY_API_ENDPOINT = exports.DEFAULT_REGISTRY_URL = exports.CLI_VERSION = exports.CLI_NAME = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ // Read version from package.json
10
+ const packageJsonPath = (0, path_1.join)(__dirname, '..', '..', 'package.json');
11
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
7
12
  exports.CLI_NAME = 'kimu';
8
- exports.CLI_VERSION = '1.0.0';
13
+ exports.CLI_VERSION = packageJson.version;
9
14
  // Registry configuration
10
15
  exports.DEFAULT_REGISTRY_URL = 'https://github.com/unicoverso/kimu-modules';
11
16
  exports.REGISTRY_API_ENDPOINT = 'https://api.github.com/repos/unicoverso/kimu-modules';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,yBAAyB;AACZ,QAAA,oBAAoB,GAC/B,4CAA4C,CAAC;AAClC,QAAA,qBAAqB,GAChC,sDAAsD,CAAC;AAC5C,QAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,aAAa;AACvC,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,SAAS,GAAG,OAAO,CAAC,CAAC,yBAAyB;AAE3D,2BAA2B;AACd,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,cAAc,GAAG,YAAY,CAAC;AAE3C,0BAA0B;AACb,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AACrC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,sBAAsB,GAAG,SAAS,CAAC;AAEhD,yBAAyB;AACZ,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,mBAAmB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAElE,sBAAsB;AACT,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAChC,QAAA,oBAAoB,GAAG,KAAK,CAAC;AAC7B,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAE5C,sBAAsB;AACT,QAAA,oBAAoB,GAAG,cAAc,CAAC;AACtC,QAAA,mBAAmB,GAAG,cAAc,CAAC;AAElD,oCAAoC;AACvB,QAAA,OAAO,GAAG;IACrB,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACH,CAAC;AAEX,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;CACX,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2BAAkC;AAClC,+BAA4B;AAE5B,iCAAiC;AACjC,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1D,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAE/C,yBAAyB;AACZ,QAAA,oBAAoB,GAC/B,4CAA4C,CAAC;AAClC,QAAA,qBAAqB,GAChC,sDAAsD,CAAC;AAC5C,QAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,aAAa;AACvC,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,SAAS,GAAG,OAAO,CAAC,CAAC,yBAAyB;AAE3D,2BAA2B;AACd,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,cAAc,GAAG,YAAY,CAAC;AAE3C,0BAA0B;AACb,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AACrC,QAAA,uBAAuB,GAAG,UAAU,CAAC;AACrC,QAAA,sBAAsB,GAAG,SAAS,CAAC;AAEhD,yBAAyB;AACZ,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,mBAAmB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAElE,sBAAsB;AACT,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAChC,QAAA,oBAAoB,GAAG,KAAK,CAAC;AAC7B,QAAA,gBAAgB,GAAG,IAAI,CAAC;AACxB,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAE5C,sBAAsB;AACT,QAAA,oBAAoB,GAAG,cAAc,CAAC;AACtC,QAAA,mBAAmB,GAAG,cAAc,CAAC;AAElD,oCAAoC;AACvB,QAAA,OAAO,GAAG;IACrB,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACH,CAAC;AAEX,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;CACX,CAAC"}
@@ -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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"}