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
|
@@ -11,7 +11,7 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
11
11
|
const __dirname = path.dirname(__filename);
|
|
12
12
|
const execPromise = promisify(exec);
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Generates projects from templates
|
|
15
15
|
*/
|
|
16
16
|
export class ProjectGenerator {
|
|
17
17
|
engine;
|
|
@@ -19,52 +19,52 @@ export class ProjectGenerator {
|
|
|
19
19
|
this.engine = new TemplateEngine();
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Generates a complete project based on configuration
|
|
23
23
|
*/
|
|
24
24
|
async generate(config, outputDir) {
|
|
25
25
|
const spinner = clack.spinner();
|
|
26
26
|
try {
|
|
27
27
|
spinner.start('🏗️ Gerando projeto...');
|
|
28
|
-
// 1.
|
|
28
|
+
// 1. Check if directory already exists
|
|
29
29
|
const projectPath = path.join(outputDir, config.projectName);
|
|
30
30
|
if (await fs.pathExists(projectPath)) {
|
|
31
|
-
spinner.stop('❌
|
|
32
|
-
throw new Error(`
|
|
31
|
+
spinner.stop('❌ Directory already exists');
|
|
32
|
+
throw new Error(`Directory "${config.projectName}" already exists!`);
|
|
33
33
|
}
|
|
34
|
-
// 2.
|
|
34
|
+
// 2. Determine template path (different for Pro vs Free)
|
|
35
35
|
let templatePath;
|
|
36
36
|
if (config.licenseTier === 'pro') {
|
|
37
37
|
// Pro templates: download from API or use cache
|
|
38
|
-
spinner.message('📦
|
|
38
|
+
spinner.message('📦 Checking Pro templates...');
|
|
39
39
|
templatePath = await this.getProTemplatePath(config, spinner);
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
// Free templates: use local bundled templates
|
|
43
43
|
templatePath = this.getLocalTemplatePath(config);
|
|
44
44
|
}
|
|
45
|
-
//
|
|
45
|
+
// Check if template exists
|
|
46
46
|
if (!(await fs.pathExists(templatePath))) {
|
|
47
|
-
spinner.stop('❌ Template
|
|
48
|
-
throw new Error(`Template
|
|
47
|
+
spinner.stop('❌ Template not found');
|
|
48
|
+
throw new Error(`Template not found: ${config.stack}/${config.licenseTier}\n` +
|
|
49
49
|
`Path: ${templatePath}`);
|
|
50
50
|
}
|
|
51
|
-
// 3.
|
|
51
|
+
// 3. Build context for Handlebars
|
|
52
52
|
const context = buildTemplateContext(config);
|
|
53
|
-
// 4.
|
|
53
|
+
// 4. Render all templates
|
|
54
54
|
await this.engine.renderTree(templatePath, projectPath, context);
|
|
55
|
-
// 5.
|
|
55
|
+
// 5. Generate AI documentation (if enabled)
|
|
56
56
|
if (config.useAI && config.geminiKey) {
|
|
57
|
-
spinner.message('🤖
|
|
57
|
+
spinner.message('🤖 Generating AI documentation...');
|
|
58
58
|
await this.generateAIDocumentation(config, projectPath);
|
|
59
59
|
}
|
|
60
60
|
// 6. Post-generation hooks (Java wrappers, etc)
|
|
61
61
|
await this.runPostGenerationHooks(config, projectPath);
|
|
62
|
-
spinner.stop('✅
|
|
63
|
-
// 7.
|
|
62
|
+
spinner.stop('✅ Project generated successfully!');
|
|
63
|
+
// 7. Show next steps
|
|
64
64
|
this.showNextSteps(config);
|
|
65
65
|
}
|
|
66
66
|
catch (error) {
|
|
67
|
-
spinner.stop('❌
|
|
67
|
+
spinner.stop('❌ Error generating project');
|
|
68
68
|
throw error;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
@@ -79,7 +79,7 @@ export class ProjectGenerator {
|
|
|
79
79
|
return cachedPath;
|
|
80
80
|
}
|
|
81
81
|
// Download from API
|
|
82
|
-
spinner.message('⬇️
|
|
82
|
+
spinner.message('⬇️ Downloading Pro templates...');
|
|
83
83
|
const result = await templateDownloader.downloadProTemplate(config.licenseKey, config.stack, architecture);
|
|
84
84
|
if (!result.success || !result.files) {
|
|
85
85
|
throw new Error(result.error || 'Failed to download Pro template');
|
|
@@ -98,49 +98,49 @@ export class ProjectGenerator {
|
|
|
98
98
|
return path.join(templatesRoot, config.stack, 'free', architecture);
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
|
-
*
|
|
101
|
+
* Generates documentation using AI (README.md and API.md)
|
|
102
102
|
*/
|
|
103
103
|
async generateAIDocumentation(config, projectPath) {
|
|
104
104
|
try {
|
|
105
105
|
const { DocumentationGenerator } = await import('../ai/documentation-generator.js');
|
|
106
106
|
const docGen = new DocumentationGenerator(config.geminiKey);
|
|
107
|
-
// 1.
|
|
107
|
+
// 1. Generate README.md
|
|
108
108
|
try {
|
|
109
109
|
const readme = await docGen.generateREADME(config);
|
|
110
110
|
await fs.writeFile(path.join(projectPath, 'README.md'), readme, 'utf-8');
|
|
111
|
-
clack.log.success(' ├─ README.md
|
|
111
|
+
clack.log.success(' ├─ README.md generated with AI');
|
|
112
112
|
}
|
|
113
113
|
catch (error) {
|
|
114
|
-
clack.log.warn(` ├─
|
|
115
|
-
clack.log.info(' ├─
|
|
114
|
+
clack.log.warn(` ├─ Failed to generate README: ${error.message}`);
|
|
115
|
+
clack.log.info(' ├─ Using template README');
|
|
116
116
|
}
|
|
117
|
-
// 2.
|
|
117
|
+
// 2. Generate API.md (Pro tier only with controllers)
|
|
118
118
|
if (config.licenseTier === 'pro') {
|
|
119
119
|
try {
|
|
120
120
|
const controllers = await this.extractControllers(projectPath, config.stack);
|
|
121
121
|
if (controllers.length > 0) {
|
|
122
122
|
const apiDocs = await docGen.generateAPIDocumentation(config.stack, controllers);
|
|
123
123
|
await fs.writeFile(path.join(projectPath, 'API.md'), apiDocs, 'utf-8');
|
|
124
|
-
clack.log.success(' └─ API.md
|
|
124
|
+
clack.log.success(' └─ API.md generated with AI');
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
catch (error) {
|
|
128
|
-
clack.log.warn(` └─
|
|
128
|
+
clack.log.warn(` └─ Failed to generate API docs: ${error.message}`);
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
catch (error) {
|
|
133
|
-
clack.log.error(`
|
|
134
|
-
clack.log.info('
|
|
133
|
+
clack.log.error(`Error generating AI documentation: ${error.message}`);
|
|
134
|
+
clack.log.info('Continuing with template README...');
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
|
-
*
|
|
138
|
+
* Returns template path based on config
|
|
139
139
|
*/
|
|
140
140
|
getTemplatePath(config) {
|
|
141
|
-
//
|
|
142
|
-
// generator
|
|
143
|
-
// templates
|
|
141
|
+
// Relative path from generator to project root
|
|
142
|
+
// generator is in src/core/generator/
|
|
143
|
+
// templates is in templates/
|
|
144
144
|
const templatesRoot = path.join(__dirname, '../../../templates');
|
|
145
145
|
const tier = config.licenseTier;
|
|
146
146
|
const stack = config.stack;
|
|
@@ -152,14 +152,14 @@ export class ProjectGenerator {
|
|
|
152
152
|
return path.join(templatesRoot, stack, tier, architecture);
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
155
|
-
*
|
|
155
|
+
* Shows next steps instructions
|
|
156
156
|
*/
|
|
157
157
|
showNextSteps(config) {
|
|
158
158
|
const instructions = this.getStackSpecificInstructions(config.stack);
|
|
159
|
-
clack.note(`📁
|
|
159
|
+
clack.note(`📁 Enter the project directory:\n cd ${config.projectName}\n\n` +
|
|
160
160
|
`📦 ${instructions.install}\n\n` +
|
|
161
161
|
`🚀 ${instructions.run}\n\n` +
|
|
162
|
-
`📝
|
|
162
|
+
`📝 Read README.md for more information`, '✨ Next steps');
|
|
163
163
|
}
|
|
164
164
|
getStackSpecificInstructions(stack) {
|
|
165
165
|
switch (stack) {
|
|
@@ -176,69 +176,69 @@ export class ProjectGenerator {
|
|
|
176
176
|
case 'java-spring':
|
|
177
177
|
return {
|
|
178
178
|
install: 'Build tool configurado (Maven/Gradle)',
|
|
179
|
-
run: '
|
|
179
|
+
run: 'Run the application:\n ./mvnw spring-boot:run',
|
|
180
180
|
};
|
|
181
181
|
case 'python-fastapi':
|
|
182
182
|
return {
|
|
183
|
-
install: '
|
|
184
|
-
run: '
|
|
183
|
+
install: 'Install dependencies:\n pip install -r requirements.txt',
|
|
184
|
+
run: 'Start the server:\n uvicorn main:app --reload',
|
|
185
185
|
};
|
|
186
186
|
case 'nestjs':
|
|
187
187
|
return {
|
|
188
|
-
install: '
|
|
189
|
-
run: '
|
|
188
|
+
install: 'Install dependencies:\n npm install',
|
|
189
|
+
run: 'Start the server:\n npm run start:dev',
|
|
190
190
|
};
|
|
191
191
|
default:
|
|
192
192
|
return {
|
|
193
|
-
install: '
|
|
194
|
-
run: '
|
|
193
|
+
install: 'See README.md',
|
|
194
|
+
run: 'See README.md',
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
|
-
*
|
|
199
|
+
* Runs post-generation hooks (e.g., install Maven/Gradle wrappers)
|
|
200
200
|
*/
|
|
201
201
|
async runPostGenerationHooks(config, projectPath) {
|
|
202
|
-
//
|
|
202
|
+
// Java Spring Boot specific hook
|
|
203
203
|
if (config.stack === 'java-spring') {
|
|
204
204
|
await this.installJavaBuildWrapper(config, projectPath);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
/**
|
|
208
|
-
*
|
|
208
|
+
* Installs build wrapper (Maven or Gradle) for Java projects
|
|
209
209
|
*/
|
|
210
210
|
async installJavaBuildWrapper(config, projectPath) {
|
|
211
211
|
const buildTool = config.buildTool || 'maven';
|
|
212
212
|
try {
|
|
213
213
|
if (buildTool === 'maven') {
|
|
214
|
-
//
|
|
215
|
-
//
|
|
214
|
+
// Use mvn wrapper:wrapper to generate wrapper files
|
|
215
|
+
// Check if Maven is installed
|
|
216
216
|
try {
|
|
217
217
|
await execPromise('mvn --version');
|
|
218
218
|
}
|
|
219
219
|
catch {
|
|
220
|
-
console.warn('⚠️ Maven
|
|
220
|
+
console.warn('⚠️ Maven not found. Wrapper will not be installed.');
|
|
221
221
|
console.warn(' Instale Maven ou use o comando: mvn wrapper:wrapper');
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
//
|
|
224
|
+
// Generate wrapper
|
|
225
225
|
await execPromise('mvn wrapper:wrapper', { cwd: projectPath });
|
|
226
|
-
//
|
|
226
|
+
// Set execution permissions on mvnw
|
|
227
227
|
await fs.chmod(path.join(projectPath, 'mvnw'), 0o755);
|
|
228
228
|
}
|
|
229
229
|
else if (buildTool === 'gradle') {
|
|
230
|
-
// TODO:
|
|
231
|
-
console.warn('⚠️ Gradle wrapper
|
|
230
|
+
// TODO: Implement Gradle wrapper when we support Gradle
|
|
231
|
+
console.warn('⚠️ Gradle wrapper not yet implemented');
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
catch (error) {
|
|
235
|
-
//
|
|
235
|
+
// Don't fail project generation if wrapper fails
|
|
236
236
|
console.warn(`⚠️ Erro ao instalar ${buildTool} wrapper:`, error);
|
|
237
|
-
console.warn(`
|
|
237
|
+
console.warn(` Project was generated, but you will need to install the wrapper manually.`);
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
/**
|
|
241
|
-
*
|
|
241
|
+
* Extracts controller files for API documentation
|
|
242
242
|
*/
|
|
243
243
|
async extractControllers(projectPath, stack) {
|
|
244
244
|
const controllers = [];
|
|
@@ -256,9 +256,9 @@ export class ProjectGenerator {
|
|
|
256
256
|
if (!(await fs.pathExists(fullPath)))
|
|
257
257
|
return controllers;
|
|
258
258
|
try {
|
|
259
|
-
//
|
|
259
|
+
// Find controller files recursively
|
|
260
260
|
const files = await this.findControllerFiles(fullPath, stack);
|
|
261
|
-
//
|
|
261
|
+
// Read content of each controller (max 5 to avoid overload)
|
|
262
262
|
for (const file of files.slice(0, 5)) {
|
|
263
263
|
try {
|
|
264
264
|
const content = await fs.readFile(file, 'utf-8');
|
|
@@ -266,17 +266,17 @@ export class ProjectGenerator {
|
|
|
266
266
|
controllers.push({ name, content });
|
|
267
267
|
}
|
|
268
268
|
catch (error) {
|
|
269
|
-
//
|
|
269
|
+
// Ignore files that can't be read
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
catch (error) {
|
|
274
|
-
//
|
|
274
|
+
// If it fails, return empty array
|
|
275
275
|
}
|
|
276
276
|
return controllers;
|
|
277
277
|
}
|
|
278
278
|
/**
|
|
279
|
-
*
|
|
279
|
+
* Searches for controller files based on stack
|
|
280
280
|
*/
|
|
281
281
|
async findControllerFiles(dir, stack) {
|
|
282
282
|
const extensions = {
|
|
@@ -301,7 +301,7 @@ export class ProjectGenerator {
|
|
|
301
301
|
else if (entry.isFile()) {
|
|
302
302
|
const ext = path.extname(entry.name);
|
|
303
303
|
const name = entry.name.toLowerCase();
|
|
304
|
-
//
|
|
304
|
+
// Include only controller/route files
|
|
305
305
|
if (validExts.includes(ext) &&
|
|
306
306
|
(name.includes('controller') || name.includes('route') ||
|
|
307
307
|
name.includes('auth') || name.includes('payment'))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/generator/project.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACjB,MAAM,CAAiB;IAE/B;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAqB,EAAE,SAAiB;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhC,IAAI,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAEzC,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/generator/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
|
-
const API_URL = process.env.KYBERNUS_API_URL || 'https://
|
|
3
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'https://getkybernus.com/api';
|
|
4
4
|
/**
|
|
5
5
|
* Downloads Pro templates from the Kybernus API
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../../src/core/templates/downloader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,
|
|
1
|
+
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../../src/core/templates/downloader.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { logoutCommand } from './cli/commands/logout.js';
|
|
|
6
6
|
const program = new Command();
|
|
7
7
|
program
|
|
8
8
|
.name('kybernus')
|
|
9
|
-
.description('
|
|
9
|
+
.description('Professional CLI for scaffolding production-ready backend and fullstack projects')
|
|
10
10
|
.version('0.1.0');
|
|
11
11
|
program
|
|
12
12
|
.command('init')
|
|
@@ -30,7 +30,7 @@ import { upgradeCommand } from './cli/commands/upgrade.js';
|
|
|
30
30
|
// ... (existing layout)
|
|
31
31
|
program
|
|
32
32
|
.command('register')
|
|
33
|
-
.description('Start
|
|
33
|
+
.description('Start Free Trial (3 Pro Projects Included)')
|
|
34
34
|
.action(registerCommand);
|
|
35
35
|
program
|
|
36
36
|
.command('status')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,qBAAqB,EAAE,gFAAgF,CAAC;KAC/G,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,CAAC;KAC3E,MAAM,CAAC,yBAAyB,EAAE,6CAA6C,CAAC;KAChF,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;KACjF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzB,OAAO;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KAC5C,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,wBAAwB;AAExB,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,eAAe,CAAC,CAAC;AAE7B,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,aAAa,CAAC,CAAC;AAE3B,OAAO;KACF,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,cAAc,CAAC,CAAC;AAE5B,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,aAAa,CAAC,CAAC;AAE3B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
package/LICENSE
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Vini Trevisan
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights
|
|
7
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
-
furnished to do so, subject to the following conditions:
|
|
10
|
-
|
|
11
|
-
The above copyright notice and this permission notice shall be included in all
|
|
12
|
-
copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
-
SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# {{projectName}}
|
|
2
|
-
|
|
3
|
-
> Generated by [Kybernus CLI](https://kybernus.dev) 🚀 (Free)
|
|
4
|
-
|
|
5
|
-
## Stack
|
|
6
|
-
|
|
7
|
-
- **Framework**: NestJS
|
|
8
|
-
- **Language**: TypeScript
|
|
9
|
-
- **Validation**: class-validator
|
|
10
|
-
|
|
11
|
-
## Quick Start
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install
|
|
15
|
-
npm run dev
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## API Endpoints
|
|
19
|
-
|
|
20
|
-
- `GET /api/health` - Health check
|
|
21
|
-
- `GET /api/items` - List items
|
|
22
|
-
- `POST /api/items` - Create item
|
|
23
|
-
- `GET /api/items/:id` - Get item
|
|
24
|
-
- `DELETE /api/items/:id` - Delete item
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
Made with ❤️ using [Kybernus](https://kybernus.dev)
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "{{kebabCase projectName}}",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Generated by Kybernus CLI",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "nest start --watch",
|
|
7
|
-
"build": "nest build",
|
|
8
|
-
"start": "node dist/main.js",
|
|
9
|
-
"lint": "eslint \"{src,test}/**/*.ts\"",
|
|
10
|
-
"test": "jest"
|
|
11
|
-
},
|
|
12
|
-
"dependencies": {
|
|
13
|
-
"@nestjs/common": "^10.3.0",
|
|
14
|
-
"@nestjs/core": "^10.3.0",
|
|
15
|
-
"@nestjs/config": "^3.1.1",
|
|
16
|
-
"@nestjs/platform-express": "^10.3.0",
|
|
17
|
-
"class-transformer": "^0.5.1",
|
|
18
|
-
"class-validator": "^0.14.1",
|
|
19
|
-
"reflect-metadata": "^0.2.1",
|
|
20
|
-
"rxjs": "^7.8.1",
|
|
21
|
-
"uuid": "^9.0.1"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@nestjs/cli": "^10.3.0",
|
|
25
|
-
"@types/node": "^20.11.0",
|
|
26
|
-
"@types/uuid": "^9.0.7",
|
|
27
|
-
"typescript": "^5.3.3"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Module } from '@nestjs/common';
|
|
2
|
-
import { ConfigModule } from '@nestjs/config';
|
|
3
|
-
import { ItemsModule } from './modules/items.module';
|
|
4
|
-
import { HealthController } from './controllers/health.controller';
|
|
5
|
-
|
|
6
|
-
@Module({
|
|
7
|
-
imports: [
|
|
8
|
-
ConfigModule.forRoot({ isGlobal: true }),
|
|
9
|
-
ItemsModule,
|
|
10
|
-
],
|
|
11
|
-
controllers: [HealthController],
|
|
12
|
-
})
|
|
13
|
-
export class AppModule {}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Controller, Get, Post, Delete, Param, Body, NotFoundException } from '@nestjs/common';
|
|
2
|
-
import { ItemsService } from '../services/items.service';
|
|
3
|
-
import { CreateItemDto } from '../models/create-item.dto';
|
|
4
|
-
|
|
5
|
-
@Controller('items')
|
|
6
|
-
export class ItemsController {
|
|
7
|
-
constructor(private readonly itemsService: ItemsService) {}
|
|
8
|
-
|
|
9
|
-
@Get()
|
|
10
|
-
findAll() {
|
|
11
|
-
return this.itemsService.findAll();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@Get(':id')
|
|
15
|
-
findOne(@Param('id') id: string) {
|
|
16
|
-
const item = this.itemsService.findOne(id);
|
|
17
|
-
if (!item) throw new NotFoundException('Item not found');
|
|
18
|
-
return item;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@Post()
|
|
22
|
-
create(@Body() createItemDto: CreateItemDto) {
|
|
23
|
-
return this.itemsService.create(createItemDto);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Delete(':id')
|
|
27
|
-
remove(@Param('id') id: string) {
|
|
28
|
-
const deleted = this.itemsService.remove(id);
|
|
29
|
-
if (!deleted) throw new NotFoundException('Item not found');
|
|
30
|
-
return { message: 'Item deleted' };
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NestFactory } from '@nestjs/core';
|
|
2
|
-
import { AppModule } from './app.module';
|
|
3
|
-
import { ValidationPipe } from '@nestjs/common';
|
|
4
|
-
|
|
5
|
-
async function bootstrap() {
|
|
6
|
-
const app = await NestFactory.create(AppModule);
|
|
7
|
-
|
|
8
|
-
app.enableCors();
|
|
9
|
-
app.setGlobalPrefix('api');
|
|
10
|
-
app.useGlobalPipes(new ValidationPipe({ whitelist: true }));
|
|
11
|
-
|
|
12
|
-
const port = process.env.PORT || 3000;
|
|
13
|
-
await app.listen(port);
|
|
14
|
-
|
|
15
|
-
console.log(`🚀 {{pascalCase projectName}} running on port ${port}`);
|
|
16
|
-
}
|
|
17
|
-
bootstrap();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Module } from '@nestjs/common';
|
|
2
|
-
import { ItemsController } from '../controllers/items.controller';
|
|
3
|
-
import { ItemsService } from '../services/items.service';
|
|
4
|
-
|
|
5
|
-
@Module({
|
|
6
|
-
controllers: [ItemsController],
|
|
7
|
-
providers: [ItemsService],
|
|
8
|
-
})
|
|
9
|
-
export class ItemsModule {}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { CreateItemDto } from '../models/create-item.dto';
|
|
3
|
-
import { Item } from '../models/item.model';
|
|
4
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
-
|
|
6
|
-
@Injectable()
|
|
7
|
-
export class ItemsService {
|
|
8
|
-
private items: Map<string, Item> = new Map();
|
|
9
|
-
|
|
10
|
-
findAll(): Item[] {
|
|
11
|
-
return Array.from(this.items.values());
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
findOne(id: string): Item | undefined {
|
|
15
|
-
return this.items.get(id);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
create(dto: CreateItemDto): Item {
|
|
19
|
-
const item: Item = {
|
|
20
|
-
id: uuidv4(),
|
|
21
|
-
name: dto.name,
|
|
22
|
-
description: dto.description,
|
|
23
|
-
createdAt: new Date(),
|
|
24
|
-
};
|
|
25
|
-
this.items.set(item.id, item);
|
|
26
|
-
return item;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
remove(id: string): boolean {
|
|
30
|
-
return this.items.delete(id);
|
|
31
|
-
}
|
|
32
|
-
}
|