kybernus 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +49 -263
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +5 -1
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/prompts/wizard.d.ts +14 -1
  7. package/dist/cli/prompts/wizard.d.ts.map +1 -1
  8. package/dist/cli/prompts/wizard.js +45 -9
  9. package/dist/cli/prompts/wizard.js.map +1 -1
  10. package/dist/core/generator/project.d.ts +8 -0
  11. package/dist/core/generator/project.d.ts.map +1 -1
  12. package/dist/core/generator/project.js +41 -2
  13. package/dist/core/generator/project.js.map +1 -1
  14. package/dist/core/templates/downloader.d.ts +32 -0
  15. package/dist/core/templates/downloader.d.ts.map +1 -0
  16. package/dist/core/templates/downloader.js +95 -0
  17. package/dist/core/templates/downloader.js.map +1 -0
  18. package/dist/models/config.d.ts +1 -0
  19. package/dist/models/config.d.ts.map +1 -1
  20. package/package.json +7 -3
  21. package/templates/java-spring/pro/clean/.github/workflows/ci-cd.yml.hbs +0 -88
  22. package/templates/java-spring/pro/clean/Dockerfile.hbs +0 -45
  23. package/templates/java-spring/pro/clean/README.md.hbs +0 -31
  24. package/templates/java-spring/pro/clean/docker-compose.yml.hbs +0 -18
  25. package/templates/java-spring/pro/clean/infra/main.tf.hbs +0 -83
  26. package/templates/java-spring/pro/clean/infra/modules/ecs/main.tf.hbs +0 -54
  27. package/templates/java-spring/pro/clean/infra/modules/rds/main.tf.hbs +0 -88
  28. package/templates/java-spring/pro/clean/infra/modules/vpc/main.tf.hbs +0 -107
  29. package/templates/java-spring/pro/clean/pom.xml.hbs +0 -130
  30. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/application/service/AuthService.java.hbs +0 -36
  31. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/entity/User.java.hbs +0 -77
  32. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/repository/UserRepository.java.hbs +0 -15
  33. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/usecase/LoginUserUseCase.java.hbs +0 -36
  34. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/domain/usecase/RegisterUserUseCase.java.hbs +0 -46
  35. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +0 -41
  36. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/security/SecurityAdapters.java.hbs +0 -53
  37. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/infrastructure/web/controller/AuthController.java.hbs +0 -41
  38. package/templates/java-spring/pro/clean/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +0 -14
  39. package/templates/java-spring/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +0 -88
  40. package/templates/java-spring/pro/hexagonal/Dockerfile.hbs +0 -45
  41. package/templates/java-spring/pro/hexagonal/README.md.hbs +0 -38
  42. package/templates/java-spring/pro/hexagonal/docker-compose.yml.hbs +0 -18
  43. package/templates/java-spring/pro/hexagonal/infra/main.tf.hbs +0 -83
  44. package/templates/java-spring/pro/hexagonal/infra/modules/ecs/main.tf.hbs +0 -54
  45. package/templates/java-spring/pro/hexagonal/infra/modules/rds/main.tf.hbs +0 -88
  46. package/templates/java-spring/pro/hexagonal/infra/modules/vpc/main.tf.hbs +0 -107
  47. package/templates/java-spring/pro/hexagonal/pom.xml.hbs +0 -130
  48. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/application/service/AuthService.java.hbs +0 -36
  49. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/entity/User.java.hbs +0 -77
  50. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/repository/UserRepository.java.hbs +0 -15
  51. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/usecase/LoginUserUseCase.java.hbs +0 -36
  52. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/domain/usecase/RegisterUserUseCase.java.hbs +0 -46
  53. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/persistence/InMemoryUserRepository.java.hbs +0 -41
  54. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/security/SecurityAdapters.java.hbs +0 -53
  55. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/infrastructure/web/controller/AuthController.java.hbs +0 -41
  56. package/templates/java-spring/pro/hexagonal/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +0 -14
  57. package/templates/java-spring/pro/mvc/.github/workflows/ci-cd.yml.hbs +0 -88
  58. package/templates/java-spring/pro/mvc/Dockerfile.hbs +0 -45
  59. package/templates/java-spring/pro/mvc/README.md.hbs +0 -116
  60. package/templates/java-spring/pro/mvc/docker-compose.yml.hbs +0 -18
  61. package/templates/java-spring/pro/mvc/infra/main.tf.hbs +0 -83
  62. package/templates/java-spring/pro/mvc/infra/modules/ecs/main.tf.hbs +0 -54
  63. package/templates/java-spring/pro/mvc/infra/modules/rds/main.tf.hbs +0 -88
  64. package/templates/java-spring/pro/mvc/infra/modules/vpc/main.tf.hbs +0 -107
  65. package/templates/java-spring/pro/mvc/pom.xml.hbs +0 -130
  66. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/GlobalExceptionHandler.java.hbs +0 -39
  67. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/SecurityConfig.java.hbs +0 -44
  68. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/config/WebConfig.java.hbs +0 -30
  69. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/AuthController.java.hbs +0 -69
  70. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/HealthController.java.hbs +0 -30
  71. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/controller/PaymentsController.java.hbs +0 -49
  72. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/dto/AuthRequest.java.hbs +0 -3
  73. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/dto/AuthResponse.java.hbs +0 -3
  74. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/model/.gitkeep +0 -0
  75. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/repository/.gitkeep +0 -0
  76. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/security/JwtAuthenticationFilter.java.hbs +0 -56
  77. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/security/JwtTokenProvider.java.hbs +0 -59
  78. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/service/.gitkeep +0 -0
  79. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/service/StripeService.java.hbs +0 -67
  80. package/templates/java-spring/pro/mvc/src/main/java/{{packagePath}}/{{projectNamePascalCase}}Application.java.hbs +0 -13
  81. package/templates/java-spring/pro/mvc/src/main/resources/application.yml.hbs +0 -32
  82. package/templates/java-spring/pro/mvc/src/test/java/{{packagePath}}/{{projectNamePascalCase}}ApplicationTests.java.hbs +0 -13
  83. package/templates/java-spring/pro/mvc/src/test/resources/application.yml.hbs +0 -10
  84. package/templates/java-spring/pro/mvc/template.json +0 -14
  85. package/templates/nestjs/pro/clean/.env.example.hbs +0 -19
  86. package/templates/nestjs/pro/clean/.github/workflows/ci-cd.yml.hbs +0 -88
  87. package/templates/nestjs/pro/clean/Dockerfile.hbs +0 -45
  88. package/templates/nestjs/pro/clean/infra/main.tf.hbs +0 -83
  89. package/templates/nestjs/pro/clean/infra/modules/ecs/main.tf.hbs +0 -54
  90. package/templates/nestjs/pro/clean/infra/modules/rds/main.tf.hbs +0 -88
  91. package/templates/nestjs/pro/clean/infra/modules/vpc/main.tf.hbs +0 -107
  92. package/templates/nestjs/pro/clean/package.json.hbs +0 -37
  93. package/templates/nestjs/pro/clean/src/auth.module.ts.hbs +0 -17
  94. package/templates/nestjs/pro/clean/src/domain/entities/user.entity.ts.hbs +0 -12
  95. package/templates/nestjs/pro/clean/src/domain/repositories/user.repository.ts.hbs +0 -6
  96. package/templates/nestjs/pro/clean/src/domain/use-cases/register.use-case.ts.hbs +0 -18
  97. package/templates/nestjs/pro/clean/src/infrastructure/database/in-memory.repository.ts.hbs +0 -17
  98. package/templates/nestjs/pro/clean/src/infrastructure/http/auth.controller.ts.hbs +0 -16
  99. package/templates/nestjs/pro/clean/tsconfig.json.hbs +0 -21
  100. package/templates/nestjs/pro/hexagonal/.env.example.hbs +0 -19
  101. package/templates/nestjs/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +0 -88
  102. package/templates/nestjs/pro/hexagonal/Dockerfile.hbs +0 -45
  103. package/templates/nestjs/pro/hexagonal/infra/main.tf.hbs +0 -83
  104. package/templates/nestjs/pro/hexagonal/infra/modules/ecs/main.tf.hbs +0 -54
  105. package/templates/nestjs/pro/hexagonal/infra/modules/rds/main.tf.hbs +0 -88
  106. package/templates/nestjs/pro/hexagonal/infra/modules/vpc/main.tf.hbs +0 -107
  107. package/templates/nestjs/pro/hexagonal/package.json.hbs +0 -37
  108. package/templates/nestjs/pro/hexagonal/src/adapters/inbound/http.adapter.ts.hbs +0 -12
  109. package/templates/nestjs/pro/hexagonal/src/adapters/outbound/persistence.adapter.ts.hbs +0 -13
  110. package/templates/nestjs/pro/hexagonal/src/auth.module.ts.hbs +0 -19
  111. package/templates/nestjs/pro/hexagonal/src/core/auth.service.ts.hbs +0 -16
  112. package/templates/nestjs/pro/hexagonal/src/core/domain/user.entity.ts.hbs +0 -8
  113. package/templates/nestjs/pro/hexagonal/src/core/ports/ports.ts.hbs +0 -9
  114. package/templates/nestjs/pro/hexagonal/tsconfig.json.hbs +0 -21
  115. package/templates/nestjs/pro/mvc/.env.example.hbs +0 -19
  116. package/templates/nestjs/pro/mvc/.github/workflows/ci-cd.yml.hbs +0 -88
  117. package/templates/nestjs/pro/mvc/Dockerfile.hbs +0 -45
  118. package/templates/nestjs/pro/mvc/README.md.hbs +0 -28
  119. package/templates/nestjs/pro/mvc/infra/main.tf.hbs +0 -83
  120. package/templates/nestjs/pro/mvc/infra/modules/ecs/main.tf.hbs +0 -54
  121. package/templates/nestjs/pro/mvc/infra/modules/rds/main.tf.hbs +0 -88
  122. package/templates/nestjs/pro/mvc/infra/modules/vpc/main.tf.hbs +0 -107
  123. package/templates/nestjs/pro/mvc/package.json.hbs +0 -37
  124. package/templates/nestjs/pro/mvc/src/app.module.ts.hbs +0 -17
  125. package/templates/nestjs/pro/mvc/src/auth/auth.controller.ts.hbs +0 -35
  126. package/templates/nestjs/pro/mvc/src/auth/auth.module.ts.hbs +0 -25
  127. package/templates/nestjs/pro/mvc/src/auth/auth.service.ts.hbs +0 -55
  128. package/templates/nestjs/pro/mvc/src/auth/jwt.strategy.ts.hbs +0 -19
  129. package/templates/nestjs/pro/mvc/src/controllers/health.controller.ts.hbs +0 -9
  130. package/templates/nestjs/pro/mvc/src/controllers/items.controller.ts.hbs +0 -32
  131. package/templates/nestjs/pro/mvc/src/main.ts.hbs +0 -17
  132. package/templates/nestjs/pro/mvc/src/models/create-item.dto.ts.hbs +0 -10
  133. package/templates/nestjs/pro/mvc/src/models/item.model.ts.hbs +0 -6
  134. package/templates/nestjs/pro/mvc/src/modules/items.module.ts.hbs +0 -9
  135. package/templates/nestjs/pro/mvc/src/payments/payments.controller.ts.hbs +0 -26
  136. package/templates/nestjs/pro/mvc/src/payments/payments.module.ts.hbs +0 -11
  137. package/templates/nestjs/pro/mvc/src/payments/payments.service.ts.hbs +0 -43
  138. package/templates/nestjs/pro/mvc/src/services/items.service.ts.hbs +0 -32
  139. package/templates/nestjs/pro/mvc/tsconfig.json.hbs +0 -21
  140. package/templates/nextjs/pro/default/.env.example.hbs +0 -20
  141. package/templates/nextjs/pro/default/.github/workflows/ci-cd.yml.hbs +0 -88
  142. package/templates/nextjs/pro/default/Dockerfile.hbs +0 -45
  143. package/templates/nextjs/pro/default/README.md.hbs +0 -96
  144. package/templates/nextjs/pro/default/docker-compose.yml.hbs +0 -18
  145. package/templates/nextjs/pro/default/infra/main.tf.hbs +0 -83
  146. package/templates/nextjs/pro/default/infra/modules/ecs/main.tf.hbs +0 -54
  147. package/templates/nextjs/pro/default/infra/modules/rds/main.tf.hbs +0 -88
  148. package/templates/nextjs/pro/default/infra/modules/vpc/main.tf.hbs +0 -107
  149. package/templates/nextjs/pro/default/next.config.js.hbs +0 -4
  150. package/templates/nextjs/pro/default/package.json.hbs +0 -34
  151. package/templates/nextjs/pro/default/postcss.config.js.hbs +0 -6
  152. package/templates/nextjs/pro/default/prisma/schema.prisma.hbs +0 -18
  153. package/templates/nextjs/pro/default/public/.gitkeep +0 -0
  154. package/templates/nextjs/pro/default/src/app/api/auth/[...nextauth]/route.ts.hbs +0 -61
  155. package/templates/nextjs/pro/default/src/app/api/checkout/route.ts.hbs +0 -30
  156. package/templates/nextjs/pro/default/src/app/api/health/route.ts.hbs +0 -9
  157. package/templates/nextjs/pro/default/src/app/api/webhook/route.ts.hbs +0 -51
  158. package/templates/nextjs/pro/default/src/app/dashboard/page.tsx.hbs +0 -52
  159. package/templates/nextjs/pro/default/src/app/globals.css.hbs +0 -3
  160. package/templates/nextjs/pro/default/src/app/layout.tsx.hbs +0 -22
  161. package/templates/nextjs/pro/default/src/app/page.tsx.hbs +0 -38
  162. package/templates/nextjs/pro/default/src/components/.gitkeep +0 -0
  163. package/templates/nextjs/pro/default/src/components/AuthButton.tsx.hbs +0 -34
  164. package/templates/nextjs/pro/default/src/components/Providers.tsx.hbs +0 -7
  165. package/templates/nextjs/pro/default/src/lib/prisma.ts.hbs +0 -13
  166. package/templates/nextjs/pro/default/src/proxy.ts.hbs +0 -22
  167. package/templates/nextjs/pro/default/tailwind.config.ts.hbs +0 -15
  168. package/templates/nextjs/pro/default/template.json +0 -18
  169. package/templates/nextjs/pro/default/tsconfig.json.hbs +0 -40
  170. package/templates/nodejs-express/pro/clean/.env.example.hbs +0 -19
  171. package/templates/nodejs-express/pro/clean/.github/workflows/ci-cd.yml.hbs +0 -88
  172. package/templates/nodejs-express/pro/clean/Dockerfile.hbs +0 -45
  173. package/templates/nodejs-express/pro/clean/README.md.hbs +0 -41
  174. package/templates/nodejs-express/pro/clean/docker-compose.yml.hbs +0 -18
  175. package/templates/nodejs-express/pro/clean/infra/main.tf.hbs +0 -83
  176. package/templates/nodejs-express/pro/clean/infra/modules/ecs/main.tf.hbs +0 -54
  177. package/templates/nodejs-express/pro/clean/infra/modules/rds/main.tf.hbs +0 -88
  178. package/templates/nodejs-express/pro/clean/infra/modules/vpc/main.tf.hbs +0 -107
  179. package/templates/nodejs-express/pro/clean/package.json.hbs +0 -55
  180. package/templates/nodejs-express/pro/clean/src/application/services/AuthService.ts.hbs +0 -66
  181. package/templates/nodejs-express/pro/clean/src/domain/entities/User.ts.hbs +0 -38
  182. package/templates/nodejs-express/pro/clean/src/domain/repositories/IUserRepository.ts.hbs +0 -13
  183. package/templates/nodejs-express/pro/clean/src/domain/usecases/LoginUserUseCase.ts.hbs +0 -39
  184. package/templates/nodejs-express/pro/clean/src/domain/usecases/RegisterUserUseCase.ts.hbs +0 -51
  185. package/templates/nodejs-express/pro/clean/src/index.ts.hbs +0 -40
  186. package/templates/nodejs-express/pro/clean/src/infrastructure/database/InMemoryUserRepository.ts.hbs +0 -46
  187. package/templates/nodejs-express/pro/clean/src/infrastructure/http/controllers/AuthController.ts.hbs +0 -45
  188. package/templates/nodejs-express/pro/clean/src/infrastructure/http/middlewares/AuthMiddleware.ts.hbs +0 -27
  189. package/templates/nodejs-express/pro/clean/src/infrastructure/providers/PasswordHasher.ts.hbs +0 -14
  190. package/templates/nodejs-express/pro/clean/src/infrastructure/providers/TokenGenerator.ts.hbs +0 -25
  191. package/templates/nodejs-express/pro/clean/tsconfig.json.hbs +0 -27
  192. package/templates/nodejs-express/pro/hexagonal/.env.example.hbs +0 -19
  193. package/templates/nodejs-express/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +0 -88
  194. package/templates/nodejs-express/pro/hexagonal/Dockerfile.hbs +0 -45
  195. package/templates/nodejs-express/pro/hexagonal/README.md.hbs +0 -42
  196. package/templates/nodejs-express/pro/hexagonal/docker-compose.yml.hbs +0 -18
  197. package/templates/nodejs-express/pro/hexagonal/infra/main.tf.hbs +0 -83
  198. package/templates/nodejs-express/pro/hexagonal/infra/modules/ecs/main.tf.hbs +0 -54
  199. package/templates/nodejs-express/pro/hexagonal/infra/modules/rds/main.tf.hbs +0 -88
  200. package/templates/nodejs-express/pro/hexagonal/infra/modules/vpc/main.tf.hbs +0 -107
  201. package/templates/nodejs-express/pro/hexagonal/package.json.hbs +0 -55
  202. package/templates/nodejs-express/pro/hexagonal/src/adapters/inbound/http/AuthController.ts.hbs +0 -48
  203. package/templates/nodejs-express/pro/hexagonal/src/adapters/outbound/SecurityAdapters.ts.hbs +0 -31
  204. package/templates/nodejs-express/pro/hexagonal/src/adapters/outbound/persistence/InMemoryUserAdapter.ts.hbs +0 -38
  205. package/templates/nodejs-express/pro/hexagonal/src/core/AuthService.ts.hbs +0 -51
  206. package/templates/nodejs-express/pro/hexagonal/src/core/domain/entities/User.ts.hbs +0 -28
  207. package/templates/nodejs-express/pro/hexagonal/src/core/ports/inbound/IAuthPort.ts.hbs +0 -11
  208. package/templates/nodejs-express/pro/hexagonal/src/core/ports/outbound/ISecurityPorts.ts.hbs +0 -15
  209. package/templates/nodejs-express/pro/hexagonal/src/core/ports/outbound/IUserRepositoryPort.ts.hbs +0 -13
  210. package/templates/nodejs-express/pro/hexagonal/src/index.ts.hbs +0 -41
  211. package/templates/nodejs-express/pro/hexagonal/tsconfig.json.hbs +0 -27
  212. package/templates/nodejs-express/pro/mvc/.env.example.hbs +0 -19
  213. package/templates/nodejs-express/pro/mvc/.github/workflows/ci-cd.yml.hbs +0 -88
  214. package/templates/nodejs-express/pro/mvc/Dockerfile.hbs +0 -45
  215. package/templates/nodejs-express/pro/mvc/README.md.hbs +0 -85
  216. package/templates/nodejs-express/pro/mvc/docker-compose.yml.hbs +0 -18
  217. package/templates/nodejs-express/pro/mvc/infra/main.tf.hbs +0 -83
  218. package/templates/nodejs-express/pro/mvc/infra/modules/ecs/main.tf.hbs +0 -54
  219. package/templates/nodejs-express/pro/mvc/infra/modules/rds/main.tf.hbs +0 -88
  220. package/templates/nodejs-express/pro/mvc/infra/modules/vpc/main.tf.hbs +0 -107
  221. package/templates/nodejs-express/pro/mvc/package.json.hbs +0 -55
  222. package/templates/nodejs-express/pro/mvc/src/app.ts.hbs +0 -34
  223. package/templates/nodejs-express/pro/mvc/src/config/database.ts.hbs +0 -10
  224. package/templates/nodejs-express/pro/mvc/src/controllers/auth.controller.ts.hbs +0 -91
  225. package/templates/nodejs-express/pro/mvc/src/controllers/healthController.ts.hbs +0 -20
  226. package/templates/nodejs-express/pro/mvc/src/controllers/payments.controller.ts.hbs +0 -72
  227. package/templates/nodejs-express/pro/mvc/src/index.ts.hbs +0 -12
  228. package/templates/nodejs-express/pro/mvc/src/middleware/errorHandler.ts.hbs +0 -22
  229. package/templates/nodejs-express/pro/mvc/src/middlewares/auth.middleware.ts.hbs +0 -31
  230. package/templates/nodejs-express/pro/mvc/src/models/.gitkeep +0 -0
  231. package/templates/nodejs-express/pro/mvc/src/routes/index.ts.hbs +0 -14
  232. package/templates/nodejs-express/pro/mvc/src/services/.gitkeep +0 -0
  233. package/templates/nodejs-express/pro/mvc/src/services/stripe.service.ts.hbs +0 -102
  234. package/templates/nodejs-express/pro/mvc/template.json +0 -18
  235. package/templates/nodejs-express/pro/mvc/tsconfig.json.hbs +0 -27
  236. package/templates/python-fastapi/pro/clean/.env.example.hbs +0 -17
  237. package/templates/python-fastapi/pro/clean/.github/workflows/ci-cd.yml.hbs +0 -88
  238. package/templates/python-fastapi/pro/clean/Dockerfile.hbs +0 -20
  239. package/templates/python-fastapi/pro/clean/app/domain/entities/user.py.hbs +0 -23
  240. package/templates/python-fastapi/pro/clean/app/domain/repositories/user_repository.py.hbs +0 -22
  241. package/templates/python-fastapi/pro/clean/app/domain/usecases/register_user.py.hbs +0 -30
  242. package/templates/python-fastapi/pro/clean/app/infrastructure/database/in_memory_repository.py.hbs +0 -26
  243. package/templates/python-fastapi/pro/clean/app/infrastructure/http/auth_controller.py.hbs +0 -26
  244. package/templates/python-fastapi/pro/clean/app/infrastructure/security/adapters.py.hbs +0 -23
  245. package/templates/python-fastapi/pro/clean/app/main.py.hbs +0 -10
  246. package/templates/python-fastapi/pro/clean/infra/main.tf.hbs +0 -83
  247. package/templates/python-fastapi/pro/clean/infra/modules/ecs/main.tf.hbs +0 -54
  248. package/templates/python-fastapi/pro/clean/infra/modules/rds/main.tf.hbs +0 -88
  249. package/templates/python-fastapi/pro/clean/infra/modules/vpc/main.tf.hbs +0 -107
  250. package/templates/python-fastapi/pro/clean/requirements.txt.hbs +0 -12
  251. package/templates/python-fastapi/pro/hexagonal/.env.example.hbs +0 -17
  252. package/templates/python-fastapi/pro/hexagonal/.github/workflows/ci-cd.yml.hbs +0 -88
  253. package/templates/python-fastapi/pro/hexagonal/Dockerfile.hbs +0 -20
  254. package/templates/python-fastapi/pro/hexagonal/app/adapters/inbound/http_adapter.py.hbs +0 -29
  255. package/templates/python-fastapi/pro/hexagonal/app/core/domain/user.py.hbs +0 -15
  256. package/templates/python-fastapi/pro/hexagonal/app/core/ports.py.hbs +0 -25
  257. package/templates/python-fastapi/pro/hexagonal/app/core/service.py.hbs +0 -28
  258. package/templates/python-fastapi/pro/hexagonal/app/main.py.hbs +0 -22
  259. package/templates/python-fastapi/pro/hexagonal/infra/main.tf.hbs +0 -83
  260. package/templates/python-fastapi/pro/hexagonal/infra/modules/ecs/main.tf.hbs +0 -54
  261. package/templates/python-fastapi/pro/hexagonal/infra/modules/rds/main.tf.hbs +0 -88
  262. package/templates/python-fastapi/pro/hexagonal/infra/modules/vpc/main.tf.hbs +0 -107
  263. package/templates/python-fastapi/pro/hexagonal/requirements.txt.hbs +0 -12
  264. package/templates/python-fastapi/pro/mvc/.env.example.hbs +0 -17
  265. package/templates/python-fastapi/pro/mvc/.github/workflows/ci-cd.yml.hbs +0 -88
  266. package/templates/python-fastapi/pro/mvc/Dockerfile.hbs +0 -20
  267. package/templates/python-fastapi/pro/mvc/README.md.hbs +0 -41
  268. package/templates/python-fastapi/pro/mvc/app/controllers/auth.py.hbs +0 -46
  269. package/templates/python-fastapi/pro/mvc/app/controllers/health.py.hbs +0 -7
  270. package/templates/python-fastapi/pro/mvc/app/controllers/items.py.hbs +0 -21
  271. package/templates/python-fastapi/pro/mvc/app/controllers/payments.py.hbs +0 -32
  272. package/templates/python-fastapi/pro/mvc/app/main.py.hbs +0 -20
  273. package/templates/python-fastapi/pro/mvc/app/middleware/security.py.hbs +0 -39
  274. package/templates/python-fastapi/pro/mvc/app/models/item.py.hbs +0 -11
  275. package/templates/python-fastapi/pro/mvc/app/schemas/item.py.hbs +0 -16
  276. package/templates/python-fastapi/pro/mvc/app/services/item_service.py.hbs +0 -24
  277. package/templates/python-fastapi/pro/mvc/infra/main.tf.hbs +0 -83
  278. package/templates/python-fastapi/pro/mvc/infra/modules/ecs/main.tf.hbs +0 -54
  279. package/templates/python-fastapi/pro/mvc/infra/modules/rds/main.tf.hbs +0 -88
  280. package/templates/python-fastapi/pro/mvc/infra/modules/vpc/main.tf.hbs +0 -107
  281. package/templates/python-fastapi/pro/mvc/requirements.txt.hbs +0 -12
