kybernus 1.0.1 → 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 +6 -2
  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
@@ -1,107 +0,0 @@
1
- # VPC Module
2
-
3
- variable "app_name" {
4
- type = string
5
- }
6
-
7
- variable "environment" {
8
- type = string
9
- }
10
-
11
- # VPC
12
- resource "aws_vpc" "main" {
13
- cidr_block = "10.0.0.0/16"
14
- enable_dns_hostnames = true
15
- enable_dns_support = true
16
-
17
- tags = {
18
- Name = "${var.app_name}-${var.environment}-vpc"
19
- Environment = var.environment
20
- }
21
- }
22
-
23
- # Public Subnets
24
- resource "aws_subnet" "public" {
25
- count = 2
26
- vpc_id = aws_vpc.main.id
27
- cidr_block = "10.0.${count.index + 1}.0/24"
28
- availability_zone = data.aws_availability_zones.available.names[count.index]
29
-
30
- map_public_ip_on_launch = true
31
-
32
- tags = {
33
- Name = "${var.app_name}-${var.environment}-public-${count.index + 1}"
34
- Environment = var.environment
35
- }
36
- }
37
-
38
- # Private Subnets
39
- resource "aws_subnet" "private" {
40
- count = 2
41
- vpc_id = aws_vpc.main.id
42
- cidr_block = "10.0.${count.index + 10}.0/24"
43
- availability_zone = data.aws_availability_zones.available.names[count.index]
44
-
45
- tags = {
46
- Name = "${var.app_name}-${var.environment}-private-${count.index + 1}"
47
- Environment = var.environment
48
- }
49
- }
50
-
51
- # Internet Gateway
52
- resource "aws_internet_gateway" "main" {
53
- vpc_id = aws_vpc.main.id
54
-
55
- tags = {
56
- Name = "${var.app_name}-${var.environment}-igw"
57
- Environment = var.environment
58
- }
59
- }
60
-
61
- # Data source for AZs
62
- data "aws_availability_zones" "available" {
63
- state = "available"
64
- }
65
-
66
- # Security Group for DB
67
- resource "aws_security_group" "db" {
68
- name = "${var.app_name}-${var.environment}-db-sg"
69
- description = "Security group for database"
70
- vpc_id = aws_vpc.main.id
71
-
72
- ingress {
73
- from_port = 5432
74
- to_port = 5432
75
- protocol = "tcp"
76
- cidr_blocks = ["10.0.0.0/16"]
77
- }
78
-
79
- egress {
80
- from_port = 0
81
- to_port = 0
82
- protocol = "-1"
83
- cidr_blocks = ["0.0.0.0/0"]
84
- }
85
-
86
- tags = {
87
- Name = "${var.app_name}-${var.environment}-db-sg"
88
- Environment = var.environment
89
- }
90
- }
91
-
92
- # Outputs
93
- output "vpc_id" {
94
- value = aws_vpc.main.id
95
- }
96
-
97
- output "public_subnet_ids" {
98
- value = aws_subnet.public[*].id
99
- }
100
-
101
- output "private_subnet_ids" {
102
- value = aws_subnet.private[*].id
103
- }
104
-
105
- output "db_security_group_id" {
106
- value = aws_security_group.db.id
107
- }
@@ -1,37 +0,0 @@
1
- {
2
- "name": "{{kebabCase projectName}}",
3
- "version": "1.0.0",
4
- "description": "Generated by Kybernus CLI (Pro)",
5
- "scripts": {
6
- "dev": "nest start --watch",
7
- "build": "nest build",
8
- "start": "node dist/main.js",
9
- "lint": "eslint \"{src,test}/**/*.ts\"",
10
- "test": "jest"
11
- },
12
- "dependencies": {
13
- "@nestjs/common": "^10.3.0",
14
- "@nestjs/core": "^10.3.0",
15
- "@nestjs/config": "^3.1.1",
16
- "@nestjs/jwt": "^10.2.0",
17
- "@nestjs/passport": "^10.0.3",
18
- "@nestjs/platform-express": "^10.3.0",
19
- "bcryptjs": "^2.4.3",
20
- "class-transformer": "^0.5.1",
21
- "class-validator": "^0.14.1",
22
- "passport": "^0.7.0",
23
- "passport-jwt": "^4.0.1",
24
- "reflect-metadata": "^0.2.1",
25
- "rxjs": "^7.8.1",
26
- "stripe": "^14.14.0",
27
- "uuid": "^9.0.1"
28
- },
29
- "devDependencies": {
30
- "@nestjs/cli": "^10.3.0",
31
- "@types/bcryptjs": "^2.4.6",
32
- "@types/node": "^20.11.0",
33
- "@types/passport-jwt": "^4.0.0",
34
- "@types/uuid": "^9.0.7",
35
- "typescript": "^5.3.3"
36
- }
37
- }
@@ -1,12 +0,0 @@
1
- import { Controller, Post, Body } from '@nestjs/common';
2
- import { IAuthPort } from '../../core/ports/ports';
3
-
4
- @Controller('auth')
5
- export class HttpAdapter {
6
- constructor(private readonly authPort: IAuthPort) {}
7
-
8
- @Post('register')
9
- async register(@Body() body: any) {
10
- return this.authPort.register(body.email, body.name, body.password);
11
- }
12
- }
@@ -1,13 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { IUserRepositoryPort } from '../../core/ports/ports';
3
- import { User } from '../../core/domain/user.entity';
4
-
5
- @Injectable()
6
- export class PersistenceAdapter implements IUserRepositoryPort {
7
- private users: User[] = [];
8
-
9
- async save(user: User): Promise<User> {
10
- this.users.push(user);
11
- return user;
12
- }
13
- }
@@ -1,19 +0,0 @@
1
- import { Module } from '@nestjs/common';
2
- import { AuthService } from './core/auth.service';
3
- import { HttpAdapter } from './adapters/inbound/http.adapter';
4
- import { PersistenceAdapter } from './adapters/outbound/persistence.adapter';
5
-
6
- @Module({
7
- providers: [
8
- {
9
- provide: 'IAuthPort',
10
- useClass: AuthService,
11
- },
12
- {
13
- provide: 'IUserRepositoryPort',
14
- useClass: PersistenceAdapter,
15
- },
16
- ],
17
- controllers: [HttpAdapter],
18
- })
19
- export class AuthModule {}
@@ -1,16 +0,0 @@
1
- import { Injectable, Inject } from '@nestjs/common';
2
- import { IAuthPort, IUserRepositoryPort } from './ports/ports';
3
- import { User } from './domain/user.entity';
4
-
5
- @Injectable()
6
- export class AuthService implements IAuthPort {
7
- constructor(
8
- @Inject('IUserRepositoryPort')
9
- private readonly userRepository: IUserRepositoryPort,
10
- ) {}
11
-
12
- async register(email: string, name: string, password: string): Promise<User> {
13
- const user = new User(Date.now().toString(), email, name, password);
14
- return this.userRepository.save(user);
15
- }
16
- }
@@ -1,8 +0,0 @@
1
- export class User {
2
- constructor(
3
- public readonly id: string,
4
- public readonly email: string,
5
- public readonly name: string,
6
- public readonly password: string,
7
- ) {}
8
- }
@@ -1,9 +0,0 @@
1
- import { User } from '../domain/user.entity';
2
-
3
- export interface IUserRepositoryPort {
4
- save(user: User): Promise<User>;
5
- }
6
-
7
- export interface IAuthPort {
8
- register(email: string, name: string, password: string): Promise<User>;
9
- }
@@ -1,21 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "target": "ES2021",
10
- "sourceMap": true,
11
- "outDir": "./dist",
12
- "baseUrl": "./",
13
- "incremental": true,
14
- "skipLibCheck": true,
15
- "strictNullChecks": true,
16
- "noImplicitAny": true,
17
- "strictBindCallApply": true,
18
- "forceConsistentCasingInFileNames": true,
19
- "noFallthroughCasesInSwitch": true
20
- }
21
- }
@@ -1,19 +0,0 @@
1
- # {{projectName}} Environment Variables
2
-
3
- # Server
4
- NODE_ENV=development
5
- PORT=3000
6
-
7
- # Database
8
- DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectNameSnakeCase}}
9
-
10
- # Authentication
11
- JWT_SECRET=your-super-secret-jwt-key-change-in-production
12
-
13
- # Stripe
14
- STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key
15
- STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret
16
- STRIPE_PRICE_ID=price_your_price_id
17
-
18
- # Frontend URL (for redirects)
19
- FRONTEND_URL=http://localhost:3001
@@ -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,28 +0,0 @@
1
- # {{projectName}}
2
-
3
- > Generated by [Kybernus CLI](https://kybernus.dev) 🚀 (Free)
4
-
5
- ## Stack
6
-
7
- - **Framework**: NestJS
8
- - **Language**: TypeScript
9
- - **Validation**: class-validator
10
-
11
- ## Quick Start
12
-
13
- ```bash
14
- npm install
15
- npm run dev
16
- ```
17
-
18
- ## API Endpoints
19
-
20
- - `GET /api/health` - Health check
21
- - `GET /api/items` - List items
22
- - `POST /api/items` - Create item
23
- - `GET /api/items/:id` - Get item
24
- - `DELETE /api/items/:id` - Delete item
25
-
26
- ---
27
-
28
- Made with ❤️ using [Kybernus](https://kybernus.dev)
@@ -1,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
- }
@@ -1,88 +0,0 @@
1
- # RDS 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
- variable "security_group_id" {
20
- type = string
21
- }
22
-
23
- # DB Subnet Group
24
- resource "aws_db_subnet_group" "main" {
25
- name = "${var.app_name}-${var.environment}"
26
- subnet_ids = var.subnet_ids
27
-
28
- tags = {
29
- Name = "${var.app_name}-${var.environment}"
30
- Environment = var.environment
31
- }
32
- }
33
-
34
- # RDS PostgreSQL Instance
35
- resource "aws_db_instance" "main" {
36
- identifier = "${var.app_name}-${var.environment}"
37
-
38
- engine = "postgres"
39
- engine_version = "16"
40
- instance_class = "db.t3.micro"
41
-
42
- allocated_storage = 20
43
- max_allocated_storage = 100
44
- storage_type = "gp3"
45
- storage_encrypted = true
46
-
47
- db_name = replace(var.app_name, "-", "_")
48
- username = "postgres"
49
- password = random_password.db_password.result
50
-
51
- db_subnet_group_name = aws_db_subnet_group.main.name
52
- vpc_security_group_ids = [var.security_group_id]
53
-
54
- backup_retention_period = 7
55
- skip_final_snapshot = var.environment != "prod"
56
-
57
- tags = {
58
- Name = "${var.app_name}-${var.environment}"
59
- Environment = var.environment
60
- }
61
- }
62
-
63
- # Random password for DB
64
- resource "random_password" "db_password" {
65
- length = 32
66
- special = false
67
- }
68
-
69
- # Store password in SSM
70
- resource "aws_ssm_parameter" "db_password" {
71
- name = "/${var.app_name}/${var.environment}/db-password"
72
- description = "Database password for ${var.app_name}"
73
- type = "SecureString"
74
- value = random_password.db_password.result
75
-
76
- tags = {
77
- Environment = var.environment
78
- }
79
- }
80
-
81
- # Outputs
82
- output "endpoint" {
83
- value = aws_db_instance.main.endpoint
84
- }
85
-
86
- output "db_name" {
87
- value = aws_db_instance.main.db_name
88
- }