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,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,96 +0,0 @@
1
- # {{pascalCase projectName}}
2
-
3
- > Generated by [Kybernus CLI](https://kibernus.dev) 🚀
4
-
5
- Fullstack application built with **Next.js 16**, **Prisma**, and **Tailwind CSS**.
6
-
7
- ## 📋 Prerequisites
8
-
9
- - **Node.js** >= 18.0.0
10
- - **Docker** (optional, for database)
11
-
12
- ## 🚀 Quick Start
13
-
14
- ### 1. Install Dependencies
15
-
16
- ```bash
17
- npm install
18
- ```
19
-
20
- ### 2. Configure Environment
21
-
22
- ```bash
23
- cp .env.example .env
24
- ```
25
-
26
- ### 3. Start Database
27
-
28
- ```bash
29
- docker-compose up -d
30
- ```
31
-
32
- ### 4. Generate Prisma Client
33
-
34
- ```bash
35
- npm run db:generate
36
- ```
37
-
38
- ### 5. Push Database Schema
39
-
40
- ```bash
41
- npm run db:push
42
- ```
43
-
44
- ### 6. Run Development Server
45
-
46
- ```bash
47
- npm run dev
48
- ```
49
-
50
- Open [http://localhost:3000](http://localhost:3000) 🎉
51
-
52
- ## 📁 Project Structure
53
-
54
- ```
55
- src/
56
- ├── proxy.ts # Next.js 16 Proxy (Edge Runtime)
57
- ├── app/ # Next.js App Router
58
- │ ├── api/ # API Routes
59
- │ ├── layout.tsx
60
- │ └── page.tsx
61
- ├── components/ # React components
62
- └── lib/ # Utilities (Prisma client)
63
- prisma/
64
- └── schema.prisma # Database schema
65
- ```
66
-
67
- ## 🗄️ Database
68
-
69
- This project uses **Prisma** with **PostgreSQL**.
70
-
71
- ### Useful Commands
72
-
73
- - `npm run db:generate` - Generate Prisma Client
74
- - `npm run db:push` - Push schema to database
75
- - `npm run db:studio` - Open Prisma Studio (GUI)
76
-
77
- ## 🔧 Available Scripts
78
-
79
- - `npm run dev` - Start development server
80
- - `npm run build` - Build for production
81
- - `npm start` - Run production build
82
- - `npm run lint` - Lint code
83
-
84
- ## 🔒 Proxy (Edge Runtime)
85
-
86
- The `src/proxy.ts` file runs at the Edge before requests reach your app:
87
- - Request/response processing
88
- - Authentication checks
89
- - Redirects
90
- - Headers manipulation
91
-
92
- > **Note**: Next.js 16 renamed `middleware.ts` to `proxy.ts` to clarify its purpose.
93
-
94
- ---
95
-
96
- **Built with ❤️ using Kybernus CLI** | {{currentYear}}
@@ -1,18 +0,0 @@
1
- version: '3.8'
2
-
3
- services:
4
- postgres:
5
- image: postgres:15-alpine
6
- container_name: {{kebabCase projectName}}-db
7
- environment:
8
- POSTGRES_USER: postgres
9
- POSTGRES_PASSWORD: postgres
10
- POSTGRES_DB: {{snakeCase projectName}}
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
- }
@@ -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
- }
@@ -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,4 +0,0 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {};
3
-
4
- module.exports = nextConfig;
@@ -1,34 +0,0 @@
1
- {
2
- "name": "{{kebabCase projectName}}",
3
- "version": "1.0.0",
4
- "private": true,
5
- "scripts": {
6
- "dev": "next dev",
7
- "build": "next build",
8
- "start": "next start",
9
- "lint": "next lint",
10
- "db:generate": "prisma generate",
11
- "db:push": "prisma db push",
12
- "db:studio": "prisma studio"
13
- },
14
- "dependencies": {
15
- "next": "^16.0.0",
16
- "react": "^19.0.0",
17
- "react-dom": "^19.0.0",
18
- "@prisma/client": "^5.9.0",
19
- "next-auth": "^4.24.5",
20
- "stripe": "^14.14.0"
21
- },
22
- "devDependencies": {
23
- "@types/node": "^20.11.0",
24
- "@types/react": "^19.0.0",
25
- "@types/react-dom": "^19.0.0",
26
- "autoprefixer": "^10.4.17",
27
- "eslint": "^9.0.0",
28
- "eslint-config-next": "^16.0.0",
29
- "postcss": "^8.4.33",
30
- "prisma": "^5.9.0",
31
- "tailwindcss": "^3.4.1",
32
- "typescript": "^5.3.3"
33
- }
34
- }
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- };
@@ -1,18 +0,0 @@
1
- generator client {
2
- provider = "prisma-client-js"
3
- }
4
-
5
- datasource db {
6
- provider = "postgresql"
7
- url = env("DATABASE_URL")
8
- }
9
-
10
- // Add your models here
11
- // Example:
12
- // model User {
13
- // id Int @id @default(autoincrement())
14
- // email String @unique
15
- // name String?
16
- // createdAt DateTime @default(now())
17
- // updatedAt DateTime @updatedAt
18
- // }
File without changes
@@ -1,61 +0,0 @@
1
- import NextAuth from "next-auth";
2
- import CredentialsProvider from "next-auth/providers/credentials";
3
- import GoogleProvider from "next-auth/providers/google";
4
-
5
- export const authOptions = {
6
- providers: [
7
- GoogleProvider({
8
- clientId: process.env.GOOGLE_CLIENT_ID || "",
9
- clientSecret: process.env.GOOGLE_CLIENT_SECRET || "",
10
- }),
11
- CredentialsProvider({
12
- name: "credentials",
13
- credentials: {
14
- email: { label: "Email", type: "email" },
15
- password: { label: "Password", type: "password" },
16
- },
17
- async authorize(credentials) {
18
- // TODO: Implement your own authentication logic
19
- // This is a placeholder - replace with your database lookup
20
- if (
21
- credentials?.email === "user@example.com" &&
22
- credentials?.password === "password"
23
- ) {
24
- return {
25
- id: "1",
26
- email: credentials.email,
27
- name: "Demo User",
28
- };
29
- }
30
- return null;
31
- },
32
- }),
33
- ],
34
- pages: {
35
- signIn: "/auth/signin",
36
- signOut: "/auth/signout",
37
- error: "/auth/error",
38
- },
39
- callbacks: {
40
- async jwt({ token, user }: { token: any; user: any }) {
41
- if (user) {
42
- token.id = user.id;
43
- }
44
- return token;
45
- },
46
- async session({ session, token }: { session: any; token: any }) {
47
- if (session.user) {
48
- session.user.id = token.id;
49
- }
50
- return session;
51
- },
52
- },
53
- session: {
54
- strategy: "jwt" as const,
55
- },
56
- secret: process.env.NEXTAUTH_SECRET,
57
- };
58
-
59
- const handler = NextAuth(authOptions);
60
-
61
- export { handler as GET, handler as POST };
@@ -1,30 +0,0 @@
1
- import { NextRequest, NextResponse } from "next/server";
2
- import Stripe from "stripe";
3
-
4
- const stripe = new Stripe(process.env.STRIPE_SECRET_KEY || "", {
5
- apiVersion: "2024-12-18.acacia",
6
- });
7
-
8
- export async function POST(request: NextRequest) {
9
- try {
10
- const { priceId, customerId } = await request.json();
11
-
12
- const session = await stripe.checkout.sessions.create({
13
- mode: "subscription",
14
- payment_method_types: ["card"],
15
- line_items: [
16
- {
17
- price: priceId || process.env.STRIPE_PRICE_ID,
18
- quantity: 1,
19
- },
20
- ],
21
- customer: customerId || undefined,
22
- success_url: `${process.env.NEXT_PUBLIC_APP_URL}/success?session_id={CHECKOUT_SESSION_ID}`,
23
- cancel_url: `${process.env.NEXT_PUBLIC_APP_URL}/pricing`,
24
- });
25
-
26
- return NextResponse.json({ url: session.url });
27
- } catch (error: any) {
28
- return NextResponse.json({ error: error.message }, { status: 500 });
29
- }
30
- }
@@ -1,9 +0,0 @@
1
- import { NextResponse } from 'next/server';
2
-
3
- export async function GET() {
4
- return NextResponse.json({
5
- status: 'ok',
6
- message: '{{pascalCase projectName}} API is running',
7
- timestamp: new Date().toISOString(),
8
- });
9
- }