@@ -6,6 +6,7 @@ import { promisify } from 'util';
6
6
  import * as clack from '@clack/prompts';
7
7
  import { TemplateEngine } from '../templates/engine.js';
8
8
  import { buildTemplateContext } from './context-builder.js';
9
+ import { templateDownloader } from '../templates/downloader.js';
9
10
  const __filename = fileURLToPath(import.meta.url);
10
11
  const __dirname = path.dirname(__filename);
11
12
  const execPromise = promisify(exec);
@@ -30,8 +31,17 @@ export class ProjectGenerator {
30
31
  spinner.stop('❌ Diretório já existe');
31
32
  throw new Error(`Diretório "${config.projectName}" já existe!`);
32
33
  }
33
- // 2. Determina o caminho do template
34
- const templatePath = this.getTemplatePath(config);
34
+ // 2. Determina o caminho do template (diferente para Pro vs Free)
35
+ let templatePath;
36
+ if (config.licenseTier === 'pro') {
37
+ // Pro templates: download from API or use cache
38
+ spinner.message('📦 Verificando templates Pro...');
39
+ templatePath = await this.getProTemplatePath(config, spinner);
40
+ }
41
+ else {
42
+ // Free templates: use local bundled templates
43
+ templatePath = this.getLocalTemplatePath(config);
44
+ }
35
45
  // Verifica se template existe
