arkos 2.0.0-next.2 → 2.0.0-next.21

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 (613) hide show
  1. package/README.md +146 -145
  2. package/cli.js +11 -13
  3. package/dist/esm/app.js +17 -16
  4. package/dist/esm/app.js.map +1 -1
  5. package/dist/esm/components/arkos-gateway/arkos-gateway.js +338 -0
  6. package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
  7. package/dist/esm/components/arkos-gateway/socket-extensions.js +168 -0
  8. package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
  9. package/dist/esm/components/arkos-gateway/types.js +3 -0
  10. package/dist/esm/components/arkos-gateway/types.js.map +1 -0
  11. package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
  12. package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
  13. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
  14. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
  15. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
  16. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
  17. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
  18. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
  19. package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
  20. package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
  21. package/dist/esm/components/arkos-policy/index.js +3 -1
  22. package/dist/esm/components/arkos-policy/index.js.map +1 -1
  23. package/dist/esm/components/arkos-route-hook/index.js +2 -1
  24. package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
  25. package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
  26. package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
  27. package/dist/esm/exports/error-handler/index.js +1 -0
  28. package/dist/esm/exports/error-handler/index.js.map +1 -1
  29. package/dist/esm/exports/index.js +3 -3
  30. package/dist/esm/exports/index.js.map +1 -1
  31. package/dist/esm/exports/middlewares/index.js +1 -1
  32. package/dist/esm/exports/middlewares/index.js.map +1 -1
  33. package/dist/esm/exports/services/index.js +2 -2
  34. package/dist/esm/exports/services/index.js.map +1 -1
  35. package/dist/esm/exports/websockets.js +5 -0
  36. package/dist/esm/exports/websockets.js.map +1 -0
  37. package/dist/esm/generated.js.map +1 -1
  38. package/dist/esm/modules/auth/auth.controller.js +214 -222
  39. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  40. package/dist/esm/modules/auth/auth.router.js +26 -9
  41. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  42. package/dist/esm/modules/auth/auth.service.js +90 -102
  43. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  44. package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
  45. package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
  46. package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
  47. package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
  48. package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
  49. package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
  50. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
  51. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
  52. package/dist/esm/modules/auth/utils/docs-links.js +6 -0
  53. package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
  54. package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
  55. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  56. package/dist/esm/modules/base/base.controller.js +182 -162
  57. package/dist/esm/modules/base/base.controller.js.map +1 -1
  58. package/dist/esm/modules/base/base.middlewares.js +31 -48
  59. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  60. package/dist/esm/modules/base/base.router.js +23 -9
  61. package/dist/esm/modules/base/base.router.js.map +1 -1
  62. package/dist/esm/modules/base/base.service.js +33 -138
  63. package/dist/esm/modules/base/base.service.js.map +1 -1
  64. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  65. package/dist/esm/modules/base/utils/error-prettifier.js +26 -30
  66. package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
  67. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
  68. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  69. package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
  70. package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
  71. package/dist/esm/modules/email/email.service.js +17 -10
  72. package/dist/esm/modules/email/email.service.js.map +1 -1
  73. package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
  74. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  75. package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
  76. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  77. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
  78. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +9 -103
  79. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  80. package/dist/esm/modules/error-handler/utils/errors.js +127 -0
  81. package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
  82. package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
  83. package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
  84. package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
  85. package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  86. package/dist/esm/modules/file-upload/file-upload.controller.js +208 -214
  87. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  88. package/dist/esm/modules/file-upload/file-upload.router.js +35 -12
  89. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  90. package/dist/esm/modules/file-upload/file-upload.service.js +13 -8
  91. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  92. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +346 -0
  93. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
  94. package/dist/esm/modules/swagger/swagger.router.js +39 -22
  95. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  96. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
  97. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
  98. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
  99. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
  100. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  101. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +6 -3
  102. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  103. package/dist/esm/server.js +1 -1
  104. package/dist/esm/server.js.map +1 -1
  105. package/dist/esm/types/arkos-config/utils.js +2 -0
  106. package/dist/esm/types/arkos-config/utils.js.map +1 -0
  107. package/dist/esm/types/arkos-prisma-input.js.map +1 -1
  108. package/dist/esm/types/arkos.js.map +1 -1
  109. package/dist/esm/types/auth.js.map +1 -1
  110. package/dist/esm/types/index.js.map +1 -1
  111. package/dist/esm/types/new-arkos-config.js.map +1 -1
  112. package/dist/esm/types/router-config.js.map +1 -1
  113. package/dist/esm/types/upload.js +2 -0
  114. package/dist/esm/types/upload.js.map +1 -0
  115. package/dist/esm/types/validation/validation-manager.js +49 -0
  116. package/dist/esm/types/validation/validation-manager.js.map +1 -0
  117. package/dist/esm/types/validation/validator.js +2 -0
  118. package/dist/esm/types/validation/validator.js.map +1 -0
  119. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
  120. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  121. package/dist/esm/utils/arkos-router/index.js +37 -130
  122. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  123. package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
  124. package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
  125. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  126. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
  127. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
  128. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +188 -0
  129. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
  130. package/dist/esm/utils/arkos-router/utils/helpers/index.js +88 -29
  131. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  132. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +364 -89
  133. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  134. package/dist/esm/utils/bundler.js +6 -6
  135. package/dist/esm/utils/bundler.js.map +1 -1
  136. package/dist/esm/utils/cli/build.js +16 -7
  137. package/dist/esm/utils/cli/build.js.map +1 -1
  138. package/dist/esm/utils/cli/dev.js +18 -28
  139. package/dist/esm/utils/cli/dev.js.map +1 -1
  140. package/dist/esm/utils/cli/export-auth-action.js +5 -4
  141. package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
  142. package/dist/esm/utils/cli/generate.js +70 -56
  143. package/dist/esm/utils/cli/generate.js.map +1 -1
  144. package/dist/esm/utils/cli/index.js +54 -50
  145. package/dist/esm/utils/cli/index.js.map +1 -1
  146. package/dist/esm/utils/cli/prisma-generate.js +8 -37
  147. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  148. package/dist/esm/utils/cli/start.js +25 -14
  149. package/dist/esm/utils/cli/start.js.map +1 -1
  150. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  151. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -4
  152. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
  153. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
  154. package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
  155. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
  156. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
  157. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
  158. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  159. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
  160. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  161. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
  162. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
  163. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
  164. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  165. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
  166. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  167. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
  168. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
  169. package/dist/esm/utils/cli/utils/template-generators.js +31 -18
  170. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  171. package/dist/esm/utils/define-config.js +14 -0
  172. package/dist/esm/utils/define-config.js.map +1 -1
  173. package/dist/esm/utils/docs-links.js +2 -0
  174. package/dist/esm/utils/docs-links.js.map +1 -0
  175. package/dist/esm/utils/dotenv.helpers.js +0 -6
  176. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  177. package/dist/esm/utils/dynamic-loader.js +2 -1
  178. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  179. package/dist/esm/utils/features/api.features.js +46 -27
  180. package/dist/esm/utils/features/api.features.js.map +1 -1
  181. package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
  182. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  183. package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
  184. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  185. package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
  186. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  187. package/dist/esm/utils/helpers/exit-error.js +1 -0
  188. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  189. package/dist/esm/utils/helpers/fs.helpers.js +26 -33
  190. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  191. package/dist/esm/utils/helpers/global.helpers.js +1 -1
  192. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  193. package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
  194. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  195. package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
  196. package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
  197. package/dist/esm/utils/helpers/routers.helpers.js +2 -2
  198. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  199. package/dist/esm/utils/helpers/url-helpers.js +11 -0
  200. package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
  201. package/dist/esm/utils/initialize-app.js +41 -17
  202. package/dist/esm/utils/initialize-app.js.map +1 -1
  203. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
  204. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  205. package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
  206. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  207. package/dist/esm/utils/prisma/types.js.map +1 -1
  208. package/dist/esm/utils/remove-dir.js +1 -1
  209. package/dist/esm/utils/remove-dir.js.map +1 -1
  210. package/dist/esm/utils/setup-app.js +59 -42
  211. package/dist/esm/utils/setup-app.js.map +1 -1
  212. package/dist/esm/utils/validate-schema.js +23 -21
  213. package/dist/esm/utils/validate-schema.js.map +1 -1
  214. package/dist/types/app.d.ts +10 -7
  215. package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
  216. package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
  217. package/dist/types/components/arkos-gateway/types.d.ts +364 -0
  218. package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
  219. package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
  220. package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
  221. package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
  222. package/dist/types/components/arkos-route-hook/index.d.ts +11 -5
  223. package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
  224. package/dist/types/components/arkos-route-hook/types.d.ts +9 -5
  225. package/dist/types/exports/error-handler/index.d.ts +1 -0
  226. package/dist/types/exports/index.d.ts +5 -5
  227. package/dist/types/exports/middlewares/index.d.ts +1 -1
  228. package/dist/types/exports/services/index.d.ts +3 -3
  229. package/dist/types/exports/websockets.d.ts +5 -0
  230. package/dist/types/modules/auth/auth.service.d.ts +80 -51
  231. package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
  232. package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
  233. package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
  234. package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
  235. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
  236. package/dist/types/modules/base/base.controller.d.ts +4 -4
  237. package/dist/types/modules/base/base.middlewares.d.ts +1 -7
  238. package/dist/types/modules/base/base.service.d.ts +8 -17
  239. package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
  240. package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
  241. package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
  242. package/dist/types/modules/email/email.service.d.ts +1 -1
  243. package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
  244. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
  245. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -27
  246. package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
  247. package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
  248. package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
  249. package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
  250. package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
  251. package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
  252. package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
  253. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
  254. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
  255. package/dist/types/types/arkos-config/utils.d.ts +68 -0
  256. package/dist/types/types/arkos-prisma-input.d.ts +4 -3
  257. package/dist/types/types/arkos.d.ts +5 -15
  258. package/dist/types/types/auth.d.ts +4 -4
  259. package/dist/types/types/index.d.ts +10 -58
  260. package/dist/types/types/new-arkos-config.d.ts +326 -36
  261. package/dist/types/types/router-config.d.ts +0 -63
  262. package/dist/types/types/upload.d.ts +10 -0
  263. package/dist/types/types/validation/validation-manager.d.ts +27 -0
  264. package/dist/types/types/validation/validator.d.ts +2 -0
  265. package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
  266. package/dist/types/utils/arkos-router/index.d.ts +83 -8
  267. package/dist/types/utils/arkos-router/types/index.d.ts +74 -23
  268. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
  269. package/dist/types/utils/arkos-router/types/upload-config.d.ts +65 -8
  270. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
  271. package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
  272. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -36
  273. package/dist/types/utils/bundler.d.ts +1 -1
  274. package/dist/types/utils/cli/build.d.ts +1 -1
  275. package/dist/types/utils/cli/generate.d.ts +15 -6
  276. package/dist/types/utils/cli/start.d.ts +3 -1
  277. package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
  278. package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
  279. package/dist/types/utils/define-config.d.ts +1 -1
  280. package/dist/types/utils/docs-links.d.ts +1 -0
  281. package/dist/types/utils/dynamic-loader.d.ts +2 -2
  282. package/dist/types/utils/features/api.features.d.ts +1 -2
  283. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
  284. package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
  285. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  286. package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
  287. package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
  288. package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
  289. package/dist/types/utils/initialize-app.d.ts +1 -0
  290. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
  291. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
  292. package/dist/types/utils/prisma/types.d.ts +3 -2
  293. package/package.json +117 -84
  294. package/dist/cjs/app.js +0 -79
  295. package/dist/cjs/app.js.map +0 -1
  296. package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
  297. package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
  298. package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
  299. package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
  300. package/dist/cjs/components/arkos-policy/index.js +0 -36
  301. package/dist/cjs/components/arkos-policy/index.js.map +0 -1
  302. package/dist/cjs/components/arkos-policy/types.js +0 -3
  303. package/dist/cjs/components/arkos-policy/types.js.map +0 -1
  304. package/dist/cjs/components/arkos-route-hook/index.js +0 -50
  305. package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
  306. package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
  307. package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
  308. package/dist/cjs/components/arkos-route-hook/types.js +0 -3
  309. package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
  310. package/dist/cjs/components/arkos-service-hook/index.js +0 -35
  311. package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
  312. package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
  313. package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
  314. package/dist/cjs/components/arkos-service-hook/types.js +0 -3
  315. package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
  316. package/dist/cjs/exports/auth/index.js +0 -6
  317. package/dist/cjs/exports/auth/index.js.map +0 -1
  318. package/dist/cjs/exports/config.js +0 -6
  319. package/dist/cjs/exports/config.js.map +0 -1
  320. package/dist/cjs/exports/controllers/index.js +0 -42
  321. package/dist/cjs/exports/controllers/index.js.map +0 -1
  322. package/dist/cjs/exports/error-handler/index.js +0 -11
  323. package/dist/cjs/exports/error-handler/index.js.map +0 -1
  324. package/dist/cjs/exports/index.js +0 -23
  325. package/dist/cjs/exports/index.js.map +0 -1
  326. package/dist/cjs/exports/middlewares/index.js +0 -7
  327. package/dist/cjs/exports/middlewares/index.js.map +0 -1
  328. package/dist/cjs/exports/prisma/index.js +0 -13
  329. package/dist/cjs/exports/prisma/index.js.map +0 -1
  330. package/dist/cjs/exports/services/index.js +0 -53
  331. package/dist/cjs/exports/services/index.js.map +0 -1
  332. package/dist/cjs/exports/utils/index.js +0 -26
  333. package/dist/cjs/exports/utils/index.js.map +0 -1
  334. package/dist/cjs/exports/validation/index.js +0 -11
  335. package/dist/cjs/exports/validation/index.js.map +0 -1
  336. package/dist/cjs/generated.js +0 -7
  337. package/dist/cjs/generated.js.map +0 -1
  338. package/dist/cjs/modules/auth/auth.controller.js +0 -254
  339. package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
  340. package/dist/cjs/modules/auth/auth.router.js +0 -113
  341. package/dist/cjs/modules/auth/auth.router.js.map +0 -1
  342. package/dist/cjs/modules/auth/auth.service.js +0 -277
  343. package/dist/cjs/modules/auth/auth.service.js.map +0 -1
  344. package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
  345. package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
  346. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
  347. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  348. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
  349. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
  350. package/dist/cjs/modules/base/base.controller.js +0 -275
  351. package/dist/cjs/modules/base/base.controller.js.map +0 -1
  352. package/dist/cjs/modules/base/base.middlewares.js +0 -231
  353. package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
  354. package/dist/cjs/modules/base/base.router.js +0 -112
  355. package/dist/cjs/modules/base/base.router.js.map +0 -1
  356. package/dist/cjs/modules/base/base.service.js +0 -432
  357. package/dist/cjs/modules/base/base.service.js.map +0 -1
  358. package/dist/cjs/modules/base/types/base.service.types.js +0 -3
  359. package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
  360. package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
  361. package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
  362. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
  363. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  364. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
  365. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  366. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
  367. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  368. package/dist/cjs/modules/base/utils/router-validator.js +0 -13
  369. package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
  370. package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
  371. package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
  372. package/dist/cjs/modules/debugger/debugger.service.js +0 -59
  373. package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
  374. package/dist/cjs/modules/email/email.service.js +0 -106
  375. package/dist/cjs/modules/email/email.service.js.map +0 -1
  376. package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
  377. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
  378. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
  379. package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
  380. package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
  381. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
  382. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
  383. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  384. package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
  385. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
  386. package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
  387. package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
  388. package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
  389. package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
  390. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
  391. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
  392. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
  393. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  394. package/dist/cjs/modules/swagger/swagger.router.js +0 -65
  395. package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
  396. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
  397. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  398. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
  399. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
  400. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
  401. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  402. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
  403. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  404. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
  405. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
  406. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
  407. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  408. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
  409. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  410. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
  411. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  412. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
  413. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  414. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
  415. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  416. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
  417. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  418. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
  419. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  420. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
  421. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
  422. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
  423. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  424. package/dist/cjs/package.json +0 -3
  425. package/dist/cjs/server.js +0 -60
  426. package/dist/cjs/server.js.map +0 -1
  427. package/dist/cjs/types/arkos-prisma-input.js +0 -3
  428. package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
  429. package/dist/cjs/types/arkos.js +0 -3
  430. package/dist/cjs/types/arkos.js.map +0 -1
  431. package/dist/cjs/types/auth.js +0 -3
  432. package/dist/cjs/types/auth.js.map +0 -1
  433. package/dist/cjs/types/index.js +0 -3
  434. package/dist/cjs/types/index.js.map +0 -1
  435. package/dist/cjs/types/new-arkos-config.js +0 -3
  436. package/dist/cjs/types/new-arkos-config.js.map +0 -1
  437. package/dist/cjs/types/router-config.js +0 -3
  438. package/dist/cjs/types/router-config.js.map +0 -1
  439. package/dist/cjs/utils/arkos-env.js +0 -9
  440. package/dist/cjs/utils/arkos-env.js.map +0 -1
  441. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
  442. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
  443. package/dist/cjs/utils/arkos-router/index.js +0 -253
  444. package/dist/cjs/utils/arkos-router/index.js.map +0 -1
  445. package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
  446. package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
  447. package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
  448. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
  449. package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
  450. package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
  451. package/dist/cjs/utils/arkos-router/types/index.js +0 -3
  452. package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
  453. package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
  454. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
  455. package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
  456. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
  457. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
  458. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
  459. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
  460. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
  461. package/dist/cjs/utils/bundler.js +0 -163
  462. package/dist/cjs/utils/bundler.js.map +0 -1
  463. package/dist/cjs/utils/cli/build.js +0 -199
  464. package/dist/cjs/utils/cli/build.js.map +0 -1
  465. package/dist/cjs/utils/cli/dev.js +0 -128
  466. package/dist/cjs/utils/cli/dev.js.map +0 -1
  467. package/dist/cjs/utils/cli/export-auth-action.js +0 -79
  468. package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
  469. package/dist/cjs/utils/cli/generate.js +0 -229
  470. package/dist/cjs/utils/cli/generate.js.map +0 -1
  471. package/dist/cjs/utils/cli/index.js +0 -191
  472. package/dist/cjs/utils/cli/index.js.map +0 -1
  473. package/dist/cjs/utils/cli/prisma-generate.js +0 -112
  474. package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
  475. package/dist/cjs/utils/cli/start.js +0 -72
  476. package/dist/cjs/utils/cli/start.js.map +0 -1
  477. package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
  478. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
  479. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -115
  480. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
  481. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
  482. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
  483. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
  484. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
  485. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
  486. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  487. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
  488. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
  489. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
  490. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
  491. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
  492. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  493. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
  494. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
  495. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
  496. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  497. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
  498. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
  499. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
  500. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
  501. package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
  502. package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
  503. package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
  504. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
  505. package/dist/cjs/utils/define-config.js +0 -46
  506. package/dist/cjs/utils/define-config.js.map +0 -1
  507. package/dist/cjs/utils/dotenv.helpers.js +0 -52
  508. package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
  509. package/dist/cjs/utils/dynamic-loader.js +0 -22
  510. package/dist/cjs/utils/dynamic-loader.js.map +0 -1
  511. package/dist/cjs/utils/expand-env.js +0 -72
  512. package/dist/cjs/utils/expand-env.js.map +0 -1
  513. package/dist/cjs/utils/features/api.features.js +0 -201
  514. package/dist/cjs/utils/features/api.features.js.map +0 -1
  515. package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
  516. package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
  517. package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
  518. package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
  519. package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
  520. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
  521. package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
  522. package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
  523. package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
  524. package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
  525. package/dist/cjs/utils/helpers/exit-error.js +0 -12
  526. package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
  527. package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
  528. package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
  529. package/dist/cjs/utils/helpers/global.helpers.js +0 -105
  530. package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
  531. package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
  532. package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
  533. package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
  534. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
  535. package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
  536. package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
  537. package/dist/cjs/utils/helpers/text.helpers.js +0 -28
  538. package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
  539. package/dist/cjs/utils/initialize-app.js +0 -55
  540. package/dist/cjs/utils/initialize-app.js.map +0 -1
  541. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
  542. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
  543. package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
  544. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
  545. package/dist/cjs/utils/prisma/types.js +0 -3
  546. package/dist/cjs/utils/prisma/types.js.map +0 -1
  547. package/dist/cjs/utils/remove-dir.js +0 -14
  548. package/dist/cjs/utils/remove-dir.js.map +0 -1
  549. package/dist/cjs/utils/setup-app.js +0 -119
  550. package/dist/cjs/utils/setup-app.js.map +0 -1
  551. package/dist/cjs/utils/sheu.js +0 -131
  552. package/dist/cjs/utils/sheu.js.map +0 -1
  553. package/dist/cjs/utils/validate-dto.js +0 -19
  554. package/dist/cjs/utils/validate-dto.js.map +0 -1
  555. package/dist/cjs/utils/validate-schema.js +0 -75
  556. package/dist/cjs/utils/validate-schema.js.map +0 -1
  557. package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
  558. package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
  559. package/dist/esm/components/arkos-service-hook/index.js +0 -32
  560. package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
  561. package/dist/esm/components/arkos-service-hook/reader.js +0 -24
  562. package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
  563. package/dist/esm/components/arkos-service-hook/types.js +0 -2
  564. package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
  565. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
  566. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  567. package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
  568. package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
  569. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
  570. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  571. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
  572. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  573. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
  574. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  575. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
  576. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  577. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
  578. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  579. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
  580. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  581. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
  582. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  583. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
  584. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  585. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
  586. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  587. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
  588. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  589. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
  590. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  591. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
  592. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  593. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
  594. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  595. package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
  596. package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
  597. package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
  598. package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
  599. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
  600. package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
  601. package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
  602. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
  603. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
  604. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
  605. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
  606. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
  607. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
  608. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
  609. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
  610. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
  611. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
  612. package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
  613. package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
