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
@@ -2,9 +2,9 @@ import { getFileUploadServices, FileUploadService } from "../../modules/file-upl
2
2
  import { EmailOptions } from "../../modules/email/email.service";
3
3
  import authService, { AuthService } from "../../modules/auth/auth.service";
4
4
  import emailService, { EmailService } from "../../modules/email/email.service";
5
- import { BaseService } from "../../modules/base/base.service";
5
+ import { ArkosPrismaService } from "../../modules/base/base.service";
6
6
  import authActionService from "../../modules/auth/utils/services/auth-action.service";
7
- import { ServiceHookContext, BeforeCreateOneHookArgs, AfterCreateOneHookArgs, BeforeCreateManyHookArgs, AfterCreateManyHookArgs, BeforeCountHookArgs, AfterCountHookArgs, BeforeFindManyHookArgs, AfterFindManyHookArgs, BeforeFindOneHookArgs, AfterFindOneHookArgs, BeforeUpdateOneHookArgs, AfterUpdateOneHookArgs, BeforeUpdateManyHookArgs, AfterUpdateManyHookArgs, BeforeDeleteOneHookArgs, AfterDeleteOneHookArgs, BeforeDeleteManyHookArgs, AfterDeleteManyHookArgs, OnCreateOneErrorHookArgs, OnCreateManyErrorHookArgs, OnCountErrorHookArgs, OnFindManyErrorHookArgs, OnFindByIdErrorHookArgs, OnFindOneErrorHookArgs, OnUpdateOneErrorHookArgs, OnUpdateManyErrorHookArgs, OnDeleteOneErrorHookArgs, OnDeleteManyErrorHookArgs } from "../../components/arkos-service-hook/types";
7
+ import { ServiceHookContext } from "../../modules/base/types/base.service.types";
8
8
  /**
9
9
  * Authentication service.
10
10
  */
@@ -12,7 +12,7 @@ export { authService, AuthService, authActionService };
12
12
  /**
13
13
  * Base service.
14
14
  */
15
- export { BaseService, ServiceHookContext, BeforeCreateOneHookArgs, AfterCreateOneHookArgs, BeforeCreateManyHookArgs, AfterCreateManyHookArgs, BeforeCountHookArgs, AfterCountHookArgs, BeforeFindManyHookArgs, AfterFindManyHookArgs, BeforeFindOneHookArgs, AfterFindOneHookArgs, BeforeUpdateOneHookArgs, AfterUpdateOneHookArgs, BeforeUpdateManyHookArgs, AfterUpdateManyHookArgs, BeforeDeleteOneHookArgs, AfterDeleteOneHookArgs, BeforeDeleteManyHookArgs, AfterDeleteManyHookArgs, OnCreateOneErrorHookArgs, OnCreateManyErrorHookArgs, OnCountErrorHookArgs, OnFindManyErrorHookArgs, OnFindByIdErrorHookArgs, OnFindOneErrorHookArgs, OnUpdateOneErrorHookArgs, OnUpdateManyErrorHookArgs, OnDeleteOneErrorHookArgs, OnDeleteManyErrorHookArgs, };
15
+ export { ArkosPrismaService, ServiceHookContext, };
16
16
  /**
17
17
  * Email service.
18
18
  */
