arkos 2.0.0-next.3 → 2.0.0-next.30

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 (655) hide show
  1. package/README.md +146 -145
  2. package/cli.js +11 -20
  3. package/dist/esm/app.js +37 -35
  4. package/dist/esm/app.js.map +1 -1
  5. package/dist/esm/components/arkos-gateway/arkos-gateway.js +362 -0
  6. package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
  7. package/dist/esm/components/arkos-gateway/socket-extensions.js +176 -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 +30 -19
  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/file-upload.js +2 -0
  30. package/dist/esm/exports/file-upload.js.map +1 -0
  31. package/dist/esm/exports/index.js +3 -3
  32. package/dist/esm/exports/index.js.map +1 -1
  33. package/dist/esm/exports/middlewares/index.js +1 -1
  34. package/dist/esm/exports/middlewares/index.js.map +1 -1
  35. package/dist/esm/exports/services/index.js +2 -2
  36. package/dist/esm/exports/services/index.js.map +1 -1
  37. package/dist/esm/exports/websockets.js +5 -0
  38. package/dist/esm/exports/websockets.js.map +1 -0
  39. package/dist/esm/generated.js.map +1 -1
  40. package/dist/esm/modules/auth/auth.controller.js +165 -230
  41. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  42. package/dist/esm/modules/auth/auth.router.js +28 -10
  43. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  44. package/dist/esm/modules/auth/auth.service.js +202 -136
  45. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  46. package/dist/esm/modules/auth/auth.types.js +2 -0
  47. package/dist/esm/modules/auth/auth.types.js.map +1 -0
  48. package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
  49. package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
  50. package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
  51. package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
  52. package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
  53. package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
  54. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
  55. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
  56. package/dist/esm/modules/auth/utils/docs-links.js +6 -0
  57. package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
  58. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
  59. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js.map +1 -1
  60. package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
  61. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  62. package/dist/esm/modules/auth/utils/token-extraction.js +57 -0
  63. package/dist/esm/modules/auth/utils/token-extraction.js.map +1 -0
  64. package/dist/esm/modules/base/base.controller.js +228 -202
  65. package/dist/esm/modules/base/base.controller.js.map +1 -1
  66. package/dist/esm/modules/base/base.middlewares.js +69 -86
  67. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  68. package/dist/esm/modules/base/base.router.js +23 -9
  69. package/dist/esm/modules/base/base.router.js.map +1 -1
  70. package/dist/esm/modules/base/base.service.js +92 -197
  71. package/dist/esm/modules/base/base.service.js.map +1 -1
  72. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  73. package/dist/esm/modules/base/utils/error-prettifier.js +90 -30
  74. package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
  75. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
  76. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  77. package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
  78. package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
  79. package/dist/esm/modules/email/email.service.js +21 -12
  80. package/dist/esm/modules/email/email.service.js.map +1 -1
  81. package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
  82. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  83. package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
  84. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  85. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
  86. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +60 -110
  87. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  88. package/dist/esm/modules/error-handler/utils/errors.js +127 -0
  89. package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
  90. package/dist/esm/modules/error-handler/utils/get-handled-error.js +73 -0
  91. package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
  92. package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
  93. package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  94. package/dist/esm/modules/file-upload/file-upload.controller.js +227 -215
  95. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  96. package/dist/esm/modules/file-upload/file-upload.router.js +54 -15
  97. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  98. package/dist/esm/modules/file-upload/file-upload.service.js +41 -26
  99. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  100. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +371 -0
  101. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
  102. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +73 -35
  103. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  104. package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js +206 -0
  105. package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js.map +1 -0
  106. package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js +103 -0
  107. package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js.map +1 -0
  108. package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js +212 -0
  109. package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js.map +1 -0
  110. package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js +30 -0
  111. package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js.map +1 -0
  112. package/dist/esm/modules/swagger/swagger.router.js +39 -22
  113. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  114. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
  115. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
  116. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
  117. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
  118. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  119. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +47 -43
  120. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  121. package/dist/esm/server.js +1 -1
  122. package/dist/esm/server.js.map +1 -1
  123. package/dist/esm/types/arkos-config/utils.js +2 -0
  124. package/dist/esm/types/arkos-config/utils.js.map +1 -0
  125. package/dist/esm/types/arkos-prisma-input.js.map +1 -1
  126. package/dist/esm/types/arkos.js.map +1 -1
  127. package/dist/esm/types/auth.js.map +1 -1
  128. package/dist/esm/types/index.js.map +1 -1
  129. package/dist/esm/types/internal.js +2 -0
  130. package/dist/esm/types/internal.js.map +1 -0
  131. package/dist/esm/types/new-arkos-config.js.map +1 -1
  132. package/dist/esm/types/router-config.js.map +1 -1
  133. package/dist/esm/types/upload.js +2 -0
  134. package/dist/esm/types/upload.js.map +1 -0
  135. package/dist/esm/types/validation/validation-manager.js +57 -0
  136. package/dist/esm/types/validation/validation-manager.js.map +1 -0
  137. package/dist/esm/types/validation/validator.js +2 -0
  138. package/dist/esm/types/validation/validator.js.map +1 -0
  139. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
  140. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  141. package/dist/esm/utils/arkos-router/index.js +58 -158
  142. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  143. package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
  144. package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
  145. package/dist/esm/utils/arkos-router/route-config-validator.js +11 -10
  146. package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
  147. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  148. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
  149. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
  150. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +198 -0
  151. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
  152. package/dist/esm/utils/arkos-router/utils/helpers/index.js +92 -29
  153. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  154. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +683 -119
  155. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  156. package/dist/esm/utils/bundler.js +6 -6
  157. package/dist/esm/utils/bundler.js.map +1 -1
  158. package/dist/esm/utils/cli/build.js +16 -9
  159. package/dist/esm/utils/cli/build.js.map +1 -1
  160. package/dist/esm/utils/cli/dev.js +33 -32
  161. package/dist/esm/utils/cli/dev.js.map +1 -1
  162. package/dist/esm/utils/cli/export-auth-action.js +7 -7
  163. package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
  164. package/dist/esm/utils/cli/generate.js +77 -58
  165. package/dist/esm/utils/cli/generate.js.map +1 -1
  166. package/dist/esm/utils/cli/index.js +74 -56
  167. package/dist/esm/utils/cli/index.js.map +1 -1
  168. package/dist/esm/utils/cli/prisma-generate.js +66 -35
  169. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  170. package/dist/esm/utils/cli/start.js +27 -16
  171. package/dist/esm/utils/cli/start.js.map +1 -1
  172. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  173. package/dist/esm/utils/cli/utils/dependency-version-check.js +39 -0
  174. package/dist/esm/utils/cli/utils/dependency-version-check.js.map +1 -0
  175. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -3
  176. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
  177. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
  178. package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
  179. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
  180. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
  182. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  183. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
  184. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  185. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
  186. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
  187. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
  188. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  189. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
  190. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  191. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
  192. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
  193. package/dist/esm/utils/cli/utils/template-generators.js +31 -18
  194. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  195. package/dist/esm/utils/cli/utils/watermark-stamper.js +1 -1
  196. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
  197. package/dist/esm/utils/define-config.js +15 -0
  198. package/dist/esm/utils/define-config.js.map +1 -1
  199. package/dist/esm/utils/docs-links.js +2 -0
  200. package/dist/esm/utils/docs-links.js.map +1 -0
  201. package/dist/esm/utils/dotenv.helpers.js +3 -7
  202. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  203. package/dist/esm/utils/dynamic-loader.js +6 -5
  204. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  205. package/dist/esm/utils/features/api.features.js +46 -27
  206. package/dist/esm/utils/features/api.features.js.map +1 -1
  207. package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
  208. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  209. package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
  210. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  211. package/dist/esm/utils/helpers/arkos-config.helpers.js +60 -24
  212. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  213. package/dist/esm/utils/helpers/exit-error.js +1 -0
  214. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  215. package/dist/esm/utils/helpers/fs.helpers.js +25 -32
  216. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  217. package/dist/esm/utils/helpers/global.helpers.js +1 -1
  218. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  219. package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
  220. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  221. package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
  222. package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
  223. package/dist/esm/utils/helpers/routers.helpers.js +2 -2
  224. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  225. package/dist/esm/utils/helpers/url-helpers.js +11 -0
  226. package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
  227. package/dist/esm/utils/initialize-app.js +43 -17
  228. package/dist/esm/utils/initialize-app.js.map +1 -1
  229. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
  230. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  231. package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
  232. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  233. package/dist/esm/utils/prisma/types.js.map +1 -1
  234. package/dist/esm/utils/remove-dir.js +1 -1
  235. package/dist/esm/utils/remove-dir.js.map +1 -1
  236. package/dist/esm/utils/setup-app.js +59 -42
  237. package/dist/esm/utils/setup-app.js.map +1 -1
  238. package/dist/esm/utils/validate-schema.js +25 -23
  239. package/dist/esm/utils/validate-schema.js.map +1 -1
  240. package/dist/types/app.d.ts +15 -10
  241. package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +135 -0
  242. package/dist/types/components/arkos-gateway/socket-extensions.d.ts +80 -0
  243. package/dist/types/components/arkos-gateway/types.d.ts +467 -0
  244. package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
  245. package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
  246. package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
  247. package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
  248. package/dist/types/components/arkos-route-hook/index.d.ts +13 -6
  249. package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
  250. package/dist/types/components/arkos-route-hook/types.d.ts +12 -5
  251. package/dist/types/exports/error-handler/index.d.ts +1 -0
  252. package/dist/types/exports/file-upload.d.ts +1 -0
  253. package/dist/types/exports/index.d.ts +4 -5
  254. package/dist/types/exports/middlewares/index.d.ts +1 -1
  255. package/dist/types/exports/services/index.d.ts +3 -3
  256. package/dist/types/exports/websockets.d.ts +5 -0
  257. package/dist/types/modules/auth/auth.controller.d.ts +10 -3
  258. package/dist/types/modules/auth/auth.service.d.ts +170 -51
  259. package/dist/types/modules/auth/auth.types.d.ts +72 -0
  260. package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
  261. package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
  262. package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
  263. package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
  264. package/dist/types/modules/auth/utils/helpers/auth.controller.helpers.d.ts +1 -0
  265. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
  266. package/dist/types/modules/auth/utils/token-extraction.d.ts +53 -0
  267. package/dist/types/modules/base/base.controller.d.ts +7 -6
  268. package/dist/types/modules/base/base.middlewares.d.ts +3 -9
  269. package/dist/types/modules/base/base.service.d.ts +18 -26
  270. package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
  271. package/dist/types/modules/base/utils/error-prettifier.d.ts +8 -0
  272. package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
  273. package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
  274. package/dist/types/modules/email/email.service.d.ts +3 -1
  275. package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
  276. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
  277. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +2 -27
  278. package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
  279. package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
  280. package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
  281. package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
  282. package/dist/types/modules/file-upload/file-upload.service.d.ts +2 -6
  283. package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
  284. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +21 -1
  285. package/dist/types/modules/file-upload/utils/helpers/serve-upload-dir.d.ts +43 -0
  286. package/dist/types/modules/file-upload/utils/helpers/upload-path.helper.d.ts +14 -0
  287. package/dist/types/modules/file-upload/utils/helpers/upload-serving-validation.d.ts +5 -0
  288. package/dist/types/modules/file-upload/utils/helpers/upload-serving.registry.d.ts +31 -0
  289. package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
  290. package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
  291. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
  292. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +8 -3
  293. package/dist/types/types/arkos-config/utils.d.ts +68 -0
  294. package/dist/types/types/arkos-prisma-input.d.ts +7 -3
  295. package/dist/types/types/arkos.d.ts +5 -15
  296. package/dist/types/types/auth.d.ts +4 -4
  297. package/dist/types/types/index.d.ts +15 -58
  298. package/dist/types/types/internal.d.ts +25 -0
  299. package/dist/types/types/new-arkos-config.d.ts +374 -67
  300. package/dist/types/types/router-config.d.ts +3 -66
  301. package/dist/types/types/upload.d.ts +45 -0
  302. package/dist/types/types/validation/validation-manager.d.ts +25 -0
  303. package/dist/types/types/validation/validator.d.ts +2 -0
  304. package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
  305. package/dist/types/utils/arkos-router/index.d.ts +86 -11
  306. package/dist/types/utils/arkos-router/types/index.d.ts +83 -31
  307. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
  308. package/dist/types/utils/arkos-router/types/upload-config.d.ts +158 -10
  309. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
  310. package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
  311. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +21 -36
  312. package/dist/types/utils/bundler.d.ts +1 -1
  313. package/dist/types/utils/cli/build.d.ts +1 -1
  314. package/dist/types/utils/cli/generate.d.ts +15 -6
  315. package/dist/types/utils/cli/start.d.ts +3 -1
  316. package/dist/types/utils/cli/utils/dependency-version-check.d.ts +15 -0
  317. package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
  318. package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
  319. package/dist/types/utils/define-config.d.ts +57 -3
  320. package/dist/types/utils/docs-links.d.ts +1 -0
  321. package/dist/types/utils/dotenv.helpers.d.ts +1 -0
  322. package/dist/types/utils/dynamic-loader.d.ts +2 -2
  323. package/dist/types/utils/features/api.features.d.ts +1 -2
  324. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +9 -1
  325. package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
  326. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  327. package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
  328. package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
  329. package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
  330. package/dist/types/utils/initialize-app.d.ts +1 -0
  331. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
  332. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
  333. package/dist/types/utils/prisma/types.d.ts +3 -2
  334. package/dist/types/utils/validate-schema.d.ts +1 -1
  335. package/package.json +84 -75
  336. package/dist/cjs/app.js +0 -79
  337. package/dist/cjs/app.js.map +0 -1
  338. package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
  339. package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
  340. package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
  341. package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
  342. package/dist/cjs/components/arkos-policy/index.js +0 -36
  343. package/dist/cjs/components/arkos-policy/index.js.map +0 -1
  344. package/dist/cjs/components/arkos-policy/types.js +0 -3
  345. package/dist/cjs/components/arkos-policy/types.js.map +0 -1
  346. package/dist/cjs/components/arkos-route-hook/index.js +0 -50
  347. package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
  348. package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
  349. package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
  350. package/dist/cjs/components/arkos-route-hook/types.js +0 -3
  351. package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
  352. package/dist/cjs/components/arkos-service-hook/index.js +0 -35
  353. package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
  354. package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
  355. package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
  356. package/dist/cjs/components/arkos-service-hook/types.js +0 -3
  357. package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
  358. package/dist/cjs/exports/auth/index.js +0 -6
  359. package/dist/cjs/exports/auth/index.js.map +0 -1
  360. package/dist/cjs/exports/config.js +0 -6
  361. package/dist/cjs/exports/config.js.map +0 -1
  362. package/dist/cjs/exports/controllers/index.js +0 -42
  363. package/dist/cjs/exports/controllers/index.js.map +0 -1
  364. package/dist/cjs/exports/error-handler/index.js +0 -11
  365. package/dist/cjs/exports/error-handler/index.js.map +0 -1
  366. package/dist/cjs/exports/index.js +0 -23
  367. package/dist/cjs/exports/index.js.map +0 -1
  368. package/dist/cjs/exports/middlewares/index.js +0 -7
  369. package/dist/cjs/exports/middlewares/index.js.map +0 -1
  370. package/dist/cjs/exports/prisma/index.js +0 -13
  371. package/dist/cjs/exports/prisma/index.js.map +0 -1
  372. package/dist/cjs/exports/services/index.js +0 -53
  373. package/dist/cjs/exports/services/index.js.map +0 -1
  374. package/dist/cjs/exports/utils/index.js +0 -26
  375. package/dist/cjs/exports/utils/index.js.map +0 -1
  376. package/dist/cjs/exports/validation/index.js +0 -11
  377. package/dist/cjs/exports/validation/index.js.map +0 -1
  378. package/dist/cjs/generated.js +0 -7
  379. package/dist/cjs/generated.js.map +0 -1
  380. package/dist/cjs/modules/auth/auth.controller.js +0 -254
  381. package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
  382. package/dist/cjs/modules/auth/auth.router.js +0 -113
  383. package/dist/cjs/modules/auth/auth.router.js.map +0 -1
  384. package/dist/cjs/modules/auth/auth.service.js +0 -277
  385. package/dist/cjs/modules/auth/auth.service.js.map +0 -1
  386. package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
  387. package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
  388. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
  389. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  390. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
  391. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
  392. package/dist/cjs/modules/base/base.controller.js +0 -275
  393. package/dist/cjs/modules/base/base.controller.js.map +0 -1
  394. package/dist/cjs/modules/base/base.middlewares.js +0 -231
  395. package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
  396. package/dist/cjs/modules/base/base.router.js +0 -112
  397. package/dist/cjs/modules/base/base.router.js.map +0 -1
  398. package/dist/cjs/modules/base/base.service.js +0 -432
  399. package/dist/cjs/modules/base/base.service.js.map +0 -1
  400. package/dist/cjs/modules/base/types/base.service.types.js +0 -3
  401. package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
  402. package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
  403. package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
  404. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
  405. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  406. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
  407. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  408. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
  409. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  410. package/dist/cjs/modules/base/utils/router-validator.js +0 -13
  411. package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
  412. package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
  413. package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
  414. package/dist/cjs/modules/debugger/debugger.service.js +0 -59
  415. package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
  416. package/dist/cjs/modules/email/email.service.js +0 -106
  417. package/dist/cjs/modules/email/email.service.js.map +0 -1
  418. package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
  419. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
  420. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
  421. package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
  422. package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
  423. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
  424. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
  425. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  426. package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
  427. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
  428. package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
  429. package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
  430. package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
  431. package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
  432. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
  433. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
  434. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
  435. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  436. package/dist/cjs/modules/swagger/swagger.router.js +0 -65
  437. package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
  438. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
  439. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  440. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
  441. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
  442. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
  443. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  444. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
  445. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  446. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
  447. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
  448. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
  449. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  450. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
  451. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  452. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
  453. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  454. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
  455. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  456. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
  457. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  458. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
  459. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  460. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
  461. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  462. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
  463. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
  464. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
  465. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  466. package/dist/cjs/package.json +0 -3
  467. package/dist/cjs/server.js +0 -60
  468. package/dist/cjs/server.js.map +0 -1
  469. package/dist/cjs/types/arkos-prisma-input.js +0 -3
  470. package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
  471. package/dist/cjs/types/arkos.js +0 -3
  472. package/dist/cjs/types/arkos.js.map +0 -1
  473. package/dist/cjs/types/auth.js +0 -3
  474. package/dist/cjs/types/auth.js.map +0 -1
  475. package/dist/cjs/types/index.js +0 -3
  476. package/dist/cjs/types/index.js.map +0 -1
  477. package/dist/cjs/types/new-arkos-config.js +0 -3
  478. package/dist/cjs/types/new-arkos-config.js.map +0 -1
  479. package/dist/cjs/types/router-config.js +0 -3
  480. package/dist/cjs/types/router-config.js.map +0 -1
  481. package/dist/cjs/utils/arkos-env.js +0 -9
  482. package/dist/cjs/utils/arkos-env.js.map +0 -1
  483. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
  484. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
  485. package/dist/cjs/utils/arkos-router/index.js +0 -253
  486. package/dist/cjs/utils/arkos-router/index.js.map +0 -1
  487. package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
  488. package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
  489. package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
  490. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
  491. package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
  492. package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
  493. package/dist/cjs/utils/arkos-router/types/index.js +0 -3
  494. package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
  495. package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
  496. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
  497. package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
  498. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
  499. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
  500. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
  501. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
  502. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
  503. package/dist/cjs/utils/bundler.js +0 -163
  504. package/dist/cjs/utils/bundler.js.map +0 -1
  505. package/dist/cjs/utils/cli/build.js +0 -200
  506. package/dist/cjs/utils/cli/build.js.map +0 -1
  507. package/dist/cjs/utils/cli/dev.js +0 -128
  508. package/dist/cjs/utils/cli/dev.js.map +0 -1
  509. package/dist/cjs/utils/cli/export-auth-action.js +0 -79
  510. package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
  511. package/dist/cjs/utils/cli/generate.js +0 -229
  512. package/dist/cjs/utils/cli/generate.js.map +0 -1
  513. package/dist/cjs/utils/cli/index.js +0 -191
  514. package/dist/cjs/utils/cli/index.js.map +0 -1
  515. package/dist/cjs/utils/cli/prisma-generate.js +0 -112
  516. package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
  517. package/dist/cjs/utils/cli/start.js +0 -72
  518. package/dist/cjs/utils/cli/start.js.map +0 -1
  519. package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
  520. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
  521. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -114
  522. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
  523. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
  524. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
  525. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
  526. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
  527. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
  528. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  529. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
  530. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
  531. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
  532. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
  533. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
  534. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  535. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
  536. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
  537. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
  538. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  539. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
  540. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
  541. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
  542. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
  543. package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
  544. package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
  545. package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
  546. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
  547. package/dist/cjs/utils/define-config.js +0 -46
  548. package/dist/cjs/utils/define-config.js.map +0 -1
  549. package/dist/cjs/utils/dotenv.helpers.js +0 -52
  550. package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
  551. package/dist/cjs/utils/dynamic-loader.js +0 -22
  552. package/dist/cjs/utils/dynamic-loader.js.map +0 -1
  553. package/dist/cjs/utils/expand-env.js +0 -72
  554. package/dist/cjs/utils/expand-env.js.map +0 -1
  555. package/dist/cjs/utils/features/api.features.js +0 -201
  556. package/dist/cjs/utils/features/api.features.js.map +0 -1
  557. package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
  558. package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
  559. package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
  560. package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
  561. package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
  562. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
  563. package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
  564. package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
  565. package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
  566. package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
  567. package/dist/cjs/utils/helpers/exit-error.js +0 -12
  568. package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
  569. package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
  570. package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
  571. package/dist/cjs/utils/helpers/global.helpers.js +0 -105
  572. package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
  573. package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
  574. package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
  575. package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
  576. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
  577. package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
  578. package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
  579. package/dist/cjs/utils/helpers/text.helpers.js +0 -28
  580. package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
  581. package/dist/cjs/utils/initialize-app.js +0 -55
  582. package/dist/cjs/utils/initialize-app.js.map +0 -1
  583. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
  584. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
  585. package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
  586. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
  587. package/dist/cjs/utils/prisma/types.js +0 -3
  588. package/dist/cjs/utils/prisma/types.js.map +0 -1
  589. package/dist/cjs/utils/remove-dir.js +0 -14
  590. package/dist/cjs/utils/remove-dir.js.map +0 -1
  591. package/dist/cjs/utils/setup-app.js +0 -119
  592. package/dist/cjs/utils/setup-app.js.map +0 -1
  593. package/dist/cjs/utils/sheu.js +0 -131
  594. package/dist/cjs/utils/sheu.js.map +0 -1
  595. package/dist/cjs/utils/validate-dto.js +0 -19
  596. package/dist/cjs/utils/validate-dto.js.map +0 -1
  597. package/dist/cjs/utils/validate-schema.js +0 -75
  598. package/dist/cjs/utils/validate-schema.js.map +0 -1
  599. package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
  600. package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
  601. package/dist/esm/components/arkos-service-hook/index.js +0 -32
  602. package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
  603. package/dist/esm/components/arkos-service-hook/reader.js +0 -24
  604. package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
  605. package/dist/esm/components/arkos-service-hook/types.js +0 -2
  606. package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
  607. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
  608. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  609. package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
  610. package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
  611. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
  612. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  613. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
  614. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  615. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
  616. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  617. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
  618. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  619. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
  620. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  621. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
  622. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  623. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
  624. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  625. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
  626. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  627. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
  628. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  629. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
  630. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  631. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
  632. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  633. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
  634. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  635. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
  636. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  637. package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
  638. package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
  639. package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
  640. package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
  641. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
  642. package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
  643. package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
  644. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
  645. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
  646. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
  647. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
  648. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
  649. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
  650. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
  651. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
  652. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
  653. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
  654. package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
  655. package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
