arkos 1.4.0-canary.9 → 1.4.0-canary.91

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 (384) hide show
  1. package/cli.js +3 -5
  2. package/dist/cjs/app.js +104 -72
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/index.js.map +1 -1
  5. package/dist/cjs/exports/services/index.js +6 -1
  6. package/dist/cjs/exports/services/index.js.map +1 -1
  7. package/dist/cjs/modules/auth/auth.controller.js +9 -25
  8. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  9. package/dist/cjs/modules/auth/auth.router.js +23 -24
  10. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  11. package/dist/cjs/modules/auth/auth.service.js +35 -11
  12. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  13. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +16 -10
  14. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  15. package/dist/cjs/modules/base/base.controller.js +3 -4
  16. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  17. package/dist/cjs/modules/base/base.middlewares.js +34 -8
  18. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  19. package/dist/cjs/modules/base/base.router.js +4 -3
  20. package/dist/cjs/modules/base/base.router.js.map +1 -1
  21. package/dist/cjs/modules/base/base.service.js +68 -66
  22. package/dist/cjs/modules/base/base.service.js.map +1 -1
  23. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +18 -41
  24. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  25. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +22 -6
  26. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  27. package/dist/cjs/modules/debugger/debugger.service.js +11 -4
  28. package/dist/cjs/modules/debugger/debugger.service.js.map +1 -1
  29. package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +1 -1
  30. package/dist/cjs/modules/debugger/utils/loaded-components-logger.js.map +1 -1
  31. package/dist/cjs/modules/email/email.service.js +7 -5
  32. package/dist/cjs/modules/email/email.service.js.map +1 -1
  33. package/dist/cjs/modules/error-handler/error-handler.controller.js +22 -15
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  35. package/dist/cjs/modules/error-handler/utils/app-error.js +4 -3
  36. package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
  38. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  39. package/dist/cjs/modules/file-upload/file-upload.controller.js +5 -6
  40. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  41. package/dist/cjs/modules/file-upload/file-upload.router.js +17 -6
  42. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  43. package/dist/cjs/modules/file-upload/file-upload.service.js +38 -48
  44. package/dist/cjs/modules/file-upload/file-upload.service.js.map +1 -1
  45. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +134 -0
  46. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
  47. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +10 -5
  48. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  49. package/dist/cjs/modules/swagger/swagger.router.js +14 -6
  50. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +53 -0
  52. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
  53. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
  54. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  55. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +419 -0
  56. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
  57. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
  58. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  59. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -6
  60. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  61. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
  62. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  63. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
  64. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
  65. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
  66. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
  67. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
  68. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
  69. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
  70. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
  71. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +204 -0
  72. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
  73. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
  74. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  75. package/dist/cjs/server.js +33 -36
  76. package/dist/cjs/server.js.map +1 -1
  77. package/dist/cjs/types/arkos-config.js.map +1 -1
  78. package/dist/cjs/types/auth.js.map +1 -1
  79. package/dist/cjs/types/index.js.map +1 -1
  80. package/dist/cjs/types/new-arkos-config.js +3 -0
  81. package/dist/cjs/types/new-arkos-config.js.map +1 -0
  82. package/dist/cjs/types/router-config.js.map +1 -1
  83. package/dist/cjs/utils/arkos-router/index.js +93 -38
  84. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  85. package/dist/cjs/utils/arkos-router/route-config-validator.js +9 -8
  86. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +1 -1
  87. package/dist/cjs/utils/arkos-router/types/body-parser-config.js +3 -0
  88. package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +1 -0
  89. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  90. package/dist/cjs/utils/arkos-router/types/openapi-config.js +3 -0
  91. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +1 -0
  92. package/dist/cjs/utils/arkos-router/types/upload-config.js +3 -0
  93. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -0
  94. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +35 -6
  95. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
  96. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +237 -0
  97. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  98. package/dist/cjs/utils/cli/build.js +9 -13
  99. package/dist/cjs/utils/cli/build.js.map +1 -1
  100. package/dist/cjs/utils/cli/dev.js +26 -8
  101. package/dist/cjs/utils/cli/dev.js.map +1 -1
  102. package/dist/cjs/utils/cli/export-auth-action.js +78 -0
  103. package/dist/cjs/utils/cli/export-auth-action.js.map +1 -0
  104. package/dist/cjs/utils/cli/generate.js +28 -12
  105. package/dist/cjs/utils/cli/generate.js.map +1 -1
  106. package/dist/cjs/utils/cli/index.js +32 -18
  107. package/dist/cjs/utils/cli/index.js.map +1 -1
  108. package/dist/cjs/utils/cli/prisma-generate.js +37 -7
  109. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -1
  110. package/dist/cjs/utils/cli/start.js +12 -50
  111. package/dist/cjs/utils/cli/start.js.map +1 -1
  112. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  113. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +58 -0
  114. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  115. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  116. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  117. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  118. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  119. package/dist/cjs/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  120. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  121. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  122. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  123. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  124. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  125. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  126. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  127. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +5 -2
  128. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  129. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  130. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  131. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  132. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  133. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  134. package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  135. package/dist/cjs/utils/cli/utils/template-generators.js +2 -2
  136. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  137. package/dist/cjs/utils/cli/utils/watermark-stamper.js +14 -5
  138. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -1
  139. package/dist/cjs/utils/define-config.js +2 -0
  140. package/dist/cjs/utils/define-config.js.map +1 -0
  141. package/dist/cjs/utils/dotenv.helpers.js +2 -1
  142. package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
  143. package/dist/cjs/utils/dynamic-loader.js +7 -7
  144. package/dist/cjs/utils/dynamic-loader.js.map +1 -1
  145. package/dist/cjs/utils/features/port-and-host-allocator.js +28 -4
  146. package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -1
  147. package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
  148. package/dist/cjs/utils/helpers/arkos-config.helpers.js +45 -0
  149. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -0
  150. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +114 -46
  151. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  152. package/dist/cjs/utils/helpers/fs.helpers.js +1 -4
  153. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  154. package/dist/cjs/utils/helpers/query-parser.helpers.js +24 -0
  155. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +1 -1
  156. package/dist/cjs/utils/helpers/routers.helpers.js +57 -4
  157. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
  158. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +20 -31
  159. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  160. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -4
  161. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
  162. package/dist/cjs/utils/sheu.js.map +1 -1
  163. package/dist/cjs/utils/validate-schema.js +1 -1
  164. package/dist/cjs/utils/validate-schema.js.map +1 -1
  165. package/dist/esm/app.js +104 -72
  166. package/dist/esm/app.js.map +1 -1
  167. package/dist/esm/exports/index.js.map +1 -1
  168. package/dist/esm/exports/services/index.js +2 -1
  169. package/dist/esm/exports/services/index.js.map +1 -1
  170. package/dist/esm/modules/auth/auth.controller.js +10 -26
  171. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  172. package/dist/esm/modules/auth/auth.router.js +25 -26
  173. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  174. package/dist/esm/modules/auth/auth.service.js +35 -11
  175. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  176. package/dist/esm/modules/auth/utils/services/auth-action.service.js +12 -9
  177. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  178. package/dist/esm/modules/base/base.controller.js +3 -4
  179. package/dist/esm/modules/base/base.controller.js.map +1 -1
  180. package/dist/esm/modules/base/base.middlewares.js +34 -8
  181. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  182. package/dist/esm/modules/base/base.router.js +4 -3
  183. package/dist/esm/modules/base/base.router.js.map +1 -1
  184. package/dist/esm/modules/base/base.service.js +68 -66
  185. package/dist/esm/modules/base/base.service.js.map +1 -1
  186. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +20 -42
  187. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  188. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +22 -6
  189. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  190. package/dist/esm/modules/debugger/debugger.service.js +11 -4
  191. package/dist/esm/modules/debugger/debugger.service.js.map +1 -1
  192. package/dist/esm/modules/debugger/utils/loaded-components-logger.js +1 -1
  193. package/dist/esm/modules/debugger/utils/loaded-components-logger.js.map +1 -1
  194. package/dist/esm/modules/email/email.service.js +7 -5
  195. package/dist/esm/modules/email/email.service.js.map +1 -1
  196. package/dist/esm/modules/error-handler/error-handler.controller.js +22 -12
  197. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  198. package/dist/esm/modules/error-handler/utils/app-error.js +4 -3
  199. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  200. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +1 -1
  201. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  202. package/dist/esm/modules/file-upload/file-upload.controller.js +5 -6
  203. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  204. package/dist/esm/modules/file-upload/file-upload.router.js +17 -6
  205. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  206. package/dist/esm/modules/file-upload/file-upload.service.js +37 -47
  207. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  208. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js +131 -0
  209. package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
  210. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +9 -5
  211. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  212. package/dist/esm/modules/swagger/swagger.router.js +14 -6
  213. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  214. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js +48 -0
  215. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
  216. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
  217. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  218. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +413 -0
  219. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
  220. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
  221. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  222. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +3 -5
  223. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
  224. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
  225. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  226. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
  227. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
  228. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
  229. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
  230. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
  231. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
  232. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
  233. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
  234. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +199 -0
  235. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
  236. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
  237. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  238. package/dist/esm/server.js +31 -34
  239. package/dist/esm/server.js.map +1 -1
  240. package/dist/esm/types/arkos-config.js.map +1 -1
  241. package/dist/esm/types/auth.js.map +1 -1
  242. package/dist/esm/types/index.js.map +1 -1
  243. package/dist/esm/types/new-arkos-config.js +2 -0
  244. package/dist/esm/types/new-arkos-config.js.map +1 -0
  245. package/dist/esm/types/router-config.js.map +1 -1
  246. package/dist/esm/utils/arkos-router/index.js +93 -38
  247. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  248. package/dist/esm/utils/arkos-router/route-config-validator.js +9 -8
  249. package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
  250. package/dist/esm/utils/arkos-router/types/body-parser-config.js +2 -0
  251. package/dist/esm/utils/arkos-router/types/body-parser-config.js.map +1 -0
  252. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  253. package/dist/esm/utils/arkos-router/types/openapi-config.js +2 -0
  254. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -0
  255. package/dist/esm/utils/arkos-router/types/upload-config.js +2 -0
  256. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -0
  257. package/dist/esm/utils/arkos-router/utils/helpers/index.js +34 -5
  258. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  259. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +232 -0
  260. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
  261. package/dist/esm/utils/cli/build.js +9 -13
  262. package/dist/esm/utils/cli/build.js.map +1 -1
  263. package/dist/esm/utils/cli/dev.js +27 -9
  264. package/dist/esm/utils/cli/dev.js.map +1 -1
  265. package/dist/esm/utils/cli/export-auth-action.js +72 -0
  266. package/dist/esm/utils/cli/export-auth-action.js.map +1 -0
  267. package/dist/esm/utils/cli/generate.js +28 -12
  268. package/dist/esm/utils/cli/generate.js.map +1 -1
  269. package/dist/esm/utils/cli/index.js +32 -18
  270. package/dist/esm/utils/cli/index.js.map +1 -1
  271. package/dist/esm/utils/cli/prisma-generate.js +37 -7
  272. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  273. package/dist/esm/utils/cli/start.js +12 -50
  274. package/dist/esm/utils/cli/start.js.map +1 -1
  275. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  276. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +53 -0
  277. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -0
  278. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
  279. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
  280. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
  281. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
  282. package/dist/esm/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
  283. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
  284. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
  285. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
  286. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
  287. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
  288. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
  289. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
  290. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +5 -2
  291. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  292. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +8 -32
  293. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  294. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
  295. package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
  296. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
  297. package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
  298. package/dist/esm/utils/cli/utils/template-generators.js +1 -1
  299. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  300. package/dist/esm/utils/cli/utils/watermark-stamper.js +11 -5
  301. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
  302. package/dist/esm/utils/define-config.js +2 -0
  303. package/dist/esm/utils/define-config.js.map +1 -0
  304. package/dist/esm/utils/dotenv.helpers.js +2 -1
  305. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  306. package/dist/esm/utils/dynamic-loader.js +8 -8
  307. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  308. package/dist/esm/utils/features/port-and-host-allocator.js +28 -4
  309. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  310. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  311. package/dist/esm/utils/helpers/arkos-config.helpers.js +38 -0
  312. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -0
  313. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +113 -46
  314. package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -1
  315. package/dist/esm/utils/helpers/fs.helpers.js +1 -4
  316. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  317. package/dist/esm/utils/helpers/query-parser.helpers.js +24 -0
  318. package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
  319. package/dist/esm/utils/helpers/routers.helpers.js +55 -4
  320. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  321. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +20 -31
  322. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  323. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -4
  324. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  325. package/dist/esm/utils/sheu.js.map +1 -1
  326. package/dist/esm/utils/validate-schema.js +1 -1
  327. package/dist/esm/utils/validate-schema.js.map +1 -1
  328. package/dist/types/app.d.ts +2 -2
  329. package/dist/types/exports/index.d.ts +3 -2
  330. package/dist/types/exports/services/index.d.ts +2 -1
  331. package/dist/types/modules/auth/auth.controller.d.ts +2 -2
  332. package/dist/types/modules/auth/auth.router.d.ts +2 -3
  333. package/dist/types/modules/auth/auth.service.d.ts +6 -0
  334. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
  335. package/dist/types/modules/base/base.middlewares.d.ts +1 -1
  336. package/dist/types/modules/base/base.router.d.ts +2 -2
  337. package/dist/types/modules/base/base.service.d.ts +5 -36
  338. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -4
  339. package/dist/types/modules/debugger/debugger.service.d.ts +1 -1
  340. package/dist/types/modules/email/email.service.d.ts +1 -1
  341. package/dist/types/modules/file-upload/file-upload.router.d.ts +2 -2
  342. package/dist/types/modules/file-upload/file-upload.service.d.ts +24 -2
  343. package/dist/types/modules/file-upload/utils/helpers/file-extensions.d.ts +3 -0
  344. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  345. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  346. package/dist/types/modules/swagger/utils/helpers/class-validator-to-json-schema.d.ts +3 -0
  347. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -2
  348. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +3 -0
  349. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +2 -45
  350. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -1
  351. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -1
  352. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -1
  353. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +1 -1
  354. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +1 -1
  355. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +1 -1
  356. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +17 -0
  357. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +3 -3
  358. package/dist/types/server.d.ts +4 -6
  359. package/dist/types/types/arkos-config.d.ts +4 -181
  360. package/dist/types/types/auth.d.ts +1 -1
  361. package/dist/types/types/index.d.ts +5 -4
  362. package/dist/types/types/new-arkos-config.d.ts +167 -0
  363. package/dist/types/types/router-config.d.ts +16 -23
  364. package/dist/types/utils/arkos-router/types/body-parser-config.d.ts +18 -0
  365. package/dist/types/utils/arkos-router/types/index.d.ts +25 -10
  366. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +35 -0
  367. package/dist/types/utils/arkos-router/types/upload-config.d.ts +21 -0
  368. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +13 -0
  369. package/dist/types/utils/cli/export-auth-action.d.ts +4 -0
  370. package/dist/types/utils/cli/generate.d.ts +2 -1
  371. package/dist/types/utils/cli/utils/runtime-cli-commander.d.ts +11 -0
  372. package/dist/types/utils/cli/utils/watermark-stamper.d.ts +3 -3
  373. package/dist/types/utils/define-config.d.ts +0 -0
  374. package/dist/types/utils/features/port-and-host-allocator.d.ts +4 -2
  375. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
  376. package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +1 -0
  377. package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -0
  378. package/dist/types/utils/helpers/routers.helpers.d.ts +10 -0
  379. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +1 -1
  380. package/dist/types/utils/validate-schema.d.ts +1 -1
  381. package/package.json +3 -2
  382. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  383. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
  384. /package/dist/types/utils/cli/utils/template-generator/templates/{controller-template.d.ts → generate-controller-template.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/cli/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Command } from \"commander\";\nimport { buildCommand } from \"./build\";\nimport { devCommand } from \"./dev\";\nimport { startCommand } from \"./start\";\nimport { generateCommand } from \"./generate\";\nimport { getVersion } from \"./utils/cli.helpers\";\nimport prismaGenerateCommand from \"./prisma-generate\";\n\nconst program = new Command();\n\nprogram.name(\"arkos\").description(\"Arkos.js CLI\").version(getVersion());\n\nprogram\n .command(\"build\")\n .description(\"Build your Arkos project\")\n .option(\"-m, --module <type>\", \"Module type (cjs or esm)\", \"cjs\")\n .action(buildCommand);\n\nprogram\n .command(\"dev\")\n .description(\"Run development server\")\n .option(\"-p, --port <number>\", \"Port number\")\n .option(\"-h, --host <host>\", \"Host to bind to\")\n .action(devCommand);\n\nprogram\n .command(\"start\")\n .description(\"Run production server\")\n .option(\"-p, --port <number>\", \"Port number\")\n .option(\"-h, --host <host>\", \"Host to bind to\")\n .action(startCommand);\n\nconst generate = program\n .command(\"generate\")\n .alias(\"g\")\n .description(\"Generate arkos components\");\n\ngenerate\n .command(\"controller\")\n .alias(\"c\")\n .description(\"Generate a new controller\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the controller\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.controller);\n\ngenerate\n .command(\"service\")\n .alias(\"s\")\n .description(\"Generate a new service\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the service\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.service);\n\ngenerate\n .command(\"router\")\n .alias(\"r\")\n .description(\"Generate a new router\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the router\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.router);\n\ngenerate\n .command(\"auth-configs\")\n .alias(\"a\")\n .description(\"Generate auth configuration\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the router\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.authConfigs);\n\ngenerate\n .command(\"query-options\")\n .alias(\"q\")\n .description(\"Generate prisma query options\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for query options\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.queryOptions);\n\ngenerate\n .command(\"middlewares\")\n .alias(\"m\")\n .description(\"Generate a new interceptors file\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for middleware\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.interceptors);\n\ngenerate\n .command(\"interceptors\")\n .alias(\"i\")\n .description(\"Generate a new interceptors file\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for interceptors\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.interceptors);\n\ngenerate\n .command(\"hooks\")\n .alias(\"h\")\n .description(\"Generate a new service hooks file\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.hooks);\n\ngenerate\n .command(\"create-schema\")\n .alias(\"cs\")\n .description(\"Generate a new zod create schema file for a prisma model\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.createSchema);\n\ngenerate\n .command(\"update-schema\")\n .alias(\"us\")\n .description(\"Generate a new zod update schema file for a prisma model\")\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.updateSchema);\n\ngenerate\n .command(\"create-dto\")\n .alias(\"cd\")\n .description(\n \"Generate a new class-validator create dto file for a prisma model\"\n )\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.createDto);\n\ngenerate\n .command(\"update-dto\")\n .alias(\"ud\")\n .description(\n \"Generate a new class-validator update dto file for a prisma model\"\n )\n .requiredOption(\"-m, --model <name>, --module <name>\", \"Module name\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.updateDto);\n\nprogram\n .command(\"prisma\")\n .command(\"generate\")\n .description(\"Generate your @prisma/client and BaseService class types\")\n .action(prismaGenerateCommand);\n\nprogram.parse(process.argv);\n\nexport { program, buildCommand, devCommand, startCommand, generateCommand };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,qBAAqB,MAAM,mBAAmB,CAAC;AACtD,OAAO,uBAAuB,MAAM,sBAAsB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAExE,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,KAAK,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;KAC9C,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;KAC9C,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,MAAM,QAAQ,GAAG,OAAO;KACrB,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAE5C,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,gCAAgC,EAChC,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAEtC,QAAQ;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,6BAA6B,EAC7B,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAEnC,QAAQ;KACL,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,uBAAuB,CAAC;KAEpC,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,4BAA4B,EAC5B,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,4BAA4B,EAC5B,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAEvC,QAAQ;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,+BAA+B,EAC/B,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAQ;KACL,OAAO,CAAC,cAAc,CAAC;KACvB,KAAK,CAAC,GAAG,CAAC;KACV,KAAK,CAAC,aAAa,CAAC;KACpB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,8BAA8B,EAC9B,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAQ;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,mCAAmC,CAAC;KAEhD,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAEjC,QAAQ;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAQ;KACL,OAAO,CAAC,eAAe,CAAC;KACxB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CACV,mEAAmE,CACpE;KACA,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAErC,QAAQ;KACL,OAAO,CAAC,YAAY,CAAC;KACrB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CACV,mEAAmE,CACpE;KACA,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,CAC9B;KACA,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEjC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,YAAY,CAAC;KACzE,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAEnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import { Command } from \"commander\";\nimport { buildCommand } from \"./build\";\nimport { devCommand } from \"./dev\";\nimport { startCommand } from \"./start\";\nimport { generateCommand } from \"./generate\";\nimport { getVersion } from \"./utils/cli.helpers\";\nimport prismaGenerateCommand from \"./prisma-generate\";\nimport exportAuthActionCommand from \"./export-auth-action\";\n\nconst program = new Command();\n\nprogram.name(\"arkos\").description(\"Arkos.js CLI\").version(getVersion());\n\nprogram\n .command(\"build\")\n .description(\"Build your Arkos project\")\n .option(\"-m, --module <type>\", \"Module type (cjs or esm)\", \"cjs\")\n .action(buildCommand);\n\nprogram\n .command(\"dev\")\n .description(\"Run development server\")\n .option(\"-p, --port <number>\", \"Port number\")\n .option(\"-h, --host <host>\", \"Host to bind to\")\n .action(devCommand);\n\nprogram\n .command(\"start\")\n .description(\"Run production server\")\n .option(\"-p, --port <number>\", \"Port number\")\n .option(\"-h, --host <host>\", \"Host to bind to\")\n .action(startCommand);\n\nconst generate = program\n .command(\"generate\")\n .alias(\"g\")\n .description(\"Generate arkos components\");\n\ngenerate\n .command(\"controller\")\n .alias(\"c\")\n .description(\"Generate a new controller\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the controller\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.controller);\n\ngenerate\n .command(\"service\")\n .alias(\"s\")\n .description(\"Generate a new service\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the service\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.service);\n\ngenerate\n .command(\"router\")\n .alias(\"r\")\n .description(\"Generate a new router\")\n\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the router\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.router);\n\ngenerate\n .command(\"auth-configs\")\n .alias(\"a\")\n .description(\"Generate auth configuration\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for the router\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.authConfigs);\n\ngenerate\n .command(\"query-options\")\n .alias(\"q\")\n .description(\"Generate prisma query options\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for query options\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.queryOptions);\n\ngenerate\n .command(\"interceptors\")\n .alias(\"i\")\n .alias(\"middlewares\")\n .alias(\"m\")\n .description(\"Generate a new interceptors file\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for interceptors\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.interceptors);\n\ngenerate\n .command(\"hooks\")\n .alias(\"h\")\n .description(\"Generate a new service hooks file\")\n\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.hooks);\n\ngenerate\n .command(\"create-schema\")\n .alias(\"cs\")\n .description(\"Generate a new zod create schema file for a prisma model\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.createSchema);\n\ngenerate\n .command(\"update-schema\")\n .alias(\"us\")\n .description(\"Generate a new zod update schema file for a prisma model\")\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.updateSchema);\n\ngenerate\n .command(\"create-dto\")\n .alias(\"cd\")\n .description(\n \"Generate a new class-validator create dto file for a prisma model\"\n )\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.createDto);\n\ngenerate\n .command(\"update-dto\")\n .alias(\"ud\")\n .description(\n \"Generate a new class-validator update dto file for a prisma model\"\n )\n .option(\"-m, --module <name>\", \"Module name\")\n .option(\"--model <name>\", \"Module name (alias for --module)\")\n .option(\n \"-p, --path <path>\",\n \"Custom path for hooks\",\n \"src/modules/{{module-name}}\"\n )\n .action(generateCommand.updateDto);\n\nprogram\n .command(\"prisma\")\n .command(\"generate\")\n .description(\"Generate your @prisma/client and BaseService class types\")\n .action(prismaGenerateCommand);\n\nprogram\n .command(\"export\")\n .command(\"auth-action\")\n .description(\"Export file with an array containing all auth-actions\")\n .option(\"-o, --overwrite\", \"Overwrites all the changes on the object\")\n .option(\"-p, --path <path>\", \"Custom path for auth-actions\", \"cache/auth\")\n .action(exportAuthActionCommand);\n\nprogram.parse(process.argv);\n\nexport { program, buildCommand, devCommand, startCommand, generateCommand };\n"]}