@@ -1,360 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PrismaSchemaParser = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const change_case_helpers_1 = require("../helpers/change-case.helpers.js");
9
- const fs_1 = __importDefault(require("fs"));
10
- const sheu_1 = __importDefault(require("../sheu.js"));
11
- class PrismaSchemaParser {
12
- constructor() {
13
- this.enums = [];
14
- this.models = [];
15
- this.prismaSchemasContent = "";
16
- this.parsed = false;
17
- this.parse();
18
- this.config = this.parseSchemaConfig();
19
- }
20
- parse({ override } = { override: false }) {
21
- if (!this.parsed || override) {
22
- this.enums = this.extractEnums();
23
- this.models = this.extractModels();
24
- this.parsed = true;
25
- }
26
- return {
27
- models: this.models,
28
- enums: this.enums,
29
- };
30
- }
31
- extractEnums() {
32
- const enums = [];
33
- const schema = this.getPrismaSchemasContent() || "";
34
- const enumBlocks = schema.match(/enum\s+\w+\s*\{[^}]*\}/g) || [];
35
- for (const block of enumBlocks) {
36
- const enumObj = this.parseEnumBlock(block);
37
- if (enumObj) {
38
- enums.push(enumObj);
39
- }
40
- }
41
- return enums;
42
- }
43
- parseEnumBlock(block) {
44
- const nameMatch = block.match(/enum\s+(\w+)/);
45
- if (!nameMatch)
46
- return null;
47
- const name = nameMatch[1];
48
- const values = block
49
- .split("\n")
50
- .map((line) => line.trim())
51
- .filter((line) => line &&
52
- !line.startsWith("enum") &&
53
- !line.startsWith("{") &&
54
- !line.startsWith("}"))
55
- .map((line) => line.replace(/,$/, ""));
56
- return { name, values };
57
- }
58
- extractModels() {
59
- const models = [];
60
- const modelBlocks = this.extractModelBlocks();
61
- for (const block of modelBlocks) {
62
- const model = this.parseModelBlock(block);
63
- if (model) {
64
- models.push(model);
65
- }
66
- }
67
- return models;
68
- }
69
- extractModelBlocks() {
70
- const modelRegex = /model\s+\w+\s*\{((?:[^{}]*(?:\{[^{}]*\}[^{}]*)*)*)\}/g;
71
- const schema = this.getPrismaSchemasContent() || "";
72
- return schema.match(modelRegex) || [];
73
- }
74
- parseModelBlock(block) {
75
- const nameMatch = block.match(/model\s+(\w+)/);
76
- if (!nameMatch)
77
- return null;
78
- const name = nameMatch[1];
79
- const fields = this.parseFields(block);
80
- const mapMatch = block.match(/@@map\s*\(\s*"([^"]+)"\s*\)/);
81
- const mapName = mapMatch ? mapMatch[1] : undefined;
82
- return { name, fields, mapName };
83
- }
84
- parseFields(block) {
85
- const fields = [];
86
- const fieldLines = block
87
- .split("\n")
88
- .map((line) => line.trim())
89
- .filter((line) => line && !line.startsWith("{") && !line.startsWith("}"));
90
- for (const line of fieldLines) {
91
- if (line.startsWith("//") || line.startsWith("@@"))
92
- continue;
93
- if (/^model\s+\w+\s*\{/.test(line))
94
- continue;
95
- const field = this.parseFieldLine(line);
96
- if (field) {
97
- fields.push(field);
98
- }
99
- }
100
- return fields;
101
- }
102
- parseFieldLine(line) {
103
- const fieldMatch = line.match(/^(\w+)\s+(\w+(?:\[\])?)\??\s*(.*)/);
104
- if (!fieldMatch)
105
- return null;
106
- const [, name, typeWithArray, attributesStr] = fieldMatch;
107
- const isArray = typeWithArray.endsWith("[]");
108
- const type = isArray ? typeWithArray.slice(0, -2) : typeWithArray;
109
- const isOptional = line.includes("?");
110
- const attributes = attributesStr
111
- .split(/\s+/)
112
- .filter((attr) => attr.startsWith("@"));
113
- let defaultValue = undefined;
114
- const defaultMatch = attributesStr.match(/@default\(([^)]+)\)/);
115
- if (defaultMatch) {
116
- defaultValue = this.parseDefaultValue(defaultMatch[1]);
117
- }
118
- let foreignKeyField = "";
119
- const relationMatch = attributesStr.match(/@relation\([^)]*fields:\s*\[([^\]]+)\]/);
120
- if (relationMatch)
121
- foreignKeyField = relationMatch[1].trim().replace(/['"]/g, "");
122
- let foreignReferenceField = "";
123
- const foreignReferenceFieldMatch = attributesStr.match(/@relation\([^)]*references:\s*\[([^\]]+)\]/);
124
- if (foreignReferenceFieldMatch)
125
- foreignReferenceField = foreignReferenceFieldMatch[1]
126
- .trim()
127
- .replace(/['"]/g, "");
128
- const isId = attributes.some((attr) => attr.startsWith("@id"));
129
- const isUnique = attributes.some((attr) => attr.startsWith("@unique"));
130
- const models = this.models;
131
- return {
132
- name,
133
- type,
134
- isOptional,
135
- isRelation: models.map((model) => model.name).includes(type) ||
136
- this.getPrismaSchemasContent().includes(`model ${type} {`),
137
- isArray,
138
- foreignKeyField,
139
- foreignReferenceField,
140
- defaultValue,
141
- isId,
142
- isUnique,
143
- attributes,
144
- rawLine: line.trim(),
145
- };
146
- }
147
- parseDefaultValue(defaultStr) {
148
- defaultStr = defaultStr.trim();
149
- if (defaultStr.startsWith("[")) {
150
- return defaultStr.replace("[", "").replace("]", "").split(",");
151
- }
152
- if (defaultStr.startsWith('"') && defaultStr.endsWith('"'))
153
- return defaultStr.slice(1, -1);
154
- if (defaultStr === "true")
155
- return true;
156
- if (defaultStr === "false")
157
- return false;
158
- if (/^-?\d+$/.test(defaultStr))
159
- return parseInt(defaultStr, 10);
160
- if (/^-?\d+\.\d+$/.test(defaultStr))
161
- return parseFloat(defaultStr);
162
- if (!defaultStr.includes("("))
163
- return defaultStr;
164
- if (defaultStr.includes("("))
165
- return undefined;
166
- return defaultStr;
167
- }
168
- getPrismaSchemasContent() {
169
- if (this.prismaSchemasContent)
170
- return this.prismaSchemasContent;
171
- const models = [];
172
- const modelRegex = /model\s+(\w+)\s*{/g;
173
- const prismaContent = [];
174
- const prismaPath = path_1.default.resolve(process.cwd(), "prisma");
175
- const files = this.getAllPrismaFiles(prismaPath);
176
- for (const file of files) {
177
- const content = fs_1.default.readFileSync(file, "utf-8");
178
- if (!prismaContent?.includes?.(content))
179
- prismaContent.push(content);
180
- }
181
- const content = prismaContent
182
- .join("\n")
183
- .replace(modelRegex, (_, modelName) => {
184
- if (!models?.includes?.(modelName))
185
- models.push((0, change_case_helpers_1.camelCase)(modelName.trim()));
186
- return `model ${modelName} {`;
187
- });
188
- return content;
189
- }
190
- generatePrismaModel(options) {
191
- const { modelName } = options;
192
- if (!modelName)
193
- throw new Error("Model name is required for Prisma model template");
194
- const allModels = prismaSchemaParser.models;
195
- if (allModels.length === 0)
196
- throw new Error("No models found in Prisma schema for reference.");
197
- const timestampFields = [
198
- "id",
199
- "createdAt",
200
- "updatedAt",
201
- "create_at",
202
- "update_at",
203
- "deletedAt",
204
- "deleted_at",
205
- ];
206
- const commonFieldsMap = new Map();
207
- let allModelsHaveMap = allModels.length > 0;
208
- if (allModels.length === 1) {
209
- const singleModel = allModels[0];
210
- if (!singleModel.mapName)
211
- allModelsHaveMap = false;
212
- for (const field of singleModel.fields) {
213
- if (timestampFields.includes(field.name)) {
214
- commonFieldsMap.set(field.name, field);
215
- }
216
- }
217
- }
218
- else if (allModels.length > 0) {
219
- const firstModel = allModels[0];
220
- if (!firstModel.mapName)
221
- allModelsHaveMap = false;
222
- for (const field of firstModel.fields) {
223
- commonFieldsMap.set(field.name, field);
224
- }
225
- for (let i = 1; i < allModels.length; i++) {
226
- const currentModel = allModels[i];
227
- if (!currentModel.mapName)
228
- allModelsHaveMap = false;
229
- const currentFieldNames = new Set(currentModel.fields.map((f) => f.name));
230
- for (const fieldName of commonFieldsMap.keys()) {
231
- if (!currentFieldNames.has(fieldName)) {
232
- commonFieldsMap.delete(fieldName);
233
- }
234
- }
235
- }
236
- }
237
- const fields = Array.from(commonFieldsMap.values());
238
- const fieldDefinitions = fields
239
- .map((field) => (field.rawLine ? ` ${field.rawLine}` : null))
240
- .filter(Boolean)
241
- .join("\n");
242
- const mapDirective = allModelsHaveMap
243
- ? `\n\n @@map("${modelName.kebab}")`
244
- : "";
245
- return `model ${modelName.pascal} {
246
- ${fieldDefinitions}${mapDirective}
247
- }
248
- `;
249
- }
250
- getAllPrismaFiles(dirPath, fileList = []) {
251
- try {
252
- const files = fs_1.default.readdirSync(dirPath);
253
- files?.forEach((file) => {
254
- const filePath = path_1.default.join(dirPath, file);
255
- const stat = fs_1.default.statSync(filePath);
256
- if (stat.isDirectory() && file !== "migrations") {
257
- fileList = this.getAllPrismaFiles(filePath, fileList);
258
- }
259
- else if (stat.isFile() && file.endsWith(".prisma")) {
260
- fileList.push(filePath);
261
- }
262
- });
263
- return fileList;
264
- }
265
- catch {
266
- sheu_1.default.warn("No prisma folder was found in order to load models", {
267
- timestamp: true,
268
- });
269
- return [];
270
- }
271
- }
272
- parseSchemaConfig() {
273
- const config = {
274
- generatorProvider: "",
275
- datasourceProvider: "",
276
- datasourceUrl: "",
277
- };
278
- const lines = this.getPrismaSchemasContent().split("\n");
279
- let inGenerator = false;
280
- let inDatasource = false;
281
- let braceCount = 0;
282
- for (const line of lines) {
283
- const trimmed = line.trim();
284
- if (trimmed.startsWith("//") || trimmed.startsWith("#"))
285
- continue;
286
- if (trimmed.startsWith("generator")) {
287
- inGenerator = true;
288
- continue;
289
- }
290
- if (trimmed.startsWith("datasource")) {
291
- inDatasource = true;
292
- continue;
293
- }
294
- if (trimmed.includes("{"))
295
- braceCount++;
296
- if (trimmed.includes("}"))
297
- braceCount--;
298
- if (braceCount === 0) {
299
- if (inGenerator && trimmed.includes("}"))
300
- inGenerator = false;
301
- if (inDatasource && trimmed.includes("}"))
302
- inDatasource = false;
303
- }
304
- if (inGenerator && trimmed.includes("provider")) {
305
- const match = trimmed.match(/provider\s*=\s*"([^"]+)"/);
306
- if (match)
307
- config.generatorProvider = match[1];
308
- }
309
- if (inDatasource && trimmed.includes("provider")) {
310
- const match = trimmed.match(/provider\s*=\s*"([^"]+)"/);
311
- if (match) {
312
- config.datasourceProvider = match[1];
313
- }
314
- }
315
- if (inDatasource && trimmed.includes("url")) {
316
- const match = trimmed.match(/url\s*=\s*(env\("([^"]+)"\)|"([^"]+)")/);
317
- if (match) {
318
- config.datasourceUrl = match[1];
319
- }
320
- }
321
- }
322
- return config;
323
- }
324
- isEnum(typeName) {
325
- return this.enums.some((e) => e.name === typeName);
326
- }
327
- isModel(typeName) {
328
- return this.models.some((m) => m.name === typeName);
329
- }
330
- getModelUniqueFields(modelName) {
331
- return this.models
332
- .find(({ name }) => (0, change_case_helpers_1.pascalCase)(name) === (0, change_case_helpers_1.pascalCase)(modelName))
333
- ?.fields.filter(({ isUnique }) => isUnique);
334
- }
335
- getModelRelations(modelName) {
336
- return this.models
337
- .find((model) => (0, change_case_helpers_1.pascalCase)(model.name) === (0, change_case_helpers_1.pascalCase)(modelName))
338
- ?.fields.filter((field) => field.isRelation);
339
- }
340
- getModelsAsArrayOfStrings() {
341
- return this.models.map(({ name }) => name);
342
- }
343
- getField(criteria) {
344
- return this.models
345
- .reduce((acc, model) => {
346
- acc.push(...model.fields);
347
- return acc;
348
- }, [])
349
- .find((field) => {
350
- return Object.keys(criteria).every((key) => {
351
- return (field[key] ===
352
- criteria[key]);
353
- });
354
- });
355
- }
356
- }
357
- exports.PrismaSchemaParser = PrismaSchemaParser;
358
- const prismaSchemaParser = new PrismaSchemaParser();
359
- exports.default = prismaSchemaParser;
360
- //# sourceMappingURL=prisma-schema-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prisma-schema-parser.js","sourceRoot":"","sources":["../../../../src/utils/prisma/prisma-schema-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import path from \"path\";\nimport { PrismaSchema, PrismaModel, PrismaEnum, PrismaField } from \"./types\";\nimport { camelCase, pascalCase } from \"../helpers/change-case.helpers\";\nimport fs from \"fs\";\nimport sheu from \"../sheu\";\n\ninterface SchemaConfig {\n generatorProvider: string;\n datasourceProvider: string;\n datasourceUrl: string;\n}\n\n/**\n * A parser for Prisma schema files that extracts models, enums, and their properties.\n *\n * @example\n * ```typescript\n * const schemaContent = `\n * model User {\n * id Int @id @default(autoincrement())\n * email String @unique\n * }\n * `;\n * const parser = new PrismaSchemaParser();\n * const schema = parser.parse();\n * ```\n */\nexport class PrismaSchemaParser {\n /** Collection of parsed enum definitions */\n enums: PrismaEnum[] = [];\n /** Collection of parsed model definitions */\n models: PrismaModel[] = [];\n /** Current loaded prisma schemas content as a single file */\n prismaSchemasContent: string = \"\";\n parsed: boolean = false;\n config: SchemaConfig;\n\n constructor() {\n this.parse();\n this.config = this.parseSchemaConfig();\n }\n\n /**\n * Parses the Prisma schema and extracts all models and enums.\n *\n * @returns The parsed schema containing arrays of models and enums\n */\n parse(\n { override }: { override: boolean } = { override: false }\n ): PrismaSchema {\n if (!this.parsed || override) {\n this.enums = this.extractEnums();\n this.models = this.extractModels();\n this.parsed = true;\n }\n\n return {\n models: this.models,\n enums: this.enums,\n };\n }\n\n /**\n * Extracts all enum definitions from the schema.\n *\n * @private\n * @returns Array of parsed enum objects\n */\n private extractEnums(): PrismaEnum[] {\n const enums: PrismaEnum[] = [];\n const schema = this.getPrismaSchemasContent() || \"\";\n const enumBlocks = schema.match(/enum\\s+\\w+\\s*\\{[^}]*\\}/g) || [];\n\n for (const block of enumBlocks) {\n const enumObj = this.parseEnumBlock(block);\n if (enumObj) {\n enums.push(enumObj);\n }\n }\n\n return enums;\n }\n\n /**\n * Parses a single enum block and extracts its name and values.\n *\n * @private\n * @param block - The enum block string (e.g., \"enum Status { ACTIVE INACTIVE }\")\n * @returns The parsed enum object or null if parsing fails\n */\n private parseEnumBlock(block: string): PrismaEnum | null {\n const nameMatch = block.match(/enum\\s+(\\w+)/);\n if (!nameMatch) return null;\n\n const name = nameMatch[1];\n const values = block\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(\n (line) =>\n line &&\n !line.startsWith(\"enum\") &&\n !line.startsWith(\"{\") &&\n !line.startsWith(\"}\")\n )\n .map((line) => line.replace(/,$/, \"\"));\n\n return { name, values };\n }\n\n /**\n * Extracts all model definitions from the schema.\n *\n * @private\n * @returns Array of parsed model objects\n */\n private extractModels(): PrismaModel[] {\n const models: PrismaModel[] = [];\n const modelBlocks = this.extractModelBlocks();\n\n for (const block of modelBlocks) {\n const model = this.parseModelBlock(block);\n if (model) {\n models.push(model);\n }\n }\n\n return models;\n }\n\n /**\n * Extracts raw model block strings from the schema using regex.\n *\n * @private\n * @returns Array of model block strings\n */\n private extractModelBlocks(): string[] {\n const modelRegex = /model\\s+\\w+\\s*\\{((?:[^{}]*(?:\\{[^{}]*\\}[^{}]*)*)*)\\}/g;\n const schema = this.getPrismaSchemasContent() || \"\";\n return schema.match(modelRegex) || [];\n }\n\n /**\n * Parses a single model block and extracts its name, fields, and metadata.\n *\n * @private\n * @param block - The model block string\n * @returns The parsed model object or null if parsing fails\n */\n private parseModelBlock(block: string): PrismaModel | null {\n const nameMatch = block.match(/model\\s+(\\w+)/);\n if (!nameMatch) return null;\n\n const name = nameMatch[1];\n const fields = this.parseFields(block);\n\n // Check for @@map directive\n const mapMatch = block.match(/@@map\\s*\\(\\s*\"([^\"]+)\"\\s*\\)/);\n const mapName = mapMatch ? mapMatch[1] : undefined;\n\n return { name, fields, mapName };\n }\n\n /**\n * Parses all field definitions within a model block.\n *\n * @private\n * @param block - The model block string containing field definitions\n * @returns Array of parsed field objects\n */\n private parseFields(block: string): PrismaField[] {\n const fields: PrismaField[] = [];\n const fieldLines = block\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter((line) => line && !line.startsWith(\"{\") && !line.startsWith(\"}\"));\n\n for (const line of fieldLines) {\n if (line.startsWith(\"//\") || line.startsWith(\"@@\")) continue;\n if (/^model\\s+\\w+\\s*\\{/.test(line)) continue;\n\n const field = this.parseFieldLine(line);\n if (field) {\n fields.push(field);\n }\n }\n\n return fields;\n }\n\n /**\n * Parses a single field line and extracts all field properties.\n *\n * @private\n * @param line - A single field definition line (e.g., \"id Int @id @default(autoincrement())\")\n * @returns The parsed field object or null if parsing fails\n *\n * @example\n * ```typescript\n * // Input: \"email String? @unique @default(\"user@example.com\")\"\n * // Output: {\n * // name: \"email\",\n * // type: \"String\",\n * // isOptional: true,\n * // isArray: false,\n * // defaultValue: \"user@example.com\",\n * // isId: false,\n * // isUnique: true,\n * // attributes: [\"@unique\", \"@default(\\\"user@example.com\\\")\"]\n * // }\n * ```\n */\n private parseFieldLine(line: string): PrismaField | null {\n const fieldMatch = line.match(/^(\\w+)\\s+(\\w+(?:\\[\\])?)\\??\\s*(.*)/);\n if (!fieldMatch) return null;\n\n const [, name, typeWithArray, attributesStr] = fieldMatch;\n const isArray = typeWithArray.endsWith(\"[]\");\n const type = isArray ? typeWithArray.slice(0, -2) : typeWithArray;\n const isOptional = line.includes(\"?\");\n\n const attributes = attributesStr\n .split(/\\s+/)\n .filter((attr) => attr.startsWith(\"@\"));\n\n // Extract default value\n let defaultValue: any = undefined;\n const defaultMatch = attributesStr.match(/@default\\(([^)]+)\\)/);\n if (defaultMatch) {\n defaultValue = this.parseDefaultValue(defaultMatch[1]);\n }\n\n let foreignKeyField = \"\";\n const relationMatch = attributesStr.match(\n /@relation\\([^)]*fields:\\s*\\[([^\\]]+)\\]/\n );\n if (relationMatch)\n foreignKeyField = relationMatch[1].trim().replace(/['\"]/g, \"\");\n\n let foreignReferenceField = \"\";\n const foreignReferenceFieldMatch = attributesStr.match(\n /@relation\\([^)]*references:\\s*\\[([^\\]]+)\\]/\n );\n if (foreignReferenceFieldMatch)\n foreignReferenceField = foreignReferenceFieldMatch[1]\n .trim()\n .replace(/['\"]/g, \"\");\n\n const isId = attributes.some((attr) => attr.startsWith(\"@id\"));\n const isUnique = attributes.some((attr) => attr.startsWith(\"@unique\"));\n const models = this.models;\n\n return {\n name,\n type,\n isOptional,\n isRelation:\n models.map((model) => model.name).includes(type) ||\n this.getPrismaSchemasContent().includes(`model ${type} {`),\n isArray,\n foreignKeyField,\n foreignReferenceField,\n defaultValue,\n isId,\n isUnique,\n attributes,\n rawLine: line.trim(),\n };\n }\n\n /**\n * Parses a default value string and converts it to the appropriate JavaScript type.\n *\n * @private\n * @param defaultStr - The default value string from @default() attribute\n * @returns The parsed default value in appropriate JavaScript type, or undefined for functions\n *\n * @example\n * ```typescript\n * parseDefaultValue('\"hello\"') // returns \"hello\"\n * parseDefaultValue('true') // returns true\n * parseDefaultValue('42') // returns 42\n * parseDefaultValue('3.14') // returns 3.14\n * parseDefaultValue('ACTIVE') // returns \"ACTIVE\" (enum value)\n * parseDefaultValue('now()') // returns undefined (function)\n * ```\n */\n private parseDefaultValue(defaultStr: string): any {\n defaultStr = defaultStr.trim();\n // Handle string values\n if (defaultStr.startsWith(\"[\")) {\n return defaultStr.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\");\n }\n if (defaultStr.startsWith('\"') && defaultStr.endsWith('\"'))\n return defaultStr.slice(1, -1);\n // Handle boolean values\n if (defaultStr === \"true\") return true;\n if (defaultStr === \"false\") return false;\n // Handle numeric values (including negative numbers)\n if (/^-?\\d+$/.test(defaultStr)) return parseInt(defaultStr, 10);\n if (/^-?\\d+\\.\\d+$/.test(defaultStr)) return parseFloat(defaultStr);\n // Handle enum values (no quotes, not a function)\n if (!defaultStr.includes(\"(\")) return defaultStr;\n // Handle functions (like now(), auto(), etc.)\n if (defaultStr.includes(\"(\"))\n // For MongoDB, we'll skip function defaults as they're handled by the DB\n return undefined;\n return defaultStr;\n }\n\n getPrismaSchemasContent(): string {\n if (this.prismaSchemasContent) return this.prismaSchemasContent;\n\n const models: string[] = [];\n const modelRegex = /model\\s+(\\w+)\\s*{/g;\n\n const prismaContent: string[] = [];\n const prismaPath = path.resolve(process.cwd(), \"prisma\");\n\n const files = this.getAllPrismaFiles(prismaPath);\n\n for (const file of files) {\n const content = fs.readFileSync(file, \"utf-8\");\n if (!prismaContent?.includes?.(content)) prismaContent.push(content);\n }\n\n // Gather the content of all *.prisma files into single one\n const content = prismaContent\n .join(\"\\n\")\n .replace(modelRegex, (_, modelName) => {\n if (!models?.includes?.(modelName))\n models.push(camelCase(modelName.trim()));\n return `model ${modelName} {`;\n });\n\n return content;\n }\n\n generatePrismaModel(options: {\n modelName: { pascal: string; camel: string; kebab: string };\n }): string {\n const { modelName } = options;\n if (!modelName)\n throw new Error(\"Model name is required for Prisma model template\");\n\n const allModels = prismaSchemaParser.models;\n if (allModels.length === 0)\n throw new Error(\"No models found in Prisma schema for reference.\");\n\n const timestampFields = [\n \"id\",\n \"createdAt\",\n \"updatedAt\",\n \"create_at\",\n \"update_at\",\n \"deletedAt\",\n \"deleted_at\",\n ];\n\n const commonFieldsMap = new Map<string, PrismaField>();\n let allModelsHaveMap = allModels.length > 0;\n\n if (allModels.length === 1) {\n const singleModel = allModels[0];\n if (!singleModel.mapName) allModelsHaveMap = false;\n\n for (const field of singleModel.fields) {\n if (timestampFields.includes(field.name)) {\n commonFieldsMap.set(field.name, field);\n }\n }\n } else if (allModels.length > 0) {\n const firstModel = allModels[0];\n if (!firstModel.mapName) allModelsHaveMap = false;\n\n for (const field of firstModel.fields) {\n commonFieldsMap.set(field.name, field);\n }\n\n for (let i = 1; i < allModels.length; i++) {\n const currentModel = allModels[i];\n if (!currentModel.mapName) allModelsHaveMap = false;\n const currentFieldNames = new Set(\n currentModel.fields.map((f) => f.name)\n );\n\n for (const fieldName of commonFieldsMap.keys()) {\n if (!currentFieldNames.has(fieldName)) {\n commonFieldsMap.delete(fieldName);\n }\n }\n }\n }\n\n const fields = Array.from(commonFieldsMap.values());\n const fieldDefinitions = fields\n .map((field) => (field.rawLine ? ` ${field.rawLine}` : null))\n .filter(Boolean)\n .join(\"\\n\");\n\n const mapDirective = allModelsHaveMap\n ? `\\n\\n @@map(\"${modelName.kebab}\")`\n : \"\";\n\n return `model ${modelName.pascal} {\n${fieldDefinitions}${mapDirective}\n}\n`;\n }\n\n private getAllPrismaFiles(dirPath: string, fileList: string[] = []) {\n try {\n const files = fs.readdirSync(dirPath);\n\n files?.forEach((file) => {\n const filePath = path.join(dirPath, file);\n const stat = fs.statSync(filePath);\n\n // Skip migrations folder\n if (stat.isDirectory() && file !== \"migrations\") {\n fileList = this.getAllPrismaFiles(filePath, fileList);\n } else if (stat.isFile() && file.endsWith(\".prisma\")) {\n fileList.push(filePath);\n }\n });\n\n return fileList;\n } catch {\n sheu.warn(\"No prisma folder was found in order to load models\", {\n timestamp: true,\n });\n return [];\n }\n }\n\n parseSchemaConfig(): SchemaConfig {\n const config: SchemaConfig = {\n generatorProvider: \"\",\n datasourceProvider: \"\",\n datasourceUrl: \"\",\n };\n\n const lines = this.getPrismaSchemasContent().split(\"\\n\");\n let inGenerator = false;\n let inDatasource = false;\n let braceCount = 0;\n\n for (const line of lines) {\n const trimmed = line.trim();\n\n if (trimmed.startsWith(\"//\") || trimmed.startsWith(\"#\")) continue;\n\n if (trimmed.startsWith(\"generator\")) {\n inGenerator = true;\n continue;\n }\n\n if (trimmed.startsWith(\"datasource\")) {\n inDatasource = true;\n continue;\n }\n\n if (trimmed.includes(\"{\")) braceCount++;\n if (trimmed.includes(\"}\")) braceCount--;\n\n // Check if we're exiting blocks\n if (braceCount === 0) {\n if (inGenerator && trimmed.includes(\"}\")) inGenerator = false;\n\n if (inDatasource && trimmed.includes(\"}\")) inDatasource = false;\n }\n\n if (inGenerator && trimmed.includes(\"provider\")) {\n const match = trimmed.match(/provider\\s*=\\s*\"([^\"]+)\"/);\n if (match) config.generatorProvider = match[1];\n }\n\n if (inDatasource && trimmed.includes(\"provider\")) {\n const match = trimmed.match(/provider\\s*=\\s*\"([^\"]+)\"/);\n if (match) {\n config.datasourceProvider = match[1];\n }\n }\n\n if (inDatasource && trimmed.includes(\"url\")) {\n const match = trimmed.match(/url\\s*=\\s*(env\\(\"([^\"]+)\"\\)|\"([^\"]+)\")/);\n if (match) {\n config.datasourceUrl = match[1];\n }\n }\n }\n\n return config;\n }\n\n /**\n * Checks if a given type name corresponds to a defined enum.\n *\n * @param typeName - The type name to check\n * @returns True if the type is an enum, false otherwise\n *\n * @example\n * ```typescript\n * const parser = new PrismaSchemaParser(schemaWithStatusEnum);\n * parser.parse();\n * parser.isEnum('Status'); // true\n * parser.isEnum('String'); // false\n * ```\n */\n isEnum(typeName: string): boolean {\n return this.enums.some((e) => e.name === typeName);\n }\n\n /**\n * Checks if a given type name corresponds to a defined model.\n *\n * @param typeName - The type name to check\n * @returns True if the type is a model, false otherwise\n *\n * @example\n * ```typescript\n * const parser = new PrismaSchemaParser(schemaWithUserModel);\n * parser.parse();\n * parser.isModel('User'); // true\n * parser.isModel('String'); // false\n * ```\n */\n isModel(typeName: string): boolean {\n return this.models.some((m) => m.name === typeName);\n }\n\n getModelUniqueFields(modelName: string) {\n return this.models\n .find(({ name }) => pascalCase(name) === pascalCase(modelName))\n ?.fields.filter(({ isUnique }) => isUnique);\n }\n\n getModelRelations(modelName: string) {\n return this.models\n .find((model) => pascalCase(model.name) === pascalCase(modelName))\n ?.fields.filter((field) => field.isRelation);\n }\n\n getModelsAsArrayOfStrings() {\n return this.models.map(({ name }) => name);\n }\n\n getField(criteria: Partial<PrismaField>): PrismaField | undefined {\n return this.models\n .reduce((acc, model) => {\n acc.push(...model.fields);\n return acc;\n }, [] as PrismaField[])\n .find((field) => {\n return Object.keys(criteria).every((key) => {\n return (\n field[key as keyof PrismaField] ===\n criteria[key as keyof PrismaField]\n );\n });\n });\n }\n}\n\nconst prismaSchemaParser = new PrismaSchemaParser();\n\nexport default prismaSchemaParser;\n"]}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/prisma/types.ts"],"names":[],"mappings":"","sourcesContent":["export 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 rawLine: string;\n}\n\nexport interface PrismaModel {\n name: string;\n fields: PrismaField[];\n mapName?: string;\n}\n\nexport interface PrismaEnum {\n name: string;\n values: string[];\n}\n\nexport interface PrismaSchema {\n models: PrismaModel[];\n enums: PrismaEnum[];\n}\n\nexport type JsonSchemaProperty = {\n type: string;\n default?: any;\n items?: { type: string };\n format?: string;\n enum?: string[];\n $ref?: string;\n [key: string]: any;\n} & Partial<JsonSchema>;\n\nexport interface JsonSchema {\n type: string;\n properties?: { [key: string]: JsonSchemaProperty };\n items?: { $ref?: string } | JsonSchema;\n required?: string[];\n anyOf?: { required: string[] }[];\n}\n"]}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.removeDir = removeDir;
7
- const fs_1 = __importDefault(require("fs"));
8
- function removeDir(folderPath) {
9
- if (fs_1.default.existsSync(folderPath))
10
- fs_1.default.rmSync(folderPath, { recursive: true, force: true });
11
- else
12
- console.log(`Folder not found: ${folderPath}`);
13
- }
14
- //# sourceMappingURL=remove-dir.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-dir.js","sourceRoot":"","sources":["../../../src/utils/remove-dir.ts"],"names":[],"mappings":";;;;;AAEA,8BAIC;AAND,4CAAoB;AAEpB,SAAgB,SAAS,CAAC,UAAkB;IAC1C,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAC3B,YAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;QACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;AACtD,CAAC","sourcesContent":["import fs from \"fs\";\n\nexport function removeDir(folderPath: string) {\n if (fs.existsSync(folderPath))\n fs.rmSync(folderPath, { recursive: true, force: true });\n else console.log(`Folder not found: ${folderPath}`);\n}\n"]}
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = setupApp;
7
- const compression_1 = __importDefault(require("compression"));
8
- const arkos_config_helpers_1 = require("./helpers/arkos-config.helpers.js");
9
- const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
10
- const deepmerge_helper_1 = __importDefault(require("./helpers/deepmerge.helper.js"));
11
- const cors_1 = __importDefault(require("cors"));
12
- const express_1 = __importDefault(require("express"));
13
- const cookie_parser_1 = __importDefault(require("cookie-parser"));
14
- const query_parser_helpers_1 = require("./helpers/query-parser.helpers.js");
15
- const base_middlewares_1 = require("../modules/base/base.middlewares.js");
16
- const debugger_service_1 = __importDefault(require("../modules/debugger/debugger.service.js"));
17
- function setupApp(app) {
18
- const config = (0, arkos_config_helpers_1.getArkosConfig)();
19
- const middlewaresConfig = config?.middlewares;
20
- if (middlewaresConfig?.compression !== false) {
21
- if (typeof middlewaresConfig?.compression === "function") {
22
- app.use(middlewaresConfig.compression);
23
- }
24
- else {
25
- app.use((0, compression_1.default)(middlewaresConfig?.compression || {}));
26
- }
27
- }
28
- if (middlewaresConfig?.rateLimit !== false) {
29
- if (typeof middlewaresConfig?.rateLimit === "function") {
30
- app.use(middlewaresConfig.rateLimit);
31
- }
32
- else {
33
- app.use((0, express_rate_limit_1.default)((0, deepmerge_helper_1.default)({
34
- windowMs: 60 * 1000,
35
- limit: 300,
36
- standardHeaders: "draft-7",
37
- legacyHeaders: false,
38
- handler: (_, res) => {
39
- res.status(429).json({
40
- message: "Too many requests, please try again later",
41
- });
42
- },
43
- }, middlewaresConfig?.rateLimit || {})));
44
- }
45
- }
46
- if (middlewaresConfig?.cors !== false) {
47
- if (typeof middlewaresConfig?.cors === "function") {
48
- app.use(middlewaresConfig.cors);
49
- }
50
- else {
51
- app.use((0, cors_1.default)(middlewaresConfig?.cors?.customHandler
52
- ? middlewaresConfig.cors.customHandler
53
- : (0, deepmerge_helper_1.default)({
54
- origin: (origin, cb) => {
55
- const allowed = middlewaresConfig?.cors
56
- ?.allowedOrigins;
57
- if (allowed === "*")
58
- cb(null, true);
59
- else if (Array.isArray(allowed))
60
- cb(null, !origin || allowed?.includes?.(origin));
61
- else if (typeof allowed === "string")
62
- cb(null, !origin || allowed === origin);
63
- else
64
- cb(null, false);
65
- },
66
- methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
67
- allowedHeaders: [
68
- "Content-Type",
69
- "Authorization",
70
- "Connection",
71
- ],
72
- credentials: true,
73
- }, middlewaresConfig?.cors?.options || {})));
74
- }
75
- }
76
- if (middlewaresConfig?.expressJson !== false) {
77
- if (typeof middlewaresConfig?.expressJson === "function") {
78
- app.use(middlewaresConfig.expressJson);
79
- }
80
- else {
81
- app.use(express_1.default.json(middlewaresConfig?.expressJson || {}));
82
- }
83
- }
84
- if (middlewaresConfig?.cookieParser !== false) {
85
- if (typeof middlewaresConfig?.cookieParser === "function") {
86
- app.use(middlewaresConfig.cookieParser);
87
- }
88
- else {
89
- const params = Array.isArray(middlewaresConfig?.cookieParser)
90
- ? middlewaresConfig.cookieParser
91
- : [];
92
- app.use((0, cookie_parser_1.default)(...params));
93
- }
94
- }
95
- if (middlewaresConfig?.queryParser !== false) {
96
- if (typeof middlewaresConfig?.queryParser === "function") {
97
- app.use(middlewaresConfig.queryParser);
98
- }
99
- else {
100
- app.use((0, query_parser_helpers_1.queryParser)((0, deepmerge_helper_1.default)({
101
- parseNull: true,
102
- parseUndefined: true,
103
- parseBoolean: true,
104
- parseNumber: true,
105
- }, middlewaresConfig?.queryParser || {})));
106
- }
107
- }
108
- if (middlewaresConfig?.requestLogger !== false) {
109
- if (typeof middlewaresConfig?.requestLogger === "function") {
110
- app.use(middlewaresConfig.requestLogger);
111
- }
112
- else {
113
- app.use(base_middlewares_1.handleRequestLogs);
114
- }
115
- }
116
- app.use(debugger_service_1.default.logRequestInfo);
117
- return app;
118
- }
119
- //# sourceMappingURL=setup-app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-app.js","sourceRoot":"","sources":["../../../src/utils/setup-app.ts"],"names":[],"mappings":"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","sourcesContent":["import compression from \"compression\";\nimport { Arkos } from \"../types/arkos\";\nimport { getArkosConfig } from \"./helpers/arkos-config.helpers\";\nimport rateLimit from \"express-rate-limit\";\nimport deepmerge from \"./helpers/deepmerge.helper\";\nimport cors from \"cors\";\nimport express from \"express\";\nimport cookieParser from \"cookie-parser\";\nimport { queryParser } from \"./helpers/query-parser.helpers\";\nimport { handleRequestLogs } from \"../modules/base/base.middlewares\";\nimport debuggerService from \"../modules/debugger/debugger.service\";\n\nexport default function setupApp(app: Arkos) {\n const config = getArkosConfig();\n\n const middlewaresConfig = config?.middlewares;\n\n if (middlewaresConfig?.compression !== false) {\n if (typeof middlewaresConfig?.compression === \"function\") {\n app.use(middlewaresConfig.compression);\n } else {\n app.use(compression(middlewaresConfig?.compression || {}));\n }\n }\n\n if (middlewaresConfig?.rateLimit !== false) {\n if (typeof middlewaresConfig?.rateLimit === \"function\") {\n app.use(middlewaresConfig.rateLimit);\n } else {\n app.use(\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 300,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n handler: (_, res) => {\n res.status(429).json({\n message: \"Too many requests, please try again later\",\n });\n },\n },\n middlewaresConfig?.rateLimit || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.cors !== false) {\n if (typeof middlewaresConfig?.cors === \"function\") {\n app.use(middlewaresConfig.cors);\n } else {\n app.use(\n cors(\n middlewaresConfig?.cors?.customHandler\n ? middlewaresConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = (middlewaresConfig?.cors as any)\n ?.allowedOrigins;\n\n if (allowed === \"*\") cb(null, true);\n else if (Array.isArray(allowed))\n cb(null, !origin || allowed?.includes?.(origin));\n else if (typeof allowed === \"string\")\n cb(null, !origin || allowed === origin);\n else cb(null, false);\n },\n\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n middlewaresConfig?.cors?.options || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.expressJson !== false) {\n if (typeof middlewaresConfig?.expressJson === \"function\") {\n app.use(middlewaresConfig.expressJson);\n } else {\n app.use(express.json(middlewaresConfig?.expressJson || {}));\n }\n }\n\n if (middlewaresConfig?.cookieParser !== false) {\n if (typeof middlewaresConfig?.cookieParser === \"function\") {\n app.use(middlewaresConfig.cookieParser);\n } else {\n const params = Array.isArray(middlewaresConfig?.cookieParser)\n ? middlewaresConfig.cookieParser\n : [];\n app.use(cookieParser(...(params as any))); // FIXME: check types correctly\n }\n }\n\n if (middlewaresConfig?.queryParser !== false) {\n if (typeof middlewaresConfig?.queryParser === \"function\") {\n app.use(middlewaresConfig.queryParser);\n } else {\n app.use(\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n parseNumber: true,\n },\n middlewaresConfig?.queryParser || {}\n )\n )\n );\n }\n }\n\n if (middlewaresConfig?.requestLogger !== false) {\n if (typeof middlewaresConfig?.requestLogger === \"function\") {\n app.use(middlewaresConfig.requestLogger);\n } else {\n app.use(handleRequestLogs);\n }\n }\n\n app.use(debuggerService.logRequestInfo);\n\n return app;\n}\n"]}