@@ -1,43 +1,35 @@
1
- import { ModelGroupRelationFields } from "./utils/helpers/base.service.helpers";
2
- import { PrismaClient } from "../../generated";
3
- import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from "./types/base.service.types";
4
- import { ServiceHookContext } from "../../components/arkos-service-hook/types";
5
- export interface ServiceOperationHooks {
6
- beforeOperation?: (params: any) => void | Promise<void>;
7
- afterOperation?: (result: any, params: any) => void | Promise<void>;
8
- beforePrisma?: (prismaArgs: any, params: any) => any | Promise<any>;
9
- afterPrisma?: (result: any, params: any) => any | Promise<any>;
10
- }
1
+ import { ModelGroupRelationFields } from './utils/helpers/base.service.helpers';
2
+ import { PrismaClient } from '../../generated';
3
+ import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from './types/base.service.types';
4
+ import { ServiceHookContext } from './types/base.service.types';
5
+ import { ArkosPrismaInput } from '../../types/arkos-prisma-input';
11
6
  /**
12
7
  * Base service class for handling CRUD operations on a specific model.
13
8
  * This class provides standard implementation of data operations that can be extended
14
9
  * by model-specific service classes.
15
10
  *
16
- * @class BaseService
11
+ * @class ArkosPrismaService
17
12
  *
18
13
  * @example
19
14
  * ```ts
20
- * import { BaseService } from "arkos/services";
15
+ * import { ArkosPrismaService } from "arkos/services";
21
16
  *
22
- * export class UserService extends BaseService<"user"> {}
17
+ * export class UserService extends ArkosPrismaService<"user"> {}
23
18
  *
24
19
  * const userService = new UserService("user");
25
20
  * ```
26
21
  *
27
- * @see {@link https://www.arkosjs.com/docs/api-reference/the-base-service-class}
22
+ * @see {@link https://www.arkosjs.com/docs/reference/base-service}
28
23
  * @see {@link https://www.arkosjs.com/docs/guide/accessing-request-context-in-services}
29
24
  */