36
46
  if (!(await fs.pathExists(templatePath))) {
37
47
  spinner.stop('❌ Template não encontrado');
@@ -58,6 +68,35 @@ export class ProjectGenerator {
58
68
  throw error;
59
69
  }
60
70
  }
71
+ /**
72
+ * Get Pro template path - downloads from API if not cached
73
+ */
74
+ async getProTemplatePath(config, spinner) {
75
+ const architecture = config.architecture || 'clean';
76
+ // Check cache first
77
+ const cachedPath = await templateDownloader.getCachedTemplate(config.stack, architecture);
78
+ if (cachedPath) {
79
+ return cachedPath;
80
+ }
81
+ // Download from API
82
+ spinner.message('⬇️ Baixando templates Pro...');
83
+ const result = await templateDownloader.downloadProTemplate(config.licenseKey, config.stack, architecture);
84
+ if (!result.success || !result.files) {
85
+ throw new Error(result.error || 'Failed to download Pro template');
86
+ }
87
+ // Cache the downloaded template
88
+ await templateDownloader.cacheTemplate(config.stack, architecture, result.files);
89
+ // Return cache path
90
+ return await templateDownloader.getCachedTemplate(config.stack, architecture) || '';
91
+ }
92
+ /**
93
+ * Get local template path for Free tier (bundled with npm package)
94
+ */
95
+ getLocalTemplatePath(config) {
96
+ const templatesRoot = path.join(__dirname, '../../../templates');
97
+ const architecture = config.architecture || 'mvc';
98
+ return path.join(templatesRoot, config.stack, 'free', architecture);
99
+ }
61
100
  /**
62
101
  * Gera documentação usando IA (README.md e API.md)
63
102
  */
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/generator/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/generator/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface TemplateFile {
2
+ path: string;
3
+ content: string;
4
+ }
5
+ export interface DownloadResult {
6
+ success: boolean;
7
+ files?: TemplateFile[];
8
+ error?: string;
9
+ }
10
+ /**
11
+ * Downloads Pro templates from the Kybernus API
12
+ */
13
+ export declare class TemplateDownloader {
14
+ /**
15
+ * Download Pro template files from API
16
+ */
17
+ downloadProTemplate(licenseKey: string, stack: string, architecture: string): Promise<DownloadResult>;
18
+ /**
19
+ * Write downloaded template files to disk
20
+ */
21
+ writeTemplateToDisk(files: TemplateFile[], outputDir: string, context: Record<string, any>): Promise<void>;
22
+ /**
23
+ * Cache downloaded templates locally to speed up subsequent uses
24
+ */
25
+ cacheTemplate(stack: string, architecture: string, files: TemplateFile[]): Promise<void>;
26
+ /**
27
+ * Check if we have a cached version of the template
28
+ */
29
+ getCachedTemplate(stack: string, architecture: string, maxAgeHours?: number): Promise<string | null>;
30
+ }
31
+ export declare const templateDownloader: TemplateDownloader;
32
+ //# sourceMappingURL=downloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../../../src/core/templates/downloader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAE3B;;OAEG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC;IA6B1B;;OAEG;IACG,mBAAmB,CACrB,KAAK,EAAE,YAAY,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,aAAa,CACf,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC;IAgChB;;OAEG;IACG,iBAAiB,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAW,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAiC5B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -0,0 +1,95 @@
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ const API_URL = process.env.KYBERNUS_API_URL || 'https://kybernus.vercel.app/api';
4
+ /**
5
+ * Downloads Pro templates from the Kybernus API
6
+ */
7
+ export class TemplateDownloader {
8
+ /**
9
+ * Download Pro template files from API
10
+ */
11
+ async downloadProTemplate(licenseKey, stack, architecture) {
12
+ try {
13
+ const response = await fetch(`${API_URL}/templates/download`, {
14
+ method: 'POST',
15
+ headers: { 'Content-Type': 'application/json' },
16
+ body: JSON.stringify({ licenseKey, stack, architecture }),
17
+ });
18
+ const data = await response.json();
19
+ if (!response.ok) {
20
+ return {
21
+ success: false,
22
+ error: data.error || 'Failed to download template',
23
+ };
24
+ }
25
+ return {
26
+ success: true,
27
+ files: data.files,
28
+ };
29
+ }
30
+ catch (error) {
31
+ return {
32
+ success: false,
33
+ error: `Network error: ${error.message}`,
34
+ };
35
+ }
36
+ }
37
+ /**
38
+ * Write downloaded template files to disk
39
+ */
40
+ async writeTemplateToDisk(files, outputDir, context) {
41
+ for (const file of files) {
42
+ const outputPath = path.join(outputDir, file.path);
43
+ // Ensure directory exists
44
+ await fs.ensureDir(path.dirname(outputPath));
45
+ // Write file content
46
+ await fs.writeFile(outputPath, file.content, 'utf-8');
47
+ }
48
+ }
49
+ /**
50
+ * Cache downloaded templates locally to speed up subsequent uses
51
+ */
52
+ async cacheTemplate(stack, architecture, files) {
53
+ const cacheDir = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.kybernus', 'cache', 'templates', stack, 'pro', architecture);
54
+ try {
55
+ await fs.ensureDir(cacheDir);
56
+ for (const file of files) {
57
+ const cachePath = path.join(cacheDir, file.path);
58
+ await fs.ensureDir(path.dirname(cachePath));
59
+ await fs.writeFile(cachePath, file.content, 'utf-8');
60
+ }
61
+ // Write cache timestamp
62
+ await fs.writeFile(path.join(cacheDir, '.cache-timestamp'), new Date().toISOString(), 'utf-8');
63
+ }
64
+ catch (error) {
65
+ // Caching is optional, don't fail if it doesn't work
66
+ console.warn('Failed to cache template:', error);
67
+ }
68
+ }
69
+ /**
70
+ * Check if we have a cached version of the template
71
+ */
72
+ async getCachedTemplate(stack, architecture, maxAgeHours = 24) {
73
+ const cacheDir = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.kybernus', 'cache', 'templates', stack, 'pro', architecture);
74
+ try {
75
+ const timestampPath = path.join(cacheDir, '.cache-timestamp');
76
+ if (!await fs.pathExists(timestampPath)) {
77
+ return null;
78
+ }
79
+ const timestamp = await fs.readFile(timestampPath, 'utf-8');
80
+ const cacheTime = new Date(timestamp);
81
+ const now = new Date();
82
+ const hoursDiff = (now.getTime() - cacheTime.getTime()) / (1000 * 60 * 60);
83
+ if (hoursDiff > maxAgeHours) {
84
+ // Cache expired
85
+ return null;
86
+ }
87
+ return cacheDir;
88
+ }
89
+ catch (error) {
90
+ return null;
91
+ }
92
+ }
93
+ }
94
+ export const templateDownloader = new TemplateDownloader();
95
+ //# sourceMappingURL=downloader.js.map
@@ -0,0 +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,iCAAiC,CAAC;AAalF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAE3B;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACrB,UAAkB,EAClB,KAAa,EACb,YAAoB;QAEpB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,qBAAqB,EAAE;gBAC1D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,6BAA6B;iBACrD,CAAC;YACN,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;QACN,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE;aAC3C,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACrB,KAAqB,EACrB,SAAiB,EACjB,OAA4B;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnD,0BAA0B;YAC1B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAE7C,qBAAqB;YACrB,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACf,KAAa,EACb,YAAoB,EACpB,KAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACtB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,EACX,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,YAAY,CACf,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;YAED,wBAAwB;YACxB,MAAM,EAAE,CAAC,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACxB,OAAO,CACV,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,qDAAqD;YACrD,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACnB,KAAa,EACb,YAAoB,EACpB,cAAsB,EAAE;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACtB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,WAAW,EACX,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,YAAY,CACf,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAE9D,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE3E,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;gBAC1B,gBAAgB;gBAChB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
@@ -16,6 +16,7 @@ export interface ProjectConfig {
16
16
  terraform: boolean;
17
17
  };