@@ -6,9 +6,23 @@ import sheu from "../sheu.js";
6
6
  import path from "path";
7
7
  export default function prismaGenerateCommand() {
8
8
  const content = `
9
- import { ModelGroupRelationFields } from "./utils/helpers/base.service.helpers.js";
10
- import { ServiceBaseContext } from "./types/base.service.types.js";
11
- import { Prisma } from "@prisma/client"
9
+ import { ServiceBaseContext } from "arkos/services";
10
+ import { Prisma, PrismaClient } from "@prisma/client"
11
+
12
+ export interface PrismaField {
13
+ name: string;
14
+ type: string;
15
+ isOptional: boolean;
16
+ isArray: boolean;
17
+ foreignKeyField?: string;
18
+ foreignReferenceField?: string;
19
+ isRelation: boolean;
20
+ defaultValue?: any;
21
+ isId?: boolean;
22
+ isUnique?: boolean;
23
+ attributes: string[];
24
+ }
25
+
12
26
 
13
27
  export declare type ModelsGetPayload<T extends Record<string, any>> = {
14
28
  ${prismaSchemaParser.models.map((model) => `
@@ -36,8 +50,11 @@ export declare class BaseService<
36
50
  TModelName extends keyof ModelsGetPayload<any>
37
51
  > {
38
52
  modelName: TModelName;
39
- relationFields: ModelGroupRelationFields;
40
- prisma: any;
53
+ relationFields: {
54
+ singular: PrismaField[] | undefined;
55
+ list: PrismaField[] | undefined;
56
+ };
57
+ prisma: PrismaClient;
41
58
 
42
59
  constructor(modelName: TModelName);
43
60
 
@@ -105,8 +122,21 @@ export declare class BaseService<
105
122
  }
106
123
  `;
107
124
  execSync("npx prisma generate", { stdio: "inherit" });
108
- const filePath = path.resolve(__dirname, `../../../types/modules/base/base.service.d.ts`);
109
- fs.writeFileSync(filePath, content, {
125
+ const filePath = path.resolve(process.cwd(), `node_modules/@arkosjs/types/`);
126
+ fs.mkdirSync(filePath, { recursive: true });
127
+ fs.writeFileSync(filePath + "/base.service.d.ts", content, {
128
+ encoding: "utf8",
129
+ });
130
+ const pkgPath = path.resolve(process.cwd(), `node_modules/@arkosjs/types/package.json`);
131
+ const pkgJsonContent = `{
132
+ "name": "@arkosjs/types",
133
+ "version": "1.0.0",
134
+ "types": "./base.service.d.ts",
135
+ "exports": {
136
+ "./base.service": "./base.service.d.ts"
137
+ }
138
+ }`;
139
+ fs.writeFileSync(pkgPath, pkgJsonContent, {
110
140
  encoding: "utf8",
111
141
  });
112
142
  sheu.done("Types for @prisma/client and base service generated successfully!");
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-generate.js","sourceRoot":"","sources":["../../../../src/utils/cli/prisma-generate.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,qBAAqB;IACzC,MAAM,OAAO,GAAG;;;;;;EAMlB,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAC3B,CAAC,KAAK,EAAE,EAAE,CACN;OACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;2BACD,KAAK,CAAC,IAAI;6BACR,KAAK,CAAC,IAAI;+BACR,KAAK,CAAC,IAAI;gCACT,KAAK,CAAC,IAAI;6BACb,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;6BACd,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;6BACd,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;4BACf,KAAK,CAAC,IAAI;;CAErC,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EA,CAAC;IACE,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CACzB,SAAS,EACT,+CAA+C,CAClD,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;QAChC,QAAQ,EAAE,MAAM;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CACL,mEAAmE,CACtE,CAAC;AACN,CAAC","sourcesContent":["import prismaSchemaParser from \"../prisma/prisma-schema-parser\";\nimport { kebabCase } from \"../helpers/change-case.helpers\";\nimport fs from \"fs\";\nimport { execSync } from \"child_process\";\nimport sheu from \"../sheu\";\nimport path from \"path\";\n\nexport default function prismaGenerateCommand() {\n const content = `\nimport { ModelGroupRelationFields } from \"./utils/helpers/base.service.helpers\";\nimport { ServiceBaseContext } from \"./types/base.service.types\";\nimport { Prisma } from \"@prisma/client\"\n\nexport declare type ModelsGetPayload<T extends Record<string, any>> = {\n${prismaSchemaParser.models.map(\n (model) =>\n `\n \"${kebabCase(model.name)}\": {\n Delegate: Prisma.${model.name}Delegate,\n GetPayload: Prisma.${model.name}GetPayload<T>,\n FindManyArgs: Prisma.${model.name}FindManyArgs,\n FindFirstArgs: Prisma.${model.name}FindFirstArgs,\n CreateArgs: Prisma.${model.name}CreateArgs,\n CreateManyArgs: Prisma.${model.name}CreateManyArgs,\n UpdateArgs: Prisma.${model.name}UpdateArgs,\n UpdateManyArgs: Prisma.${model.name}UpdateManyArgs,\n DeleteArgs: Prisma.${model.name}DeleteArgs,\n DeleteManyArgs: Prisma.${model.name}DeleteManyArgs,\n CountArgs: Prisma.${model.name}CountArgs\n }\n`\n)}\n}\n\nexport type ExtractFilters<T> = T extends { where?: infer W; [x: string]: any } ? W : any;\nexport type ExtractQueryOptions<T, K extends keyof T = never> = Omit<T, K>;\nexport type ExtractData<T> = T extends { data: infer D; [x: string]: any } ? D : any;\n\nexport declare class BaseService<\n TModelName extends keyof ModelsGetPayload<any>\n> {\n modelName: TModelName;\n relationFields: ModelGroupRelationFields;\n prisma: any;\n \n constructor(modelName: TModelName);\n \n createOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CreateArgs'], 'data'>>(\n data: ExtractData<ModelsGetPayload<any>[TModelName]['CreateArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n createMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CreateManyArgs'], 'data'>>(\n data: ExtractData<ModelsGetPayload<any>[TModelName]['CreateManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'][]>;\n \n count<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CountArgs'], 'where'>>(\n filters?: ExtractFilters<ModelsGetPayload<any>[TModelName]['CountArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<number>;\n \n findMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindManyArgs'], 'where'>>(\n filters?: ExtractFilters<ModelsGetPayload<any>[TModelName]['FindManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'][]>;\n \n findById<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindFirstArgs'], 'where'>>(\n id: string | number, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'] | null>;\n \n findOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindFirstArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['FindManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'] | null>;\n \n updateOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['UpdateArgs'], 'where' | 'data'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['UpdateArgs']>, \n data: ExtractData<ModelsGetPayload<any>[TModelName]['UpdateArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n updateMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['UpdateManyArgs'], 'where' | 'data'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['UpdateManyArgs']>, \n data: ExtractData<ModelsGetPayload<any>[TModelName]['UpdateManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<{ count: number }>;\n \n deleteOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['DeleteArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['DeleteArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n deleteMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['DeleteManyArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['DeleteManyArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<{ count: number }>;\n}\n`;\n execSync(\"npx prisma generate\", { stdio: \"inherit\" });\n\n const filePath = path.resolve(\n __dirname,\n `../../../types/modules/base/base.service.d.ts`\n );\n fs.writeFileSync(filePath, content, {\n encoding: \"utf8\",\n });\n\n sheu.done(\n \"Types for @prisma/client and base service generated successfully!\"\n );\n}\n"]}
1
+ {"version":3,"file":"prisma-generate.js","sourceRoot":"","sources":["../../../../src/utils/cli/prisma-generate.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,qBAAqB;IACzC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;EAoBlB,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAC3B,CAAC,KAAK,EAAE,EAAE,CACN;OACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;2BACD,KAAK,CAAC,IAAI;6BACR,KAAK,CAAC,IAAI;+BACR,KAAK,CAAC,IAAI;gCACT,KAAK,CAAC,IAAI;6BACb,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;6BACd,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;6BACd,KAAK,CAAC,IAAI;iCACN,KAAK,CAAC,IAAI;4BACf,KAAK,CAAC,IAAI;;CAErC,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFA,CAAC;IACE,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CACzB,OAAO,CAAC,GAAG,EAAE,EACb,8BAA8B,CACjC,CAAC;IACF,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,EAAE,CAAC,aAAa,CAAC,QAAQ,GAAG,oBAAoB,EAAE,OAAO,EAAE;QACvD,QAAQ,EAAE,MAAM;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CACxB,OAAO,CAAC,GAAG,EAAE,EACb,0CAA0C,CAC7C,CAAC;IACF,MAAM,cAAc,GAAG;;;;;;;MAOrB,CAAC;IACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE;QACtC,QAAQ,EAAE,MAAM;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CACL,mEAAmE,CACtE,CAAC;AACN,CAAC","sourcesContent":["import prismaSchemaParser from \"../prisma/prisma-schema-parser\";\nimport { kebabCase } from \"../helpers/change-case.helpers\";\nimport fs from \"fs\";\nimport { execSync } from \"child_process\";\nimport sheu from \"../sheu\";\nimport path from \"path\";\n\nexport default function prismaGenerateCommand() {\n const content = `\nimport { ServiceBaseContext } from \"arkos/services\";\nimport { Prisma, PrismaClient } from \"@prisma/client\"\n\nexport interface PrismaField {\n name: string;\n type: string;\n isOptional: boolean;\n isArray: boolean;\n foreignKeyField?: string;\n foreignReferenceField?: string;\n isRelation: boolean;\n defaultValue?: any;\n isId?: boolean;\n isUnique?: boolean;\n attributes: string[];\n}\n\n\nexport declare type ModelsGetPayload<T extends Record<string, any>> = {\n${prismaSchemaParser.models.map(\n (model) =>\n `\n \"${kebabCase(model.name)}\": {\n Delegate: Prisma.${model.name}Delegate,\n GetPayload: Prisma.${model.name}GetPayload<T>,\n FindManyArgs: Prisma.${model.name}FindManyArgs,\n FindFirstArgs: Prisma.${model.name}FindFirstArgs,\n CreateArgs: Prisma.${model.name}CreateArgs,\n CreateManyArgs: Prisma.${model.name}CreateManyArgs,\n UpdateArgs: Prisma.${model.name}UpdateArgs,\n UpdateManyArgs: Prisma.${model.name}UpdateManyArgs,\n DeleteArgs: Prisma.${model.name}DeleteArgs,\n DeleteManyArgs: Prisma.${model.name}DeleteManyArgs,\n CountArgs: Prisma.${model.name}CountArgs\n }\n`\n)}\n}\n\nexport type ExtractFilters<T> = T extends { where?: infer W; [x: string]: any } ? W : any;\nexport type ExtractQueryOptions<T, K extends keyof T = never> = Omit<T, K>;\nexport type ExtractData<T> = T extends { data: infer D; [x: string]: any } ? D : any;\n\nexport declare class BaseService<\n TModelName extends keyof ModelsGetPayload<any>\n> {\n modelName: TModelName;\n relationFields: {\n singular: PrismaField[] | undefined;\n list: PrismaField[] | undefined;\n };\n prisma: PrismaClient;\n \n constructor(modelName: TModelName);\n \n createOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CreateArgs'], 'data'>>(\n data: ExtractData<ModelsGetPayload<any>[TModelName]['CreateArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n createMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CreateManyArgs'], 'data'>>(\n data: ExtractData<ModelsGetPayload<any>[TModelName]['CreateManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'][]>;\n \n count<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['CountArgs'], 'where'>>(\n filters?: ExtractFilters<ModelsGetPayload<any>[TModelName]['CountArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<number>;\n \n findMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindManyArgs'], 'where'>>(\n filters?: ExtractFilters<ModelsGetPayload<any>[TModelName]['FindManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'][]>;\n \n findById<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindFirstArgs'], 'where'>>(\n id: string | number, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'] | null>;\n \n findOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['FindFirstArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['FindManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload'] | null>;\n \n updateOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['UpdateArgs'], 'where' | 'data'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['UpdateArgs']>, \n data: ExtractData<ModelsGetPayload<any>[TModelName]['UpdateArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n updateMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['UpdateManyArgs'], 'where' | 'data'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['UpdateManyArgs']>, \n data: ExtractData<ModelsGetPayload<any>[TModelName]['UpdateManyArgs']>, \n queryOptions?: TOptions, \n context?: ServiceBaseContext\n ): Promise<{ count: number }>;\n \n deleteOne<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['DeleteArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['DeleteArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<ModelsGetPayload<TOptions>[TModelName]['GetPayload']>;\n \n deleteMany<TOptions extends ExtractQueryOptions<ModelsGetPayload<any>[TModelName]['DeleteManyArgs'], 'where'>>(\n filters: ExtractFilters<ModelsGetPayload<any>[TModelName]['DeleteManyArgs']>, \n queryOptions?: TOptions,\n context?: ServiceBaseContext\n ): Promise<{ count: number }>;\n}\n`;\n execSync(\"npx prisma generate\", { stdio: \"inherit\" });\n\n const filePath = path.resolve(\n process.cwd(),\n `node_modules/@arkosjs/types/`\n );\n fs.mkdirSync(filePath, { recursive: true });\n fs.writeFileSync(filePath + \"/base.service.d.ts\", content, {\n encoding: \"utf8\",\n });\n\n const pkgPath = path.resolve(\n process.cwd(),\n `node_modules/@arkosjs/types/package.json`\n );\n const pkgJsonContent = `{\n \"name\": \"@arkosjs/types\",\n \"version\": \"1.0.0\",\n \"types\": \"./base.service.d.ts\",\n \"exports\": {\n \"./base.service\": \"./base.service.d.ts\"\n }\n }`;\n fs.writeFileSync(pkgPath, pkgJsonContent, {\n encoding: \"utf8\",\n });\n\n sheu.done(\n \"Types for @prisma/client and base service generated successfully!\"\n );\n}\n"]}
@@ -2,14 +2,15 @@ import path from "path";
2
2
  import fs from "fs";
3
3
  import { spawn } from "child_process";
4
4
  import { loadEnvironmentVariables } from "../dotenv.helpers.js";
5
- import { importModule } from "../helpers/global.helpers.js";
6
5
  import { fullCleanCwd } from "../helpers/fs.helpers.js";
7
6
  import portAndHostAllocator from "../features/port-and-host-allocator.js";
8
7
  import watermarkStamper from "./utils/watermark-stamper.js";
9
8
  let child = null;
10
9
  let envFiles;
11
10
  export async function startCommand(options = {}) {
12
- process.env.NODE_ENV = "production";
11
+ if (process.env.NODE_ENV === "test" || !process.env.NODE_ENV)
12
+ process.env.NODE_ENV = "production";
13
+ process.env.ARKOS_BUILD = "true";
13
14
  envFiles = loadEnvironmentVariables();
14
15
  try {
15
16
  const { port, host } = options;
@@ -19,11 +20,12 @@ export async function startCommand(options = {}) {
19
20
  process.exit(1);
20
21
  }
21
22
  const env = {
22
- ...process.env,
23
23
  NODE_ENV: "production",
24
+ ...process.env,
24
25
  ...(port && { CLI_PORT: port }),
25
26
  ...(host && { CLI_HOST: host }),
26
27
  ARKOS_BUILD: "true",
28
+ CLI: "false",
27
29
  };
28
30
  child = spawn("node", [entryPoint], {
29
31
  stdio: "inherit",
@@ -35,53 +37,13 @@ export async function startCommand(options = {}) {
35
37
  child.kill();
36
38
  process.exit(0);
37
39
  });
38
- const checkConfig = async () => {
39
- try {
40
- const { getArkosConfig } = await importModule("../../server");
41
- const config = getArkosConfig();
42
- if (config && config.available) {
43
- const hostAndPort = await portAndHostAllocator.getHostAndAvailablePort(env, {
44
- ...config,
45
- logWarning: true,
46
- });
47
- watermarkStamper.stamp({
48
- envFiles,
49
- port: "port" in config && config?.port !== undefined
50
- ? hostAndPort.port
51
- : undefined,
52
- host: hostAndPort.host,
53
- });
54
- return true;
55
- }
56
- return false;
57
- }
58
- catch (err) {
59
- if (!err?.message?.includes("../../server"))
60
- console.error(err);
61
- return false;
62
- }
63
- };
64
- const waitForConfig = async () => {
65
- let attempts = 0;
66
- const maxAttempts = 15;
67
- while (attempts < maxAttempts) {
68
- const ready = await checkConfig();
69
- if (ready)
70
- break;
71
- await new Promise((resolve) => setTimeout(resolve, 100));
72
- attempts++;
73
- }
74
- if (attempts >= maxAttempts) {
75
- if (env.CLI_PORT || env.PORT)
76
- portAndHostAllocator.logWarnings();
77
- watermarkStamper.stamp({
78
- envFiles,
79
- host: env.CLI_HOST || env.HOST,
80
- port: env.CLI_PORT || env.PORT,
81
- });
82
- }
83
- };
84
- waitForConfig();
40
+ const hostAndPort = await portAndHostAllocator.getHostAndAvailablePort(env, {
41
+ logWarning: true,
42
+ });
43
+ watermarkStamper.stamp({
44
+ envFiles,
45
+ ...hostAndPort,
46
+ });
85
47
  }
86
48
  catch (error) {
87
49
  console.error("❌ Production server failed to start:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/utils/cli/start.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AAOzD,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,QAA8B,CAAC;AAKnC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAwB,EAAE;IAC3D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;IACpC,QAAQ,GAAG,wBAAwB,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CACX,qDAAqD,YAAY,CAAC,UAAU,CAAC,EAAE,CAChF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAA4B;YACnC,GAAG,OAAO,CAAC,GAAG;YACd,QAAQ,EAAE,YAAY;YACtB,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/B,WAAW,EAAE,MAAM;SACpB,CAAC;QAEF,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;YAClC,KAAK,EAAE,SAAS;YAChB,GAAG;YACH,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAGH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAExB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;gBAE9D,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;gBAEhC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC/B,MAAM,WAAW,GACf,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,GAAG,EAAE;wBACtD,GAAG,MAAM;wBACT,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBAEL,gBAAgB,CAAC,KAAK,CAAC;wBACrB,QAAQ;wBACR,IAAI,EACF,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;4BAC5C,CAAC,CAAC,WAAW,CAAC,IAAI;4BAClB,CAAC,CAAC,SAAS;wBACf,IAAI,EAAE,WAAW,CAAC,IAAI;qBACvB,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;oBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,MAAM,WAAW,GAAG,EAAE,CAAC;YAEvB,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;gBAClC,IAAI,KAAK;oBAAE,MAAM;gBACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,QAAQ,EAAE,CAAC;YACb,CAAC;YAED,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;oBAAE,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAEjE,gBAAgB,CAAC,KAAK,CAAC;oBACrB,QAAQ;oBACR,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;oBAC9B,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,aAAa,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,gCAAgC;IAC7C,KAAsB,EAAE,IAAI,EAAE,EAAE,CAAC;IAClC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC","sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport { ChildProcess, spawn } from \"child_process\";\nimport { loadEnvironmentVariables } from \"../dotenv.helpers\";\nimport { importModule } from \"../helpers/global.helpers\";\nimport { fullCleanCwd } from \"../helpers/fs.helpers\";\nimport portAndHostAllocator from \"../features/port-and-host-allocator\";\nimport watermarkStamper from \"./utils/watermark-stamper\";\n\ninterface StartOptions {\n port?: string;\n host?: string;\n}\n\nlet child: ChildProcess | null = null;\nlet envFiles: string[] | undefined;\n\n/**\n * Production start command for the arkos CLI\n */\nexport async function startCommand(options: StartOptions = {}) {\n process.env.NODE_ENV = \"production\";\n envFiles = loadEnvironmentVariables();\n\n try {\n const { port, host } = options;\n\n const entryPoint = path.join(process.cwd(), \".build\", \"src\", \"app.js\");\n\n if (!fs.existsSync(path.join(entryPoint))) {\n console.error(\n `❌ Could not find built application entry point at ${fullCleanCwd(entryPoint)}`\n );\n process.exit(1);\n }\n\n const env: { [x: string]: string } = {\n ...process.env,\n NODE_ENV: \"production\",\n ...(port && { CLI_PORT: port }),\n ...(host && { CLI_HOST: host }),\n ARKOS_BUILD: \"true\",\n };\n\n child = spawn(\"node\", [entryPoint], {\n stdio: \"inherit\",\n env,\n shell: true,\n });\n\n // Handle process exit\n process.on(\"SIGINT\", () => {\n if (child) child.kill();\n\n process.exit(0);\n });\n\n const checkConfig = async () => {\n try {\n const { getArkosConfig } = await importModule(\"../../server\");\n\n const config = getArkosConfig();\n\n if (config && config.available) {\n const hostAndPort =\n await portAndHostAllocator.getHostAndAvailablePort(env, {\n ...config,\n logWarning: true,\n });\n\n watermarkStamper.stamp({\n envFiles,\n port:\n \"port\" in config && config?.port !== undefined\n ? hostAndPort.port\n : undefined,\n host: hostAndPort.host,\n });\n return true;\n }\n return false;\n } catch (err: any) {\n if (!err?.message?.includes(\"../../server\")) console.error(err);\n return false;\n }\n };\n\n const waitForConfig = async () => {\n let attempts = 0;\n const maxAttempts = 15;\n\n while (attempts < maxAttempts) {\n const ready = await checkConfig();\n if (ready) break;\n await new Promise((resolve) => setTimeout(resolve, 100));\n attempts++;\n }\n\n if (attempts >= maxAttempts) {\n if (env.CLI_PORT || env.PORT) portAndHostAllocator.logWarnings();\n\n watermarkStamper.stamp({\n envFiles,\n host: env.CLI_HOST || env.HOST,\n port: env.CLI_PORT || env.PORT,\n });\n }\n };\n\n waitForConfig();\n } catch (error) {\n console.error(\"❌ Production server failed to start:\", error);\n process.exit(1);\n }\n}\n\n/**\n * Help function to help other processes to terminate the production server child process\n */\nexport function killProductionServerChildProcess() {\n (child as ChildProcess)?.kill?.();\n child = null;\n}\n"]}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../src/utils/cli/start.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AAOzD,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,QAA8B,CAAC;AAKnC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAwB,EAAE;IAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAEjC,QAAQ,GAAG,wBAAwB,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CACX,qDAAqD,YAAY,CAAC,UAAU,CAAC,EAAE,CAChF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAA4B;YACnC,QAAQ,EAAE,YAAY;YACtB,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/B,WAAW,EAAE,MAAM;YACnB,GAAG,EAAE,OAAO;SACb,CAAC;QAEF,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;YAClC,KAAK,EAAE,SAAS;YAChB,GAAG;YACH,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAExB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CACpE,GAAG,EACH;YACE,UAAU,EAAE,IAAI;SACjB,CACF,CAAC;QAEF,gBAAgB,CAAC,KAAK,CAAC;YACrB,QAAQ;YACR,GAAG,WAAW;SACf,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,gCAAgC;IAC7C,KAAsB,EAAE,IAAI,EAAE,EAAE,CAAC;IAClC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC","sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport { ChildProcess, spawn } from \"child_process\";\nimport { loadEnvironmentVariables } from \"../dotenv.helpers\";\nimport { fullCleanCwd } from \"../helpers/fs.helpers\";\nimport portAndHostAllocator from \"../features/port-and-host-allocator\";\nimport watermarkStamper from \"./utils/watermark-stamper\";\n\ninterface StartOptions {\n port?: string;\n host?: string;\n}\n\nlet child: ChildProcess | null = null;\nlet envFiles: string[] | undefined;\n\n/**\n * Production start command for the arkos CLI\n */\nexport async function startCommand(options: StartOptions = {}) {\n if (process.env.NODE_ENV === \"test\" || !process.env.NODE_ENV)\n process.env.NODE_ENV = \"production\";\n process.env.ARKOS_BUILD = \"true\";\n\n envFiles = loadEnvironmentVariables();\n\n try {\n const { port, host } = options;\n\n const entryPoint = path.join(process.cwd(), \".build\", \"src\", \"app.js\");\n\n if (!fs.existsSync(path.join(entryPoint))) {\n console.error(\n `❌ Could not find built application entry point at ${fullCleanCwd(entryPoint)}`\n );\n process.exit(1);\n }\n\n const env: { [x: string]: string } = {\n NODE_ENV: \"production\",\n ...process.env,\n ...(port && { CLI_PORT: port }),\n ...(host && { CLI_HOST: host }),\n ARKOS_BUILD: \"true\",\n CLI: \"false\",\n };\n\n child = spawn(\"node\", [entryPoint], {\n stdio: \"inherit\",\n env,\n shell: true,\n });\n\n process.on(\"SIGINT\", () => {\n if (child) child.kill();\n\n process.exit(0);\n });\n\n const hostAndPort = await portAndHostAllocator.getHostAndAvailablePort(\n env,\n {\n logWarning: true,\n }\n );\n\n watermarkStamper.stamp({\n envFiles,\n ...hostAndPort,\n });\n } catch (error) {\n console.error(\"❌ Production server failed to start:\", error);\n process.exit(1);\n }\n}\n\n/**\n * Help function to help other processes to terminate the production server child process\n */\nexport function killProductionServerChildProcess() {\n (child as ChildProcess)?.kill?.();\n child = null;\n}\n"]}
@@ -11,6 +11,6 @@ export function killServerChildProcess() {
11
11
  killProductionServerChildProcess();
12
12
  }
13
13
  export function getVersion() {
14
- return "1.4.0-canary.9";
14
+ return "1.4.0-canary.91";
15
15
  }
16
16
  //# sourceMappingURL=cli.helpers.js.map
@@ -0,0 +1,53 @@
1
+ import { authActionService } from "../../../exports/services/index.js";
2
+ import fs from "fs/promises";
3
+ import path from "path";
4
+ import sheu from "../../sheu.js";
5
+ import { getUserFileExtension } from "../../helpers/fs.helpers.js";
6
+ import { importModule } from "../../helpers/global.helpers.js";
7
+ import deepmerge from "../../helpers/deepmerge.helper.js";
8
+ import { killDevelopmentServerChildProcess } from "../dev.js";
9
+ class RuntimeCliCommander {
10
+ getOptions() {
11
+ return JSON.parse(process.env.CLI_COMMAND_OPTIONS || "{}");
12
+ }
13
+ end() {
14
+ killDevelopmentServerChildProcess();
15
+ process.exit(1);
16
+ }
17
+ async handle() {
18
+ const command = process.env.CLI_COMMAND;
19
+ if (command === "EXPORT_AUTH_ACTION")
20
+ await this.exportAuthAction();
21
+ }
22
+ async exportAuthAction() {
23
+ const options = this.getOptions();
24
+ const authActions = authActionService.getAll();
25
+ const targetPath = path.join(process.cwd(), options.path || "", `auth-actions.${getUserFileExtension()}`);
26
+ let finalAuthActions = authActions;
27
+ let isUpdate = false;
28
+ if (!options.overwrite) {
29
+ try {
30
+ const existingModule = await importModule(targetPath);
31
+ const existingActions = existingModule.default || existingModule;
32
+ finalAuthActions = deepmerge(existingActions, authActions);
33
+ isUpdate = true;
34
+ }
35
+ catch (error) { }
36
+ }
37
+ const fileContent = `const authActions = ${JSON.stringify(finalAuthActions, null, 2)};
38
+
39
+ export default authActions;
40
+ `;
41
+ await fs.mkdir(path.dirname(targetPath), { recursive: true });
42
+ await fs.writeFile(targetPath, fileContent, "utf-8");
43
+ console.info("");
44
+ if (isUpdate)
45
+ sheu.done("Auth actions updated and exported successfully!");
46
+ else
47
+ sheu.done("Auth actions exported successfully!");
48
+ this.end();
49
+ }
50
+ }
51
+ const runtimeCliCommander = new RuntimeCliCommander();
52
+ export default runtimeCliCommander;
53
+ //# sourceMappingURL=runtime-cli-commander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-cli-commander.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/runtime-cli-commander.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,QAAQ,CAAC;AAS3D,MAAM,mBAAmB;IAUvB,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC;IAC7D,CAAC;IAOD,GAAG;QACD,iCAAiC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAYD,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACxC,IAAI,OAAO,KAAK,oBAAoB;YAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtE,CAAC;IAmBD,KAAK,CAAC,gBAAgB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAA4C,CAAC;QAC5E,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,OAAO,CAAC,GAAG,EAAE,EACb,OAAO,CAAC,IAAI,IAAI,EAAE,EAClB,gBAAgB,oBAAoB,EAAE,EAAE,CACzC,CAAC;QAEF,IAAI,gBAAgB,GAAG,WAAW,CAAC;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;gBACjE,gBAAgB,GAAG,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBAC3D,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;;;CAGvF,CAAC;QAEE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAErD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;;YACtE,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAEtD,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;CACF;AAOD,MAAM,mBAAmB,GAAwB,IAAI,mBAAmB,EAAE,CAAC;AAE3E,eAAe,mBAAmB,CAAC","sourcesContent":["import { authActionService } from \"../../../exports/services\";\nimport fs from \"fs/promises\";\nimport path from \"path\";\nimport sheu from \"../../sheu\";\nimport { getUserFileExtension } from \"../../helpers/fs.helpers\";\nimport { importModule } from \"../../helpers/global.helpers\";\nimport deepmerge from \"../../helpers/deepmerge.helper\";\nimport { killDevelopmentServerChildProcess } from \"../dev\";\n\n/**\n * Runtime CLI Commander class for handling command-line interface commands\n * during runtime execution. Provides methods for executing various CLI commands\n * and managing their lifecycle.\n *\n * @class RuntimeCliCommander\n */\nclass RuntimeCliCommander {\n /**\n * Parses and returns CLI command options from environment variables\n *\n * @returns {Object} Parsed CLI command options object\n *\n * @example\n * // Returns { overwrite: true, path: './exports' }\n * getOptions();\n */\n getOptions(): { overwrite?: boolean; path: string } {\n return JSON.parse(process.env.CLI_COMMAND_OPTIONS || \"{}\");\n }\n\n /**\n * Terminates the development server child process and exits the current process\n *\n * @returns {void}\n */\n end(): void {\n killDevelopmentServerChildProcess();\n process.exit(1);\n }\n\n /**\n * Main command handler that routes to specific command implementations\n * based on the CLI_COMMAND environment variable\n *\n * @returns {Promise<void>}\n *\n * @example\n * // Handles EXPORT_AUTH_ACTION command\n * await handle();\n */\n async handle(): Promise<void> {\n const command = process.env.CLI_COMMAND;\n if (command === \"EXPORT_AUTH_ACTION\") await this.exportAuthAction();\n }\n\n /**\n * Exports authentication actions to a file, with options for merging with existing\n * actions and specifying output path\n *\n * @param {Object} [options] - Export configuration options\n * @param {boolean} [options.overwrite] - Whether to overwrite existing file (default: false)\n * @param {string} [options.path] - Custom output directory path\n * @returns {Promise<void>}\n *\n * @example\n * // Export with default options (merge if exists)\n * await exportAuthAction();\n *\n * @example\n * // Export with overwrite and custom path\n * await exportAuthAction({ overwrite: true, path: './custom-exports' });\n */\n async exportAuthAction(): Promise<void> {\n const options = this.getOptions() as { overwrite?: boolean; path?: string };\n const authActions = authActionService.getAll();\n\n const targetPath = path.join(\n process.cwd(),\n options.path || \"\",\n `auth-actions.${getUserFileExtension()}`\n );\n\n let finalAuthActions = authActions;\n let isUpdate = false;\n\n if (!options.overwrite) {\n try {\n const existingModule = await importModule(targetPath);\n const existingActions = existingModule.default || existingModule;\n finalAuthActions = deepmerge(existingActions, authActions);\n isUpdate = true;\n } catch (error) {}\n }\n\n const fileContent = `const authActions = ${JSON.stringify(finalAuthActions, null, 2)};\n\nexport default authActions;\n`;\n\n await fs.mkdir(path.dirname(targetPath), { recursive: true });\n await fs.writeFile(targetPath, fileContent, \"utf-8\");\n\n console.info(\"\");\n if (isUpdate) sheu.done(\"Auth actions updated and exported successfully!\");\n else sheu.done(\"Auth actions exported successfully!\");\n\n this.end();\n }\n}\n\n/**\n * Singleton instance of RuntimeCliCommander\n *\n * @type {RuntimeCliCommander}\n */\nconst runtimeCliCommander: RuntimeCliCommander = new RuntimeCliCommander();\n\nexport default runtimeCliCommander;\n"]}
@@ -13,11 +13,15 @@ export function generateCreateDtoTemplate(options) {
13
13
  const isUserModule = modelName.kebab === "user";
14
14
  const enumsUsed = new Set();
15
15
  const validatorsUsed = new Set();
16
- const nestedDtosUsed = new Set();
16
+ const transformersUsed = new Set();
17
+ const nestedDtoClasses = [];
17
18
  let dtoFields = [];
18
19
  for (const field of model.fields) {
20
+ if (field.isId || restrictedFields.includes(field.name)) {
21
+ continue;
22
+ }
19
23
  const isForeignKey = model.fields.some((f) => f.foreignKeyField === field.name);
20
- if (field.isId || restrictedFields.includes(field.name) || isForeignKey) {
24
+ if (isForeignKey) {
21
25
  continue;
22
26
  }
23
27
  if (field.isRelation) {
@@ -25,15 +29,16 @@ export function generateCreateDtoTemplate(options) {
25
29
  continue;
26
30
  const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
27
31
  if (referencedModel) {
28
- const refField = field.foreignReferenceField || "id";
29
32
  const isOptional = field.isOptional || field.defaultValue !== undefined;
30
33
  const optionalDecorator = isOptional ? " @IsOptional()\n" : "";
31
34
  const typeModifier = isTypeScript ? (isOptional ? "?" : "!") : "";
32
35
  validatorsUsed.add("IsOptional");
33
36
  validatorsUsed.add("ValidateNested");
34
- validatorsUsed.add("Type");
35
- nestedDtosUsed.add("OnlyIdDto");
36
- dtoFields.push(`${optionalDecorator} @ValidateNested()\n @Type(() => OnlyIdDto)\n ${field.name}${typeModifier}: OnlyIdDto;`);
37
+ transformersUsed.add("Type");
38
+ const relationDtoName = `${referencedModel.name}ForCreate${modelName.pascal}Dto`;
39
+ const nestedDtoClass = generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript);
40
+ nestedDtoClasses.push(nestedDtoClass);
41
+ dtoFields.push(`${optionalDecorator} @ValidateNested()\n @Type(() => ${relationDtoName})\n ${field.name}${typeModifier}: ${relationDtoName};`);
37
42
  }
38
43
  continue;
39
44
  }
@@ -48,15 +53,33 @@ export function generateCreateDtoTemplate(options) {
48
53
  const enumImports = enumsUsed.size > 0
49
54
  ? `import { ${Array.from(enumsUsed).join(", ")} } from "@prisma/client";\n`
50
55
  : "";
51
- const nestedDtoImports = nestedDtosUsed.size > 0
52
- ? `import { ${Array.from(nestedDtosUsed).join(", ")} } from "../../utils/dtos/only-id-dto.js";\n`
56
+ const validatorImports = validatorsUsed.size > 0
57
+ ? `import { ${Array.from(validatorsUsed).join(", ")} } from "class-validator";\n`
58
+ : "";
59
+ const transformerImports = transformersUsed.size > 0
60
+ ? `import { ${Array.from(transformersUsed).join(", ")} } from "class-transformer";\n`
53
61
  : "";
54
- const validatorImports = `import { ${Array.from(validatorsUsed).join(", ")} } from "class-validator";\nimport { Type } from "class-transformer";\n`;
55
- return `${validatorImports}${nestedDtoImports}${enumImports}
62
+ const nestedDtoSection = nestedDtoClasses.length > 0 ? `\n${nestedDtoClasses.join("\n\n")}\n` : "";
63
+ return `${validatorImports}${transformerImports}${enumImports}${nestedDtoSection}
56
64
  export default class Create${modelName.pascal}Dto {
57
65
  ${dtoFields.join("\n\n")}
58
66
  }`;
59
67
  }
68
+ function generateNestedDtoClass(field, referencedModel, dtoName, validatorsUsed, enumsUsed, isTypeScript) {
69
+ const fields = [];
70
+ const refFieldName = field.foreignReferenceField || "id";
71
+ const refFieldAsPrismaField = referencedModel.fields.find((f) => f.name === refFieldName);
72
+ if (refFieldAsPrismaField) {
73
+ if (prismaSchemaParser.isEnum(refFieldAsPrismaField.type))
74
+ enumsUsed.add(refFieldAsPrismaField.type);
75
+ const { decorators, type } = generateClassValidatorField(refFieldAsPrismaField, false, validatorsUsed);
76
+ const typeModifier = isTypeScript ? "!" : "";
77
+ fields.push(`${decorators} ${refFieldAsPrismaField.name}${typeModifier}: ${type};`);
78
+ }
79
+ return `class ${dtoName} {
80
+ ${fields.join("\n\n")}
81
+ }`;
82
+ }
60
83
  function generateClassValidatorField(field, isUserModule, validatorsUsed) {
61
84
  let decorators = [];
62
85
  let type = mapPrismaTypeToTS(field.type);
@@ -112,7 +135,7 @@ function getValidatorsForType(field, isUserModule) {
112
135
  case "Int":
113
136
  case "Float":
114
137
  case "Decimal":
115
- validators.push(`@IsNumber({}, ${arrayEach})`);
138
+ validators.push(`@IsNumber({}${arrayEach})`);
116
139
  break;
117
140
  case "Boolean":
118
141
  validators.push(`@IsBoolean(${arrayEach})`);
@@ -121,11 +144,13 @@ function getValidatorsForType(field, isUserModule) {
121
144
  validators.push(`@IsDate(${arrayEach})`);
122
145
  break;
123
146
  case "BigInt":
124
- validators.push(`@IsNumber({}, ${arrayEach})`);
147
+ validators.push(`@IsNumber({}${arrayEach})`);
125
148
  break;
126
149
  case "Json":
127
150
  validators.push(`@IsObject(${arrayEach})`);
128
151
  break;
152
+ case "Bytes":
153
+ break;
129
154
  default:
130
155
  break;
131
156
  }
@@ -150,7 +175,7 @@ function mapPrismaTypeToTS(prismaType) {
150
175
  case "BigInt":
151
176
  return "bigint";
152
177
  default:
153
- return "any";
178
+ return prismaSchemaParser.isEnum(prismaType) ? prismaType : "any";
154
179
  }
155
180
  }
156
181
  //# sourceMappingURL=create-dto-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-dto-template.js","sourceRoot":"","sources":["../../../../../../../../src/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"../../../../../prisma/prisma-schema-parser\";\nimport { PrismaField } from \"../../../../../prisma/types\";\nimport { getUserFileExtension } from \"../../../../../helpers/fs.helpers\";\nimport { TemplateOptions } from \"../../../template-generators\";\n\nexport function generateCreateDtoTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n if (!modelName)\n throw new Error(\"Module name is required for create-dto template\");\n\n const model = prismaSchemaParser.models.find(\n (m) => m.name.toLowerCase() === modelName.pascal.toLowerCase()\n );\n\n if (!model)\n throw new Error(`Model ${modelName.pascal} not found in Prisma schema`);\n\n const ext = getUserFileExtension();\n const isTypeScript = ext === \"ts\";\n const restrictedFields = [\"id\", \"createdAt\", \"updatedAt\", \"deletedAt\"];\n const isUserModule = modelName.kebab === \"user\";\n const enumsUsed = new Set<string>();\n const validatorsUsed = new Set<string>();\n const nestedDtosUsed = new Set<string>();\n\n let dtoFields: string[] = [];\n\n for (const field of model.fields) {\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n\n if (field.isId || restrictedFields.includes(field.name) || isForeignKey) {\n continue;\n }\n\n if (field.isRelation) {\n if (field.isArray) continue;\n\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n\n if (referencedModel) {\n const refField = field.foreignReferenceField || \"id\";\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n const optionalDecorator = isOptional ? \" @IsOptional()\\n\" : \"\";\n const typeModifier = isTypeScript ? (isOptional ? \"?\" : \"!\") : \"\";\n\n validatorsUsed.add(\"IsOptional\");\n validatorsUsed.add(\"ValidateNested\");\n validatorsUsed.add(\"Type\");\n nestedDtosUsed.add(\"OnlyIdDto\");\n\n dtoFields.push(\n `${optionalDecorator} @ValidateNested()\\n @Type(() => OnlyIdDto)\\n ${field.name}${typeModifier}: OnlyIdDto;`\n );\n }\n continue;\n }\n\n if (prismaSchemaParser.isEnum(field.type)) {\n enumsUsed.add(field.type);\n }\n\n const { decorators, type } = generateClassValidatorField(\n field,\n isUserModule,\n validatorsUsed\n );\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n const typeModifier = isTypeScript ? (isOptional ? \"?\" : \"!\") : \"\";\n dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);\n }\n\n const enumImports =\n enumsUsed.size > 0\n ? `import { ${Array.from(enumsUsed).join(\", \")} } from \"@prisma/client\";\\n`\n : \"\";\n\n const nestedDtoImports =\n nestedDtosUsed.size > 0\n ? `import { ${Array.from(nestedDtosUsed).join(\", \")} } from \"../../utils/dtos/only-id-dto\";\\n`\n : \"\";\n\n const validatorImports = `import { ${Array.from(validatorsUsed).join(\", \")} } from \"class-validator\";\\nimport { Type } from \"class-transformer\";\\n`;\n\n return `${validatorImports}${nestedDtoImports}${enumImports}\nexport default class Create${modelName.pascal}Dto {\n${dtoFields.join(\"\\n\\n\")}\n}`;\n}\n\nfunction generateClassValidatorField(\n field: PrismaField,\n isUserModule: boolean,\n validatorsUsed: Set<string>\n): { decorators: string; type: string } {\n let decorators: string[] = [];\n let type = mapPrismaTypeToTS(field.type);\n\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n if (isOptional) {\n decorators.push(\"@IsOptional()\");\n validatorsUsed.add(\"IsOptional\");\n }\n\n if (field.isArray) {\n decorators.push(\"@IsArray()\");\n validatorsUsed.add(\"IsArray\");\n type = `${type}[]`;\n }\n\n if (prismaSchemaParser.isEnum(field.type)) {\n decorators.push(\n `@IsEnum(${field.type}${field.isArray ? \", { each: true }\" : \"\"})`\n );\n validatorsUsed.add(\"IsEnum\");\n type = field.isArray ? `${field.type}[]` : field.type;\n } else {\n const fieldValidators = getValidatorsForType(field, isUserModule);\n decorators.push(...fieldValidators);\n fieldValidators.forEach((decorator) => {\n const validatorName = decorator.match(/@(\\w+)/)?.[1];\n if (validatorName) validatorsUsed.add(validatorName);\n });\n }\n\n return {\n decorators:\n decorators.map((d) => ` ${d}`).join(\"\\n\") +\n (decorators.length > 0 ? \"\\n\" : \"\"),\n type,\n };\n}\n\nfunction getValidatorsForType(\n field: PrismaField,\n isUserModule: boolean\n): string[] {\n const validators: string[] = [];\n const arrayEach = field.isArray ? \", { each: true }\" : \"\";\n\n if (isUserModule) {\n if (field.name === \"email\") {\n return [\"@IsEmail()\"];\n } else if (field.name === \"password\") {\n return [\n \"@IsString()\",\n \"@MinLength(8)\",\n '@Matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)/, { message: \"Password must contain at least one uppercase letter, one lowercase letter, and one number\" })',\n ];\n }\n }\n\n switch (field.type) {\n case \"String\":\n validators.push(`@IsString(${arrayEach})`);\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n validators.push(`@IsNumber({}, ${arrayEach})`);\n break;\n case \"Boolean\":\n validators.push(`@IsBoolean(${arrayEach})`);\n break;\n case \"DateTime\":\n validators.push(`@IsDate(${arrayEach})`);\n break;\n case \"BigInt\":\n validators.push(`@IsNumber({}, ${arrayEach})`);\n break;\n case \"Json\":\n validators.push(`@IsObject(${arrayEach})`);\n break;\n default:\n break;\n }\n\n return validators;\n}\n\nfunction mapPrismaTypeToTS(prismaType: string): string {\n switch (prismaType) {\n case \"String\":\n return \"string\";\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n return \"number\";\n case \"Boolean\":\n return \"boolean\";\n case \"DateTime\":\n return \"Date\";\n case \"Json\":\n return \"any\";\n case \"Bytes\":\n return \"Buffer\";\n case \"BigInt\":\n return \"bigint\";\n default:\n return \"any\";\n }\n}\n"]}
1
+ {"version":3,"file":"create-dto-template.js","sourceRoot":"","sources":["../../../../../../../../src/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"../../../../../prisma/prisma-schema-parser\";\nimport { PrismaField, PrismaModel } from \"../../../../../prisma/types\";\nimport { getUserFileExtension } from \"../../../../../helpers/fs.helpers\";\nimport { TemplateOptions } from \"../../../template-generators\";\n\nexport function generateCreateDtoTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n if (!modelName)\n throw new Error(\"Module name is required for create-dto template\");\n\n const model = prismaSchemaParser.models.find(\n (m) => m.name.toLowerCase() === modelName.pascal.toLowerCase()\n );\n\n if (!model)\n throw new Error(`Model ${modelName.pascal} not found in Prisma schema`);\n\n const ext = getUserFileExtension();\n const isTypeScript = ext === \"ts\";\n const restrictedFields = [\"id\", \"createdAt\", \"updatedAt\", \"deletedAt\"];\n const isUserModule = modelName.kebab === \"user\";\n const enumsUsed = new Set<string>();\n const validatorsUsed = new Set<string>();\n const transformersUsed = new Set<string>();\n const nestedDtoClasses: string[] = [];\n\n let dtoFields: string[] = [];\n\n for (const field of model.fields) {\n if (field.isId || restrictedFields.includes(field.name)) {\n continue;\n }\n\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n if (isForeignKey) {\n continue;\n }\n\n if (field.isRelation) {\n if (field.isArray) continue;\n\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n\n if (referencedModel) {\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n const optionalDecorator = isOptional ? \" @IsOptional()\\n\" : \"\";\n const typeModifier = isTypeScript ? (isOptional ? \"?\" : \"!\") : \"\";\n\n validatorsUsed.add(\"IsOptional\");\n validatorsUsed.add(\"ValidateNested\");\n transformersUsed.add(\"Type\");\n\n const relationDtoName = `${referencedModel.name}ForCreate${modelName.pascal}Dto`;\n\n // Generate the nested DTO class inline\n const nestedDtoClass = generateNestedDtoClass(\n field,\n referencedModel,\n relationDtoName,\n validatorsUsed,\n enumsUsed,\n isTypeScript\n );\n nestedDtoClasses.push(nestedDtoClass);\n\n dtoFields.push(\n `${optionalDecorator} @ValidateNested()\\n @Type(() => ${relationDtoName})\\n ${field.name}${typeModifier}: ${relationDtoName};`\n );\n }\n continue;\n }\n\n if (prismaSchemaParser.isEnum(field.type)) {\n enumsUsed.add(field.type);\n }\n\n const { decorators, type } = generateClassValidatorField(\n field,\n isUserModule,\n validatorsUsed\n );\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n const typeModifier = isTypeScript ? (isOptional ? \"?\" : \"!\") : \"\";\n dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);\n }\n\n const enumImports =\n enumsUsed.size > 0\n ? `import { ${Array.from(enumsUsed).join(\", \")} } from \"@prisma/client\";\\n`\n : \"\";\n\n const validatorImports =\n validatorsUsed.size > 0\n ? `import { ${Array.from(validatorsUsed).join(\", \")} } from \"class-validator\";\\n`\n : \"\";\n\n const transformerImports =\n transformersUsed.size > 0\n ? `import { ${Array.from(transformersUsed).join(\", \")} } from \"class-transformer\";\\n`\n : \"\";\n\n const nestedDtoSection =\n nestedDtoClasses.length > 0 ? `\\n${nestedDtoClasses.join(\"\\n\\n\")}\\n` : \"\";\n\n return `${validatorImports}${transformerImports}${enumImports}${nestedDtoSection}\nexport default class Create${modelName.pascal}Dto {\n${dtoFields.join(\"\\n\\n\")}\n}`;\n}\n\nfunction generateNestedDtoClass(\n field: PrismaField,\n referencedModel: PrismaModel,\n dtoName: string,\n validatorsUsed: Set<string>,\n enumsUsed: Set<string>,\n isTypeScript: boolean\n): string {\n const fields: string[] = [];\n\n const refFieldName = field.foreignReferenceField || \"id\";\n const refFieldAsPrismaField = referencedModel.fields.find(\n (f) => f.name === refFieldName\n );\n\n if (refFieldAsPrismaField) {\n if (prismaSchemaParser.isEnum(refFieldAsPrismaField.type))\n enumsUsed.add(refFieldAsPrismaField.type);\n\n const { decorators, type } = generateClassValidatorField(\n refFieldAsPrismaField,\n false,\n validatorsUsed\n );\n const typeModifier = isTypeScript ? \"!\" : \"\";\n fields.push(\n `${decorators} ${refFieldAsPrismaField.name}${typeModifier}: ${type};`\n );\n }\n\n return `class ${dtoName} {\n${fields.join(\"\\n\\n\")}\n}`;\n}\n\nfunction generateClassValidatorField(\n field: PrismaField,\n isUserModule: boolean,\n validatorsUsed: Set<string>\n): { decorators: string; type: string } {\n let decorators: string[] = [];\n let type = mapPrismaTypeToTS(field.type);\n\n const isOptional = field.isOptional || field.defaultValue !== undefined;\n if (isOptional) {\n decorators.push(\"@IsOptional()\");\n validatorsUsed.add(\"IsOptional\");\n }\n\n if (field.isArray) {\n decorators.push(\"@IsArray()\");\n validatorsUsed.add(\"IsArray\");\n type = `${type}[]`;\n }\n\n if (prismaSchemaParser.isEnum(field.type)) {\n decorators.push(\n `@IsEnum(${field.type}${field.isArray ? \", { each: true }\" : \"\"})`\n );\n validatorsUsed.add(\"IsEnum\");\n type = field.isArray ? `${field.type}[]` : field.type;\n } else {\n const fieldValidators = getValidatorsForType(field, isUserModule);\n decorators.push(...fieldValidators);\n fieldValidators.forEach((decorator) => {\n const validatorName = decorator.match(/@(\\w+)/)?.[1];\n if (validatorName) validatorsUsed.add(validatorName);\n });\n }\n\n return {\n decorators:\n decorators.map((d) => ` ${d}`).join(\"\\n\") +\n (decorators.length > 0 ? \"\\n\" : \"\"),\n type,\n };\n}\n\nfunction getValidatorsForType(\n field: PrismaField,\n isUserModule: boolean\n): string[] {\n const validators: string[] = [];\n const arrayEach = field.isArray ? \", { each: true }\" : \"\";\n\n // User module special cases - return early to override default validators\n if (isUserModule) {\n if (field.name === \"email\") {\n return [\"@IsEmail()\"]; // Only IsEmail, no IsString\n } else if (field.name === \"password\") {\n return [\n \"@IsString()\",\n \"@MinLength(8)\",\n '@Matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)/, { message: \"Password must contain at least one uppercase letter, one lowercase letter, and one number\" })',\n ];\n }\n }\n\n switch (field.type) {\n case \"String\":\n validators.push(`@IsString(${arrayEach})`);\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n validators.push(`@IsNumber({}${arrayEach})`);\n break;\n case \"Boolean\":\n validators.push(`@IsBoolean(${arrayEach})`);\n break;\n case \"DateTime\":\n validators.push(`@IsDate(${arrayEach})`);\n break;\n case \"BigInt\":\n validators.push(`@IsNumber({}${arrayEach})`);\n break;\n case \"Json\":\n validators.push(`@IsObject(${arrayEach})`);\n break;\n case \"Bytes\":\n break;\n default:\n break;\n }\n\n return validators;\n}\n\nfunction mapPrismaTypeToTS(prismaType: string): string {\n switch (prismaType) {\n case \"String\":\n return \"string\";\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n return \"number\";\n case \"Boolean\":\n return \"boolean\";\n case \"DateTime\":\n return \"Date\";\n case \"Json\":\n return \"any\";\n case \"Bytes\":\n return \"Buffer\";\n case \"BigInt\":\n return \"bigint\";\n default:\n // For enums and unknown types, return as any\n return prismaSchemaParser.isEnum(prismaType) ? prismaType : \"any\";\n }\n}\n"]}