kybernus 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/README.md +321 -0
- package/dist/cli/commands/init.d.ts +12 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +71 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.d.ts +6 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +42 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +2 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +22 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/register.d.ts +2 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +69 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +46 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +2 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +62 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/prompts/wizard.d.ts +3 -0
- package/dist/cli/prompts/wizard.d.ts.map +1 -0
- package/dist/cli/prompts/wizard.js +121 -0
- package/dist/cli/prompts/wizard.js.map +1 -0
- package/dist/cli/services/AnalyticsClient.d.ts +11 -0
- package/dist/cli/services/AnalyticsClient.d.ts.map +1 -0
- package/dist/cli/services/AnalyticsClient.js +32 -0
- package/dist/cli/services/AnalyticsClient.js.map +1 -0
- package/dist/core/ai/documentation-generator.d.ts +36 -0
- package/dist/core/ai/documentation-generator.d.ts.map +1 -0
- package/dist/core/ai/documentation-generator.js +111 -0
- package/dist/core/ai/documentation-generator.js.map +1 -0
- package/dist/core/ai/gemini-service.d.ts +17 -0
- package/dist/core/ai/gemini-service.d.ts.map +1 -0
- package/dist/core/ai/gemini-service.js +68 -0
- package/dist/core/ai/gemini-service.js.map +1 -0
- package/dist/core/ai/prompts/documentation-prompts.d.ts +17 -0
- package/dist/core/ai/prompts/documentation-prompts.d.ts.map +1 -0
- package/dist/core/ai/prompts/documentation-prompts.js +195 -0
- package/dist/core/ai/prompts/documentation-prompts.js.map +1 -0
- package/dist/core/auth/license-validator.d.ts +33 -0
- package/dist/core/auth/license-validator.d.ts.map +1 -0
- package/dist/core/auth/license-validator.js +81 -0
- package/dist/core/auth/license-validator.js.map +1 -0
- package/dist/core/config/config-manager.d.ts +24 -0
- package/dist/core/config/config-manager.d.ts.map +1 -0
- package/dist/core/config/config-manager.js +56 -0
- package/dist/core/config/config-manager.js.map +1 -0
- package/dist/core/generator/context-builder.d.ts +10 -0
- package/dist/core/generator/context-builder.d.ts.map +1 -0
- package/dist/core/generator/context-builder.js +43 -0
- package/dist/core/generator/context-builder.js.map +1 -0
- package/dist/core/generator/project.d.ts +42 -0
- package/dist/core/generator/project.d.ts.map +1 -0
- package/dist/core/generator/project.js +278 -0
- package/dist/core/generator/project.js.map +1 -0
- package/dist/core/templates/engine.d.ts +25 -0
- package/dist/core/templates/engine.d.ts.map +1 -0
- package/dist/core/templates/engine.js +78 -0
- package/dist/core/templates/engine.js.map +1 -0
- package/dist/core/templates/helpers.d.ts +6 -0
- package/dist/core/templates/helpers.d.ts.map +1 -0
- package/dist/core/templates/helpers.js +63 -0
- package/dist/core/templates/helpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/models/config.d.ts +38 -0
- package/dist/models/config.d.ts.map +1 -0
- package/dist/models/config.js +2 -0
- package/dist/models/config.js.map +1 -0
- package/package.json +66 -0
- package/templates/java-spring/free/mvc/.gitignore.hbs +39 -0
- package/templates/java-spring/free/mvc/README.md.hbs +116 -0
- package/templates/java-spring/free/mvc/docker-compose.yml.hbs +18 -0
- package/templates/java-spring/free/mvc/pom.xml.hbs +92 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/config/GlobalExceptionHandler.java.hbs +39 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/config/WebConfig.java.hbs +30 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/controller/HealthController.java.hbs +30 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/model/.gitkeep +0 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/repository/.gitkeep +0 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/service/.gitkeep +0 -0
- package/templates/java-spring/free/mvc/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +13 -0
- package/templates/java-spring/free/mvc/src/main/resources/application.yml.hbs +32 -0
- package/templates/java-spring/free/mvc/src/test/java/{{packagePath}}/{{projectNamePascalCase}}ApplicationTests.java.hbs +13 -0
- package/templates/java-spring/free/mvc/src/test/resources/application.yml.hbs +10 -0
- package/templates/java-spring/free/mvc/template.json +14 -0
- package/templates/java-spring/pro/clean/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/java-spring/pro/clean/Dockerfile.hbs +45 -0
- package/templates/java-spring/pro/clean/README.md.hbs +31 -0
- package/templates/java-spring/pro/clean/docker-compose.yml.hbs +18 -0
- package/templates/java-spring/pro/clean/infra/main.tf.hbs +83 -0
- package/templates/java-spring/pro/clean/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/java-spring/pro/clean/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/java-spring/pro/clean/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/java-spring/pro/clean/pom.xml.hbs +130 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/application/service/AuthService.java.hbs +36 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/entity/User.java.hbs +77 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/repository/UserRepository.java.hbs +15 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/usecase/LoginUserUseCase.java.hbs +36 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/usecase/RegisterUserUseCase.java.hbs +46 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +41 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/security/SecurityAdapters.java.hbs +53 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/web/controller/AuthController.java.hbs +41 -0
- package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +14 -0
- package/templates/java-spring/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/java-spring/pro/hexagonal/Dockerfile.hbs +45 -0
- package/templates/java-spring/pro/hexagonal/README.md.hbs +38 -0
- package/templates/java-spring/pro/hexagonal/docker-compose.yml.hbs +18 -0
- package/templates/java-spring/pro/hexagonal/infra/main.tf.hbs +83 -0
- package/templates/java-spring/pro/hexagonal/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/java-spring/pro/hexagonal/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/java-spring/pro/hexagonal/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/java-spring/pro/hexagonal/pom.xml.hbs +130 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/application/service/AuthService.java.hbs +36 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/entity/User.java.hbs +77 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/repository/UserRepository.java.hbs +15 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/usecase/LoginUserUseCase.java.hbs +36 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/usecase/RegisterUserUseCase.java.hbs +46 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +41 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/security/SecurityAdapters.java.hbs +53 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/web/controller/AuthController.java.hbs +41 -0
- package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +14 -0
- package/templates/java-spring/pro/mvc/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/java-spring/pro/mvc/Dockerfile.hbs +45 -0
- package/templates/java-spring/pro/mvc/README.md.hbs +116 -0
- package/templates/java-spring/pro/mvc/docker-compose.yml.hbs +18 -0
- package/templates/java-spring/pro/mvc/infra/main.tf.hbs +83 -0
- package/templates/java-spring/pro/mvc/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/java-spring/pro/mvc/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/java-spring/pro/mvc/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/java-spring/pro/mvc/pom.xml.hbs +130 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/GlobalExceptionHandler.java.hbs +39 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/SecurityConfig.java.hbs +44 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/WebConfig.java.hbs +30 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/AuthController.java.hbs +69 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/HealthController.java.hbs +30 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/PaymentsController.java.hbs +49 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/dto/AuthRequest.java.hbs +3 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/dto/AuthResponse.java.hbs +3 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/model/.gitkeep +0 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/repository/.gitkeep +0 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/security/JwtAuthenticationFilter.java.hbs +56 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/security/JwtTokenProvider.java.hbs +59 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/service/.gitkeep +0 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/service/StripeService.java.hbs +67 -0
- package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +13 -0
- package/templates/java-spring/pro/mvc/src/main/resources/application.yml.hbs +32 -0
- package/templates/java-spring/pro/mvc/src/test/java/{{packagePath}}/{{projectNamePascalCase}}ApplicationTests.java.hbs +13 -0
- package/templates/java-spring/pro/mvc/src/test/resources/application.yml.hbs +10 -0
- package/templates/java-spring/pro/mvc/template.json +14 -0
- package/templates/nestjs/free/mvc/README.md.hbs +28 -0
- package/templates/nestjs/free/mvc/package.json.hbs +29 -0
- package/templates/nestjs/free/mvc/src/app.module.ts.hbs +13 -0
- package/templates/nestjs/free/mvc/src/controllers/health.controller.ts.hbs +9 -0
- package/templates/nestjs/free/mvc/src/controllers/items.controller.ts.hbs +32 -0
- package/templates/nestjs/free/mvc/src/main.ts.hbs +17 -0
- package/templates/nestjs/free/mvc/src/models/create-item.dto.ts.hbs +10 -0
- package/templates/nestjs/free/mvc/src/models/item.model.ts.hbs +6 -0
- package/templates/nestjs/free/mvc/src/modules/items.module.ts.hbs +9 -0
- package/templates/nestjs/free/mvc/src/services/items.service.ts.hbs +32 -0
- package/templates/nestjs/free/mvc/tsconfig.json.hbs +21 -0
- package/templates/nestjs/pro/clean/.env.example.hbs +19 -0
- package/templates/nestjs/pro/clean/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nestjs/pro/clean/Dockerfile.hbs +45 -0
- package/templates/nestjs/pro/clean/infra/main.tf.hbs +83 -0
- package/templates/nestjs/pro/clean/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nestjs/pro/clean/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nestjs/pro/clean/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nestjs/pro/clean/package.json.hbs +37 -0
- package/templates/nestjs/pro/clean/src/auth.module.ts.hbs +17 -0
- package/templates/nestjs/pro/clean/src/domain/entities/user.entity.ts.hbs +12 -0
- package/templates/nestjs/pro/clean/src/domain/repositories/user.repository.ts.hbs +6 -0
- package/templates/nestjs/pro/clean/src/domain/use-cases/register.use-case.ts.hbs +18 -0
- package/templates/nestjs/pro/clean/src/infrastructure/database/in-memory.repository.ts.hbs +17 -0
- package/templates/nestjs/pro/clean/src/infrastructure/http/auth.controller.ts.hbs +16 -0
- package/templates/nestjs/pro/clean/tsconfig.json.hbs +21 -0
- package/templates/nestjs/pro/hexagonal/.env.example.hbs +19 -0
- package/templates/nestjs/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nestjs/pro/hexagonal/Dockerfile.hbs +45 -0
- package/templates/nestjs/pro/hexagonal/infra/main.tf.hbs +83 -0
- package/templates/nestjs/pro/hexagonal/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nestjs/pro/hexagonal/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nestjs/pro/hexagonal/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nestjs/pro/hexagonal/package.json.hbs +37 -0
- package/templates/nestjs/pro/hexagonal/src/adapters/inbound/http.adapter.ts.hbs +12 -0
- package/templates/nestjs/pro/hexagonal/src/adapters/outbound/persistence.adapter.ts.hbs +13 -0
- package/templates/nestjs/pro/hexagonal/src/auth.module.ts.hbs +19 -0
- package/templates/nestjs/pro/hexagonal/src/core/auth.service.ts.hbs +16 -0
- package/templates/nestjs/pro/hexagonal/src/core/domain/user.entity.ts.hbs +8 -0
- package/templates/nestjs/pro/hexagonal/src/core/ports/ports.ts.hbs +9 -0
- package/templates/nestjs/pro/hexagonal/tsconfig.json.hbs +21 -0
- package/templates/nestjs/pro/mvc/.env.example.hbs +19 -0
- package/templates/nestjs/pro/mvc/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nestjs/pro/mvc/Dockerfile.hbs +45 -0
- package/templates/nestjs/pro/mvc/README.md.hbs +28 -0
- package/templates/nestjs/pro/mvc/infra/main.tf.hbs +83 -0
- package/templates/nestjs/pro/mvc/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nestjs/pro/mvc/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nestjs/pro/mvc/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nestjs/pro/mvc/package.json.hbs +37 -0
- package/templates/nestjs/pro/mvc/src/app.module.ts.hbs +17 -0
- package/templates/nestjs/pro/mvc/src/auth/auth.controller.ts.hbs +35 -0
- package/templates/nestjs/pro/mvc/src/auth/auth.module.ts.hbs +25 -0
- package/templates/nestjs/pro/mvc/src/auth/auth.service.ts.hbs +55 -0
- package/templates/nestjs/pro/mvc/src/auth/jwt.strategy.ts.hbs +19 -0
- package/templates/nestjs/pro/mvc/src/controllers/health.controller.ts.hbs +9 -0
- package/templates/nestjs/pro/mvc/src/controllers/items.controller.ts.hbs +32 -0
- package/templates/nestjs/pro/mvc/src/main.ts.hbs +17 -0
- package/templates/nestjs/pro/mvc/src/models/create-item.dto.ts.hbs +10 -0
- package/templates/nestjs/pro/mvc/src/models/item.model.ts.hbs +6 -0
- package/templates/nestjs/pro/mvc/src/modules/items.module.ts.hbs +9 -0
- package/templates/nestjs/pro/mvc/src/payments/payments.controller.ts.hbs +26 -0
- package/templates/nestjs/pro/mvc/src/payments/payments.module.ts.hbs +11 -0
- package/templates/nestjs/pro/mvc/src/payments/payments.service.ts.hbs +43 -0
- package/templates/nestjs/pro/mvc/src/services/items.service.ts.hbs +32 -0
- package/templates/nestjs/pro/mvc/tsconfig.json.hbs +21 -0
- package/templates/nextjs/free/default/.env.example.hbs +1 -0
- package/templates/nextjs/free/default/.gitignore.hbs +8 -0
- package/templates/nextjs/free/default/README.md.hbs +96 -0
- package/templates/nextjs/free/default/docker-compose.yml.hbs +18 -0
- package/templates/nextjs/free/default/next.config.js.hbs +4 -0
- package/templates/nextjs/free/default/package.json.hbs +32 -0
- package/templates/nextjs/free/default/postcss.config.js.hbs +6 -0
- package/templates/nextjs/free/default/prisma/schema.prisma.hbs +18 -0
- package/templates/nextjs/free/default/public/.gitkeep +0 -0
- package/templates/nextjs/free/default/src/app/api/health/route.ts.hbs +9 -0
- package/templates/nextjs/free/default/src/app/globals.css.hbs +3 -0
- package/templates/nextjs/free/default/src/app/layout.tsx.hbs +22 -0
- package/templates/nextjs/free/default/src/app/page.tsx.hbs +38 -0
- package/templates/nextjs/free/default/src/components/.gitkeep +0 -0
- package/templates/nextjs/free/default/src/lib/prisma.ts.hbs +13 -0
- package/templates/nextjs/free/default/src/proxy.ts.hbs +22 -0
- package/templates/nextjs/free/default/tailwind.config.ts.hbs +15 -0
- package/templates/nextjs/free/default/template.json +18 -0
- package/templates/nextjs/free/default/tsconfig.json.hbs +23 -0
- package/templates/nextjs/pro/default/.env.example.hbs +20 -0
- package/templates/nextjs/pro/default/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nextjs/pro/default/Dockerfile.hbs +45 -0
- package/templates/nextjs/pro/default/README.md.hbs +96 -0
- package/templates/nextjs/pro/default/docker-compose.yml.hbs +18 -0
- package/templates/nextjs/pro/default/infra/main.tf.hbs +83 -0
- package/templates/nextjs/pro/default/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nextjs/pro/default/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nextjs/pro/default/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nextjs/pro/default/next.config.js.hbs +4 -0
- package/templates/nextjs/pro/default/package.json.hbs +34 -0
- package/templates/nextjs/pro/default/postcss.config.js.hbs +6 -0
- package/templates/nextjs/pro/default/prisma/schema.prisma.hbs +18 -0
- package/templates/nextjs/pro/default/public/.gitkeep +0 -0
- package/templates/nextjs/pro/default/src/app/api/auth/[...nextauth]/route.ts.hbs +61 -0
- package/templates/nextjs/pro/default/src/app/api/checkout/route.ts.hbs +30 -0
- package/templates/nextjs/pro/default/src/app/api/health/route.ts.hbs +9 -0
- package/templates/nextjs/pro/default/src/app/api/webhook/route.ts.hbs +51 -0
- package/templates/nextjs/pro/default/src/app/dashboard/page.tsx.hbs +52 -0
- package/templates/nextjs/pro/default/src/app/globals.css.hbs +3 -0
- package/templates/nextjs/pro/default/src/app/layout.tsx.hbs +22 -0
- package/templates/nextjs/pro/default/src/app/page.tsx.hbs +38 -0
- package/templates/nextjs/pro/default/src/components/.gitkeep +0 -0
- package/templates/nextjs/pro/default/src/components/AuthButton.tsx.hbs +34 -0
- package/templates/nextjs/pro/default/src/components/Providers.tsx.hbs +7 -0
- package/templates/nextjs/pro/default/src/lib/prisma.ts.hbs +13 -0
- package/templates/nextjs/pro/default/src/proxy.ts.hbs +22 -0
- package/templates/nextjs/pro/default/tailwind.config.ts.hbs +15 -0
- package/templates/nextjs/pro/default/template.json +18 -0
- package/templates/nextjs/pro/default/tsconfig.json.hbs +40 -0
- package/templates/nodejs-express/free/mvc/.env.example.hbs +3 -0
- package/templates/nodejs-express/free/mvc/.gitignore.hbs +6 -0
- package/templates/nodejs-express/free/mvc/README.md.hbs +128 -0
- package/templates/nodejs-express/free/mvc/docker-compose.yml.hbs +18 -0
- package/templates/nodejs-express/free/mvc/package.json.hbs +39 -0
- package/templates/nodejs-express/free/mvc/src/app.ts.hbs +29 -0
- package/templates/nodejs-express/free/mvc/src/config/database.ts.hbs +10 -0
- package/templates/nodejs-express/free/mvc/src/controllers/healthController.ts.hbs +20 -0
- package/templates/nodejs-express/free/mvc/src/index.ts.hbs +12 -0
- package/templates/nodejs-express/free/mvc/src/middleware/errorHandler.ts.hbs +22 -0
- package/templates/nodejs-express/free/mvc/src/models/.gitkeep +0 -0
- package/templates/nodejs-express/free/mvc/src/routes/index.ts.hbs +14 -0
- package/templates/nodejs-express/free/mvc/src/services/.gitkeep +0 -0
- package/templates/nodejs-express/free/mvc/template.json +18 -0
- package/templates/nodejs-express/free/mvc/tsconfig.json.hbs +18 -0
- package/templates/nodejs-express/pro/clean/.env.example.hbs +19 -0
- package/templates/nodejs-express/pro/clean/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nodejs-express/pro/clean/Dockerfile.hbs +45 -0
- package/templates/nodejs-express/pro/clean/README.md.hbs +41 -0
- package/templates/nodejs-express/pro/clean/docker-compose.yml.hbs +18 -0
- package/templates/nodejs-express/pro/clean/infra/main.tf.hbs +83 -0
- package/templates/nodejs-express/pro/clean/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nodejs-express/pro/clean/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nodejs-express/pro/clean/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nodejs-express/pro/clean/package.json.hbs +55 -0
- package/templates/nodejs-express/pro/clean/src/application/services/AuthService.ts.hbs +66 -0
- package/templates/nodejs-express/pro/clean/src/domain/entities/User.ts.hbs +38 -0
- package/templates/nodejs-express/pro/clean/src/domain/repositories/IUserRepository.ts.hbs +13 -0
- package/templates/nodejs-express/pro/clean/src/domain/usecases/LoginUserUseCase.ts.hbs +39 -0
- package/templates/nodejs-express/pro/clean/src/domain/usecases/RegisterUserUseCase.ts.hbs +51 -0
- package/templates/nodejs-express/pro/clean/src/index.ts.hbs +40 -0
- package/templates/nodejs-express/pro/clean/src/infrastructure/database/InMemoryUserRepository.ts.hbs +46 -0
- package/templates/nodejs-express/pro/clean/src/infrastructure/http/controllers/AuthController.ts.hbs +45 -0
- package/templates/nodejs-express/pro/clean/src/infrastructure/http/middlewares/AuthMiddleware.ts.hbs +27 -0
- package/templates/nodejs-express/pro/clean/src/infrastructure/providers/PasswordHasher.ts.hbs +14 -0
- package/templates/nodejs-express/pro/clean/src/infrastructure/providers/TokenGenerator.ts.hbs +25 -0
- package/templates/nodejs-express/pro/clean/tsconfig.json.hbs +27 -0
- package/templates/nodejs-express/pro/hexagonal/.env.example.hbs +19 -0
- package/templates/nodejs-express/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nodejs-express/pro/hexagonal/Dockerfile.hbs +45 -0
- package/templates/nodejs-express/pro/hexagonal/README.md.hbs +42 -0
- package/templates/nodejs-express/pro/hexagonal/docker-compose.yml.hbs +18 -0
- package/templates/nodejs-express/pro/hexagonal/infra/main.tf.hbs +83 -0
- package/templates/nodejs-express/pro/hexagonal/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nodejs-express/pro/hexagonal/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nodejs-express/pro/hexagonal/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nodejs-express/pro/hexagonal/package.json.hbs +55 -0
- package/templates/nodejs-express/pro/hexagonal/src/adapters/inbound/http/AuthController.ts.hbs +48 -0
- package/templates/nodejs-express/pro/hexagonal/src/adapters/outbound/SecurityAdapters.ts.hbs +31 -0
- package/templates/nodejs-express/pro/hexagonal/src/adapters/outbound/persistence/InMemoryUserAdapter.ts.hbs +38 -0
- package/templates/nodejs-express/pro/hexagonal/src/core/AuthService.ts.hbs +51 -0
- package/templates/nodejs-express/pro/hexagonal/src/core/domain/entities/User.ts.hbs +28 -0
- package/templates/nodejs-express/pro/hexagonal/src/core/ports/inbound/IAuthPort.ts.hbs +11 -0
- package/templates/nodejs-express/pro/hexagonal/src/core/ports/outbound/ISecurityPorts.ts.hbs +15 -0
- package/templates/nodejs-express/pro/hexagonal/src/core/ports/outbound/IUserRepositoryPort.ts.hbs +13 -0
- package/templates/nodejs-express/pro/hexagonal/src/index.ts.hbs +41 -0
- package/templates/nodejs-express/pro/hexagonal/tsconfig.json.hbs +27 -0
- package/templates/nodejs-express/pro/mvc/.env.example.hbs +19 -0
- package/templates/nodejs-express/pro/mvc/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/nodejs-express/pro/mvc/Dockerfile.hbs +45 -0
- package/templates/nodejs-express/pro/mvc/README.md.hbs +85 -0
- package/templates/nodejs-express/pro/mvc/docker-compose.yml.hbs +18 -0
- package/templates/nodejs-express/pro/mvc/infra/main.tf.hbs +83 -0
- package/templates/nodejs-express/pro/mvc/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/nodejs-express/pro/mvc/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/nodejs-express/pro/mvc/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/nodejs-express/pro/mvc/package.json.hbs +55 -0
- package/templates/nodejs-express/pro/mvc/src/app.ts.hbs +34 -0
- package/templates/nodejs-express/pro/mvc/src/config/database.ts.hbs +10 -0
- package/templates/nodejs-express/pro/mvc/src/controllers/auth.controller.ts.hbs +91 -0
- package/templates/nodejs-express/pro/mvc/src/controllers/healthController.ts.hbs +20 -0
- package/templates/nodejs-express/pro/mvc/src/controllers/payments.controller.ts.hbs +72 -0
- package/templates/nodejs-express/pro/mvc/src/index.ts.hbs +12 -0
- package/templates/nodejs-express/pro/mvc/src/middleware/errorHandler.ts.hbs +22 -0
- package/templates/nodejs-express/pro/mvc/src/middlewares/auth.middleware.ts.hbs +31 -0
- package/templates/nodejs-express/pro/mvc/src/models/.gitkeep +0 -0
- package/templates/nodejs-express/pro/mvc/src/routes/index.ts.hbs +14 -0
- package/templates/nodejs-express/pro/mvc/src/services/.gitkeep +0 -0
- package/templates/nodejs-express/pro/mvc/src/services/stripe.service.ts.hbs +102 -0
- package/templates/nodejs-express/pro/mvc/template.json +18 -0
- package/templates/nodejs-express/pro/mvc/tsconfig.json.hbs +27 -0
- package/templates/python-fastapi/free/mvc/README.md.hbs +41 -0
- package/templates/python-fastapi/free/mvc/app/controllers/health.py.hbs +7 -0
- package/templates/python-fastapi/free/mvc/app/controllers/items.py.hbs +27 -0
- package/templates/python-fastapi/free/mvc/app/main.py.hbs +26 -0
- package/templates/python-fastapi/free/mvc/app/models/item.py.hbs +11 -0
- package/templates/python-fastapi/free/mvc/app/schemas/item.py.hbs +17 -0
- package/templates/python-fastapi/free/mvc/app/services/item_service.py.hbs +33 -0
- package/templates/python-fastapi/free/mvc/requirements.txt.hbs +4 -0
- package/templates/python-fastapi/pro/clean/.env.example.hbs +17 -0
- package/templates/python-fastapi/pro/clean/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/python-fastapi/pro/clean/Dockerfile.hbs +20 -0
- package/templates/python-fastapi/pro/clean/app/domain/entities/user.py.hbs +23 -0
- package/templates/python-fastapi/pro/clean/app/domain/repositories/user_repository.py.hbs +22 -0
- package/templates/python-fastapi/pro/clean/app/domain/usecases/register_user.py.hbs +30 -0
- package/templates/python-fastapi/pro/clean/app/infrastructure/database/in_memory_repository.py.hbs +26 -0
- package/templates/python-fastapi/pro/clean/app/infrastructure/http/auth_controller.py.hbs +26 -0
- package/templates/python-fastapi/pro/clean/app/infrastructure/security/adapters.py.hbs +23 -0
- package/templates/python-fastapi/pro/clean/app/main.py.hbs +10 -0
- package/templates/python-fastapi/pro/clean/infra/main.tf.hbs +83 -0
- package/templates/python-fastapi/pro/clean/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/python-fastapi/pro/clean/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/python-fastapi/pro/clean/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/python-fastapi/pro/clean/requirements.txt.hbs +12 -0
- package/templates/python-fastapi/pro/hexagonal/.env.example.hbs +17 -0
- package/templates/python-fastapi/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/python-fastapi/pro/hexagonal/Dockerfile.hbs +20 -0
- package/templates/python-fastapi/pro/hexagonal/app/adapters/inbound/http_adapter.py.hbs +29 -0
- package/templates/python-fastapi/pro/hexagonal/app/core/domain/user.py.hbs +15 -0
- package/templates/python-fastapi/pro/hexagonal/app/core/ports.py.hbs +25 -0
- package/templates/python-fastapi/pro/hexagonal/app/core/service.py.hbs +28 -0
- package/templates/python-fastapi/pro/hexagonal/app/main.py.hbs +22 -0
- package/templates/python-fastapi/pro/hexagonal/infra/main.tf.hbs +83 -0
- package/templates/python-fastapi/pro/hexagonal/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/python-fastapi/pro/hexagonal/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/python-fastapi/pro/hexagonal/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/python-fastapi/pro/hexagonal/requirements.txt.hbs +12 -0
- package/templates/python-fastapi/pro/mvc/.env.example.hbs +17 -0
- package/templates/python-fastapi/pro/mvc/.github/workflows/ci-cd.yml.hbs +88 -0
- package/templates/python-fastapi/pro/mvc/Dockerfile.hbs +20 -0
- package/templates/python-fastapi/pro/mvc/README.md.hbs +41 -0
- package/templates/python-fastapi/pro/mvc/app/controllers/auth.py.hbs +46 -0
- package/templates/python-fastapi/pro/mvc/app/controllers/health.py.hbs +7 -0
- package/templates/python-fastapi/pro/mvc/app/controllers/items.py.hbs +21 -0
- package/templates/python-fastapi/pro/mvc/app/controllers/payments.py.hbs +32 -0
- package/templates/python-fastapi/pro/mvc/app/main.py.hbs +20 -0
- package/templates/python-fastapi/pro/mvc/app/middleware/security.py.hbs +39 -0
- package/templates/python-fastapi/pro/mvc/app/models/item.py.hbs +11 -0
- package/templates/python-fastapi/pro/mvc/app/schemas/item.py.hbs +16 -0
- package/templates/python-fastapi/pro/mvc/app/services/item_service.py.hbs +24 -0
- package/templates/python-fastapi/pro/mvc/infra/main.tf.hbs +83 -0
- package/templates/python-fastapi/pro/mvc/infra/modules/ecs/main.tf.hbs +54 -0
- package/templates/python-fastapi/pro/mvc/infra/modules/rds/main.tf.hbs +88 -0
- package/templates/python-fastapi/pro/mvc/infra/modules/vpc/main.tf.hbs +107 -0
- package/templates/python-fastapi/pro/mvc/requirements.txt.hbs +12 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build prompt for generating README.md
|
|
3
|
+
*/
|
|
4
|
+
export function buildREADMEPrompt(config) {
|
|
5
|
+
const tier = config.licenseTier === 'pro' ? 'PRO' : 'FREE';
|
|
6
|
+
const architecture = config.architecture || 'MVC';
|
|
7
|
+
const proFeatures = `
|
|
8
|
+
- ✅ **Authentication** - JWT-based authentication with bcrypt password hashing
|
|
9
|
+
- ✅ **Stripe Integration** - Complete payment processing with webhooks
|
|
10
|
+
- ✅ **DevOps Ready** - Docker, Docker Compose, GitHub Actions CI/CD
|
|
11
|
+
- ✅ **Infrastructure** - Terraform templates for AWS deployment
|
|
12
|
+
- ✅ **Production Architecture** - ${architecture} pattern for scalability
|
|
13
|
+
- ✅ **Security** - Authentication middlewares, CORS, environment validation
|
|
14
|
+
`;
|
|
15
|
+
const freeFeatures = `
|
|
16
|
+
- ✅ **Clean Structure** - Professional ${architecture} architecture
|
|
17
|
+
- ✅ **Health Endpoint** - API health check ready
|
|
18
|
+
- ✅ **CRUD Example** - Basic items CRUD implementation
|
|
19
|
+
- ✅ **Docker Setup** - Containerization with Docker Compose
|
|
20
|
+
- ✅ **Error Handling** - Global exception handling
|
|
21
|
+
`;
|
|
22
|
+
return `
|
|
23
|
+
You are a professional technical writer creating a comprehensive README.md for a production-ready project.
|
|
24
|
+
|
|
25
|
+
**Project Information:**
|
|
26
|
+
- **Name**: ${config.projectName}
|
|
27
|
+
- **Stack**: ${config.stack}
|
|
28
|
+
- **Architecture**: ${architecture}
|
|
29
|
+
- **Tier**: ${tier}
|
|
30
|
+
${config.buildTool ? `- **Build Tool**: ${config.buildTool}` : ''}
|
|
31
|
+
${config.packageName ? `- **Package**: ${config.packageName}` : ''}
|
|
32
|
+
|
|
33
|
+
**Features (${tier} Tier):**
|
|
34
|
+
${tier === 'PRO' ? proFeatures : freeFeatures}
|
|
35
|
+
|
|
36
|
+
**Tech Stack Details:**
|
|
37
|
+
${getStackDetails(config.stack)}
|
|
38
|
+
|
|
39
|
+
**Requirements:**
|
|
40
|
+
1. Start with project title using an appropriate emoji
|
|
41
|
+
2. Provide a compelling 2-3 sentence description
|
|
42
|
+
3. Create a detailed Features section with checkboxes
|
|
43
|
+
4. List all technologies in Tech Stack section
|
|
44
|
+
5. Explain the ${architecture} architecture pattern clearly
|
|
45
|
+
6. Provide step-by-step Getting Started guide:
|
|
46
|
+
- Prerequisites (Node.js, Java, Python versions)
|
|
47
|
+
- Installation commands
|
|
48
|
+
- Environment variables setup
|
|
49
|
+
- Running locally commands
|
|
50
|
+
7. ${tier === 'PRO' ? 'Document API endpoints with examples' : 'Mention basic endpoints'}
|
|
51
|
+
8. Show project structure tree
|
|
52
|
+
9. Include development tips
|
|
53
|
+
10. Add deployment instructions
|
|
54
|
+
11. Add license info (MIT)
|
|
55
|
+
12. Credit: "Generated with ❤️ by [Kybernus CLI](https://kybernus.dev)"
|
|
56
|
+
|
|
57
|
+
**Style Guidelines:**
|
|
58
|
+
- Use clear, professional language
|
|
59
|
+
- Include code blocks with syntax highlighting
|
|
60
|
+
- Use emojis appropriately (not excessive)
|
|
61
|
+
- Add badges for build status, license, etc.
|
|
62
|
+
- Make it scannable with proper headers
|
|
63
|
+
- Be comprehensive but concise
|
|
64
|
+
|
|
65
|
+
Return ONLY the markdown content for README.md, nothing else.
|
|
66
|
+
`.trim();
|
|
67
|
+
}
|
|
68
|
+
function getStackDetails(stack) {
|
|
69
|
+
const details = {
|
|
70
|
+
'nextjs': `
|
|
71
|
+
- **Frontend**: Next.js 14+ with App Router
|
|
72
|
+
- **Styling**: Tailwind CSS
|
|
73
|
+
- **Database**: Prisma ORM (Pro)
|
|
74
|
+
- **Auth**: NextAuth.js (Pro)
|
|
75
|
+
- **API**: Next.js API Routes
|
|
76
|
+
`,
|
|
77
|
+
'python-fastapi': `
|
|
78
|
+
- **Framework**: FastAPI
|
|
79
|
+
- **Validation**: Pydantic
|
|
80
|
+
- **Auth**: JWT with python-jose (Pro)
|
|
81
|
+
- **Payments**: Stripe SDK (Pro)
|
|
82
|
+
- **Testing**: pytest
|
|
83
|
+
`,
|
|
84
|
+
'nodejs-express': `
|
|
85
|
+
- **Runtime**: Node.js 18+
|
|
86
|
+
- **Framework**: Express.js
|
|
87
|
+
- **Language**: TypeScript
|
|
88
|
+
- **Auth**: JWT with bcryptjs (Pro)
|
|
89
|
+
- **Payments**: Stripe SDK (Pro)
|
|
90
|
+
`,
|
|
91
|
+
'java-spring': `
|
|
92
|
+
- **Framework**: Spring Boot 3.x
|
|
93
|
+
- **Language**: Java 17+
|
|
94
|
+
- **Security**: Spring Security (Pro)
|
|
95
|
+
- **Data**: Spring Data JPA (Pro)
|
|
96
|
+
- **Testing**: JUnit 5
|
|
97
|
+
`,
|
|
98
|
+
'nestjs': `
|
|
99
|
+
- **Framework**: NestJS
|
|
100
|
+
- **Language**: TypeScript
|
|
101
|
+
- **Auth**: Passport + JWT (Pro)
|
|
102
|
+
- **Validation**: class-validator
|
|
103
|
+
- **Testing**: Jest
|
|
104
|
+
`
|
|
105
|
+
};
|
|
106
|
+
return details[stack] || '';
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Build prompt for generating API documentation
|
|
110
|
+
*/
|
|
111
|
+
export function buildAPIDocsPrompt(stack, controllers) {
|
|
112
|
+
return `
|
|
113
|
+
You are documenting REST API endpoints for a ${stack} application.
|
|
114
|
+
|
|
115
|
+
Analyze the following controller files and generate comprehensive API documentation.
|
|
116
|
+
|
|
117
|
+
${controllers.map((c, i) => `
|
|
118
|
+
### Controller ${i + 1}: ${c.name}
|
|
119
|
+
\`\`\`
|
|
120
|
+
${c.content.slice(0, 2000)} ${c.content.length > 2000 ? '...' : ''}
|
|
121
|
+
\`\`\`
|
|
122
|
+
`).join('\n')}
|
|
123
|
+
|
|
124
|
+
**Requirements:**
|
|
125
|
+
For each endpoint, document:
|
|
126
|
+
|
|
127
|
+
### \`[METHOD] /api/endpoint-path\`
|
|
128
|
+
|
|
129
|
+
**Description**: Clear explanation of what this endpoint does
|
|
130
|
+
|
|
131
|
+
**Authentication**: Required/Not Required
|
|
132
|
+
|
|
133
|
+
**Request Headers** (if applicable):
|
|
134
|
+
\`\`\`
|
|
135
|
+
Authorization: Bearer <token>
|
|
136
|
+
Content-Type: application/json
|
|
137
|
+
\`\`\`
|
|
138
|
+
|
|
139
|
+
**Request Body** (if applicable):
|
|
140
|
+
\`\`\`json
|
|
141
|
+
{
|
|
142
|
+
"field": "type - description",
|
|
143
|
+
"example": "value"
|
|
144
|
+
}
|
|
145
|
+
\`\`\`
|
|
146
|
+
|
|
147
|
+
**Success Response** (200/201):
|
|
148
|
+
\`\`\`json
|
|
149
|
+
{
|
|
150
|
+
"status": "success",
|
|
151
|
+
"data": {}
|
|
152
|
+
}
|
|
153
|
+
\`\`\`
|
|
154
|
+
|
|
155
|
+
**Error Responses**:
|
|
156
|
+
- \`400 Bad Request\` - Invalid input
|
|
157
|
+
- \`401 Unauthorized\` - Missing/invalid token
|
|
158
|
+
- \`500 Internal Server Error\` - Server error
|
|
159
|
+
|
|
160
|
+
**Example cURL**:
|
|
161
|
+
\`\`\`bash
|
|
162
|
+
curl -X POST https://api.example.com/api/endpoint \\
|
|
163
|
+
-H "Content-Type: application/json" \\
|
|
164
|
+
-d '{"key": "value"}'
|
|
165
|
+
\`\`\`
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
Return ONLY the API documentation in markdown format, nothing else.
|
|
170
|
+
`.trim();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Build prompt for adding inline comments
|
|
174
|
+
*/
|
|
175
|
+
export function buildInlineCommentsPrompt(content, language, filePath) {
|
|
176
|
+
return `
|
|
177
|
+
Add professional inline comments to this ${language} code file: ${filePath}
|
|
178
|
+
|
|
179
|
+
**Code:**
|
|
180
|
+
\`\`\`${language}
|
|
181
|
+
${content}
|
|
182
|
+
\`\`\`
|
|
183
|
+
|
|
184
|
+
**Guidelines:**
|
|
185
|
+
1. Add JSDoc/docstrings for all public functions and classes
|
|
186
|
+
2. Explain complex algorithms or business logic
|
|
187
|
+
3. Don't comment obvious code
|
|
188
|
+
4. Use ${language} documentation conventions
|
|
189
|
+
5. Be concise and professional
|
|
190
|
+
6. Add @param, @returns, @throws where applicable
|
|
191
|
+
|
|
192
|
+
Return the complete code with comments added, maintaining exact formatting.
|
|
193
|
+
`.trim();
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=documentation-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-prompts.js","sourceRoot":"","sources":["../../../../src/core/ai/prompts/documentation-prompts.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;IAElD,MAAM,WAAW,GAAG;;;;;oCAKY,YAAY;;CAE/C,CAAC;IAEE,MAAM,YAAY,GAAG;yCACgB,YAAY;;;;;CAKpD,CAAC;IAEE,OAAO;;;;cAIG,MAAM,CAAC,WAAW;eACjB,MAAM,CAAC,KAAK;sBACL,YAAY;cACpB,IAAI;EAChB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;EAC/D,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;cAEpD,IAAI;EAChB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;EAG3C,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;iBAOd,YAAY;;;;;;KAMxB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,yBAAyB;;;;;;;;;;;;;;;;CAgBvF,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,KAAY;IACjC,MAAM,OAAO,GAA0B;QACnC,QAAQ,EAAE;;;;;;CAMjB;QACO,gBAAgB,EAAE;;;;;;CAMzB;QACO,gBAAgB,EAAE;;;;;;CAMzB;QACO,aAAa,EAAE;;;;;;CAMtB;QACO,QAAQ,EAAE;;;;;;CAMjB;KACI,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAC9B,KAAY,EACZ,WAAqD;IAErD,OAAO;+CACoC,KAAK;;;;EAIlD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;iBACX,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;;EAE/B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;;CAEjE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDZ,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACrC,OAAe,EACf,QAAgB,EAChB,QAAgB;IAEhB,OAAO;2CACgC,QAAQ,eAAe,QAAQ;;;QAGlE,QAAQ;EACd,OAAO;;;;;;;SAOA,QAAQ;;;;;CAKhB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ValidationResult {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
tier: 'FREE' | 'PRO';
|
|
4
|
+
expiration?: Date;
|
|
5
|
+
message?: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
usage?: number;
|
|
8
|
+
limit?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class LicenseValidator {
|
|
11
|
+
private configManager;
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Validates a license key against the remote API.
|
|
15
|
+
*/
|
|
16
|
+
validate(key: string): Promise<ValidationResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a license is still valid (not expired).
|
|
19
|
+
*/
|
|
20
|
+
isLicenseActive(expiration?: string | Date): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Consumes one project credit (if applicable).
|
|
23
|
+
* Returns true if authorized, false otherwise.
|
|
24
|
+
*/
|
|
25
|
+
consumeCredit(key: string): Promise<{
|
|
26
|
+
authorized: boolean;
|
|
27
|
+
message?: string;
|
|
28
|
+
remaining?: number;
|
|
29
|
+
usage?: number;
|
|
30
|
+
limit?: number;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=license-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license-validator.d.ts","sourceRoot":"","sources":["../../../src/core/auth/license-validator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,aAAa,CAAgB;;IAMrC;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkDtD;;OAEG;IACH,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAMpD;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAY3I"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ConfigManager } from '../config/config-manager.js';
|
|
2
|
+
const API_URL = process.env.KYBERNUS_API_URL || 'http://localhost:3010/api';
|
|
3
|
+
export class LicenseValidator {
|
|
4
|
+
configManager;
|
|
5
|
+
constructor() {
|
|
6
|
+
this.configManager = new ConfigManager();
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validates a license key against the remote API.
|
|
10
|
+
*/
|
|
11
|
+
async validate(key) {
|
|
12
|
+
const normalizedKey = key?.trim();
|
|
13
|
+
if (!normalizedKey) {
|
|
14
|
+
return {
|
|
15
|
+
valid: false,
|
|
16
|
+
tier: 'FREE',
|
|
17
|
+
message: 'License key cannot be empty',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const machineId = this.configManager.getMachineId();
|
|
21
|
+
try {
|
|
22
|
+
const response = await fetch(`${API_URL}/licenses/validate`, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: { 'Content-Type': 'application/json' },
|
|
25
|
+
body: JSON.stringify({ licenseKey: normalizedKey, machineId })
|
|
26
|
+
});
|
|
27
|
+
const data = await response.json();
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
// If validation fails (e.g. not found, expired), return as invalid
|
|
30
|
+
return {
|
|
31
|
+
valid: false,
|
|
32
|
+
tier: 'FREE',
|
|
33
|
+
message: data.error || 'Validation failed',
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
valid: data.valid,
|
|
38
|
+
tier: data.tier === 'pro' ? 'PRO' : 'FREE',
|
|
39
|
+
expiration: data.trialEndsAt ? new Date(data.trialEndsAt) : undefined,
|
|
40
|
+
message: data.message,
|
|
41
|
+
status: data.status,
|
|
42
|
+
usage: data.usage,
|
|
43
|
+
limit: data.limit,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return {
|
|
48
|
+
valid: false,
|
|
49
|
+
tier: 'FREE',
|
|
50
|
+
message: `Connection error: ${error.message}`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks if a license is still valid (not expired).
|
|
56
|
+
*/
|
|
57
|
+
isLicenseActive(expiration) {
|
|
58
|
+
if (!expiration)
|
|
59
|
+
return false;
|
|
60
|
+
const expirationDate = typeof expiration === 'string' ? new Date(expiration) : expiration;
|
|
61
|
+
return expirationDate > new Date();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Consumes one project credit (if applicable).
|
|
65
|
+
* Returns true if authorized, false otherwise.
|
|
66
|
+
*/
|
|
67
|
+
async consumeCredit(key) {
|
|
68
|
+
try {
|
|
69
|
+
const response = await fetch(`${API_URL}/licenses/consume`, {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
headers: { 'Content-Type': 'application/json' },
|
|
72
|
+
body: JSON.stringify({ licenseKey: key })
|
|
73
|
+
});
|
|
74
|
+
return await response.json();
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
return { authorized: false, message: 'Network error checking limits.' };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=license-validator.js.map
|
|
@@ -0,0 +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,2BAA2B,CAAC;AAY5E,MAAM,OAAO,gBAAgB;IACjB,aAAa,CAAgB;IAErC;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW;QACtB,MAAM,aAAa,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,6BAA6B;aACzC,CAAC;QACN,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,oBAAoB,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;aACjE,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,mEAAmE;gBACnE,OAAO;oBACH,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,mBAAmB;iBAC7C,CAAC;YACN,CAAC;YAED,OAAO;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;gBAC1C,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrE,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;QAEN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,qBAAqB,KAAK,CAAC,OAAO,EAAE;aAChD,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAA0B;QACtC,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,MAAM,cAAc,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1F,OAAO,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,GAAW;QAC3B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,mBAAmB,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;QAC5E,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface KybernusConfig {
|
|
2
|
+
licenseKey?: string;
|
|
3
|
+
licenseTier?: 'FREE' | 'PRO';
|
|
4
|
+
licenseExpiration?: string;
|
|
5
|
+
machineId?: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class ConfigManager {
|
|
9
|
+
private config;
|
|
10
|
+
constructor();
|
|
11
|
+
getLicenseKey(): string | undefined;
|
|
12
|
+
setLicenseKey(key: string): void;
|
|
13
|
+
getLicenseTier(): 'FREE' | 'PRO';
|
|
14
|
+
setLicenseTier(tier: 'FREE' | 'PRO'): void;
|
|
15
|
+
getLicenseExpiration(): string | undefined;
|
|
16
|
+
setLicenseExpiration(expiration: string): void;
|
|
17
|
+
getMachineId(): string;
|
|
18
|
+
getEmail(): string | undefined;
|
|
19
|
+
setEmail(email: string): void;
|
|
20
|
+
clearLicense(): void;
|
|
21
|
+
getAll(): KybernusConfig;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-manager.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAuB;;IAWrC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc,IAAI,MAAM,GAAG,KAAK;IAIhC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAI1C,oBAAoB,IAAI,MAAM,GAAG,SAAS;IAI1C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI9C,YAAY,IAAI,MAAM;IAStB,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,YAAY,IAAI,IAAI;IAQpB,MAAM,IAAI,cAAc;CAG3B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
import crypto from 'crypto';
|
|
3
|
+
export class ConfigManager {
|
|
4
|
+
config;
|
|
5
|
+
constructor() {
|
|
6
|
+
this.config = new Conf({
|
|
7
|
+
projectName: 'kybernus',
|
|
8
|
+
defaults: {
|
|
9
|
+
licenseTier: 'FREE',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
getLicenseKey() {
|
|
14
|
+
return this.config.get('licenseKey');
|
|
15
|
+
}
|
|
16
|
+
setLicenseKey(key) {
|
|
17
|
+
this.config.set('licenseKey', key);
|
|
18
|
+
}
|
|
19
|
+
getLicenseTier() {
|
|
20
|
+
return this.config.get('licenseTier', 'FREE');
|
|
21
|
+
}
|
|
22
|
+
setLicenseTier(tier) {
|
|
23
|
+
this.config.set('licenseTier', tier);
|
|
24
|
+
}
|
|
25
|
+
getLicenseExpiration() {
|
|
26
|
+
return this.config.get('licenseExpiration');
|
|
27
|
+
}
|
|
28
|
+
setLicenseExpiration(expiration) {
|
|
29
|
+
this.config.set('licenseExpiration', expiration);
|
|
30
|
+
}
|
|
31
|
+
getMachineId() {
|
|
32
|
+
let machineId = this.config.get('machineId');
|
|
33
|
+
if (!machineId) {
|
|
34
|
+
machineId = crypto.randomUUID();
|
|
35
|
+
this.config.set('machineId', machineId);
|
|
36
|
+
}
|
|
37
|
+
return machineId;
|
|
38
|
+
}
|
|
39
|
+
getEmail() {
|
|
40
|
+
return this.config.get('email');
|
|
41
|
+
}
|
|
42
|
+
setEmail(email) {
|
|
43
|
+
this.config.set('email', email);
|
|
44
|
+
}
|
|
45
|
+
clearLicense() {
|
|
46
|
+
this.config.delete('licenseKey');
|
|
47
|
+
this.config.delete('licenseTier');
|
|
48
|
+
this.config.delete('licenseExpiration');
|
|
49
|
+
this.config.delete('email');
|
|
50
|
+
this.config.set('licenseTier', 'FREE');
|
|
51
|
+
}
|
|
52
|
+
getAll() {
|
|
53
|
+
return this.config.store;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/core/config/config-manager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAU5B,MAAM,OAAO,aAAa;IACd,MAAM,CAAuB;IAErC;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAiB;YACnC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE;gBACN,WAAW,EAAE,MAAM;aACtB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,GAAW;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,IAAoB;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC;IAED,oBAAoB,CAAC,UAAkB;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,YAAY;QACR,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,YAAY;QACR,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ProjectConfig, TemplateContext } from '../../models/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Constrói o contexto para renderização de templates Handlebars
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildTemplateContext(config: ProjectConfig): TemplateContext;
|
|
6
|
+
export declare function toPascalCase(str: string): string;
|
|
7
|
+
export declare function toCamelCase(str: string): string;
|
|
8
|
+
export declare function toKebabCase(str: string): string;
|
|
9
|
+
export declare function toSnakeCase(str: string): string;
|
|
10
|
+
//# sourceMappingURL=context-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/core/generator/context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAExE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAc3E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constrói o contexto para renderização de templates Handlebars
|
|
3
|
+
*/
|
|
4
|
+
export function buildTemplateContext(config) {
|
|
5
|
+
return {
|
|
6
|
+
projectName: config.projectName,
|
|
7
|
+
projectNamePascalCase: toPascalCase(config.projectName),
|
|
8
|
+
projectNameKebabCase: toKebabCase(config.projectName),
|
|
9
|
+
projectNameCamelCase: toCamelCase(config.projectName),
|
|
10
|
+
projectNameSnakeCase: toSnakeCase(config.projectName),
|
|
11
|
+
stack: config.stack,
|
|
12
|
+
architecture: config.architecture,
|
|
13
|
+
buildTool: config.buildTool,
|
|
14
|
+
packageName: config.packageName,
|
|
15
|
+
packagePath: config.packageName?.replace(/\./g, '/'),
|
|
16
|
+
currentYear: new Date().getFullYear(),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function toPascalCase(str) {
|
|
20
|
+
if (!str)
|
|
21
|
+
return '';
|
|
22
|
+
return str
|
|
23
|
+
.split(/[-_\s]+/)
|
|
24
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
25
|
+
.join('');
|
|
26
|
+
}
|
|
27
|
+
export function toCamelCase(str) {
|
|
28
|
+
if (!str)
|
|
29
|
+
return '';
|
|
30
|
+
const pascal = toPascalCase(str);
|
|
31
|
+
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
|
|
32
|
+
}
|
|
33
|
+
export function toKebabCase(str) {
|
|
34
|
+
if (!str)
|
|
35
|
+
return '';
|
|
36
|
+
return str.toLowerCase().replace(/[\s_]+/g, '-');
|
|
37
|
+
}
|
|
38
|
+
export function toSnakeCase(str) {
|
|
39
|
+
if (!str)
|
|
40
|
+
return '';
|
|
41
|
+
return str.toLowerCase().replace(/[\s-]+/g, '_');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=context-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src/core/generator/context-builder.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACtD,OAAO;QACH,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,qBAAqB,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;QACvD,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpD,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACxC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG;SACL,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvE,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ProjectConfig } from '../../models/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Gera projetos a partir de templates
|
|
4
|
+
*/
|
|
5
|
+
export declare class ProjectGenerator {
|
|
6
|
+
private engine;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Gera um projeto completo baseado na configuração
|
|
10
|
+
*/
|
|
11
|
+
generate(config: ProjectConfig, outputDir: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Gera documentação usando IA (README.md e API.md)
|
|
14
|
+
*/
|
|
15
|
+
private generateAIDocumentation;
|
|
16
|
+
/**
|
|
17
|
+
* Retorna o caminho do template baseado na config
|
|
18
|
+
*/
|
|
19
|
+
private getTemplatePath;
|
|
20
|
+
/**
|
|
21
|
+
* Mostra instruções de próximos passos
|
|
22
|
+
*/
|
|
23
|
+
private showNextSteps;
|
|
24
|
+
private getStackSpecificInstructions;
|
|
25
|
+
/**
|
|
26
|
+
* Executa hooks pós-geração (ex: instalar wrappers do Maven/Gradle)
|
|
27
|
+
*/
|
|
28
|
+
private runPostGenerationHooks;
|
|
29
|
+
/**
|
|
30
|
+
* Instala o build wrapper (Maven ou Gradle) para projetos Java
|
|
31
|
+
*/
|
|
32
|
+
private installJavaBuildWrapper;
|
|
33
|
+
/**
|
|
34
|
+
* Extrai arquivos de controllers para documentação da API
|
|
35
|
+
*/
|
|
36
|
+
private extractControllers;
|
|
37
|
+
/**
|
|
38
|
+
* Busca arquivos de controllers baseado no stack
|
|
39
|
+
*/
|
|
40
|
+
private findControllerFiles;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/core/generator/project.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQvD;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAiB;;IAM/B;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDvE;;OAEG;YACW,uBAAuB;IA2CrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,4BAA4B;IAsCpC;;OAEG;YACW,sBAAsB;IAOpC;;OAEG;YACW,uBAAuB;IAgCrC;;OAEG;YACW,kBAAkB;IAsChC;;OAEG;YACW,mBAAmB;CAwCpC"}
|