30
- export declare class BaseService<TModelName extends keyof Models = keyof Models> {
25
+ export declare class ArkosPrismaService<TModelName extends keyof Models = keyof Models> {
31
26
  modelName: TModelName;
32
27
  relationFields: ModelGroupRelationFields;
33
- prisma: PrismaClient;
28
+ private prismaInstace?;
34
29
  constructor(modelName: TModelName);
35
- private getServiceHook;
30
+ get prisma(): PrismaClient;
36
31
  private executeOperation;
37
32
  private executeTransactionOperation;
38
- private executeHooks;
39
- private buildHookParams;
40
- private buildTransactionHookParams;
41
33
  private handlePasswordHashing;
42
34
  private processRelationFieldsInBody;
43
35
  private buildPrismaArgs;
@@ -59,7 +51,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
59
51
  * });
60
52
  * ```
61
53
  */
62
- createOne<TOptions extends CreateOptions<TModelName>>(data: CreateData<TModelName>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
54
+ createOne<TOptions extends CreateOptions<TModelName>>(data: CreateData<TModelName> | ArkosPrismaInput<CreateData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
63
55
  /**
64
56
  * Creates multiple records in the database.
65
57
  *
@@ -75,7 +67,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
75
67
  * ]);
76
68
  * ```
77
69
  */