@@ -0,0 +1,5 @@
1
+ import ArkosGateway from "../components/arkos-gateway/arkos-gateway";
2
+ export { IArkosGateway } from "../components/arkos-gateway/arkos-gateway";
3
+ export { ArkosGatewayController } from "../components/arkos-gateway/types";
4
+ export type { ArkosSocket, ArkosGatewayConfig, ArkosGatewayEventConfig, ArkosGatewayHandler, ArkosGatewayPipe, ArkosGatewayMiddleware, ArkosGatewayConnectionHandler, ArkosGatewayErrorHandler, ArkosGatewayAckFn, ArkosBroadcastOperator, } from "../components/arkos-gateway/types";
5
+ export { ArkosGateway };
@@ -8,8 +8,12 @@ export declare const defaultExcludedUserFields: {
8
8
  * Authentication controller class handling all auth-related operations
9
9
  */
10
10
  export declare class AuthController {
11
- private userService?;
12
- private getUserService;
11
+ /**
12
+ * Resolves the `AuthService` to use, an instance passed as `service` through
13
+ * `ArkosRouteHook("auth", { service })` takes precedence over the default one.
14
+ */
15
+ private getAuthService;
16
+ private callService;
13
17
  /**
14
18
  * Retrieves the current authenticated user's information
15
19
  */
@@ -24,6 +28,9 @@ export declare class AuthController {
24
28
  logout: any;
25
29
  /**
26
30
  * Authenticates a user using configurable username field and password
31
+ * Username field can be specified in query parameter or config
32
+ *
33
+ * Supports nested fields and array queries (e.g., "profile.nickname", "phones.some.number")
27
34
  */
28
35
  login: any;
29
36
  /**
@@ -31,7 +38,7 @@ export declare class AuthController {
31
38
  */
32
39
  signup: any;
33
40
  /**
34
- * Marks user account as self-deleted
41
+ * Marks user account as self-deleted by setting deletedSelfAccountAt timestamp
35
42
  */
36
43
  deleteMe: any;
37
44
  /**
@@ -1,7 +1,11 @@
1
- import { User } from "../../types";
2
- import { ArkosRequest, ArkosRequestHandler } from "../../types";
3
- import { AuthJwtPayload, AccessAction, AccessControlConfig, AuthenticationControlConfig } from "../../types/auth";
4
- import { MsDuration } from "./utils/helpers/auth.controller.helpers";
1
+ import { User } from '../../types';
2
+ import { ArkosRequest, ArkosRequestHandler } from '../../types';
3
+ import { AuthJwtPayload, AccessAction, AccessControlConfig, DetailedAccessControlRule } from '../../types/auth';
4
+ import { MsDuration } from './utils/helpers/auth.controller.helpers';
5
+ import { ArkosPrismaService } from '../base/base.service';
6
+ import { AuthUser, DeleteMeOptions, GetMeOptions, LoginInput, LoginOptions, SignupDto, SignupOptions, UpdateMeDto, UpdateMeOptions, UpdatePasswordInput } from './auth.types';
7
+ import { CookieOptions } from 'express';
8
+ import { ArkosSocket } from '../../components/arkos-gateway/types';
5
9
  /**
6
10
  * Handles various authentication-related tasks such as JWT signing, password hashing, and verifying user credentials.
7
11
  */
@@ -10,6 +14,8 @@ export declare class AuthService {
10
14
  * Object containing a combination of actions per resource, tracked by each set of calls of `authService.handleAccessControl`, this can be accessed through the `authService` object or through the endpoint
11
15
  */
12
16
  actionsPerResource: Record<string, Set<string>>;
17
+ private _userService?;
18
+ protected get userService(): ArkosPrismaService<'user'>;
13
19
  /**
14
20
  * Signs a JWT token for the user.
15
21
  *
@@ -37,18 +43,13 @@ export declare class AuthService {
37
43
  * res.cookie('jwt', token, cookieOptions);
38
44
  * ```
39
45
  */
40
- getJwtCookieOptions(req: ArkosRequest): {
41
- expires: Date;
42
- httpOnly: boolean;
43
- secure: boolean;
44
- sameSite: "none" | "strict" | "lax";
45
- };
46
+ getJwtCookieOptions(req: ArkosRequest): CookieOptions;
46
47
  /**
47
- * Is used by default internally by Arkos under `BaseService` class to check if the password is already hashed.
48
+ * Is used by default internally by Arkos under `ArkosPrismaService` class to check if the password is already hashed.
48
49
  *
49
- * This was just added to prevent unwanted errors when someone just forgets that the `BaseService` class will automatically hash the password field using `authService.hashPassword` by default.
50
+ * This was just added to prevent unwanted errors when someone just forgets that the `ArkosPrismaService` class will automatically hash the password field using `authService.hashPassword` by default.
50
51
  *
51
- * So now before `BaseService` hashes it will test it.
52
+ * So now before `ArkosPrismaService` hashes it will test it.
52
53
  *
53
54
  *
54
55
  * @param password The password to be tested if is hashed
@@ -70,24 +71,6 @@ export declare class AuthService {
70
71
  * @returns {Promise<string>} Returns the hashed password.
71
72
  */
72
73
  hashPassword(password: string): Promise<string>;
73
- /**
74
- * Checks if a password is strong, requiring uppercase, lowercase, and numeric characters as the default.
75
- *
76
- * **NB**: You must pay attention when using custom validation with zod or class-validator, try to use the same regex always.
77
- *
78
- * **Note**: You can define it when calling arkos.init()
79
- * ```ts
80
- * arkos.init({
81
- * authentication: {
82
- * passwordValidation:{ regex: /your-desired-regex/, message: 'password must contain...'}
83
- * }
84
- * })
85
- * ```
86
- *
87
- * @param {string} password - The password to check.
88
- * @returns {boolean} Returns true if the password meets the strength criteria, otherwise false.
89
- */
90
- isPasswordStrong(password: string): boolean;
91
74
  /**
92
75
  * Checks if a user has changed their password after the JWT was issued.
93
76
  *
@@ -120,7 +103,7 @@ export declare class AuthService {
120
103
  * @returns True if user has permission, false otherwise
121
104
  * @throws Error if user doesn't have role/roles field
122
105
  */
123
- protected checkStaticAccessControl(user: User, action: string, accessControl: AccessControlConfig): boolean;
106
+ checkStaticAccessControl(user: User, action: string, accessControl: AccessControlConfig): boolean;
124
107
  /**
125
108
  * Checks if a user has permission for a specific action and resource using dynamic access control.
126
109
  * Queries the database to verify user's role permissions.
@@ -130,40 +113,176 @@ export declare class AuthService {
130
113
  * @param resource - The resource being accessed
131
114
  * @returns Promise resolving to true if user has permission, false otherwise
132
115
  */
133
- protected checkDynamicAccessControl(userId: string, action: string, resource: string): Promise<boolean>;
116
+ checkDynamicAccessControl(userId: string, action: string, resource: string): Promise<boolean>;
117
+ private sanitizeUser;
118
+ private withPasswordIncluded;
119
+ /**
120
+ * Retrieves the authenticated user by id without the password field.
121
+ *
122
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
123
+ *
124
+ * @param userId - The id of the authenticated user
125
+ * @param queryOptions - Optional Prisma query options (select, include, etc.)
126
+ * @since 1.8.0-rc
127
+ */
128
+ getMe(userId: User["id"], queryOptions?: GetMeOptions): Promise<AuthUser | null>;
129
+ /**
130
+ * Updates the authenticated user without the password field in the result.
131
+ * Password changes are rejected, use `updatePassword` instead.
132
+ *
133
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
134
+ *
135
+ * @param userId - The id of the authenticated user
136
+ * @param data - The fields to update
137
+ * @param queryOptions - Optional Prisma query options (select, include, etc.)
138
+ * @since 1.8.0-rc
139
+ */
140
+ updateMe(userId: User["id"], data: UpdateMeDto, queryOptions?: UpdateMeOptions): Promise<AuthUser>;
134
141
  /**
135
- * Middleware function to handle access control based on user roles and permissions.
142
+ * Creates a new user account without the password field in the result.
143
+ *
144
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
145
+ *
146
+ * @param data - The user data, the password is hashed automatically
147
+ * @param queryOptions - Optional Prisma query options (select, include, etc.)
148
+ * @since 1.8.0-rc
149
+ */
150
+ signup(data: SignupDto, queryOptions?: SignupOptions): Promise<AuthUser>;
151
+ /**
152
+ * Marks the authenticated user's account as self-deleted by setting
153
+ * `deletedSelfAccountAt`, the result never includes the password field.
154
+ *
155
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
156
+ *
157
+ * @param userId - The id of the authenticated user
158
+ * @param queryOptions - Optional Prisma query options (select, include, etc.)
159
+ * @since 1.8.0-rc
160
+ */
161
+ deleteMe(userId: User["id"], queryOptions?: DeleteMeOptions): Promise<AuthUser>;
162
+ /**
163
+ * Authenticates a user with the given username field and password.
164
+ *
165
+ * The username field is inferred from the username key present in `input`
166
+ * (the only key besides `password`), can be overridden explicitly with
167
+ * `usernameField` for nested paths such as `"profile.nickname"`, and falls
168
+ * back to `authentication.login.allowedUsernames[0] || "username"`. When
169
+ * `authentication.login.allowedUsernames` is configured, the resolved field
170
+ * must be one of its entries. The password is always loaded for the
171
+ * comparison and never returned.
172
+ *
173
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
174
+ *
175
+ * @param input - Its username key and the password
176
+ * @param queryOptions - Optional Prisma query options (select, include, etc.)
177
+ * @returns The sanitized user and a signed access token
178
+ * @since 1.8.0-rc
179
+ */
180
+ login(input: LoginInput, queryOptions?: LoginOptions): Promise<{
181
+ user: AuthUser;
182
+ accessToken: string;
183
+ }>;
184
+ /**
185
+ * Updates the password of the given user after validating the current one.
186
+ *
187
+ * Can be overridden through `ArkosRouteHook("auth", { service })`.
136
188
  *
137
- * @param {AccessAction} action - The action being performed (e.g., create, update, delete, view).
138
- * @param {string} resource - The resource name that the action is being performed on (e.g., "User", "Post").
139
- * @param {AccessControlConfig} accessControl - The access control configuration.
140
- * @returns {ArkosRequestHandler} The middleware function that checks if the user has permission to perform the action.
189
+ * @param userId - The id of the authenticated user
190
+ * @param input - The current and the new password
191
+ * @returns A fresh access token valid after the password change
192
+ * @since 1.8.0-rc
141
193
  */
142
- handleAccessControl(action: AccessAction, resource: string, accessControl?: AccessControlConfig): ArkosRequestHandler;
194
+ updatePassword(userId: User["id"], input: UpdatePasswordInput): Promise<{
195
+ accessToken: string;
196
+ }>;
197
+ /**
198
+ * Runs on logout. Override through `ArkosRouteHook("auth", { service })`.
199
+ *
200
+ * @since 1.8.0-rc
201
+ */
202
+ logout(_userId: User["id"], _accessToken: string): Promise<void>;
203
+ private extractRequestToken;
204
+ private extractSocketToken;
205
+ validateDecodedUser(decoded: AuthJwtPayload, action?: 'logout' | 'default'): Promise<User>;
143
206
  /**
144
207
  * Processes the cookies or authoriation token and returns the user.
145
- * @param req
208
+ *
209
+ * @param ctx | socket
146
210
  * @returns {Promise<User | null>} - if authentication is turned off in arkosConfig it returns null
147
211
  * @throws {AppError} Throws an error if the token is invalid or the user is not logged in.
148
212
  */
149
- getAuthenticatedUser(req: ArkosRequest): Promise<User | null>;
213
+ getAuthenticatedUser(ctx: ArkosRequest | ArkosSocket, action?: 'logout' | 'default'): Promise<User | null>;
150
214
  /**
151
- * Middleware function to authenticate the user based on the JWT token.
215
+ * Middleware to authenticate the request by extracting and verifying the JWT token and setting `req.user`.
216
+ *
217
+ * Runs `authentication.hooks.authenticate` before/after the authentication logic.
218
+ *
219
+ * Hook execution flow:
220
+ * - `before` hooks run first — call `ctx.skip()` to bypass core logic and jump to `after` hooks,
221
+ * call `ctx.next()` to stop the chain early, or return without calling anything to continue.
222
+ * - Core logic runs — extracts and verifies the JWT token, sets `req.user`.
223
+ * - `after` hooks run — call `ctx.next(err)` to abort or return without calling anything to continue.
224
+ * - `onError` hooks run if core logic throws — call `ctx.skip()` to suppress the error and jump to
225
+ * `after` hooks, or call `ctx.next(err)` to forward it to the global error handler.
226
+ *
227
+ * On custom routes, hooks defined in `arkosConfig` still apply since they are baked into this method.
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * // custom route - hooks still run
232
+ * router.get("/custom", authService.authenticate, handler);
233
+ * ```
234
+ *
235
+ * @example
236
+ * ```ts
237
+ * // skip built-in auth from a before hook
238
+ * before: (ctx) => {
239
+ * ctx.req.user = myCustomAuth(ctx.req);
240
+ * ctx.skip();
241
+ * }
242
+ * ```
152
243
  *
153
- * @param {ArkosRequest} req - The request object.
154
- * @param {ArkosResponse} res - The response object.
155
- * @param {ArkosNextFunction} next - The next middleware function to be called.
156
- * @returns {void}
244
+ * @see {@link https://www.arkosjs.com/docs/core-concepts/authentication/hooks}
157
245
  */
158
246
  authenticate: any;
159
247
  /**
160
- * Handles authentication control by checking the `authenticationControl` configuration in the `authConfigs`.
248
+ * Middleware to authorize the authenticated user for a given action on a resource.
249
+ *
250
+ * Runs `authentication.hooks.authorize` before/after the authorization logic.
251
+ *
252
+ * Hook execution flow:
253
+ * - `before` hooks run first — call `ctx.skip()` to bypass core logic and jump to `after` hooks,
254
+ * call `ctx.next()` to stop the chain early, or return without calling anything to continue.
255
+ * - Core logic runs — checks user role/permissions against the access control rules.
256
+ * - `after` hooks run — call `ctx.next(err)` to abort or return without calling anything to continue.
257
+ * - `onError` hooks run if authorization fails — call `ctx.skip()` to suppress the error and jump to
258
+ * `after` hooks, or call `ctx.next(err)` to forward it to the global error handler.
259
+ *
260
+ * @param resource - The resource being accessed, in kebabCase (e.g. `"product"`, `"cart-item"`)
261
+ * @param action - The action being performed (e.g. `"View"`, `"Create"`, `"Delete"`)
262
+ * @param rule - Access control rules for this action. Accepts a role list, a wildcard, or a `DetailedAccessControlRule`.
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * router.delete("/products/:id",
267
+ * authService.authenticate,
268
+ * authService.authorize("product", "Delete", ["admin"]),
269
+ * handler
270
+ * );
271
+ * ```
272
+ *
273
+ * @example
274
+ * ```ts
275
+ * // skip built-in authorization from a before hook
276
+ * before: (ctx) => {
277
+ * ctx.req.user.role = myCustomRoleResolver(ctx.req);
278
+ * ctx.skip();
279
+ * }
280
+ * ```
161
281
  *
162
- * @param {ControllerActions} action - The action being performed (e.g., create, update, delete, view).
163
- * @param {AuthenticationControlConfig} authenticationControl - The authentication configuration object.
164
- * @returns {ArkosRequestHandler} The middleware function that checks if authentication is required.
282
+ * @see {@link https://www.arkosjs.com/docs/core-concepts/authentication/hooks#authorize}
283
+ * @since v1.6.0-beta
165
284
  */
166
- handleAuthenticationControl(action: AccessAction, authenticationControl?: AuthenticationControlConfig | undefined): ArkosRequestHandler;
285
+ authorize(action: AccessAction, resource: string, rule?: string[] | DetailedAccessControlRule | '*'): ArkosRequestHandler;
167
286
  /**
168
287
  * Creates a permission checker function for a specific action and resource.
169
288
  *
@@ -0,0 +1,72 @@
1
+ import { ExtractPrismaData, ExtractPrismaQueryOptions, PrismaModels, RuntimeArkosConfig } from "../../generated";
2
+ import { ArkosPrismaInput } from "../../types/arkos-prisma-input";
3
+ import { User } from "../../types";
4
+ type UserModel = PrismaModels<any>["user"];
5
+ export type AuthUser = Omit<User, "password">;
6
+ export type GetMeOptions = ExtractPrismaQueryOptions<UserModel["FindFirstArgs"], "where">;
7
+ export type LoginOptions = GetMeOptions;
8
+ export type UpdateMeOptions = ExtractPrismaQueryOptions<UserModel["UpdateArgs"], "where" | "data">;
9
+ export type DeleteMeOptions = UpdateMeOptions;
10
+ export type SignupOptions = ExtractPrismaQueryOptions<UserModel["CreateArgs"], "data">;
11
+ export type SignupDto = ExtractPrismaData<UserModel["CreateArgs"]> | ArkosPrismaInput<ExtractPrismaData<UserModel["CreateArgs"]>>;
12
+ export type UpdateMeDto = ExtractPrismaData<UserModel["UpdateArgs"]> | ArkosPrismaInput<ExtractPrismaData<UserModel["UpdateArgs"]>>;
13
+ export type OverridableAuthMethod = "getMe" | "updateMe" | "signup" | "deleteMe" | "login" | "updatePassword" | "logout";
14
+ export interface UpdatePasswordInput {
15
+ currentPassword: string;
16
+ newPassword: string;
17
+ }
18
+ type ListOperator = "some" | "every" | "none";
19
+ type LastSegment<P extends string> = P extends `${string}.${infer R}` ? LastSegment<R> : P;
20
+ type PathSelect<P extends string> = P extends `${infer H}.${infer T}` ? H extends ListOperator ? PathSelect<T> : {
21
+ [K in H]: {
22
+ select: PathSelect<T>;
23
+ };
24
+ } : {
25
+ [K in P]: true;
26
+ };
27
+ type ElementOf<T> = T extends readonly (infer E)[] ? E : T;
28
+ type PathValue<T, P extends string> = P extends `${infer H}.${infer R}` ? H extends ListOperator ? PathValue<T, R> : H extends keyof T ? PathValue<ElementOf<NonNullable<T[H]>>, R> : never : P extends keyof T ? T[P] : never;
29
+ /**
30
+ * The username fields accepted by the built-in login, derived from
31
+ * `authentication.login.allowedUsernames` in the user's `arkos.config`.
32
+ *
33
+ * The generated `RuntimeArkosConfig` is a literal-typed view of the config;
34
+ * when `allowedUsernames` is not configured it falls back to the runtime
35
+ * default, `"username"` (see `getDefaultUsernameField`).
36
+ */
37
+ export type LoginUsernames = RuntimeArkosConfig extends {
38
+ authentication: {
39
+ login: {
40
+ allowedUsernames: readonly (infer U extends string)[];
41
+ };
42
+ };
43
+ } ? U : "username";
44
+ /**
45
+ * The union of fields accepted as the login username.
46
+ *
47
+ * @deprecated Use `LoginUsernames`.
48
+ */
49
+ export type LoginUsernameField = LoginUsernames;
50
+ type LoginUsernameValue<F extends string> = NonNullable<PathValue<PrismaModels<{
51
+ select: PathSelect<F>;
52
+ }>["user"]["GetPayload"], F>>;
53
+ type LoginInputFor<F extends string> = {
54
+ password: string;
55
+ } & (F extends `${string}.${string}` ? {
56
+ /** Required for nested paths so the full dot-path is queried. */
57
+ usernameField: F;
58
+ } : {
59
+ /** Only needed for nested paths; otherwise inferred from the username key. */
60
+ usernameField?: F;
61
+ }) & {
62
+ [K in LastSegment<F>]: LoginUsernameValue<F>;
63
+ };
64
+ type DistributiveLoginInput<F extends string> = F extends any ? LoginInputFor<F> : never;
65
+ /**
66
+ * Login payload for the configured username fields. Every entry in
67
+ * `authentication.login.allowedUsernames` is accepted as an alternative, and the
68
+ * key holding the username is the last segment of the field path, typed from the
69
+ * Prisma schema.
70
+ */
71
+ export type LoginInput = DistributiveLoginInput<LoginUsernames>;
72
+ export {};
@@ -0,0 +1,63 @@
1
+ import { ArkosSocket } from "../../../components/arkos-gateway/types";
2
+ import { ArkosRequest, User } from "../../../types";
3
+ import { AuthAction } from "./services/auth-action.service";
4
+ type ArkosBaseContext = ArkosRequest | ArkosSocket;
5
+ interface ArkosMiddlewareAdapter<TContext extends ArkosBaseContext> {
6
+ context: TContext;
7
+ done: (error?: unknown | any) => void;
8
+ }
9
+ declare class AuthHookManager {
10
+ /**
11
+ * Runs the full authenticate pipeline — before hooks, core user resolution,
12
+ * after hooks — and calls `done` when finished.
13
+ *
14
+ * Shared by the HTTP authenticate middleware and the WebSocket auth ns.use().
15
+ *
16
+ * @param adapter.context - The request or socket being authenticated.
17
+ * @param adapter.done - Called with no args on success, or with an error to propagate.
18
+ * @param getUser - Async function that resolves the user from the context.
19
+ */
20
+ runAuthenticate<TContext extends ArkosBaseContext>(adapter: ArkosMiddlewareAdapter<TContext>, getUser: (context: TContext) => Promise<User | null>, keyName?: "user" | "currentUser"): Promise<void>;
21
+ /**
22
+ * Runs the full authorize pipeline — before hooks, core permission check,
23
+ * after hooks — and calls `done` when finished.
24
+ *
25
+ * Shared by the HTTP `authorize()` middleware and WebSocket per-event authorization.
26
+ *
27
+ * @param adapter.context - The request or socket being authorized.
28
+ * @param authAction {AuthAction}
29
+ * @param keyName {"user" | "currentUser"}
30
+ */
31
+ runAuthorize<TContext extends ArkosBaseContext>(adapter: ArkosMiddlewareAdapter<TContext>, authAction: Required<AuthAction>, keyName?: "user" | "currentUser"): Promise<void>;
32
+ /**
33
+ * Runs a chain of `after` hooks in sequence.
34
+ *
35
+ * - If a hook throws — chain aborts, error is forwarded to the global error handler.
36
+ * - If a hook returns — next hook in chain runs.
37
+ *
38
+ * @returns Promise resolving to `{ error? }`
39
+ */
40
+ private runAfterHooks;
41
+ /**
42
+ * Runs a chain of `before` hooks in sequence.
43
+ *
44
+ * - If a hook throws — chain aborts, error is forwarded to `onError` hooks.
45
+ * - If a hook calls `skip()` — chain stops, core logic is bypassed, jumps to `after` hooks.
46
+ * - If a hook returns — next hook in chain runs.
47
+ *
48
+ * @returns Promise resolving to `{ skipped, error? }`
49
+ */
50
+ private runHooks;
51
+ /**
52
+ * Runs a chain of `onError` hooks in sequence.
53
+ *
54
+ * - If a hook throws — chain aborts, error is forwarded to the global error handler.
55
+ * - If a hook calls `skip()` — suppresses the error and jumps to `after` hooks.
56
+ * - If a hook returns — next hook in chain runs.
57
+ *
58
+ * @returns Promise resolving to `{ skipped, error? }`
59
+ */
60
+ private runErrorHooks;
61
+ }
62
+ declare const authHookManager: AuthHookManager;
63
+ export default authHookManager;
@@ -0,0 +1,9 @@
1
+ import { AuthRouterEndpoint } from "../../../types/router-config";
2
+ import { ArkosRouteConfig } from "../../../exports";
3
+ import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
4
+ declare class AuthOpenAPIGenerator {
5
+ getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: AuthRouterEndpoint): Partial<ExtendedOperationObject>;
6
+ private getAuthActionSchema;
7
+ }
8
+ declare const authOpenAPIGenerator: AuthOpenAPIGenerator;
9
+ export default authOpenAPIGenerator;
@@ -0,0 +1,13 @@
1
+ import { JsonSchema } from "../../../utils/prisma/types";
2
+ declare class AuthPrismaJsonSchemaGenerator {
3
+ private userModel?;
4
+ private getUserModel;
5
+ private getPrismaArgs;
6
+ generateGetMeResponse(): JsonSchema;
7
+ generateUpdatePasswordSchema(): JsonSchema;
8
+ generateUpdateMeSchema(): JsonSchema;
9
+ generateSignupSchema(): JsonSchema;
10
+ generateLoginSchema(): JsonSchema;
11
+ }
12
+ declare const authPrismaJsonSchemaGenerator: AuthPrismaJsonSchemaGenerator;
13
+ export default authPrismaJsonSchemaGenerator;
@@ -0,0 +1,3 @@
1
+ export declare const authenticationDocsLinks: {
2
+ setup: string;
3
+ };
@@ -1,4 +1,5 @@
1
1
  import { ArkosRequest } from "../../../../types";
2
+ export declare const getDefaultUsernameField: () => string;
2
3
  /**
3
4
  * Determines the username field to use for authentication and supports nested paths
4
5
  * Priority:
@@ -1,5 +1,5 @@
1
1
  import { AccessControlConfig } from "../../../../types/auth";
2
- interface AuthAction {
2
+ export interface AuthAction {
3
3
  roles?: string[] | "*";
4
4
  action: string;
5
5
  resource: string;
@@ -9,7 +9,7 @@ interface AuthAction {
9
9
  }
10
10
  declare class AuthActionService {
11
11
  authActions: AuthAction[];
12
- add(action: string, resource: string, accessControl?: AccessControlConfig): void;
12
+ add(action: string, resource: string, accessControl?: AccessControlConfig): Required<AuthAction>;
13
13
  remove(action: string, resource: string): void;
14
14
  getAll(): AuthAction[];
15
15
  getOne(action: string, resource: string): AuthAction | undefined;
@@ -0,0 +1,53 @@
1
+ export declare const ACCESS_TOKEN_COOKIE_NAME = "arkos_access_token";
2
+ export declare const NO_TOKEN_SENTINEL = "no-token";
3
+ export type CookieMap = Record<string, string>;
4
+ /** Returns the trimmed token if it is non-empty, otherwise `null`. */
5
+ export declare function normalizeToken(value: unknown): string | null;
6
+ /**
7
+ * Reads a token from an already-parsed cookie map (e.g. Express's `req.cookies`).
8
+ * Arkos writes the `no-token` sentinel on logout, so it counts as absent.
9
+ */
10
+ export declare function getCookieToken(cookies: Record<string, unknown> | undefined, cookieName?: string): string | null;
11
+ /**
12
+ * Parses a raw `Cookie` header without requiring cookie-parser.
13
+ * Values may contain `=`; malformed pairs are skipped.
14
+ */
15
+ export declare function parseCookieHeader(cookieHeader?: string | null): CookieMap;
16
+ /**
17
+ * Extracts a bearer token from an `Authorization` header.
18
+ *
19
+ * The default mode is case-insensitive and tolerates a missing space after
20
+ * `Bearer`. Pass `{ caseInsensitive: false }` to preserve the legacy HTTP
21
+ * behavior exactly.
22
+ */
23
+ export declare function extractBearerToken(authorization?: string | null, { caseInsensitive }?: {
24
+ caseInsensitive?: boolean;
25
+ }): string | null;
26
+ export interface RequestTokenSources {
27
+ authorization?: string;
28
+ cookies?: Record<string, unknown>;
29
+ cookieName?: string;
30
+ }
31
+ /**
32
+ * Resolves the token for an HTTP request-like object.
33
+ * Precedence: `Authorization` header, then the access-token cookie.
34
+ */
35
+ export declare function resolveRequestToken({ authorization, cookies, cookieName, }: RequestTokenSources): string | null;
36
+ export interface SocketTokenSources {
37
+ auth?: Record<string, unknown>;
38
+ key?: string;
39
+ headers?: {
40
+ authorization?: string;
41
+ cookie?: string;
42
+ };
43
+ /** Pre-parsed cookies, when available. */
44
+ cookies?: CookieMap;
45
+ /** Raw `Cookie` header, used when `cookies` is not provided. */
46
+ cookieHeader?: string;
47
+ cookieName?: string;
48
+ }
49
+ /**
50
+ * Resolves the token for a Socket.IO connection.
51
+ * Precedence: `handshake.auth.token`, `Authorization` header, access-token cookie.
52
+ */
53
+ export declare function resolveSocketToken({ auth, key, headers, cookies, cookieHeader, cookieName, }: SocketTokenSources): string | null;
@@ -1,6 +1,6 @@
1
- import { ArkosRequest } from "../../types";
2
- import { BaseService } from "./base.service";
3
- import { PrismaModels } from "../../generated";
1
+ import { ArkosRequest } from '../../types';
2
+ import { ArkosPrismaService } from './base.service';
3
+ import { PrismaModels } from '../../generated';
4
4
  export interface OperationHooks {
5
5
  beforeQuery?: (req: ArkosRequest) => void | Promise<void>;
6
6
  afterQuery?: (queryData: {
@@ -31,22 +31,23 @@ export interface OperationHooks {
31
31
  *
32
32
  * @param {string} modelName - The Prisma model name this controller handles.
33
33
  *
34
- * @see {@link https://www.arkosjs.com/docs/api-reference/the-base-controller-class}
34
+ * @see {@link https://www.arkosjs.com/docs/reference/base-controller}
35
35
  *--
36
36
  * **See about how Arkos handles routers**
37
- * @see {@link https://www.arkosjs.com/docs/guide/adding-custom-routers}
37
+ * @see {@link https://www.arkosjs.com/docs/core-concepts/routing/setup}
38
38
  */
39
39
  export declare class BaseController<TModuleName extends keyof PrismaModels<any>> {
40
40
  /**
41
41
  * Service instance to handle business logic operations
42
42
  * @public
43
43
  */
44
- service: BaseService<TModuleName>;
44
+ service: ArkosPrismaService<TModuleName>;
45
45
  /**
46
46
  * Name of the model this controller handles
47
47
  * @private
48
48
  */
49
49
  private modelName;
50
+ private get hasCustomService();
50
51
  /**
51
52
  * Creates a new BaseController instance
52
53
  * @param {string} modelName - The name of the model for which this controller will handle operations
@@ -1,10 +1,6 @@
1
- import { NextFunction, Request, Response } from "express";
2
- import { PrismaQueryOptions, ArkosRequest, ArkosRequestHandler, ArkosResponse, AuthPrismaQueryOptions } from "../../types";
3
- import { ZodSchema } from "zod";
4
- import { ClassConstructor } from "class-transformer";
5
- import { ValidatorOptions } from "class-validator";
6
- import { ArkosRouteConfig } from "../../utils/arkos-router/types";
7
- export declare function callNext(_: Request, _1: Response, next: NextFunction): void;
1
+ import { NextFunction, Request, Response } from 'express';
2
+ import { PrismaQueryOptions, ArkosRequest, ArkosResponse, AuthPrismaQueryOptions } from '../../types';
3
+ import { ArkosRouteConfig } from '../../utils/arkos-router/types';
8
4
  /**
9
5
  * Sends response with backward compatibility support
10
6
  * Compares current values against original values to detect middleware changes
@@ -30,6 +26,4 @@ export declare function addPrismaQueryOptionsToRequest<T extends Record<string,
30
26
  *
31
27
  */
32
28
  export declare function handleRequestLogs(req: Request, res: Response, next: NextFunction): void;
33
- export declare function handleRequestBodyValidationAndTransformation<T extends object>(schemaOrDtoClass?: ClassConstructor<T>, classValidatorValidationOptions?: ValidatorOptions): ArkosRequestHandler;
34
- export declare function handleRequestBodyValidationAndTransformation<T extends object>(schemaOrDtoClass?: ZodSchema<T>): ArkosRequestHandler;
35
29
  export declare function validateRequestInputs(routeConfig: ArkosRouteConfig): any;