18
18
  licenseTier: LicenseTier;
19
+ licenseKey?: string;
19
20
  }
20
21
  export interface TemplateContext {
21
22
  projectName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,KAAK,GACX,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,CAAC;AAEf,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,KAAK,GACX,QAAQ,GACR,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,CAAC;AAEf,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kybernus",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "The Ultimate Scaffolding CLI for Modern Developers",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,11 @@
43
43
  },
44
44
  "files": [
45
45
  "dist",
46
- "templates",
46
+ "templates/java-spring/free",
47
+ "templates/nestjs/free",
48
+ "templates/nextjs/free",
49
+ "templates/nodejs-express/free",
50
+ "templates/python-fastapi/free",
47
51
  "README.md",
48
52
  "LICENSE"
49
53
  ],
@@ -63,4 +67,4 @@
63
67
  "typescript": "^5.9.3",
64
68
  "vitest": "^4.0.17"
65
69
  }
66
- }
70
+ }
@@ -1,88 +0,0 @@
1
- name: CI/CD Pipeline
2
-
3
- on:
4
- push:
5
- branches: [main, develop]
6
- pull_request:
7
- branches: [main]
8
-
9
- env:
10
- NODE_VERSION: '20'
11
- AWS_REGION: 'us-east-1'
12
-
13
- jobs:
14
- test:
15
- runs-on: ubuntu-latest
16
-
17
- steps:
18
- - uses: actions/checkout@v4
19
-
20
- - name: Setup Node.js
21
- uses: actions/setup-node@v4
22
- with:
23
- node-version: $\{{ env.NODE_VERSION }}
24
- cache: 'npm'
25
-
26
- - name: Install dependencies
27
- run: npm ci
28
-
29
- - name: Run linter
30
- run: npm run lint --if-present
31
-
32
- - name: Run tests
33
- run: npm test --if-present
34
-
35
- - name: Build
36
- run: npm run build
37
-
38
- build-and-push:
39
- needs: test
40
- runs-on: ubuntu-latest
41
- if: github.ref == 'refs/heads/main'
42
-
43
- steps:
44
- - uses: actions/checkout@v4
45
-
46
- - name: Configure AWS credentials
47
- uses: aws-actions/configure-aws-credentials@v4
48
- with:
49
- aws-access-key-id: $\{{ secrets.AWS_ACCESS_KEY_ID }}
50
- aws-secret-access-key: $\{{ secrets.AWS_SECRET_ACCESS_KEY }}
51
- aws-region: $\{{ env.AWS_REGION }}
52
-
53
- - name: Login to Amazon ECR
54
- id: login-ecr
55
- uses: aws-actions/amazon-ecr-login@v2
56
-
57
- - name: Build, tag, and push image to Amazon ECR
58
- env:
59
- ECR_REGISTRY: $\{{ steps.login-ecr.outputs.registry }}
60
- ECR_REPOSITORY: {{projectNameKebabCase}}
61
- IMAGE_TAG: $\{{ github.sha }}
62
- run: |
63
- docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
64
- docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:latest .
65
- docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
66
- docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
67
-
68
- deploy:
69
- needs: build-and-push
70
- runs-on: ubuntu-latest
71
- if: github.ref == 'refs/heads/main'
72
-
73
- steps:
74
- - uses: actions/checkout@v4
75
-
76
- - name: Configure AWS credentials
77
- uses: aws-actions/configure-aws-credentials@v4
78
- with:
79
- aws-access-key-id: $\{{ secrets.AWS_ACCESS_KEY_ID }}
80
- aws-secret-access-key: $\{{ secrets.AWS_SECRET_ACCESS_KEY }}
81
- aws-region: $\{{ env.AWS_REGION }}
82
-
83
- - name: Deploy to ECS
84
- run: |
85
- aws ecs update-service \
86
- --cluster {{projectNameKebabCase}}-prod \
87
- --service {{projectNameKebabCase}}-api \
88
- --force-new-deployment
@@ -1,45 +0,0 @@
1
- # Production Dockerfile for {{projectName}}
2
-
3
- # Build stage
4
- FROM node:20-alpine AS builder
5
-
6
- WORKDIR /app
7
-
8
- # Copy package files
9
- COPY package*.json ./
10
-
11
- # Install dependencies
12
- RUN npm ci --only=production
13
-
14
- # Copy source code
15
- COPY . .
16
-
17
- # Build TypeScript
18
- RUN npm run build
19
-
20
- # Production stage
21
- FROM node:20-alpine AS production
22
-
23
- WORKDIR /app
24
-
25
- # Create non-root user
26
- RUN addgroup -g 1001 -S nodejs && \
27
- adduser -S nodejs -u 1001
28
-
29
- # Copy built application
30
- COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
31
- COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
32
- COPY --from=builder --chown=nodejs:nodejs /app/package.json ./
33
-
34
- # Switch to non-root user
35
- USER nodejs
36
-
37
- # Expose port
38
- EXPOSE 3000
39
-
40
- # Health check
41
- HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
42
- CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
43
-
44
- # Start application
45
- CMD ["node", "dist/index.js"]
@@ -1,31 +0,0 @@
1
- # {{projectName}}
2
-
3
- > Generated by [Kybernus CLI](https://kybernus.dev) 🚀 (Pro - Clean Architecture)
4
-
5
- ## Architecture
6
-
7
- This project follows **Clean Architecture** principles:
8
-
9
- ```
10
- src/main/java/{{packagePath}}/
11
- ├── domain/ # Business logic
12
- │ ├── entity/ # Domain entities
13
- │ ├── repository/ # Repository interfaces
14
- │ └── usecase/ # Business use cases
15
- ├── application/ # Application services
16
- │ └── service/ # Use case orchestration
17
- └── infrastructure/ # External concerns
18
- ├── persistence/ # Repository implementations
19
- ├── security/ # Security adapters
20
- └── web/ # Spring controllers
21
- ```
22
-
23
- ## Quick Start
24
-
25
- ```bash
26
- ./mvnw spring-boot:run
27
- ```
28
-
29
- ---
30
-
31
- Made with ❤️ using [Kybernus Pro](https://kybernus.dev/pro)
@@ -1,18 +0,0 @@
1
- version: '3.8'
2
-
3
- services:
4
- postgres:
5
- image: postgres:15-alpine
6
- container_name: {{projectNameKebabCase}}-db
7
- environment:
8
- POSTGRES_USER: postgres
9
- POSTGRES_PASSWORD: postgres
10
- POSTGRES_DB: {{projectNameSnakeCase}}
11
- ports:
12
- - "5432:5432"
13
- volumes:
14
- - postgres_data:/var/lib/postgresql/data
15
- restart: unless-stopped
16
-
17
- volumes:
18
- postgres_data:
@@ -1,83 +0,0 @@
1
- # Terraform Infrastructure for {{projectName}}
2
-
3
- terraform {
4
- required_version = ">= 1.0.0"
5
-
6
- required_providers {
7
- aws = {
8
- source = "hashicorp/aws"
9
- version = "~> 5.0"
10
- }
11
- }
12
-
13
- # Uncomment for remote state (recommended for production)
14
- # backend "s3" {
15
- # bucket = "your-terraform-state-bucket"
16
- # key = "{{projectNameKebabCase}}/terraform.tfstate"
17
- # region = "us-east-1"
18
- # encrypt = true
19
- # dynamodb_table = "terraform-locks"
20
- # }
21
- }
22
-
23
- provider "aws" {
24
- region = var.aws_region
25
- }
26
-
27
- # Variables
28
- variable "aws_region" {
29
- description = "AWS region"
30
- type = string
31
- default = "us-east-1"
32
- }
33
-
34
- variable "environment" {
35
- description = "Environment name (dev, staging, prod)"
36
- type = string
37
- default = "dev"
38
- }
39
-
40
- variable "app_name" {
41
- description = "Application name"
42
- type = string
43
- default = "{{projectNameKebabCase}}"
44
- }
45
-
46
- # VPC
47
- module "vpc" {
48
- source = "./modules/vpc"
49
-
50
- app_name = var.app_name
51
- environment = var.environment
52
- }
53
-
54
- # ECS Cluster
55
- module "ecs" {
56
- source = "./modules/ecs"
57
-
58
- app_name = var.app_name
59
- environment = var.environment
60
- vpc_id = module.vpc.vpc_id
61
- subnet_ids = module.vpc.private_subnet_ids
62
- }
63
-
64
- # RDS PostgreSQL
65
- module "rds" {
66
- source = "./modules/rds"
67
-
68
- app_name = var.app_name
69
- environment = var.environment
70
- vpc_id = module.vpc.vpc_id
71
- subnet_ids = module.vpc.private_subnet_ids
72
- security_group_id = module.vpc.db_security_group_id
73
- }
74
-
75
- # Outputs
76
- output "ecs_cluster_name" {
77
- value = module.ecs.cluster_name
78
- }
79
-
80
- output "rds_endpoint" {
81
- value = module.rds.endpoint
82
- sensitive = true
83
- }
@@ -1,54 +0,0 @@
1
- # ECS Module
2
-
3
- variable "app_name" {
4
- type = string
5
- }
6
-
7
- variable "environment" {
8
- type = string
9
- }
10
-
11
- variable "vpc_id" {
12
- type = string
13
- }
14
-
15
- variable "subnet_ids" {
16
- type = list(string)
17
- }
18
-
19
- # ECS Cluster
20
- resource "aws_ecs_cluster" "main" {
21
- name = "${var.app_name}-${var.environment}"
22
-
23
- setting {
24
- name = "containerInsights"
25
- value = "enabled"
26
- }
27
-
28
- tags = {
29
- Name = "${var.app_name}-${var.environment}"
30
- Environment = var.environment
31
- }
32
- }
33
-
34
- # ECS Capacity Provider
35
- resource "aws_ecs_cluster_capacity_providers" "main" {
36
- cluster_name = aws_ecs_cluster.main.name
37
-
38
- capacity_providers = ["FARGATE", "FARGATE_SPOT"]
39
-
40
- default_capacity_provider_strategy {
41
- base = 1
42
- weight = 100
43
- capacity_provider = "FARGATE"
44
- }
45
- }
46
-
47
- # Outputs
48
- output "cluster_name" {
49
- value = aws_ecs_cluster.main.name
50
- }
51
-
52
- output "cluster_arn" {
53
- value = aws_ecs_cluster.main.arn
54
- }