78
- createMany<TOptions extends CreateManyOptions<TModelName>>(data: CreateManyData<TModelName>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
70
+ createMany<TOptions extends CreateManyOptions<TModelName>>(data: CreateManyData<TModelName> | ArkosPrismaInput<CreateManyData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
79
71
  /**
80
72
  * Counts records matching the specified filters.
81
73
  *
@@ -147,7 +139,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
147
139
  * );
148
140
  * ```
149
141
  */
150
- updateOne<TOptions extends UpdateOneOptions<TModelName>>(filters: UpdateOneFilters<TModelName>, data: UpdateOneData<TModelName>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
142
+ updateOne<TOptions extends UpdateOneOptions<TModelName>>(filters: UpdateOneFilters<TModelName>, data: UpdateOneData<TModelName> | ArkosPrismaInput<UpdateOneData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
151
143
  /**
152
144
  * Updates a single record matching the specified id.
153
145
  *
@@ -161,7 +153,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
161
153
  * const updated = await userService.updateById("user-123", { name: "John Updated" });
162
154
  * ```
163
155
  */
164
- updateById<TOptions extends UpdateOneOptions<TModelName>>(id: string | number, data: UpdateOneData<TModelName>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
156
+ updateById<TOptions extends UpdateOneOptions<TModelName>>(id: string | number, data: UpdateOneData<TModelName> | ArkosPrismaInput<UpdateOneData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
165
157
  /**
166
158
  * Updates multiple records matching the specified filters.
167
159
  *
@@ -178,7 +170,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
178
170
  * );
179
171
  * ```
180
172
  */
181
- updateMany<TOptions extends UpdateManyOptions<TModelName>>(filters: UpdateManyFilters<TModelName>, data: UpdateManyData<TModelName>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<{
173
+ updateMany<TOptions extends UpdateManyOptions<TModelName>>(filters: UpdateManyFilters<TModelName>, data: UpdateManyData<TModelName> | ArkosPrismaInput<UpdateManyData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<{
182
174
  count: number;
183
175
  }>;
184
176
  /**
@@ -234,7 +226,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
234
226
  * ]);
235
227
  * ```
236
228
  */
237
- batchUpdate<TOptions extends UpdateOneOptions<TModelName>>(dataArray: UpdateOneData<TModelName>[], queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
229
+ batchUpdate<TOptions extends UpdateOneOptions<TModelName>>(dataArray: UpdateOneData<TModelName>[] | ArkosPrismaInput<UpdateOneData<TModelName>>[], queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
238
230
  /**
239
231
  * Performs multiple delete operations in a single transaction.
240
232
  *
@@ -1,5 +1,16 @@
1
1
  import { ExtractPrismaData, ExtractPrismaFilters, ExtractPrismaQueryOptions, PrismaModels } from "../../../generated";
2
+ import { User } from "../../../types";
2
3
  export type Models = PrismaModels<any>;
4
+ export interface ServiceHookContext {
5
+ /**
6
+ * The authenticated user making the request.
7
+ */
8
+ user?: User;
9
+ /**
10
+ * The access token from the request for authorization.
11
+ */
12
+ accessToken?: string;
13
+ }
3
14
  export type Delegate<TModelName extends keyof Models> = Models[TModelName]["Delegate"];
4
15
  export type CreateData<TModelName extends keyof Models> = ExtractPrismaData<Models[TModelName]["CreateArgs"]>;
5
16
  export type CreateOptions<TModelName extends keyof Models> = ExtractPrismaQueryOptions<Models[TModelName]["CreateArgs"], "data">;
@@ -96,6 +96,14 @@ export declare class ErrorPrettifier {
96
96
  * @returns Class-validator style constraint name
97
97
  */
98
98
  private mapZodToConstraintName;
99
+ /**
100
+ * Maps a Zod `invalid_format` format (e.g. "email", "uuid", "regex") to a
101
+ * class-validator style constraint name.
102
+ *
103
+ * @param format - The format reported by Zod
104
+ * @returns Class-validator style constraint name
105
+ */
106
+ private mapZodFormatToConstraintName;
99
107
  /**
100
108
  * Prettifies Zod ZodError.
101
109
  * Handles nested paths and multiple issues per field.
@@ -40,7 +40,7 @@ export declare function throwErrorIfApiActionIsInvalid(apiAction: string): void;
40
40
  * @param {string[]} ignoreActions - Optional list of apiAction values to ignore.
41
41
  * @returns {Record<string, any>} The transformed data with appropriate Prisma operations applied.
42
42
  */
43
- export declare function handleRelationFieldsInBody(body: Record<string, any>, relationFields: ModelGroupRelationFields, ignoreActions?: string[], isRelation?: boolean): Record<string, any>;
43
+ export declare function handleRelationFieldsInBody(body: Record<string, any>, relationFields: ModelGroupRelationFields, ignoreActions?: string[], isRelation?: boolean, parentOperation?: "create" | "update" | null): Record<string, any>;
44
44
  export type ModelGroupRelationFields = ReturnType<typeof getGroupedModelReations>;
45
45
  declare function getGroupedModelReations(modelName: string): {
46
46
  singular: PrismaField[] | undefined;
@@ -0,0 +1,12 @@
1
+ import { ArkosRouteConfig } from "../../../exports";
2
+ import { PrismaQueryOptions } from "../../../exports/prisma";
3
+ import { RouterEndpoint } from "../../../types/router-config";
4
+ import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
5
+ declare class ModelOpenAPIGenerator {
6
+ private getModel;
7
+ private getAuthErrorResponses;
8
+ private resolvePrismaQueryOptions;
9
+ getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: RouterEndpoint, modelNameInKebab: string, prismaQueryOptions?: PrismaQueryOptions<any>): Partial<ExtendedOperationObject>;
10
+ }
11
+ declare const modelOpenAPIGenerator: ModelOpenAPIGenerator;
12
+ export default modelOpenAPIGenerator;
@@ -21,11 +21,13 @@ export type SMTPConnectionOptions = {
21
21
  secure?: boolean;
22
22
  auth?: SMTPAuthOptions;
23
23
  name?: string;
24
+ user?: string;
25
+ pass?: string;
24
26
  };
25
27
  /**
26
28
  * A service class to handle email-related tasks, including sending emails.
27
29
  *
28
- * See the api reference [www.arkosjs.com/docs/api-reference/the-email-service-class](https://www.arkosjs.com/docs/api-reference/the-email-service-class)
30
+ * See the api reference [www.arkosjs.com/docs/reference/the-email-service-class](https://www.arkosjs.com/docs/reference/the-email-service-class)
29
31
  */
30
32
  export declare class EmailService {
31
33
  transporter: Transporter | null;
@@ -5,7 +5,6 @@
5
5
  *
6
6
  * @property {number} statusCode - HTTP status code of the error.
7
7
  * @property {string} status - Status message derived from the status code (`fail` for 4xx, `error` for 5xx).
8
- * @property {boolean} [missing=false] - Flag to indicate if a resource is missing.
9
8
  * @property {boolean} isOperational - Indicates if the error is operational (intended for client visibility).
10
9
  * @property {string} [code] - Optional error code for categorization.
11
10
  * @property {Record<string, any>} [meta] - Additional metadata related to the error.
@@ -33,7 +32,6 @@
33
32
  declare class AppError extends Error {
34
33
  statusCode: number;
35
34
  status: string;
36
- missing?: boolean;
37
35
  isOperational: boolean;
38
36
  code?: string;
39
37
  meta?: Record<string, any>;
@@ -1,4 +1,4 @@
1
- import { ArkosRequestHandler, ArkosErrorRequestHandler } from "../../../types";
1
+ import { ArkosAnyRequestHandler } from "../../../types";
2
2
  /**
3
3
  * Used to wrap request handlers and middleware for automatic catch async errors and throw to next to invoke the global error handler
4
4
  *
@@ -16,7 +16,7 @@ import { ArkosRequestHandler, ArkosErrorRequestHandler } from "../../../types";
16
16
  * })
17
17
  * ```
18
18
  */
19
- declare const catchAsync: (fn: ArkosRequestHandler | ArkosErrorRequestHandler, options?: {
19
+ declare const catchAsync: (fn: ArkosAnyRequestHandler, options?: {
20
20
  type: "error" | "normal";
21
21
  }) => any;
22
22
  export type CatchAsyncReturnType = ReturnType<typeof catchAsync>;
@@ -1,10 +1,4 @@
1
1
  import AppError from "./app-error";
2
- export interface PrismaError {
3
- code?: string;
4
- message: string;
5
- meta?: Record<string, any>;
6
- name?: string;
7
- }
8
2
  export declare function handleJWTError(): AppError;
9
3
  export declare function handleJWTExpired(): AppError;
10
4
  export declare function handlePrismaClientValidationError(err: AppError): AppError;
@@ -12,37 +6,18 @@ export declare function handleAuthenticationError(_: AppError): AppError;
12
6
  export declare function handleServerNotReachableError(_: AppError): AppError;
13
7
  export declare function handleConnectionTimeoutError(_: AppError): AppError;
14
8
  export declare function handleDatabaseNotFoundError(_: AppError): AppError;
15
- export declare function handleEnvironmentVariableError(err: AppError): AppError;
16
9
  export declare function handleFieldValueTooLargeError(err: AppError): AppError;
17
10
  export declare function handleRecordNotFoundError(_: AppError): AppError;
18
- export declare function handleUniqueConstraintError(err: AppError): AppError;
11
+ export declare function handleUniqueConstraintError(err: any): AppError;
19
12
  export declare function handleForeignKeyConstraintError(_: AppError): AppError;
20
13
  export declare function handleConstraintFailedError(err: AppError): AppError;
21
- export declare function handleInvalidFieldValueError(err: AppError): AppError;
22
- export declare function handleInvalidFieldProvidedError(err: AppError): AppError;
23
- export declare function handleDataValidationError(_: AppError): AppError;
24
- export declare function handleQueryParsingError(err: AppError): AppError;
25
- export declare function handleInvalidQueryFormatError(err: AppError): AppError;
26
- export declare function handleRawQueryExecutionError(_: AppError): AppError;
27
- export declare function handleNullConstraintViolationError(err: AppError): AppError;
28
14
  export declare function handleSchemaCreationFailedError(_: AppError): AppError;
29
15
  export declare function handleMigrationAlreadyAppliedError(err: AppError): AppError;
30
16
  export declare function handleMigrationScriptFailedError(err: AppError): AppError;
31
17
  export declare function handleVersionMismatchError(_: AppError): AppError;
32
- export declare function handleMigrationFileReadError(err: AppError): AppError;
33
- export declare function handleSchemaDriftError(_: AppError): AppError;
34
- export declare function handleSchemaSyntaxError(_: AppError): AppError;
35
- export declare function handleClientTypeError(_: AppError): AppError;
36
- export declare function handleDynamicQueryError(_: AppError): AppError;
37
- export declare function handleRelationLoadingError(err: AppError): AppError;
38
- export declare function handleBinaryError(err: AppError): AppError;
39
- export declare function handleNetworkError(_: AppError): AppError;
40
- export declare function handleUnhandledPromiseError(_: AppError): AppError;
41
- export declare function handleDataTypeError(err: AppError): AppError;
42
- export declare function handleEmptyResultError(_: AppError): AppError;
43
18
  export declare function handleNonExistingRecord(err: {
44
19
  meta?: Record<string, any>;
45
20
  [x: string]: any;
46
21
  }): AppError;
22
+ export declare function handleDriverAdapterError(err: any): AppError | null;
47
23
  export declare function handlePrismaClientInitializationError(_: any): AppError;
48
- export declare function handleRequiredRelationViolationError(err: AppError): AppError;
@@ -0,0 +1,176 @@
1
+ import AppError from "./app-error";
2
+ /**
3
+ * 400 - Bad Request
4
+ * @example throw new BadRequestError("Invalid input", "InvalidInput", { field: "email" })
5
+ */
6
+ export declare class BadRequestError extends AppError {
7
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
8
+ }
9
+ /**
10
+ * 401 - Unauthorized
11
+ * @example throw new UnauthorizedError("Invalid token", "InvalidToken")
12
+ */
13
+ export declare class UnauthorizedError extends AppError {
14
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
15
+ }
16
+ /**
17
+ * 402 - Payment Required
18
+ * @example throw new PaymentRequiredError("Subscription expired", "PaymentRequired")
19
+ */
20
+ export declare class PaymentRequiredError extends AppError {
21
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
22
+ }
23
+ /**
24
+ * 403 - Forbidden
25
+ * @example throw new ForbiddenError("Access denied", "Forbidden", { resource: "admin" })
26
+ */
27
+ export declare class ForbiddenError extends AppError {
28
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
29
+ }
30
+ /**
31
+ * 404 - Not Found
32
+ * @example throw new NotFoundError("User not found", "NotFound", { id: 123 })
33
+ */
34
+ export declare class NotFoundError extends AppError {
35
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
36
+ }
37
+ /**
38
+ * 405 - Method Not Allowed
39
+ * @example throw new MethodNotAllowedError("POST not allowed", "MethodNotAllowed")
40
+ */
41
+ export declare class MethodNotAllowedError extends AppError {
42
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
43
+ }
44
+ /**
45
+ * 406 - Not Acceptable
46
+ * @example throw new NotAcceptableError("Unsupported format", "NotAcceptable")
47
+ */
48
+ export declare class NotAcceptableError extends AppError {
49
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
50
+ }
51
+ /**
52
+ * 408 - Request Timeout
53
+ * @example throw new RequestTimeoutError("Upload took too long", "RequestTimeout")
54
+ */
55
+ export declare class RequestTimeoutError extends AppError {
56
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
57
+ }
58
+ /**
59
+ * 409 - Conflict
60
+ * @example throw new ConflictError("Duplicate entry", "Conflict", { field: "email" })
61
+ */
62
+ export declare class ConflictError extends AppError {
63
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
64
+ }
65
+ /**
66
+ * 410 - Gone
67
+ * @example throw new GoneError("Resource deleted", "Gone")
68
+ */
69
+ export declare class GoneError extends AppError {
70
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
71
+ }
72
+ /**
73
+ * 411 - Length Required
74
+ * @example throw new LengthRequiredError("Content-Length missing", "LengthRequired")
75
+ */
76
+ export declare class LengthRequiredError extends AppError {
77
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
78
+ }
79
+ /**
80
+ * 412 - Precondition Failed
81
+ * @example throw new PreconditionFailedError("ETag mismatch", "PreconditionFailed")
82
+ */
83
+ export declare class PreconditionFailedError extends AppError {
84
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
85
+ }
86
+ /**
87
+ * 413 - Payload Too Large
88
+ * @example throw new PayloadTooLargeError("File exceeds 10MB", "PayloadTooLarge", { max: "10MB" })
89
+ */
90
+ export declare class PayloadTooLargeError extends AppError {
91
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
92
+ }
93
+ /**
94
+ * 414 - URI Too Long
95
+ * @example throw new UriTooLongError("Query string too long", "UriTooLong")
96
+ */
97
+ export declare class UriTooLongError extends AppError {
98
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
99
+ }
100
+ /**
101
+ * 415 - Unsupported Media Type
102
+ * @example throw new UnsupportedMediaTypeError("Expected JSON", "UnsupportedMediaType")
103
+ */
104
+ export declare class UnsupportedMediaTypeError extends AppError {
105
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
106
+ }
107
+ /**
108
+ * 416 - Range Not Satisfiable
109
+ * @example throw new RangeNotSatisfiableError("Invalid byte range", "RangeNotSatisfiable")
110
+ */
111
+ export declare class RangeNotSatisfiableError extends AppError {
112
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
113
+ }
114
+ /**
115
+ * 417 - Expectation Failed
116
+ * @example throw new ExpectationFailedError("Expect header failed", "ExpectationFailed")
117
+ */
118
+ export declare class ExpectationFailedError extends AppError {
119
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
120
+ }
121
+ /**
122
+ * 418 - I'm a teapot
123
+ * @example throw new ImATeapotError("Cannot brew coffee", "ImATeapot")
124
+ */
125
+ export declare class ImATeapotError extends AppError {
126
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
127
+ }
128
+ /**
129
+ * 422 - Unprocessable Content
130
+ * @example throw new UnprocessableContentError("Validation failed", "ValidationFailed", { errors: [...] })
131
+ */
132
+ export declare class UnprocessableContentError extends AppError {
133
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
134
+ }
135
+ /**
136
+ * 429 - Too Many Requests
137
+ * @example throw new TooManyRequestsError("Rate limit exceeded", "RateLimitExceeded", { retryAfter: 60 })
138
+ */
139
+ export declare class TooManyRequestsError extends AppError {
140
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
141
+ }
142
+ /**
143
+ * 500 - Internal Server Error
144
+ * @example throw new InternalServerError("Database connection failed", "DatabaseError")
145
+ */
146
+ export declare class InternalServerError extends AppError {
147
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
148
+ }
149
+ /**
150
+ * 501 - Not Implemented
151
+ * @example throw new NotImplementedError("Feature coming soon", "NotImplemented")
152
+ */
153
+ export declare class NotImplementedError extends AppError {
154
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
155
+ }
156
+ /**
157
+ * 502 - Bad Gateway
158
+ * @example throw new BadGatewayError("Upstream timeout", "BadGateway")
159
+ */
160
+ export declare class BadGatewayError extends AppError {
161
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
162
+ }
163
+ /**
164
+ * 503 - Service Unavailable
165
+ * @example throw new ServiceUnavailableError("Maintenance mode", "ServiceUnavailable", { retryAfter: 300 })
166
+ */
167
+ export declare class ServiceUnavailableError extends AppError {
168
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
169
+ }
170
+ /**
171
+ * 504 - Gateway Timeout
172
+ * @example throw new GatewayTimeoutError("Upstream timeout", "GatewayTimeout")
173
+ */
174
+ export declare class GatewayTimeoutError extends AppError {
175
+ constructor(message?: string, code?: string, meta?: Record<string, any>);
176
+ }
@@ -0,0 +1 @@
1
+ export declare function getHandledError(err: any): any;
@@ -0,0 +1,7 @@
1
+ import multer from "multer";
2
+ import AppError from "./app-error";
3
+ declare class MulterErrorHandler {
4
+ handle(err: multer.MulterError): AppError;
5
+ }
6
+ declare const multerErrorHandler: MulterErrorHandler;
7
+ export default multerErrorHandler;
@@ -2,7 +2,6 @@
2
2
  * Handles file uploads and allows to be extended via route hooks.
3
3
  */
4
4
  export declare class FileUploadController {
5
- private handleUploadError;
6
5
  private getRouteHook;
7
6
  private getAfterHook;
8
7
  /**
@@ -33,7 +32,13 @@ export declare class FileUploadController {
33
32
  /**
34
33
  * Controller instance responsible for handling file upload operations.
35
34
  *
36
- * @see {@link https://www.arkosjs.com/docs/api-reference/file-upload-controller-object}
35
+ * @remarks
36
+ * This controller handles various file upload operations including validation,
37
+ * storage, and response management.
38
+ *
39
+ * @instance
40
+ * @constant
41
+ * @see {@link https://www.arkosjs.com/docs/reference/file-upload-controller-object}
37
42
  */
38
43
  declare const fileUploadController: FileUploadController;
39
44
  export default fileUploadController;
@@ -1,5 +1,6 @@
1
1
  import multer from "multer";
2
2
  import { ArkosNextFunction, ArkosRequest, ArkosRequestHandler, ArkosResponse } from "../../types";
3
+ import { ImageOptimizationOptions } from "./utils/helpers/file-upload.helpers";
3
4
  /**
4
5
  * Service to handle file uploads, including single and multiple file uploads,
5
6
  * file validation (type, size), and file deletion.
@@ -60,12 +61,7 @@ export declare class FileUploadService {
60
61
  * @param {object} options - Optional parameters for image processing
61
62
  * @returns {Promise<string|string[]>} URL or array of URLs to the uploaded files
62
63
  */
63
- upload(req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction, options?: {
64
- format?: string;
65
- width?: number;
66
- height?: number;
67
- resizeTo?: number;
68
- }): Promise<string | string[] | null>;
64
+ upload(req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction, options?: ImageOptimizationOptions): Promise<string | string[] | null>;
69
65
  /**
70
66
  * Deletes a file based on filename and file type from request parameters
71
67
  * @param {string} fileName - The name of the file to delete
@@ -0,0 +1,12 @@
1
+ import { FileUploadRouterEndpoint } from "../../../types/router-config";
2
+ import { ArkosRouteConfig } from "../../../exports";
3
+ import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
4
+ declare class FileUploadJsonSchemaGenerator {
5
+ private formatBytes;
6
+ private getFileTypeDescription;
7
+ private getMultipartRequestBody;
8
+ private getImageQueryParameters;
9
+ getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: FileUploadRouterEndpoint): Partial<ExtendedOperationObject>;
10
+ }
11
+ declare const fileUploadJsonSchemaGenerator: FileUploadJsonSchemaGenerator;
12
+ export default fileUploadJsonSchemaGenerator;
@@ -12,7 +12,27 @@ export declare function generateRelativePath(filePath: string, uploadDir: string
12
12
  * Handles basic file processing for non-image files
13
13
  */
14
14
  export declare const processFile: (req: ArkosRequest, filePath: string) => string;
15
+ /**
16
+ * Options accepted by the image optimizer. Numeric values may arrive as
17
+ * strings from query parameters and are normalized internally.
18
+ */
19
+ export interface ImageOptimizationOptions {
20
+ /** Set to `false` to skip optimization and keep the original bytes as-is. */
21
+ optimize?: boolean;
22
+ format?: string;
23
+ quality?: number | string;
24
+ width?: number | string;
25
+ height?: number | string;
26
+ resizeTo?: number | string;
27
+ fit?: "cover" | "contain" | "fill" | "inside" | "outside";
28
+ withoutEnlargement?: boolean;
29
+ }
30
+ /**
31
+ * Optimizes an image file in place using Sharp. Returns the resulting file
32
+ * path, which may use a different extension when a format is requested.
33
+ */
34
+ export declare const optimizeImage: (filePath: string, options?: ImageOptimizationOptions) => Promise<string>;
15
35
  /**
16
36
  * Processes image files using Sharp for resizing and format conversion
17
37
  */
18
- export declare const processImage: (req: ArkosRequest, next: ArkosNextFunction, filePath: string, options: Record<string, any>) => Promise<string | null>;
38
+ export declare const processImage: (req: ArkosRequest, next: ArkosNextFunction, filePath: string, options?: ImageOptimizationOptions) => Promise<string | null>;
@@ -0,0 +1,43 @@
1
+ import express from "express";
2
+ import type { UploadPrepare } from "../../../../types/upload";
3
+ import { IArkosRouter } from "../../../../utils/arkos-router/types";
4
+ export type ServeUploadDirOptions = {
5
+ /**
6
+ * Public URL folder, relative to the file upload `baseRoute`.
7
+ *
8
+ * @default `"/" + dir`
9
+ */
10
+ urlPath?: string;
11
+ /**
12
+ * Resolves the disk parameters for this folder. Required for every dynamic
13
+ * folder (`:param` in `dir`). It may be async and may throw to deny the
14
+ * request.
15
+ */
16
+ prepare?: UploadPrepare;
17
+ /**
18
+ * Options passed to `express.static`.
19
+ */
20
+ expressStatic?: Parameters<typeof express.static>[1];
21
+ /**
22
+ * Allow files in nested folders.
23
+ *
24
+ * @default false
25
+ */
26
+ recursive?: boolean;
27
+ };
28
+ /**
29
+ * Serves a folder from the upload directory.
30
+ *
31
+ * Authentication belongs on the router mount:
32
+ *
33
+ * ```ts
34
+ * fileUploadRouter.use(
35
+ * { authentication: fileUploadPolicy.View },
36
+ * arkos.serveUploadDir("/storage/acme", { urlPath: "/private/files" })
37
+ * );
38
+ * ```
39
+ *
40
+ * When the resolved `dir` is a file, the route serves that file directly.
41
+ * When it is a directory, the remainder of the request URL is served from it.
42
+ */
43
+ export declare function serveUploadDir(dir: string, options?: ServeUploadDirOptions): IArkosRouter;
@@ -0,0 +1,14 @@
1
+ export declare const DEFAULT_UPLOAD_DIRS: readonly ["images", "videos", "documents", "files"];
2
+ export declare function isSafeUploadSegment(segment: string, allowParam?: boolean): boolean;
3
+ export declare function assertSafeUploadPath(value: string, options?: {
4
+ allowParams?: boolean;
5
+ label?: string;
6
+ }): string;
7
+ export declare function normalizeUploadDir(dir: string): string;
8
+ export declare function normalizeUploadUrlPath(urlPath: string): string;
9
+ export declare function isSafeUploadParam(value: unknown): value is string;
10
+ export declare function isPathInside(base: string, target: string): boolean;
11
+ export declare function resolveUploadPath(root: string, relative: string, options?: {
12
+ strictSegments?: boolean;
13
+ }): string | null;
14
+ export declare function isRealPathInside(base: string, target: string): Promise<boolean>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Validates the upload serving registrations collected while building the
3
+ * routers. Must run once, after every router has been constructed.
4
+ */
5
+ export declare function validateUploadServingConfig(): void;
@@ -0,0 +1,31 @@
1
+ import type { UploadUrlPath } from "../../../../types/upload";
2
+ export type UploadWriteRegistration = {
3
+ dir?: string;
4
+ urlPath?: UploadUrlPath;
5
+ serve?: boolean;
6
+ route: string;
7
+ hasPrepare?: boolean;
8
+ type?: "single" | "array" | "fields";
9
+ };
10
+ export type UploadServeRegistration = {
11
+ dir: string;
12
+ urlPath: string;
13
+ dirParams: string[];
14
+ pathParams: string[];
15
+ recursive: boolean;
16
+ dynamic: boolean;
17
+ hasPrepare: boolean;
18
+ };
19
+ export declare class UploadServingRegistry {
20
+ private writeRegistrations;
21
+ private serveRegistrations;
22
+ private findFileServingEnabled;
23
+ registerWrite(registration: UploadWriteRegistration): void;
24
+ registerServe(registration: UploadServeRegistration): void;
25
+ getWriteRegistrations(): UploadWriteRegistration[];
26
+ getServeRegistrations(): UploadServeRegistration[];
27
+ setFindFileServingEnabled(enabled: boolean): void;
28
+ isFindFileServingEnabled(): boolean;
29
+ reset(): void;
30
+ }
31
+ export declare const uploadServingRegistry: UploadServingRegistry;
@@ -1,6 +1,5 @@
1
- import { Router } from "express";
2
1
  import { ArkosNextFunction, ArkosRequest, ArkosResponse } from "../../exports";
3
2
  import { Arkos } from "../../types/arkos";
4
3
  import { UserArkosConfig } from "../../utils/define-config";
5
- export declare function getSwaggerRouter(arkosConfig: UserArkosConfig, app: Arkos): Router;
4
+ export declare function getSwaggerRouter(arkosConfig: UserArkosConfig, app: Arkos): import("../../exports").IArkosRouter;
6
5
  export declare function scalarMiddleware(scalarHandler: any, swaggerSpecification: object, swaggerConfigs: any): (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<any>;