kybernus 1.1.0 → 1.1.4
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/README.md +3 -4
- package/dist/cli/commands/init.js +11 -11
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/register.js +1 -1
- package/dist/cli/commands/register.js.map +1 -1
- package/dist/cli/commands/upgrade.js +3 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/prompts/wizard.js +22 -22
- package/dist/cli/prompts/wizard.js.map +1 -1
- package/dist/cli/services/AnalyticsClient.js +1 -1
- package/dist/cli/services/AnalyticsClient.js.map +1 -1
- package/dist/core/auth/license-validator.js +1 -1
- package/dist/core/auth/license-validator.js.map +1 -1
- package/dist/core/generator/project.d.ts +9 -9
- package/dist/core/generator/project.js +61 -61
- package/dist/core/generator/project.js.map +1 -1
- package/dist/core/templates/downloader.js +1 -1
- package/dist/core/templates/downloader.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/LICENSE +0 -20
- package/templates/nestjs/free/mvc/README.md.hbs +0 -28
- package/templates/nestjs/free/mvc/package.json.hbs +0 -29
- package/templates/nestjs/free/mvc/src/app.module.ts.hbs +0 -13
- package/templates/nestjs/free/mvc/src/controllers/health.controller.ts.hbs +0 -9
- package/templates/nestjs/free/mvc/src/controllers/items.controller.ts.hbs +0 -32
- package/templates/nestjs/free/mvc/src/main.ts.hbs +0 -17
- package/templates/nestjs/free/mvc/src/models/create-item.dto.ts.hbs +0 -10
- package/templates/nestjs/free/mvc/src/models/item.model.ts.hbs +0 -6
- package/templates/nestjs/free/mvc/src/modules/items.module.ts.hbs +0 -9
- package/templates/nestjs/free/mvc/src/services/items.service.ts.hbs +0 -32
- package/templates/nestjs/free/mvc/tsconfig.json.hbs +0 -21
- package/templates/python-fastapi/free/mvc/README.md.hbs +0 -41
- package/templates/python-fastapi/free/mvc/app/controllers/health.py.hbs +0 -7
- package/templates/python-fastapi/free/mvc/app/controllers/items.py.hbs +0 -27
- package/templates/python-fastapi/free/mvc/app/main.py.hbs +0 -26
- package/templates/python-fastapi/free/mvc/app/models/item.py.hbs +0 -11
- package/templates/python-fastapi/free/mvc/app/schemas/item.py.hbs +0 -17
- package/templates/python-fastapi/free/mvc/app/services/item_service.py.hbs +0 -33
- package/templates/python-fastapi/free/mvc/requirements.txt.hbs +0 -4
package/README.md
CHANGED
|
@@ -72,12 +72,12 @@ $ kybernus init
|
|
|
72
72
|
|
|
73
73
|
### 3 projects FREE! Includes PRO and Architect templates
|
|
74
74
|
|
|
75
|
-
### Architect ($
|
|
75
|
+
### Architect ($9)
|
|
76
76
|
- Basic project scaffolding (MVC)
|
|
77
77
|
- Node.js, Next.js, Java Spring Boot
|
|
78
78
|
- README with setup instructions
|
|
79
79
|
|
|
80
|
-
### Pro Tier ($
|
|
80
|
+
### Pro Tier ($49 lifetime)
|
|
81
81
|
- **All stacks** including NestJS and FastAPI
|
|
82
82
|
- **Clean & Hexagonal Architecture** patterns
|
|
83
83
|
- **Docker & docker-compose** configurations
|
|
@@ -92,13 +92,12 @@ $ kybernus init
|
|
|
92
92
|
|
|
93
93
|
- 🌐 **Website**: [kybernus.vercel.app](https://kybernus.vercel.app)
|
|
94
94
|
- 📖 **Docs**: [kybernus.vercel.app/docs](https://kybernus.vercel.app/docs)
|
|
95
|
-
- 🐛 **Issues**: [GitHub Issues](https://github.com/ViniMTrevisan/Kybernus-CLI/issues)
|
|
96
95
|
|
|
97
96
|
---
|
|
98
97
|
|
|
99
98
|
## License
|
|
100
99
|
|
|
101
|
-
|
|
100
|
+
Copyright © 2026 Vini Trevisan. All rights reserved. Redistribution or modification involves a violation of applicable laws
|
|
102
101
|
|
|
103
102
|
---
|
|
104
103
|
|
|
@@ -7,7 +7,7 @@ import { AnalyticsClient } from '../services/AnalyticsClient.js';
|
|
|
7
7
|
export async function initCommand(options) {
|
|
8
8
|
const configManager = new ConfigManager();
|
|
9
9
|
const validator = new LicenseValidator();
|
|
10
|
-
//
|
|
10
|
+
// Determine license tier
|
|
11
11
|
let licenseTier = 'free';
|
|
12
12
|
let licenseKey = options.license;
|
|
13
13
|
// If no license provided via flag, check stored config
|
|
@@ -30,12 +30,12 @@ export async function initCommand(options) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
if (licenseTier === 'free') {
|
|
33
|
-
clack.note('🆓
|
|
33
|
+
clack.note('🆓 Free Mode Active\n\nYou are using Kybernus Free. To access:\n- Advanced Architectures (Clean, Hexagonal)\n- Additional Stacks (Python FastAPI, NestJS)\n- Complete DevOps (Docker, CI/CD, Terraform)\n\nTo unlock Pro features, run: kybernus upgrade', 'ℹ️ Information');
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
|
-
clack.note('🌟
|
|
36
|
+
clack.note('🌟 Pro Mode Active\n\nYou have access to all features!', '✨ Pro');
|
|
37
37
|
}
|
|
38
|
-
//
|
|
38
|
+
// Run interactive wizard (or use options if non-interactive)
|
|
39
39
|
const config = await runWizard(licenseTier, options);
|
|
40
40
|
// Inject licenseKey into config if available
|
|
41
41
|
if (licenseKey) {
|
|
@@ -44,21 +44,21 @@ export async function initCommand(options) {
|
|
|
44
44
|
// Validate project limit (Metered Trial)
|
|
45
45
|
if (licenseTier === 'pro' && licenseKey) {
|
|
46
46
|
const spinner = clack.spinner();
|
|
47
|
-
spinner.start('
|
|
47
|
+
spinner.start('Validating project quota...');
|
|
48
48
|
const creditCheck = await validator.consumeCredit(licenseKey);
|
|
49
|
-
spinner.stop('
|
|
49
|
+
spinner.stop('Quota verified');
|
|
50
50
|
if (!creditCheck.authorized) {
|
|
51
|
-
clack.log.error(creditCheck.message || '
|
|
51
|
+
clack.log.error(creditCheck.message || 'Project creation blocked by license limit.');
|
|
52
52
|
if (creditCheck.message?.includes('Trial limit')) {
|
|
53
|
-
clack.note('🔓
|
|
53
|
+
clack.note('🔓 Unlock unlimited projects with Kybernus Pro lifetime.\nRun: kybernus upgrade', 'Limit Reached');
|
|
54
54
|
}
|
|
55
55
|
return; // Stop generation
|
|
56
56
|
}
|
|
57
57
|
if (creditCheck.remaining !== undefined && creditCheck.remaining >= 0) {
|
|
58
|
-
clack.log.info(`
|
|
58
|
+
clack.log.info(`Trial Credits: ${creditCheck.usage}/${creditCheck.limit} used. (${creditCheck.remaining} remaining)`);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
//
|
|
61
|
+
// Generate project
|
|
62
62
|
const generator = new ProjectGenerator();
|
|
63
63
|
await generator.generate(config, process.cwd());
|
|
64
64
|
// Track generation
|
|
@@ -70,6 +70,6 @@ export async function initCommand(options) {
|
|
|
70
70
|
tier: licenseTier,
|
|
71
71
|
command: 'init'
|
|
72
72
|
});
|
|
73
|
-
clack.outro('🎉
|
|
73
|
+
clack.outro('🎉 Project created successfully! Happy coding!');
|
|
74
74
|
}
|
|
75
75
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IAClD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEzC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IAClD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAEzC,yBAAyB;IACzB,IAAI,WAAW,GAAgB,MAAM,CAAC;IACtC,IAAI,UAAU,GAAuB,OAAO,CAAC,OAAO,CAAC;IAErD,uDAAuD;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAExD,mCAAmC;YACnC,IAAI,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,WAAW,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBACxE,aAAa,CAAC,YAAY,EAAE,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACN,0PAA0P,EAC1P,iBAAiB,CACpB,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,wDAAwD,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAErD,6CAA6C;IAC7C,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACnC,CAAC;IAED,yCAAyC;IACzC,IAAI,WAAW,KAAK,KAAK,IAAI,UAAU,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE9D,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,IAAI,4CAA4C,CAAC,CAAC;YACrF,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,IAAI,CAAC,iFAAiF,EAAE,eAAe,CAAC,CAAC;YACnH,CAAC;YACD,OAAO,CAAC,kBAAkB;QAC9B,CAAC;QAED,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,WAAW,WAAW,CAAC,SAAS,aAAa,CAAC,CAAC;QAC1H,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACzC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhD,mBAAmB;IACnB,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,SAAS,CAAC,KAAK,CAAC,mBAAmB,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,MAAM;KAClB,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as clack from '@clack/prompts';
|
|
2
2
|
import { ConfigManager } from '../../core/config/config-manager.js';
|
|
3
3
|
import { AnalyticsClient } from '../services/AnalyticsClient.js';
|
|
4
|
-
const API_URL = process.env.KYBERNUS_API_URL || '
|
|
4
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'https://getkybernus.com/api';
|
|
5
5
|
export async function registerCommand() {
|
|
6
6
|
console.clear();
|
|
7
7
|
clack.intro('🚀 Kybernus Registration');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/commands/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import * as clack from '@clack/prompts';
|
|
|
2
2
|
import { exec } from 'child_process';
|
|
3
3
|
import { ConfigManager } from '../../core/config/config-manager.js';
|
|
4
4
|
import { AnalyticsClient } from '../services/AnalyticsClient.js';
|
|
5
|
-
const API_URL = process.env.KYBERNUS_API_URL || '
|
|
5
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'https://getkybernus.com/api';
|
|
6
6
|
export async function upgradeCommand() {
|
|
7
7
|
console.clear();
|
|
8
8
|
clack.intro('💎 Upgrade Kybernus');
|
|
@@ -16,8 +16,8 @@ export async function upgradeCommand() {
|
|
|
16
16
|
const type = await clack.select({
|
|
17
17
|
message: 'Choose your plan:',
|
|
18
18
|
options: [
|
|
19
|
-
{ value: 'monthly', label: 'Monthly Subscription ($
|
|
20
|
-
{ value: 'lifetime', label: 'Pro Lifetime ($
|
|
19
|
+
{ value: 'monthly', label: 'Monthly Subscription ($9/month) - Continue using standard features' },
|
|
20
|
+
{ value: 'lifetime', label: 'Pro Lifetime ($49 one-time) - Unlock Advanced Architecture & DevOps forever' },
|
|
21
21
|
],
|
|
22
22
|
});
|
|
23
23
|
if (clack.isCancel(type)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as clack from '@clack/prompts';
|
|
2
2
|
export async function runWizard(licenseTier, options = {}) {
|
|
3
|
-
//
|
|
3
|
+
// If non-interactive mode, validate required options
|
|
4
4
|
if (options.nonInteractive) {
|
|
5
5
|
if (!options.name || !options.stack) {
|
|
6
|
-
throw new Error('
|
|
6
|
+
throw new Error('Non-interactive mode requires --name and --stack. Architecture defaults to mvc if not specified.');
|
|
7
7
|
}
|
|
8
8
|
// Default DevOps flags for Pro non-interactive
|
|
9
9
|
const devops = {
|
|
@@ -23,23 +23,23 @@ export async function runWizard(licenseTier, options = {}) {
|
|
|
23
23
|
licenseTier
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
-
clack.intro('🚀
|
|
26
|
+
clack.intro('🚀 Welcome to Kybernus');
|
|
27
27
|
// Pre-fill prompt default values based on passed options
|
|
28
28
|
const answers = await clack.group({
|
|
29
29
|
projectName: () => clack.text({
|
|
30
|
-
message: '
|
|
31
|
-
placeholder: '
|
|
30
|
+
message: 'Project name:',
|
|
31
|
+
placeholder: 'my-project',
|
|
32
32
|
initialValue: options.name,
|
|
33
33
|
validate: (value) => {
|
|
34
34
|
if (!value)
|
|
35
|
-
return '
|
|
35
|
+
return 'Name is required';
|
|
36
36
|
if (!/^[a-z0-9-]+$/.test(value)) {
|
|
37
|
-
return 'Use
|
|
37
|
+
return 'Use only lowercase letters, numbers and hyphens';
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
}),
|
|
41
41
|
stack: () => clack.select({
|
|
42
|
-
message: '
|
|
42
|
+
message: 'Choose your stack:',
|
|
43
43
|
initialValue: options.stack,
|
|
44
44
|
options: [
|
|
45
45
|
{ value: 'nextjs', label: 'Next.js (React + TypeScript)' },
|
|
@@ -60,7 +60,7 @@ export async function runWizard(licenseTier, options = {}) {
|
|
|
60
60
|
message: 'Build tool:',
|
|
61
61
|
initialValue: options.buildTool,
|
|
62
62
|
options: [
|
|
63
|
-
{ value: 'maven', label: 'Maven (Gradle
|
|
63
|
+
{ value: 'maven', label: 'Maven (Gradle coming soon)' },
|
|
64
64
|
],
|
|
65
65
|
});
|
|
66
66
|
},
|
|
@@ -68,61 +68,61 @@ export async function runWizard(licenseTier, options = {}) {
|
|
|
68
68
|
if (results.stack !== 'java-spring')
|
|
69
69
|
return;
|
|
70
70
|
return clack.text({
|
|
71
|
-
message: 'Package name (
|
|
72
|
-
placeholder: 'com.
|
|
71
|
+
message: 'Package name (e.g., com.user.project):',
|
|
72
|
+
placeholder: 'com.user.project',
|
|
73
73
|
initialValue: options.packageName,
|
|
74
74
|
validate: (value) => {
|
|
75
75
|
if (!value)
|
|
76
|
-
return 'Package name
|
|
76
|
+
return 'Package name is required for Java';
|
|
77
77
|
if (!/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$/.test(value)) {
|
|
78
|
-
return '
|
|
78
|
+
return 'Invalid package name (e.g., com.user.project)';
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
});
|
|
82
82
|
},
|
|
83
83
|
architecture: ({ results }) => {
|
|
84
|
-
//
|
|
84
|
+
// Only backend stacks support different architectures
|
|
85
85
|
const backendStacks = ['java-spring', 'nodejs-express', 'python-fastapi', 'nestjs'];
|
|
86
86
|
if (!backendStacks.includes(results.stack))
|
|
87
87
|
return;
|
|
88
88
|
const uiOptions = [{ value: 'mvc', label: 'MVC (Model-View-Controller)' }];
|
|
89
|
-
//
|
|
89
|
+
// Advanced architectures only in Pro
|
|
90
90
|
if (licenseTier === 'pro') {
|
|
91
91
|
uiOptions.push({ value: 'clean', label: '🌟 Clean Architecture (Pro)' }, { value: 'hexagonal', label: '🌟 Hexagonal Architecture (Pro)' });
|
|
92
92
|
}
|
|
93
93
|
return clack.select({
|
|
94
|
-
message: '
|
|
94
|
+
message: 'Architecture:',
|
|
95
95
|
initialValue: options.architecture,
|
|
96
96
|
options: uiOptions,
|
|
97
97
|
});
|
|
98
98
|
},
|
|
99
99
|
useAI: () => clack.confirm({
|
|
100
|
-
message: '
|
|
100
|
+
message: 'Generate AI documentation (Google Gemini)?',
|
|
101
101
|
initialValue: options.ai || false,
|
|
102
102
|
}),
|
|
103
103
|
geminiKey: ({ results }) => {
|
|
104
104
|
if (!results.useAI)
|
|
105
105
|
return;
|
|
106
|
-
//
|
|
106
|
+
// If key already provided in options, don't ask
|
|
107
107
|
if (options.geminiKey)
|
|
108
108
|
return;
|
|
109
109
|
return clack.password({
|
|
110
110
|
message: 'Gemini API Key:',
|
|
111
111
|
validate: (value) => {
|
|
112
112
|
if (!value)
|
|
113
|
-
return 'API Key
|
|
113
|
+
return 'API Key is required to use AI';
|
|
114
114
|
},
|
|
115
115
|
});
|
|
116
116
|
},
|
|
117
117
|
devops: async ({ results }) => {
|
|
118
118
|
if (licenseTier !== 'pro')
|
|
119
119
|
return [];
|
|
120
|
-
//
|
|
120
|
+
// If devops flags already set, assume override mode
|
|
121
121
|
if (options.docker || options.cicd || options.terraform) {
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
124
|
const selected = await clack.multiselect({
|
|
125
|
-
message: "DevOps &
|
|
125
|
+
message: "DevOps & Infrastructure (use Space to select, or 'A' to select all):",
|
|
126
126
|
options: [
|
|
127
127
|
{ value: 'docker', label: 'Docker + Docker Compose' },
|
|
128
128
|
{ value: 'ci-cd', label: 'GitHub Actions CI/CD' },
|
|
@@ -134,7 +134,7 @@ export async function runWizard(licenseTier, options = {}) {
|
|
|
134
134
|
},
|
|
135
135
|
}, {
|
|
136
136
|
onCancel: () => {
|
|
137
|
-
clack.cancel('
|
|
137
|
+
clack.cancel('Operation cancelled');
|
|
138
138
|
process.exit(0);
|
|
139
139
|
},
|
|
140
140
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/cli/prompts/wizard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAkBxC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,WAAwB,EAAE,UAAyB,EAAE;IACnF,
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/cli/prompts/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigManager } from '../../core/config/config-manager.js';
|
|
2
|
-
const API_URL = process.env.KYBERNUS_API_URL || '
|
|
2
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'https://getkybernus.com/api';
|
|
3
3
|
export class AnalyticsClient {
|
|
4
4
|
configManager;
|
|
5
5
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsClient.js","sourceRoot":"","sources":["../../../src/cli/services/AnalyticsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"AnalyticsClient.js","sourceRoot":"","sources":["../../../src/cli/services/AnalyticsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,6BAA6B,CAAC;AAE9E,MAAM,OAAO,eAAe;IAChB,aAAa,CAAgB;IAErC;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,OAAuF,EAAE;QAChH,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,0EAA0E;YAE/H,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAEvD,kBAAkB;YAClB,KAAK,CAAC,GAAG,OAAO,kBAAkB,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK;oBACL,UAAU,EAAE,UAAU,IAAI,SAAS;oBACnC,KAAK;oBACL,YAAY;oBACZ,OAAO;oBACP,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,kCAAkC;iBACtE,CAAC;aACL,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAExB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB;QACpB,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigManager } from '../config/config-manager.js';
|
|
2
|
-
const API_URL = process.env.KYBERNUS_API_URL || '
|
|
2
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'https://getkybernus.com/api';
|
|
3
3
|
export class LicenseValidator {
|
|
4
4
|
configManager;
|
|
5
5
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-validator.js","sourceRoot":"","sources":["../../../src/core/auth/license-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"license-validator.js","sourceRoot":"","sources":["../../../src/core/auth/license-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ProjectConfig } from '../../models/config.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Generates projects from templates
|
|
4
4
|
*/
|
|
5
5
|
export declare class ProjectGenerator {
|
|
6
6
|
private engine;
|
|
7
7
|
constructor();
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Generates a complete project based on configuration
|
|
10
10
|
*/
|
|
11
11
|
generate(config: ProjectConfig, outputDir: string): Promise<void>;
|
|
12
12
|
/**
|
|
@@ -18,32 +18,32 @@ export declare class ProjectGenerator {
|
|
|
18
18
|
*/
|
|
19
19
|
private getLocalTemplatePath;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Generates documentation using AI (README.md and API.md)
|
|
22
22
|
*/
|
|
23
23
|
private generateAIDocumentation;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Returns template path based on config
|
|
26
26
|
*/
|
|
27
27
|
private getTemplatePath;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Shows next steps instructions
|
|
30
30
|
*/
|
|
31
31
|
private showNextSteps;
|
|
32
32
|
private getStackSpecificInstructions;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
34
|
+
* Runs post-generation hooks (e.g., install Maven/Gradle wrappers)
|
|
35
35
|
*/
|
|
36
36
|
private runPostGenerationHooks;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Installs build wrapper (Maven or Gradle) for Java projects
|
|
39
39
|
*/
|
|
40
40
|
private installJavaBuildWrapper;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
42
|
+
* Extracts controller files for API documentation
|
|
43
43
|
*/
|
|
44
44
|
private extractControllers;
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* Searches for controller files based on stack
|
|
47
47
|
*/
|
|
48
48
|
private findControllerFiles;
|
|
49
49
|
}
|