arkos 2.0.0-next.16 → 2.0.0-next.17

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 (267) hide show
  1. package/README.md +33 -31
  2. package/dist/cjs/app.js +3 -10
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/components/arkos-gateway/arkos-gateway.js +344 -0
  5. package/dist/cjs/components/arkos-gateway/arkos-gateway.js.map +1 -0
  6. package/dist/cjs/components/arkos-gateway/socket-extensions.js +166 -0
  7. package/dist/cjs/components/arkos-gateway/socket-extensions.js.map +1 -0
  8. package/dist/cjs/components/arkos-gateway/types.js +7 -0
  9. package/dist/cjs/components/arkos-gateway/types.js.map +1 -0
  10. package/dist/cjs/components/arkos-gateway/utils/helpers.js +111 -0
  11. package/dist/cjs/components/arkos-gateway/utils/helpers.js.map +1 -0
  12. package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js +51 -0
  13. package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
  14. package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +43 -0
  15. package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
  16. package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js +17 -0
  17. package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
  18. package/dist/cjs/components/arkos-policy/index.js.map +1 -1
  19. package/dist/cjs/components/arkos-route-hook/index.js.map +1 -1
  20. package/dist/cjs/components/arkos-route-hook/reader.js.map +1 -1
  21. package/dist/cjs/components/arkos-route-hook/types.js.map +1 -1
  22. package/dist/cjs/components/arkos-service-hook/index.js.map +1 -1
  23. package/dist/cjs/components/arkos-service-hook/types.js.map +1 -1
  24. package/dist/cjs/exports/index.js +3 -1
  25. package/dist/cjs/exports/index.js.map +1 -1
  26. package/dist/cjs/exports/services/index.js +2 -2
  27. package/dist/cjs/exports/services/index.js.map +1 -1
  28. package/dist/cjs/exports/websockets.js +13 -0
  29. package/dist/cjs/exports/websockets.js.map +1 -0
  30. package/dist/cjs/generated.js.map +1 -1
  31. package/dist/cjs/modules/auth/auth.controller.js +1 -1
  32. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  33. package/dist/cjs/modules/auth/auth.service.js +88 -209
  34. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  35. package/dist/cjs/modules/auth/utils/auth-error-objects.js +2 -2
  36. package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +1 -1
  37. package/dist/cjs/modules/auth/utils/auth-hooks-manager.js +153 -0
  38. package/dist/cjs/modules/auth/utils/auth-hooks-manager.js.map +1 -0
  39. package/dist/cjs/modules/auth/utils/docs-links.js +9 -0
  40. package/dist/cjs/modules/auth/utils/docs-links.js.map +1 -0
  41. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +5 -3
  42. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  43. package/dist/cjs/modules/base/base.controller.js +10 -4
  44. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  45. package/dist/cjs/modules/base/base.middlewares.js +11 -20
  46. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  47. package/dist/cjs/modules/base/base.service.js +29 -94
  48. package/dist/cjs/modules/base/base.service.js.map +1 -1
  49. package/dist/cjs/modules/email/email.service.js +14 -7
  50. package/dist/cjs/modules/email/email.service.js.map +1 -1
  51. package/dist/cjs/modules/error-handler/error-handler.controller.js +6 -102
  52. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  53. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  54. package/dist/cjs/modules/error-handler/utils/get-handled-error.js +107 -0
  55. package/dist/cjs/modules/error-handler/utils/get-handled-error.js.map +1 -0
  56. package/dist/cjs/modules/file-upload/file-upload.router.js +9 -2
  57. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  58. package/dist/cjs/modules/file-upload/file-upload.service.js +1 -1
  59. package/dist/cjs/modules/file-upload/file-upload.service.js.map +1 -1
  60. package/dist/cjs/modules/swagger/swagger.router.js +44 -10
  61. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  62. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +3 -1
  63. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
  64. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
  65. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +4 -2
  66. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  67. package/dist/cjs/server.js +1 -1
  68. package/dist/cjs/server.js.map +1 -1
  69. package/dist/cjs/types/arkos.js.map +1 -1
  70. package/dist/cjs/types/index.js.map +1 -1
  71. package/dist/cjs/types/new-arkos-config.js.map +1 -1
  72. package/dist/cjs/types/upload.js +3 -0
  73. package/dist/cjs/types/upload.js.map +1 -0
  74. package/dist/cjs/types/validation/validation-manager.js +55 -0
  75. package/dist/cjs/types/validation/validation-manager.js.map +1 -0
  76. package/dist/cjs/types/validation/validator.js +3 -0
  77. package/dist/cjs/types/validation/validator.js.map +1 -0
  78. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +9 -33
  79. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  80. package/dist/cjs/utils/arkos-router/index.js +15 -3
  81. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  82. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  83. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -1
  84. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +41 -9
  85. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  86. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +26 -6
  87. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  88. package/dist/cjs/utils/cli/build.js +11 -2
  89. package/dist/cjs/utils/cli/build.js.map +1 -1
  90. package/dist/cjs/utils/cli/dev.js +4 -6
  91. package/dist/cjs/utils/cli/dev.js.map +1 -1
  92. package/dist/cjs/utils/cli/index.js +1 -1
  93. package/dist/cjs/utils/cli/index.js.map +1 -1
  94. package/dist/cjs/utils/cli/start.js +20 -11
  95. package/dist/cjs/utils/cli/start.js.map +1 -1
  96. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  97. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +53 -17
  98. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
  99. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -3
  100. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  101. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +18 -18
  102. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
  103. package/dist/cjs/utils/docs-links.js +5 -0
  104. package/dist/cjs/utils/docs-links.js.map +1 -0
  105. package/dist/cjs/utils/features/api.features.js.map +1 -1
  106. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -1
  107. package/dist/cjs/utils/helpers/exit-error.js +1 -1
  108. package/dist/cjs/utils/helpers/exit-error.js.map +1 -1
  109. package/dist/cjs/utils/initialize-app.js +3 -3
  110. package/dist/cjs/utils/initialize-app.js.map +1 -1
  111. package/dist/cjs/utils/remove-dir.js +1 -1
  112. package/dist/cjs/utils/remove-dir.js.map +1 -1
  113. package/dist/cjs/utils/setup-app.js.map +1 -1
  114. package/dist/esm/app.js +3 -10
  115. package/dist/esm/app.js.map +1 -1
  116. package/dist/esm/components/arkos-gateway/arkos-gateway.js +337 -0
  117. package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
  118. package/dist/esm/components/arkos-gateway/socket-extensions.js +161 -0
  119. package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
  120. package/dist/esm/components/arkos-gateway/types.js +3 -0
  121. package/dist/esm/components/arkos-gateway/types.js.map +1 -0
  122. package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
  123. package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
  124. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +47 -0
  125. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
  126. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +39 -0
  127. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
  128. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
  129. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
  130. package/dist/esm/components/arkos-policy/index.js.map +1 -1
  131. package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
  132. package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
  133. package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
  134. package/dist/esm/components/arkos-service-hook/index.js.map +1 -1
  135. package/dist/esm/components/arkos-service-hook/types.js.map +1 -1
  136. package/dist/esm/exports/index.js +2 -1
  137. package/dist/esm/exports/index.js.map +1 -1
  138. package/dist/esm/exports/services/index.js +2 -2
  139. package/dist/esm/exports/services/index.js.map +1 -1
  140. package/dist/esm/exports/websockets.js +5 -0
  141. package/dist/esm/exports/websockets.js.map +1 -0
  142. package/dist/esm/generated.js.map +1 -1
  143. package/dist/esm/modules/auth/auth.controller.js +2 -2
  144. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  145. package/dist/esm/modules/auth/auth.service.js +83 -204
  146. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  147. package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
  148. package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
  149. package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
  150. package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
  151. package/dist/esm/modules/auth/utils/docs-links.js +6 -0
  152. package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
  153. package/dist/esm/modules/auth/utils/services/auth-action.service.js +6 -4
  154. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  155. package/dist/esm/modules/base/base.controller.js +11 -5
  156. package/dist/esm/modules/base/base.controller.js.map +1 -1
  157. package/dist/esm/modules/base/base.middlewares.js +12 -21
  158. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  159. package/dist/esm/modules/base/base.service.js +27 -92
  160. package/dist/esm/modules/base/base.service.js.map +1 -1
  161. package/dist/esm/modules/email/email.service.js +14 -7
  162. package/dist/esm/modules/email/email.service.js.map +1 -1
  163. package/dist/esm/modules/error-handler/error-handler.controller.js +6 -66
  164. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  165. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
  166. package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
  167. package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
  168. package/dist/esm/modules/file-upload/file-upload.router.js +9 -2
  169. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  170. package/dist/esm/modules/file-upload/file-upload.service.js +1 -1
  171. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  172. package/dist/esm/modules/swagger/swagger.router.js +11 -10
  173. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  174. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +3 -1
  175. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
  176. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
  177. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +4 -2
  178. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  179. package/dist/esm/server.js +1 -1
  180. package/dist/esm/server.js.map +1 -1
  181. package/dist/esm/types/arkos.js.map +1 -1
  182. package/dist/esm/types/index.js.map +1 -1
  183. package/dist/esm/types/new-arkos-config.js.map +1 -1
  184. package/dist/esm/types/upload.js +2 -0
  185. package/dist/esm/types/upload.js.map +1 -0
  186. package/dist/esm/types/validation/validation-manager.js +50 -0
  187. package/dist/esm/types/validation/validation-manager.js.map +1 -0
  188. package/dist/esm/types/validation/validator.js +2 -0
  189. package/dist/esm/types/validation/validator.js.map +1 -0
  190. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +9 -33
  191. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  192. package/dist/esm/utils/arkos-router/index.js +15 -3
  193. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  194. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  195. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
  196. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +41 -9
  197. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  198. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +26 -6
  199. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  200. package/dist/esm/utils/cli/build.js +11 -2
  201. package/dist/esm/utils/cli/build.js.map +1 -1
  202. package/dist/esm/utils/cli/dev.js +4 -6
  203. package/dist/esm/utils/cli/dev.js.map +1 -1
  204. package/dist/esm/utils/cli/index.js +1 -1
  205. package/dist/esm/utils/cli/index.js.map +1 -1
  206. package/dist/esm/utils/cli/start.js +20 -11
  207. package/dist/esm/utils/cli/start.js.map +1 -1
  208. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  209. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +53 -17
  210. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
  211. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -3
  212. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  213. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +18 -18
  214. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
  215. package/dist/esm/utils/docs-links.js +2 -0
  216. package/dist/esm/utils/docs-links.js.map +1 -0
  217. package/dist/esm/utils/features/api.features.js.map +1 -1
  218. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  219. package/dist/esm/utils/helpers/exit-error.js +1 -1
  220. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  221. package/dist/esm/utils/initialize-app.js +3 -3
  222. package/dist/esm/utils/initialize-app.js.map +1 -1
  223. package/dist/esm/utils/remove-dir.js +1 -1
  224. package/dist/esm/utils/remove-dir.js.map +1 -1
  225. package/dist/esm/utils/setup-app.js.map +1 -1
  226. package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
  227. package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
  228. package/dist/types/components/arkos-gateway/types.d.ts +364 -0
  229. package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
  230. package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
  231. package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
  232. package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
  233. package/dist/types/components/arkos-route-hook/index.d.ts +4 -4
  234. package/dist/types/components/arkos-route-hook/reader.d.ts +2 -2
  235. package/dist/types/components/arkos-route-hook/types.d.ts +6 -0
  236. package/dist/types/components/arkos-service-hook/index.d.ts +1 -1
  237. package/dist/types/components/arkos-service-hook/types.d.ts +0 -21
  238. package/dist/types/exports/index.d.ts +3 -1
  239. package/dist/types/exports/services/index.d.ts +2 -2
  240. package/dist/types/exports/websockets.d.ts +5 -0
  241. package/dist/types/modules/auth/auth.service.d.ts +12 -36
  242. package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
  243. package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
  244. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
  245. package/dist/types/modules/base/base.controller.d.ts +2 -2
  246. package/dist/types/modules/base/base.service.d.ts +4 -7
  247. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
  248. package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
  249. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
  250. package/dist/types/types/arkos.d.ts +1 -13
  251. package/dist/types/types/index.d.ts +6 -5
  252. package/dist/types/types/new-arkos-config.d.ts +1 -1
  253. package/dist/types/types/upload.d.ts +10 -0
  254. package/dist/types/types/validation/validation-manager.d.ts +27 -0
  255. package/dist/types/types/validation/validator.d.ts +2 -0
  256. package/dist/types/utils/arkos-router/index.d.ts +7 -0
  257. package/dist/types/utils/arkos-router/types/index.d.ts +35 -21
  258. package/dist/types/utils/arkos-router/types/upload-config.d.ts +2 -1
  259. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -7
  260. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -0
  261. package/dist/types/utils/cli/build.d.ts +1 -1
  262. package/dist/types/utils/cli/start.d.ts +2 -0
  263. package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +7 -0
  264. package/dist/types/utils/docs-links.d.ts +1 -0
  265. package/dist/types/utils/features/api.features.d.ts +1 -2
  266. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +5 -0
  267. package/package.json +48 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/arkos-service-hook/index.ts"],"names":[],"mappings":";;AA6CA,4CA0CC;AA1CD,SAAgB,gBAAgB,CAG9B,UAAsB;IACtB,MAAM,KAAK,GAAgE,EAAE,CAAC;IAE9E,MAAM,UAAU,GACd,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAiD,EAAE,EAAE;QACrE,KAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEJ,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,kBAA2B;QACnC,UAAU;QACV,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,MAAM,OAAO,GAGT,EAAE,CAAC;IAEP,KAAK,MAAM,IAAI,IAAI;QACjB,WAAW;QACX,YAAY;QACZ,OAAO;QACP,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb,EAAE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,KAAiE,CAAC;AAC3E,CAAC","sourcesContent":["import { ServiceHookContext } from \"../../exports/services\";\nimport { PrismaModels } from \"../../generated\";\nimport {\n ArkosServiceHookMethodConfigs,\n ArkosServiceHookInstance,\n ServiceHookOperationConfig,\n} from \"./types\";\n\ntype Models = PrismaModels<any>;\n\n/**\n * Creates a service hook for a generated Prisma model service.\n *\n * The returned instance exposes a method per service operation.\n * Each method accepts typed `before`, `after`, and `onError` handler arrays\n * that run around the corresponding `BaseService` method call.\n *\n * Unlike `ArkosRouteHook`, handlers here are **not** Express middlewares —\n * they receive a typed args object specific to each operation.\n *\n * Register via `app.load()` before calling `app.build()`.\n *\n * @param moduleName - The Prisma model name in kebab-case (e.g. `\"user\"`, `\"blog-post\"`)\n *\n * @example\n * ```ts\n * const userServiceHook = ArkosServiceHook(\"user\");\n *\n * userServiceHook.createOne({\n * before: [async ({ data, context }) => {\n * data.createdBy = context?.user?.id;\n * }],\n * after: [async ({ result }) => {\n * await notifyAdmins(result);\n * }],\n * onError: [async ({ error, data }) => {\n * await logFailure(error, data);\n * }],\n * });\n *\n * app.load(userServiceHook);\n * ```\n *\n * @see {@link https://www.arkosjs.com/docs/core-concepts/components/service-hooks}\n */\nexport function ArkosServiceHook<\n TModelName extends keyof Models = keyof Models,\n Context = ServiceHookContext,\n>(moduleName: TModelName): ArkosServiceHookInstance<TModelName, Context> {\n const store: Partial<ArkosServiceHookMethodConfigs<TModelName, Context>> = {};\n\n const makeMethod =\n (name: string) => (config: ServiceHookOperationConfig<any, any, any>) => {\n (store as any)[name] = config;\n return proxy;\n };\n\n const base = {\n __type: \"ArkosServiceHook\" as const,\n moduleName,\n _store: store,\n };\n\n const methods: Record<\n string,\n (config: ServiceHookOperationConfig<any, any, any>) => unknown\n > = {};\n\n for (const name of [\n \"createOne\",\n \"createMany\",\n \"count\",\n \"findMany\",\n \"findOne\",\n \"findById\",\n \"updateOne\",\n \"updateById\",\n \"updateMany\",\n \"deleteOne\",\n \"deleteById\",\n \"deleteMany\",\n ]) {\n methods[name] = makeMethod(name);\n }\n\n const proxy = Object.assign(base, methods);\n return proxy as unknown as ArkosServiceHookInstance<TModelName, Context>;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/arkos-service-hook/index.ts"],"names":[],"mappings":";;AA6CA,4CA0CC;AA1CD,SAAgB,gBAAgB,CAG9B,UAAsB;IACtB,MAAM,KAAK,GAAgE,EAAE,CAAC;IAE9E,MAAM,UAAU,GACd,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAiD,EAAE,EAAE;QACrE,KAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEJ,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,kBAA2B;QACnC,UAAU;QACV,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,MAAM,OAAO,GAGT,EAAE,CAAC;IAEP,KAAK,MAAM,IAAI,IAAI;QACjB,WAAW;QACX,YAAY;QACZ,OAAO;QACP,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb,EAAE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,KAAiE,CAAC;AAC3E,CAAC","sourcesContent":["import { ServiceHookContext } from \"../../exports/services\";\nimport { PrismaModels } from \"../../generated\";\nimport {\n ArkosServiceHookMethodConfigs,\n ArkosServiceHookInstance,\n ServiceHookOperationConfig,\n} from \"./types\";\n\ntype Models = PrismaModels<any>;\n\n/**\n * Creates a service hook for a generated Prisma model service.\n *\n * The returned instance exposes a method per service operation.\n * Each method accepts typed `before`, `after`, and `onError` handler arrays\n * that run around the corresponding `ArkosPrismaService` method call.\n *\n * Unlike `ArkosRouteHook`, handlers here are **not** Express middlewares —\n * they receive a typed args object specific to each operation.\n *\n * Register via `app.load()` before calling `app.build()`.\n *\n * @param moduleName - The Prisma model name in kebab-case (e.g. `\"user\"`, `\"blog-post\"`)\n *\n * @example\n * ```ts\n * const userServiceHook = ArkosServiceHook(\"user\");\n *\n * userServiceHook.createOne({\n * before: [async ({ data, context }) => {\n * data.createdBy = context?.user?.id;\n * }],\n * after: [async ({ result }) => {\n * await notifyAdmins(result);\n * }],\n * onError: [async ({ error, data }) => {\n * await logFailure(error, data);\n * }],\n * });\n *\n * app.load(userServiceHook);\n * ```\n *\n * @see {@link https://www.arkosjs.com/docs/core-concepts/components/service-hooks}\n */\nexport function ArkosServiceHook<\n TModelName extends keyof Models = keyof Models,\n Context = ServiceHookContext,\n>(moduleName: TModelName): ArkosServiceHookInstance<TModelName, Context> {\n const store: Partial<ArkosServiceHookMethodConfigs<TModelName, Context>> = {};\n\n const makeMethod =\n (name: string) => (config: ServiceHookOperationConfig<any, any, any>) => {\n (store as any)[name] = config;\n return proxy;\n };\n\n const base = {\n __type: \"ArkosServiceHook\" as const,\n moduleName,\n _store: store,\n };\n\n const methods: Record<\n string,\n (config: ServiceHookOperationConfig<any, any, any>) => unknown\n > = {};\n\n for (const name of [\n \"createOne\",\n \"createMany\",\n \"count\",\n \"findMany\",\n \"findOne\",\n \"findById\",\n \"updateOne\",\n \"updateById\",\n \"updateMany\",\n \"deleteOne\",\n \"deleteById\",\n \"deleteMany\",\n ]) {\n methods[name] = makeMethod(name);\n }\n\n const proxy = Object.assign(base, methods);\n return proxy as unknown as ArkosServiceHookInstance<TModelName, Context>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/arkos-service-hook/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n CountFilters,\n CreateData,\n CreateManyData,\n CreateManyOptions,\n CreateManyResult,\n CreateOptions,\n CreateResult,\n DeleteManyFilters,\n DeleteOneFilters,\n FindManyFilters,\n FindManyOptions,\n FindManyResult,\n FindOneFilters,\n FindOneOptions,\n FindOneResult,\n Models,\n UpdateManyData,\n UpdateManyFilters,\n UpdateManyOptions,\n UpdateOneData,\n UpdateOneFilters,\n UpdateOneOptions,\n UpdateOneResult,\n} from \"../../modules/base/types/base.service.types\";\nimport { User } from \"../../types\";\n\nexport interface ServiceHookContext {\n /**\n * The authenticated user making the request.\n */\n user?: User;\n\n /**\n * The access token from the request for authorization.\n */\n accessToken?: string;\n\n /**\n * Hook types to skip for this operation.\n * - `\"before\"`: Skip before hooks\n * - `\"after\"`: Skip after hooks\n * - `\"error\"`: Skip error hooks\n * - `\"all\"`: Skip all hooks\n *\n * @example\n * ```ts\n * { skip: [\"before\", \"error\"] }\n * { skip: \"all\" }\n * ```\n */\n skip?:\n | (\"before\" | \"after\" | \"error\")[]\n | \"before\"\n | \"after\"\n | \"error\"\n | \"all\";\n\n /**\n * Whether to re-throw errors after error hooks have run.\n * - `true` (default): re-throws the error\n * - `false`: returns the fallback value instead\n * @default true\n */\n throwOnError?: boolean;\n}\n\nexport type ServiceHookHandler<TArgs> = (args: TArgs) => void | Promise<void>;\n\nexport interface ServiceHookOperationConfig<TBefore, TAfter, TError> {\n before?: ServiceHookHandler<TBefore>[];\n after?: ServiceHookHandler<TAfter>[];\n onError?: ServiceHookHandler<TError>[];\n}\n\nexport interface BeforeCreateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n data: CreateData<TModelName>;\n queryOptions?: CreateOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCreateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: CreateResult<TModelName>;\n data: CreateData<TModelName>;\n queryOptions?: CreateOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnCreateOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCreateOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeCreateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n data: CreateManyData<TModelName>;\n queryOptions?: CreateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCreateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: CreateManyResult<TModelName>;\n data: CreateManyData<TModelName>;\n queryOptions?: CreateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnCreateManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCreateManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeCountHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters?: CountFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCountHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: number;\n filters?: CountFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnCountErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCountHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters?: FindManyFilters<TModelName>;\n queryOptions?: FindManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindManyResult<TModelName>;\n filters?: FindManyFilters<TModelName>;\n queryOptions?: FindManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: FindOneFilters<TModelName>;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindOneResult<TModelName>;\n filters: FindOneFilters<TModelName>;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: UpdateOneFilters<TModelName>;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: UpdateOneResult<TModelName>;\n filters: UpdateOneFilters<TModelName>;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: UpdateManyFilters<TModelName>;\n data: UpdateManyData<TModelName>;\n queryOptions?: UpdateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: { count: number };\n filters: UpdateManyFilters<TModelName>;\n data: UpdateManyData<TModelName>;\n queryOptions?: UpdateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: DeleteOneFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterDeleteOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: Models[TModelName][\"GetPayload\"];\n filters: DeleteOneFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnDeleteOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: DeleteManyFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterDeleteManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: { count: number };\n filters: DeleteManyFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnDeleteManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindOneResult<TModelName>;\n id: string | number;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: UpdateOneResult<TModelName>;\n id: string | number;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n context?: Context;\n}\n\nexport interface AfterDeleteByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: Models[TModelName][\"GetPayload\"];\n id: string | number;\n context?: Context;\n}\n\nexport interface OnDeleteByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport type ArkosServiceHookMethodConfigs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> = {\n createOne?: ServiceHookOperationConfig<\n BeforeCreateOneHookArgs<TModelName, Context>,\n AfterCreateOneHookArgs<TModelName, Context>,\n OnCreateOneErrorHookArgs<TModelName, Context>\n >;\n createMany?: ServiceHookOperationConfig<\n BeforeCreateManyHookArgs<TModelName, Context>,\n AfterCreateManyHookArgs<TModelName, Context>,\n OnCreateManyErrorHookArgs<TModelName, Context>\n >;\n count?: ServiceHookOperationConfig<\n BeforeCountHookArgs<TModelName, Context>,\n AfterCountHookArgs<TModelName, Context>,\n OnCountErrorHookArgs<TModelName, Context>\n >;\n findMany?: ServiceHookOperationConfig<\n BeforeFindManyHookArgs<TModelName, Context>,\n AfterFindManyHookArgs<TModelName, Context>,\n OnFindManyErrorHookArgs<TModelName, Context>\n >;\n findOne?: ServiceHookOperationConfig<\n BeforeFindOneHookArgs<TModelName, Context>,\n AfterFindOneHookArgs<TModelName, Context>,\n OnFindOneErrorHookArgs<TModelName, Context>\n >;\n updateOne?: ServiceHookOperationConfig<\n BeforeUpdateOneHookArgs<TModelName, Context>,\n AfterUpdateOneHookArgs<TModelName, Context>,\n OnUpdateOneErrorHookArgs<TModelName, Context>\n >;\n updateMany?: ServiceHookOperationConfig<\n BeforeUpdateManyHookArgs<TModelName, Context>,\n AfterUpdateManyHookArgs<TModelName, Context>,\n OnUpdateManyErrorHookArgs<TModelName, Context>\n >;\n deleteOne?: ServiceHookOperationConfig<\n BeforeDeleteOneHookArgs<TModelName, Context>,\n AfterDeleteOneHookArgs<TModelName, Context>,\n OnDeleteOneErrorHookArgs<TModelName, Context>\n >;\n deleteMany?: ServiceHookOperationConfig<\n BeforeDeleteManyHookArgs<TModelName, Context>,\n AfterDeleteManyHookArgs<TModelName, Context>,\n OnDeleteManyErrorHookArgs<TModelName, Context>\n >;\n findById?: ServiceHookOperationConfig<\n BeforeFindByIdHookArgs<TModelName, Context>,\n AfterFindByIdHookArgs<TModelName, Context>,\n OnFindByIdErrorHookArgs<TModelName, Context>\n >;\n\n updateById?: ServiceHookOperationConfig<\n BeforeUpdateByIdHookArgs<TModelName, Context>,\n AfterUpdateByIdHookArgs<TModelName, Context>,\n OnUpdateByIdErrorHookArgs<TModelName, Context>\n >;\n\n deleteById?: ServiceHookOperationConfig<\n BeforeDeleteByIdHookArgs<TModelName, Context>,\n AfterDeleteByIdHookArgs<TModelName, Context>,\n OnDeleteByIdErrorHookArgs<TModelName, Context>\n >;\n};\n\nexport type ArkosServiceHookInstance<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> = {\n readonly __type: \"ArkosServiceHook\";\n readonly moduleName: TModelName;\n readonly _store: Partial<ArkosServiceHookMethodConfigs<TModelName, Context>>;\n\n createOne(\n config: ServiceHookOperationConfig<\n BeforeCreateOneHookArgs<TModelName, Context>,\n AfterCreateOneHookArgs<TModelName, Context>,\n OnCreateOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n createMany(\n config: ServiceHookOperationConfig<\n BeforeCreateManyHookArgs<TModelName, Context>,\n AfterCreateManyHookArgs<TModelName, Context>,\n OnCreateManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n count(\n config: ServiceHookOperationConfig<\n BeforeCountHookArgs<TModelName, Context>,\n AfterCountHookArgs<TModelName, Context>,\n OnCountErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findMany(\n config: ServiceHookOperationConfig<\n BeforeFindManyHookArgs<TModelName, Context>,\n AfterFindManyHookArgs<TModelName, Context>,\n OnFindManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findOne(\n config: ServiceHookOperationConfig<\n BeforeFindOneHookArgs<TModelName, Context>,\n AfterFindOneHookArgs<TModelName, Context>,\n OnFindOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateOne(\n config: ServiceHookOperationConfig<\n BeforeUpdateOneHookArgs<TModelName, Context>,\n AfterUpdateOneHookArgs<TModelName, Context>,\n OnUpdateOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateMany(\n config: ServiceHookOperationConfig<\n BeforeUpdateManyHookArgs<TModelName, Context>,\n AfterUpdateManyHookArgs<TModelName, Context>,\n OnUpdateManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteOne(\n config: ServiceHookOperationConfig<\n BeforeDeleteOneHookArgs<TModelName, Context>,\n AfterDeleteOneHookArgs<TModelName, Context>,\n OnDeleteOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteMany(\n config: ServiceHookOperationConfig<\n BeforeDeleteManyHookArgs<TModelName, Context>,\n AfterDeleteManyHookArgs<TModelName, Context>,\n OnDeleteManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findById(\n config: ServiceHookOperationConfig<\n BeforeFindByIdHookArgs<TModelName, Context>,\n AfterFindByIdHookArgs<TModelName, Context>,\n OnFindByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateById(\n config: ServiceHookOperationConfig<\n BeforeUpdateByIdHookArgs<TModelName, Context>,\n AfterUpdateByIdHookArgs<TModelName, Context>,\n OnUpdateByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteById(\n config: ServiceHookOperationConfig<\n BeforeDeleteByIdHookArgs<TModelName, Context>,\n AfterDeleteByIdHookArgs<TModelName, Context>,\n OnDeleteByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/arkos-service-hook/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n CountFilters,\n CreateData,\n CreateManyData,\n CreateManyOptions,\n CreateManyResult,\n CreateOptions,\n CreateResult,\n DeleteManyFilters,\n DeleteOneFilters,\n FindManyFilters,\n FindManyOptions,\n FindManyResult,\n FindOneFilters,\n FindOneOptions,\n FindOneResult,\n Models,\n UpdateManyData,\n UpdateManyFilters,\n UpdateManyOptions,\n UpdateOneData,\n UpdateOneFilters,\n UpdateOneOptions,\n UpdateOneResult,\n} from \"../../modules/base/types/base.service.types\";\nimport { User } from \"../../types\";\n\nexport interface ServiceHookContext {\n /**\n * The authenticated user making the request.\n */\n user?: User;\n /**\n * The access token from the request for authorization.\n */\n accessToken?: string;\n}\n\nexport type ServiceHookHandler<TArgs> = (args: TArgs) => void | Promise<void>;\n\nexport interface ServiceHookOperationConfig<TBefore, TAfter, TError> {\n before?: ServiceHookHandler<TBefore>[];\n after?: ServiceHookHandler<TAfter>[];\n onError?: ServiceHookHandler<TError>[];\n}\n\nexport interface BeforeCreateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n data: CreateData<TModelName>;\n queryOptions?: CreateOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCreateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: CreateResult<TModelName>;\n data: CreateData<TModelName>;\n queryOptions?: CreateOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnCreateOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCreateOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeCreateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n data: CreateManyData<TModelName>;\n queryOptions?: CreateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCreateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: CreateManyResult<TModelName>;\n data: CreateManyData<TModelName>;\n queryOptions?: CreateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnCreateManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCreateManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeCountHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters?: CountFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterCountHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: number;\n filters?: CountFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnCountErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeCountHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters?: FindManyFilters<TModelName>;\n queryOptions?: FindManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindManyResult<TModelName>;\n filters?: FindManyFilters<TModelName>;\n queryOptions?: FindManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: FindOneFilters<TModelName>;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindOneResult<TModelName>;\n filters: FindOneFilters<TModelName>;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: UpdateOneFilters<TModelName>;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: UpdateOneResult<TModelName>;\n filters: UpdateOneFilters<TModelName>;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: UpdateManyFilters<TModelName>;\n data: UpdateManyData<TModelName>;\n queryOptions?: UpdateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: { count: number };\n filters: UpdateManyFilters<TModelName>;\n data: UpdateManyData<TModelName>;\n queryOptions?: UpdateManyOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: DeleteOneFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterDeleteOneHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: Models[TModelName][\"GetPayload\"];\n filters: DeleteOneFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnDeleteOneErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteOneHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n filters: DeleteManyFilters<TModelName>;\n context?: Context;\n}\n\nexport interface AfterDeleteManyHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: { count: number };\n filters: DeleteManyFilters<TModelName>;\n context?: Context;\n}\n\nexport interface OnDeleteManyErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteManyHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeFindByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterFindByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: FindOneResult<TModelName>;\n id: string | number;\n queryOptions?: FindOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnFindByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeFindByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeUpdateByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface AfterUpdateByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: UpdateOneResult<TModelName>;\n id: string | number;\n data: UpdateOneData<TModelName>;\n queryOptions?: UpdateOneOptions<TModelName>;\n context?: Context;\n}\n\nexport interface OnUpdateByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeUpdateByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport interface BeforeDeleteByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n id: string | number;\n context?: Context;\n}\n\nexport interface AfterDeleteByIdHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> {\n result: Models[TModelName][\"GetPayload\"];\n id: string | number;\n context?: Context;\n}\n\nexport interface OnDeleteByIdErrorHookArgs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> extends BeforeDeleteByIdHookArgs<TModelName, Context> {\n error: any;\n}\n\nexport type ArkosServiceHookMethodConfigs<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> = {\n createOne?: ServiceHookOperationConfig<\n BeforeCreateOneHookArgs<TModelName, Context>,\n AfterCreateOneHookArgs<TModelName, Context>,\n OnCreateOneErrorHookArgs<TModelName, Context>\n >;\n createMany?: ServiceHookOperationConfig<\n BeforeCreateManyHookArgs<TModelName, Context>,\n AfterCreateManyHookArgs<TModelName, Context>,\n OnCreateManyErrorHookArgs<TModelName, Context>\n >;\n count?: ServiceHookOperationConfig<\n BeforeCountHookArgs<TModelName, Context>,\n AfterCountHookArgs<TModelName, Context>,\n OnCountErrorHookArgs<TModelName, Context>\n >;\n findMany?: ServiceHookOperationConfig<\n BeforeFindManyHookArgs<TModelName, Context>,\n AfterFindManyHookArgs<TModelName, Context>,\n OnFindManyErrorHookArgs<TModelName, Context>\n >;\n findOne?: ServiceHookOperationConfig<\n BeforeFindOneHookArgs<TModelName, Context>,\n AfterFindOneHookArgs<TModelName, Context>,\n OnFindOneErrorHookArgs<TModelName, Context>\n >;\n updateOne?: ServiceHookOperationConfig<\n BeforeUpdateOneHookArgs<TModelName, Context>,\n AfterUpdateOneHookArgs<TModelName, Context>,\n OnUpdateOneErrorHookArgs<TModelName, Context>\n >;\n updateMany?: ServiceHookOperationConfig<\n BeforeUpdateManyHookArgs<TModelName, Context>,\n AfterUpdateManyHookArgs<TModelName, Context>,\n OnUpdateManyErrorHookArgs<TModelName, Context>\n >;\n deleteOne?: ServiceHookOperationConfig<\n BeforeDeleteOneHookArgs<TModelName, Context>,\n AfterDeleteOneHookArgs<TModelName, Context>,\n OnDeleteOneErrorHookArgs<TModelName, Context>\n >;\n deleteMany?: ServiceHookOperationConfig<\n BeforeDeleteManyHookArgs<TModelName, Context>,\n AfterDeleteManyHookArgs<TModelName, Context>,\n OnDeleteManyErrorHookArgs<TModelName, Context>\n >;\n findById?: ServiceHookOperationConfig<\n BeforeFindByIdHookArgs<TModelName, Context>,\n AfterFindByIdHookArgs<TModelName, Context>,\n OnFindByIdErrorHookArgs<TModelName, Context>\n >;\n\n updateById?: ServiceHookOperationConfig<\n BeforeUpdateByIdHookArgs<TModelName, Context>,\n AfterUpdateByIdHookArgs<TModelName, Context>,\n OnUpdateByIdErrorHookArgs<TModelName, Context>\n >;\n\n deleteById?: ServiceHookOperationConfig<\n BeforeDeleteByIdHookArgs<TModelName, Context>,\n AfterDeleteByIdHookArgs<TModelName, Context>,\n OnDeleteByIdErrorHookArgs<TModelName, Context>\n >;\n};\n\nexport type ArkosServiceHookInstance<\n TModelName extends keyof Models,\n Context = ServiceHookContext,\n> = {\n readonly __type: \"ArkosServiceHook\";\n readonly moduleName: TModelName;\n readonly _store: Partial<ArkosServiceHookMethodConfigs<TModelName, Context>>;\n\n createOne(\n config: ServiceHookOperationConfig<\n BeforeCreateOneHookArgs<TModelName, Context>,\n AfterCreateOneHookArgs<TModelName, Context>,\n OnCreateOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n createMany(\n config: ServiceHookOperationConfig<\n BeforeCreateManyHookArgs<TModelName, Context>,\n AfterCreateManyHookArgs<TModelName, Context>,\n OnCreateManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n count(\n config: ServiceHookOperationConfig<\n BeforeCountHookArgs<TModelName, Context>,\n AfterCountHookArgs<TModelName, Context>,\n OnCountErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findMany(\n config: ServiceHookOperationConfig<\n BeforeFindManyHookArgs<TModelName, Context>,\n AfterFindManyHookArgs<TModelName, Context>,\n OnFindManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findOne(\n config: ServiceHookOperationConfig<\n BeforeFindOneHookArgs<TModelName, Context>,\n AfterFindOneHookArgs<TModelName, Context>,\n OnFindOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateOne(\n config: ServiceHookOperationConfig<\n BeforeUpdateOneHookArgs<TModelName, Context>,\n AfterUpdateOneHookArgs<TModelName, Context>,\n OnUpdateOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateMany(\n config: ServiceHookOperationConfig<\n BeforeUpdateManyHookArgs<TModelName, Context>,\n AfterUpdateManyHookArgs<TModelName, Context>,\n OnUpdateManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteOne(\n config: ServiceHookOperationConfig<\n BeforeDeleteOneHookArgs<TModelName, Context>,\n AfterDeleteOneHookArgs<TModelName, Context>,\n OnDeleteOneErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteMany(\n config: ServiceHookOperationConfig<\n BeforeDeleteManyHookArgs<TModelName, Context>,\n AfterDeleteManyHookArgs<TModelName, Context>,\n OnDeleteManyErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n findById(\n config: ServiceHookOperationConfig<\n BeforeFindByIdHookArgs<TModelName, Context>,\n AfterFindByIdHookArgs<TModelName, Context>,\n OnFindByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n updateById(\n config: ServiceHookOperationConfig<\n BeforeUpdateByIdHookArgs<TModelName, Context>,\n AfterUpdateByIdHookArgs<TModelName, Context>,\n OnUpdateByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n\n deleteById(\n config: ServiceHookOperationConfig<\n BeforeDeleteByIdHookArgs<TModelName, Context>,\n AfterDeleteByIdHookArgs<TModelName, Context>,\n OnDeleteByIdErrorHookArgs<TModelName, Context>\n >\n ): ArkosServiceHookInstance<TModelName, Context>;\n};\n"]}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ArkosPolicy = exports.ArkosRouter = exports.ArkosServiceHook = exports.ArkosRouteHook = exports.getArkosConfig = exports.loadEnvironmentVariables = exports.BaseController = void 0;
6
+ exports.isProduction = exports.ArkosPolicy = exports.ArkosRouter = exports.ArkosServiceHook = exports.ArkosRouteHook = exports.getArkosConfig = exports.loadEnvironmentVariables = exports.BaseController = void 0;
7
7
  const base_controller_1 = require("./../modules/base/base.controller.js");
8
8
  Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
9
9
  const server_1 = require("../server.js");
@@ -19,5 +19,7 @@ const arkos_service_hook_1 = require("../components/arkos-service-hook/index.js"
19
19
  Object.defineProperty(exports, "ArkosServiceHook", { enumerable: true, get: function () { return arkos_service_hook_1.ArkosServiceHook; } });
20
20
  const arkos_policy_1 = require("../components/arkos-policy/index.js");
21
21
  Object.defineProperty(exports, "ArkosPolicy", { enumerable: true, get: function () { return arkos_policy_1.ArkosPolicy; } });
22
+ const arkos_config_helpers_1 = require("../utils/helpers/arkos-config.helpers.js");
23
+ Object.defineProperty(exports, "isProduction", { enumerable: true, get: function () { return arkos_config_helpers_1.isProduction; } });
22
24
  exports.default = app_1.arkos;
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA4BjE,+FA5BO,gCAAc,OA4BP;AA3BhB,sCAA2C;AAgCzC,+FAhCO,uBAAc,OAgCP;AA/BhB,yEAAgD;AAkC9C,sBAlCK,sBAAW,CAkCL;AAxBb,4DAAmE;AAoBjE,yGApBO,yCAAwB,OAoBP;AAnB1B,gCAA+B;AAC/B,qEAAgE;AAoB9D,+FApBO,iCAAc,OAoBP;AAnBhB,yEAAoE;AAoBlE,iGApBO,qCAAgB,OAoBP;AAlBlB,6DAAyD;AAsBvD,4FAtBO,0BAAW,OAsBP;AAIb,kBAAe,WAAK,CAAC","sourcesContent":["import { RouterConfig, RouteHook } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { IArkosRouter } from \"../utils/arkos-router/types\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/new-arkos-config\";\nimport { loadEnvironmentVariables } from \"../utils/dotenv.helpers\";\nimport { arkos } from \"../app\";\nimport { ArkosRouteHook } from \"../components/arkos-route-hook\";\nimport { ArkosServiceHook } from \"../components/arkos-service-hook\";\nimport { ArkosRouteHookInstance } from \"../components/arkos-route-hook/types\";\nimport { ArkosPolicy } from \"../components/arkos-policy\";\nimport { IArkosPolicy } from \"../components/arkos-policy/types\";\nimport type { ArkosLoadable } from \"../types/arkos\";\n\nexport {\n ArkosLoadable,\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n IArkosRouter,\n BaseController,\n ArkosConfig,\n RouterConfig,\n RouteHook,\n loadEnvironmentVariables,\n getArkosConfig,\n ArkosRouteHook,\n ArkosServiceHook,\n ArkosRouter,\n ArkosRouteConfig,\n ArkosRouteHookInstance,\n ArkosPolicy,\n IArkosPolicy,\n};\n\nexport default arkos;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAAmE;AA8BjE,+FA9BO,gCAAc,OA8BP;AA7BhB,sCAA2C;AAkCzC,+FAlCO,uBAAc,OAkCP;AAjChB,yEAAgD;AAoC9C,sBApCK,sBAAW,CAoCL;AA1Bb,4DAAmE;AAsBjE,yGAtBO,yCAAwB,OAsBP;AArB1B,gCAA+B;AAC/B,qEAAgE;AAsB9D,+FAtBO,iCAAc,OAsBP;AArBhB,yEAAoE;AAsBlE,iGAtBO,qCAAgB,OAsBP;AApBlB,6DAAyD;AAwBvD,4FAxBO,0BAAW,OAwBP;AApBb,gFAAqE;AAuBnE,6FAvBO,mCAAY,OAuBP;AAGd,kBAAe,WAAK,CAAC","sourcesContent":["import { RouterConfig, RouteHook } from \"../types/router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { getArkosConfig } from \"../server\";\nimport ArkosRouter from \"../utils/arkos-router\";\nimport { IArkosRouter } from \"../utils/arkos-router/types\";\nimport { ArkosRouteConfig } from \"../utils/arkos-router/types\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/new-arkos-config\";\nimport { loadEnvironmentVariables } from \"../utils/dotenv.helpers\";\nimport { arkos } from \"../app\";\nimport { ArkosRouteHook } from \"../components/arkos-route-hook\";\nimport { ArkosServiceHook } from \"../components/arkos-service-hook\";\nimport { ArkosRouteHookInstance } from \"../components/arkos-route-hook/types\";\nimport { ArkosPolicy } from \"../components/arkos-policy\";\nimport { IArkosPolicy } from \"../components/arkos-policy/types\";\nimport type { ArkosLoadable } from \"../types/arkos\";\nimport { ArkosFile } from \"../types/upload\";\nimport { isProduction } from \"../utils/helpers/arkos-config.helpers\";\n\nexport {\n ArkosLoadable,\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n IArkosRouter,\n BaseController,\n ArkosConfig,\n RouterConfig,\n RouteHook,\n loadEnvironmentVariables,\n getArkosConfig,\n ArkosRouteHook,\n ArkosServiceHook,\n ArkosRouter,\n ArkosRouteConfig,\n ArkosRouteHookInstance,\n ArkosPolicy,\n IArkosPolicy,\n ArkosFile,\n isProduction,\n};\n\nexport default arkos;\n"]}
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.BaseService = exports.authActionService = exports.AuthService = exports.authService = void 0;
39
+ exports.FileUploadService = exports.getFileUploadServices = exports.EmailService = exports.emailService = exports.ArkosPrismaService = exports.authActionService = exports.AuthService = exports.authService = void 0;
40
40
  const file_upload_service_1 = require("../../modules/file-upload/file-upload.service.js");
41
41
  Object.defineProperty(exports, "getFileUploadServices", { enumerable: true, get: function () { return file_upload_service_1.getFileUploadServices; } });
42
42
  Object.defineProperty(exports, "FileUploadService", { enumerable: true, get: function () { return file_upload_service_1.FileUploadService; } });
@@ -47,7 +47,7 @@ const email_service_1 = __importStar(require("../../modules/email/email.service.
47
47
  exports.emailService = email_service_1.default;
48
48
  Object.defineProperty(exports, "EmailService", { enumerable: true, get: function () { return email_service_1.EmailService; } });
49
49
  const base_service_1 = require("../../modules/base/base.service.js");
50
- Object.defineProperty(exports, "BaseService", { enumerable: true, get: function () { return base_service_1.BaseService; } });
50
+ Object.defineProperty(exports, "ArkosPrismaService", { enumerable: true, get: function () { return base_service_1.ArkosPrismaService; } });
51
51
  const auth_action_service_1 = __importDefault(require("../../modules/auth/utils/services/auth-action.service.js"));
52
52
  exports.authActionService = auth_action_service_1.default;
53
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAGuD;AAuF9C,sGAzFP,2CAAqB,OAyFO;AAAE,kGAxF9B,uCAAiB,OAwF8B;AArFjD,gFAA2E;AAuClE,sBAvCF,sBAAW,CAuCE;AAAE,4FAvCA,0BAAW,OAuCA;AAtCjC,mFAA+E;AA+EtE,uBA/EF,uBAAY,CA+EE;AAAE,6FA/EA,4BAAY,OA+EA;AA9EnC,kEAA8D;AA2C5D,4FA3CO,0BAAW,OA2CP;AA1Cb,gHAAsF;AAoCnD,4BApC5B,6BAAiB,CAoC4B","sourcesContent":["import {\n getFileUploadServices,\n FileUploadService,\n} from \"../../modules/file-upload/file-upload.service\";\nimport { EmailOptions } from \"../../modules/email/email.service\";\nimport authService, { AuthService } from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport { BaseService } from \"../../modules/base/base.service\";\nimport authActionService from \"../../modules/auth/utils/services/auth-action.service\";\nimport {\n ServiceHookContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n} from \"../../components/arkos-service-hook/types\";\n\n/**\n * Authentication service.\n */\nexport { authService, AuthService, authActionService };\n\n/**\n * Base service.\n */\nexport {\n BaseService,\n ServiceHookContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n};\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploadServices, FileUploadService };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAGuD;AAuF9C,sGAzFP,2CAAqB,OAyFO;AAAE,kGAxF9B,uCAAiB,OAwF8B;AArFjD,gFAA2E;AAuClE,sBAvCF,sBAAW,CAuCE;AAAE,4FAvCA,0BAAW,OAuCA;AAtCjC,mFAA+E;AA+EtE,uBA/EF,uBAAY,CA+EE;AAAE,6FA/EA,4BAAY,OA+EA;AA9EnC,kEAAqE;AA2CnE,mGA3CO,iCAAkB,OA2CP;AA1CpB,gHAAsF;AAoCnD,4BApC5B,6BAAiB,CAoC4B","sourcesContent":["import {\n getFileUploadServices,\n FileUploadService,\n} from \"../../modules/file-upload/file-upload.service\";\nimport { EmailOptions } from \"../../modules/email/email.service\";\nimport authService, { AuthService } from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport { ArkosPrismaService } from \"../../modules/base/base.service\";\nimport authActionService from \"../../modules/auth/utils/services/auth-action.service\";\nimport {\n ServiceHookContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n} from \"../../components/arkos-service-hook/types\";\n\n/**\n * Authentication service.\n */\nexport { authService, AuthService, authActionService };\n\n/**\n * Base service.\n */\nexport {\n ArkosPrismaService,\n ServiceHookContext,\n BeforeCreateOneHookArgs,\n AfterCreateOneHookArgs,\n BeforeCreateManyHookArgs,\n AfterCreateManyHookArgs,\n BeforeCountHookArgs,\n AfterCountHookArgs,\n BeforeFindManyHookArgs,\n AfterFindManyHookArgs,\n BeforeFindOneHookArgs,\n AfterFindOneHookArgs,\n BeforeUpdateOneHookArgs,\n AfterUpdateOneHookArgs,\n BeforeUpdateManyHookArgs,\n AfterUpdateManyHookArgs,\n BeforeDeleteOneHookArgs,\n AfterDeleteOneHookArgs,\n BeforeDeleteManyHookArgs,\n AfterDeleteManyHookArgs,\n OnCreateOneErrorHookArgs,\n OnCreateManyErrorHookArgs,\n OnCountErrorHookArgs,\n OnFindManyErrorHookArgs,\n OnFindByIdErrorHookArgs,\n OnFindOneErrorHookArgs,\n OnUpdateOneErrorHookArgs,\n OnUpdateManyErrorHookArgs,\n OnDeleteOneErrorHookArgs,\n OnDeleteManyErrorHookArgs,\n};\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploadServices, FileUploadService };\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ArkosGateway = exports.ArkosGatewayController = exports.IArkosGateway = void 0;
7
+ const arkos_gateway_1 = __importDefault(require("../components/arkos-gateway/arkos-gateway.js"));
8
+ exports.ArkosGateway = arkos_gateway_1.default;
9
+ var arkos_gateway_2 = require("../components/arkos-gateway/arkos-gateway.js");
10
+ Object.defineProperty(exports, "IArkosGateway", { enumerable: true, get: function () { return arkos_gateway_2.IArkosGateway; } });
11
+ var types_1 = require("../components/arkos-gateway/types.js");
12
+ Object.defineProperty(exports, "ArkosGatewayController", { enumerable: true, get: function () { return types_1.ArkosGatewayController; } });
13
+ //# sourceMappingURL=websockets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websockets.js","sourceRoot":"","sources":["../../../src/exports/websockets.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqE;AAgB5D,uBAhBF,uBAAY,CAgBE;AAdrB,2EAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,2DAA2E;AAAlE,+GAAA,sBAAsB,OAAA","sourcesContent":["import ArkosGateway from \"../components/arkos-gateway/arkos-gateway\";\n\nexport { IArkosGateway } from \"../components/arkos-gateway/arkos-gateway\";\nexport { ArkosGatewayController } from \"../components/arkos-gateway/types\";\nexport type {\n ArkosSocket,\n ArkosGatewayConfig,\n ArkosGatewayEventConfig,\n ArkosGatewayHandler,\n ArkosGatewayPipe,\n ArkosGatewayConnectionHandler,\n ArkosGatewayErrorHandler,\n ArkosGatewayAckFn,\n ArkosBroadcastOperator,\n} from \"../components/arkos-gateway/types\";\n\nexport { ArkosGateway };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/generated.ts"],"names":[],"mappings":";;;AAyIA,MAAa,YAAY;CAExB;AAFD,oCAEC","sourcesContent":["/**\n * @maintainers THIS FILE IS A STUB — DO NOT PUT REAL LOGIC HERE.\n *\n * This file exists only so the Arkos source compiles during development.\n * It is completely overwritten at build time by `scripts/generate-post-build-types.ts`,\n * which replaces it with re-exports from `@arkosjs/types` — a folder generated\n * in the user's `node_modules` by `npx arkos prisma generate`.\n *\n * This is the single gateway for all Prisma-dependent types and values.\n * DO NOT import from `@prisma/client` or any user-project-specific module\n * anywhere else in the codebase — add it here instead.\n *\n * To add a new generated type or value:\n * 1. Add a stub export here\n * 2. Add the real export to the `npx arkos prisma generate` output in\n * `src/utils/cli/commands/prisma-generate.command.ts`\n * 3. Add it to the overwrite in `scripts/generate-post-build-types.ts`\n */\n\n/**\n * A map of all Prisma models in the user's project.\n * Each key is a kebab-case model name, each value contains the full\n * Prisma delegate, payload, and args types for that model.\n *\n * Stub during Arkos development — replaced with real generated types\n * after `npx arkos prisma generate`.\n *\n * @example\n * ```ts\n * class BaseService<TModelName extends keyof PrismaModels<any>> {}\n * ```\n */\n\ninterface StubWhereArgs {\n where?: { id?: any; [key: string]: any };\n [key: string]: any;\n}\n\ninterface StubWhereUniqueArgs {\n where: { id?: any; [key: string]: any };\n [key: string]: any;\n}\n\ninterface StubDataArgs {\n data: Record<string, any>;\n [key: string]: any;\n}\n\ninterface StubWhereDataArgs {\n where: { id?: any; [key: string]: any };\n data: Record<string, any>;\n [key: string]: any;\n}\n\ninterface StubPaginationArgs extends StubWhereArgs {\n orderBy?: Record<string, any>;\n select?: Record<string, any>;\n include?: Record<string, any>;\n skip?: number;\n take?: number;\n cursor?: Record<string, any>;\n}\n\ninterface StubCountArgs extends StubWhereArgs {\n select?: Record<string, any>;\n orderBy?: Record<string, any>;\n skip?: number;\n take?: number;\n cursor?: Record<string, any>;\n}\n\n/**\n * Extracts the `where` filter type from a Prisma args type.\n * @example ExtractPrismaFilters<PrismaModels<any>['user']['FindManyArgs']>\n */\nexport type ExtractPrismaFilters<T> = T extends {\n where?: infer W;\n [key: string]: any;\n}\n ? W\n : any;\n\n/**\n * Extracts the `data` type from a Prisma args type.\n * @example ExtractPrismaData<PrismaModels<any>['user']['CreateArgs']>\n */\nexport type ExtractPrismaData<T> = T extends {\n data: infer D;\n [key: string]: any;\n}\n ? D\n : any;\n\n/**\n * Extracts query options from a Prisma args type by omitting the specified keys.\n * @example ExtractPrismaQueryOptions<PrismaModels<any>['user']['CreateArgs'], 'data'>\n */\nexport type ExtractPrismaQueryOptions<T, K extends keyof T = never> = Omit<\n T,\n K\n>;\n\n/**\n * A map of all Prisma models in the user's project.\n * Each key is a kebab-case model name, each value contains the full\n * Prisma delegate, payload, and args types for that model.\n *\n * Stub during Arkos development — replaced with real generated types\n * after `npx arkos prisma generate`.\n *\n * @example\n * ```ts\n * class BaseService<TModelName extends keyof PrismaModels<any>> {}\n * ```\n */\nexport type PrismaModels<T extends Record<string, any>> = Record<\n string,\n {\n Delegate: Record<string, (...args: any[]) => any>;\n GetPayload: Record<string, any>;\n FindManyArgs: StubPaginationArgs;\n FindFirstArgs: StubPaginationArgs;\n CreateArgs: StubDataArgs;\n CreateManyArgs: StubDataArgs;\n UpdateArgs: StubWhereDataArgs;\n UpdateManyArgs: StubWhereDataArgs;\n DeleteArgs: StubWhereUniqueArgs;\n DeleteManyArgs: StubWhereArgs;\n CountArgs: StubCountArgs;\n }\n>;\n\n/**\n * Stub PrismaClient for Arkos development.\n * Replaced with the real `PrismaClient` from `@prisma/client` after\n * `npx arkos prisma generate`.\n */\nexport class PrismaClient {\n [key: string]: any;\n}\n"]}
1
+ {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/generated.ts"],"names":[],"mappings":";;;AAyIA,MAAa,YAAY;CAExB;AAFD,oCAEC","sourcesContent":["/**\n * @maintainers THIS FILE IS A STUB — DO NOT PUT REAL LOGIC HERE.\n *\n * This file exists only so the Arkos source compiles during development.\n * It is completely overwritten at build time by `scripts/generate-post-build-types.ts`,\n * which replaces it with re-exports from `@arkosjs/types` — a folder generated\n * in the user's `node_modules` by `npx arkos prisma generate`.\n *\n * This is the single gateway for all Prisma-dependent types and values.\n * DO NOT import from `@prisma/client` or any user-project-specific module\n * anywhere else in the codebase — add it here instead.\n *\n * To add a new generated type or value:\n * 1. Add a stub export here\n * 2. Add the real export to the `npx arkos prisma generate` output in\n * `src/utils/cli/commands/prisma-generate.command.ts`\n * 3. Add it to the overwrite in `scripts/generate-post-build-types.ts`\n */\n\n/**\n * A map of all Prisma models in the user's project.\n * Each key is a kebab-case model name, each value contains the full\n * Prisma delegate, payload, and args types for that model.\n *\n * Stub during Arkos development — replaced with real generated types\n * after `npx arkos prisma generate`.\n *\n * @example\n * ```ts\n * class ArkosPrismaService<TModelName extends keyof PrismaModels<any>> {}\n * ```\n */\n\ninterface StubWhereArgs {\n where?: { id?: any; [key: string]: any };\n [key: string]: any;\n}\n\ninterface StubWhereUniqueArgs {\n where: { id?: any; [key: string]: any };\n [key: string]: any;\n}\n\ninterface StubDataArgs {\n data: Record<string, any>;\n [key: string]: any;\n}\n\ninterface StubWhereDataArgs {\n where: { id?: any; [key: string]: any };\n data: Record<string, any>;\n [key: string]: any;\n}\n\ninterface StubPaginationArgs extends StubWhereArgs {\n orderBy?: Record<string, any>;\n select?: Record<string, any>;\n include?: Record<string, any>;\n skip?: number;\n take?: number;\n cursor?: Record<string, any>;\n}\n\ninterface StubCountArgs extends StubWhereArgs {\n select?: Record<string, any>;\n orderBy?: Record<string, any>;\n skip?: number;\n take?: number;\n cursor?: Record<string, any>;\n}\n\n/**\n * Extracts the `where` filter type from a Prisma args type.\n * @example ExtractPrismaFilters<PrismaModels<any>['user']['FindManyArgs']>\n */\nexport type ExtractPrismaFilters<T> = T extends {\n where?: infer W;\n [key: string]: any;\n}\n ? W\n : any;\n\n/**\n * Extracts the `data` type from a Prisma args type.\n * @example ExtractPrismaData<PrismaModels<any>['user']['CreateArgs']>\n */\nexport type ExtractPrismaData<T> = T extends {\n data: infer D;\n [key: string]: any;\n}\n ? D\n : any;\n\n/**\n * Extracts query options from a Prisma args type by omitting the specified keys.\n * @example ExtractPrismaQueryOptions<PrismaModels<any>['user']['CreateArgs'], 'data'>\n */\nexport type ExtractPrismaQueryOptions<T, K extends keyof T = never> = Omit<\n T,\n K\n>;\n\n/**\n * A map of all Prisma models in the user's project.\n * Each key is a kebab-case model name, each value contains the full\n * Prisma delegate, payload, and args types for that model.\n *\n * Stub during Arkos development — replaced with real generated types\n * after `npx arkos prisma generate`.\n *\n * @example\n * ```ts\n * class ArkosPrismaService<TModelName extends keyof PrismaModels<any>> {}\n * ```\n */\nexport type PrismaModels<T extends Record<string, any>> = Record<\n string,\n {\n Delegate: Record<string, (...args: any[]) => any>;\n GetPayload: Record<string, any>;\n FindManyArgs: StubPaginationArgs;\n FindFirstArgs: StubPaginationArgs;\n CreateArgs: StubDataArgs;\n CreateManyArgs: StubDataArgs;\n UpdateArgs: StubWhereDataArgs;\n UpdateManyArgs: StubWhereDataArgs;\n DeleteArgs: StubWhereUniqueArgs;\n DeleteManyArgs: StubWhereArgs;\n CountArgs: StubCountArgs;\n }\n>;\n\n/**\n * Stub PrismaClient for Arkos development.\n * Replaced with the real `PrismaClient` from `@prisma/client` after\n * `npx arkos prisma generate`.\n */\nexport class PrismaClient {\n [key: string]: any;\n}\n"]}
@@ -244,7 +244,7 @@ class AuthController {
244
244
  }
245
245
  getUserService() {
246
246
  if (!this.userService)
247
- this.userService = new base_service_1.BaseService("user");
247
+ this.userService = new base_service_1.ArkosPrismaService("user");
248
248
  return this.userService;
249
249
  }
250
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import catchAsync from \"../error-handler/utils/catch-async\";\nimport AppError from \"../error-handler/utils/app-error\";\nimport { ArkosRequest, ArkosResponse, ArkosNextFunction } from \"../../types\";\nimport authService from \"./auth.service\";\nimport { BaseService } from \"../base/base.service\";\nimport { User } from \"../../types\";\nimport { getArkosConfig } from \"../../server\";\nimport {\n createPrismaWhereClause,\n determineUsernameField,\n getNestedValue,\n} from \"./utils/helpers/auth.controller.helpers\";\nimport authActionService from \"./utils/services/auth-action.service\";\nimport { routeHookReader } from \"../../components/arkos-route-hook/reader\";\n\n/**\n * Default fields to exclude from user object when returning to client\n */\nexport const defaultExcludedUserFields = {\n password: false,\n};\n\n/**\n * Authentication controller class handling all auth-related operations\n */\nexport class AuthController {\n private userService?: BaseService<\"user\">;\n\n private getUserService() {\n if (!this.userService) this.userService = new BaseService(\"user\");\n return this.userService;\n }\n\n /**\n * Retrieves the current authenticated user's information\n */\n getMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const user = (await this.getUserService().findOne(\n { id: req.user!.id },\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n if (user) delete user[key as keyof User];\n });\n\n if (routeHookReader.getHooks(\"auth\", \"getMe\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json({ data: user });\n }\n );\n\n /**\n * Updates the current authenticated user's information\n */\n updateMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n if (\"password\" in req.body)\n throw new AppError(\n \"In order to update password use the update-password endpoint.\",\n 400,\n \"InvalidFieldPassword\"\n );\n\n const user = (await this.getUserService().updateOne(\n { id: req.user!.id },\n req.body,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n if (user) delete user[key as keyof User];\n });\n\n if (routeHookReader.getHooks(\"auth\", \"updateMe\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json({ data: user });\n }\n );\n\n /**\n * Logs out the current user by invalidating their access token cookie\n */\n logout = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n res.cookie(\"arkos_access_token\", \"no-token\", {\n expires: new Date(Date.now() + 10 * 1000),\n httpOnly: true,\n });\n\n if (routeHookReader.getHooks(\"auth\", \"logout\")?.after) {\n (res as any).originalData = null;\n req.responseData = null;\n res.locals.data = null;\n (res as any).originalStatus = 204;\n req.responseStatus = 204;\n res.locals.status = 204;\n return next();\n }\n\n res.status(204).json();\n }\n );\n\n /**\n * Authenticates a user using configurable username field and password\n */\n login = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const authConfigs = getArkosConfig()?.authentication;\n\n const usernameField = determineUsernameField(req);\n\n const lastField =\n usernameField.split(\".\")[usernameField.split(\".\").length - 1];\n\n const usernameValue = req.body[lastField];\n const { password } = req.body;\n\n if (!usernameValue || !password)\n return next(\n new AppError(\n `Please provide both ${lastField} and password`,\n 400,\n `MissingCredentialFields`\n )\n );\n\n let whereClause: Record<string, any>;\n\n if (usernameField?.includes?.(\".\")) {\n const valueToFind = getNestedValue(req.body, usernameField);\n if (valueToFind === undefined) {\n return next(new AppError(`Invalid ${usernameField} provided`, 400));\n }\n whereClause = createPrismaWhereClause(usernameField, valueToFind);\n } else {\n whereClause = { [usernameField]: usernameValue };\n }\n\n const user = (await this.getUserService().findOne(\n whereClause,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (\n !user ||\n !(await authService.isCorrectPassword(password, user.password))\n ) {\n return next(\n new AppError(\n `Incorrect ${lastField} or password`,\n 401,\n `IncorrectCredentials`\n )\n );\n }\n\n const token = authService.signJwtToken(user.id!);\n const cookieOptions = authService.getJwtCookieOptions(req);\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n req.responseData = { accessToken: token };\n res.locals.data = { accessToken: token };\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.cookie(\"arkos_access_token\", token, cookieOptions);\n\n req.accessToken = token;\n\n if (routeHookReader.getHooks(\"auth\", \"login\")?.after) {\n (res as any).originalData = req.responseData;\n req.additionalData = { user };\n res.locals.additional = { user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n res.status(200).json(req.responseData);\n } else if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.status(200).send();\n }\n );\n\n /**\n * Creates a new user account\n */\n signup = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const user = (await this.getUserService().createOne(\n req.body,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (routeHookReader.getHooks(\"auth\", \"signup\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 201;\n req.responseStatus = 201;\n res.locals.status = 201;\n return next();\n }\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n delete user[key as keyof User];\n });\n\n res.status(201).json({ data: user });\n }\n );\n\n /**\n * Marks user account as self-deleted\n */\n deleteMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const userId = req.user!.id;\n\n const updatedUser = (await this.getUserService().updateOne(\n { id: userId },\n { deletedSelfAccountAt: new Date().toISOString() },\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (routeHookReader.getHooks(\"auth\", \"deleteMe\")?.after) {\n (res as any).originalData = { data: updatedUser };\n req.responseData = { data: updatedUser };\n res.locals.data = { data: updatedUser };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n delete updatedUser[key as keyof User];\n });\n\n res.status(200).json({ message: \"Account deleted successfully\" });\n }\n );\n\n /**\n * Updates the password of the authenticated user\n */\n updatePassword = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const { currentPassword, newPassword } = req.body;\n\n if (!currentPassword || !newPassword)\n return next(\n new AppError(\n \"currentPassword and newPassword are required\",\n 400,\n \"SameCurrentAndNewPassword\"\n )\n );\n\n const user = req.user;\n\n if (!user || user?.isActive === false || user?.deletedSelfAccountAt)\n return next(new AppError(\"User not found!\", 404));\n\n const isPasswordCorrect = await authService.isCorrectPassword(\n String(currentPassword),\n String(user.password)\n );\n\n const configs = getArkosConfig();\n const initAuthConfigs = configs?.authentication;\n\n if (!isPasswordCorrect)\n return next(\n new AppError(\n \"Current password is incorrect\",\n 400,\n \"IncorrentCurrentPassword\"\n )\n );\n\n if (\n !authService.isPasswordStrong(String(newPassword)) &&\n !configs?.validation\n ) {\n return next(\n new AppError(\n initAuthConfigs?.passwordValidation?.message ||\n \"The new password must contain at least one uppercase letter, one lowercase letter, and one number\",\n 400,\n \"PasswordDoesNotMeetRequirements\"\n )\n );\n }\n\n await this.getUserService().updateOne(\n { id: user.id },\n {\n password: await authService.hashPassword(newPassword),\n passwordChangedAt: new Date(Date.now()).toISOString(),\n }\n );\n\n const token = authService.signJwtToken(user.id!);\n const cookieOptions = authService.getJwtCookieOptions(req);\n const authConfigs = getArkosConfig()?.authentication;\n\n const responseData: Record<string, string> = {\n status: \"success\",\n message: \"Password updated successfully!\",\n };\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n responseData.accessToken = token;\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.cookie(\"arkos_access_token\", token, cookieOptions);\n\n req.accessToken = token;\n\n if (routeHookReader.getHooks(\"auth\", \"updatePassword\")?.after) {\n (res as any).originalData = responseData;\n req.additionalData = { user };\n req.responseData = responseData;\n res.locals.data = responseData;\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json(responseData);\n }\n );\n\n findManyAuthAction = catchAsync(\n async (_: ArkosRequest, res: ArkosResponse) => {\n const arkosConfig = getArkosConfig();\n const authActions = authActionService.getAll()?.map((authAction) => {\n if (arkosConfig?.authentication?.mode === \"dynamic\")\n delete (authAction as any)?.roles;\n return authAction;\n });\n\n res.json({\n total: authActions.length,\n results: authActions.length,\n data: authActions,\n });\n }\n );\n\n findOneAuthAction = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse) => {\n const arkosConfig = getArkosConfig();\n const resourceName = req.params?.resourceName;\n\n if (!resourceName)\n throw new AppError(\n `Please provide a resoureName`,\n 400,\n \"MissiongResourseName\"\n );\n\n const authActions = authActionService\n .getByResource(req.params?.resourceName)\n ?.map((authAction) => {\n if (arkosConfig?.authentication?.mode === \"dynamic\")\n delete (authAction as any)?.roles;\n return authAction;\n });\n\n if (!authActions)\n throw new AppError(\n `No auth action with resource name ${resourceName}`,\n 404,\n \"AuthActionNotFound\"\n );\n\n res.json({\n total: authActions.length,\n results: authActions.length,\n data: authActions,\n });\n }\n );\n}\n\nexport const authController = new AuthController();\n\nexport default authController;\n"]}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/auth/auth.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import catchAsync from \"../error-handler/utils/catch-async\";\nimport AppError from \"../error-handler/utils/app-error\";\nimport { ArkosRequest, ArkosResponse, ArkosNextFunction } from \"../../types\";\nimport authService from \"./auth.service\";\nimport { ArkosPrismaService } from \"../base/base.service\";\nimport { User } from \"../../types\";\nimport { getArkosConfig } from \"../../server\";\nimport {\n createPrismaWhereClause,\n determineUsernameField,\n getNestedValue,\n} from \"./utils/helpers/auth.controller.helpers\";\nimport authActionService from \"./utils/services/auth-action.service\";\nimport { routeHookReader } from \"../../components/arkos-route-hook/reader\";\n\n/**\n * Default fields to exclude from user object when returning to client\n */\nexport const defaultExcludedUserFields = {\n password: false,\n};\n\n/**\n * Authentication controller class handling all auth-related operations\n */\nexport class AuthController {\n private userService?: ArkosPrismaService<\"user\">;\n\n private getUserService() {\n if (!this.userService) this.userService = new ArkosPrismaService(\"user\");\n return this.userService;\n }\n\n /**\n * Retrieves the current authenticated user's information\n */\n getMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const user = (await this.getUserService().findOne(\n { id: req.user!.id },\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n if (user) delete user[key as keyof User];\n });\n\n if (routeHookReader.getHooks(\"auth\", \"getMe\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json({ data: user });\n }\n );\n\n /**\n * Updates the current authenticated user's information\n */\n updateMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n if (\"password\" in req.body)\n throw new AppError(\n \"In order to update password use the update-password endpoint.\",\n 400,\n \"InvalidFieldPassword\"\n );\n\n const user = (await this.getUserService().updateOne(\n { id: req.user!.id },\n req.body,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n if (user) delete user[key as keyof User];\n });\n\n if (routeHookReader.getHooks(\"auth\", \"updateMe\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json({ data: user });\n }\n );\n\n /**\n * Logs out the current user by invalidating their access token cookie\n */\n logout = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n res.cookie(\"arkos_access_token\", \"no-token\", {\n expires: new Date(Date.now() + 10 * 1000),\n httpOnly: true,\n });\n\n if (routeHookReader.getHooks(\"auth\", \"logout\")?.after) {\n (res as any).originalData = null;\n req.responseData = null;\n res.locals.data = null;\n (res as any).originalStatus = 204;\n req.responseStatus = 204;\n res.locals.status = 204;\n return next();\n }\n\n res.status(204).json();\n }\n );\n\n /**\n * Authenticates a user using configurable username field and password\n */\n login = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const authConfigs = getArkosConfig()?.authentication;\n\n const usernameField = determineUsernameField(req);\n\n const lastField =\n usernameField.split(\".\")[usernameField.split(\".\").length - 1];\n\n const usernameValue = req.body[lastField];\n const { password } = req.body;\n\n if (!usernameValue || !password)\n return next(\n new AppError(\n `Please provide both ${lastField} and password`,\n 400,\n `MissingCredentialFields`\n )\n );\n\n let whereClause: Record<string, any>;\n\n if (usernameField?.includes?.(\".\")) {\n const valueToFind = getNestedValue(req.body, usernameField);\n if (valueToFind === undefined) {\n return next(new AppError(`Invalid ${usernameField} provided`, 400));\n }\n whereClause = createPrismaWhereClause(usernameField, valueToFind);\n } else {\n whereClause = { [usernameField]: usernameValue };\n }\n\n const user = (await this.getUserService().findOne(\n whereClause,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (\n !user ||\n !(await authService.isCorrectPassword(password, user.password))\n ) {\n return next(\n new AppError(\n `Incorrect ${lastField} or password`,\n 401,\n `IncorrectCredentials`\n )\n );\n }\n\n const token = authService.signJwtToken(user.id!);\n const cookieOptions = authService.getJwtCookieOptions(req);\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n req.responseData = { accessToken: token };\n res.locals.data = { accessToken: token };\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.cookie(\"arkos_access_token\", token, cookieOptions);\n\n req.accessToken = token;\n\n if (routeHookReader.getHooks(\"auth\", \"login\")?.after) {\n (res as any).originalData = req.responseData;\n req.additionalData = { user };\n res.locals.additional = { user };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n res.status(200).json(req.responseData);\n } else if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.status(200).send();\n }\n );\n\n /**\n * Creates a new user account\n */\n signup = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const user = (await this.getUserService().createOne(\n req.body,\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (routeHookReader.getHooks(\"auth\", \"signup\")?.after) {\n (res as any).originalData = { data: user };\n req.responseData = { data: user };\n res.locals.data = { data: user };\n (res as any).originalStatus = 201;\n req.responseStatus = 201;\n res.locals.status = 201;\n return next();\n }\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n delete user[key as keyof User];\n });\n\n res.status(201).json({ data: user });\n }\n );\n\n /**\n * Marks user account as self-deleted\n */\n deleteMe = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const userId = req.user!.id;\n\n const updatedUser = (await this.getUserService().updateOne(\n { id: userId },\n { deletedSelfAccountAt: new Date().toISOString() },\n req.prismaQueryOptions || {}\n )) as Record<string, any>;\n\n if (routeHookReader.getHooks(\"auth\", \"deleteMe\")?.after) {\n (res as any).originalData = { data: updatedUser };\n req.responseData = { data: updatedUser };\n res.locals.data = { data: updatedUser };\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n Object.keys(defaultExcludedUserFields).forEach((key) => {\n delete updatedUser[key as keyof User];\n });\n\n res.status(200).json({ message: \"Account deleted successfully\" });\n }\n );\n\n /**\n * Updates the password of the authenticated user\n */\n updatePassword = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n const { currentPassword, newPassword } = req.body;\n\n if (!currentPassword || !newPassword)\n return next(\n new AppError(\n \"currentPassword and newPassword are required\",\n 400,\n \"SameCurrentAndNewPassword\"\n )\n );\n\n const user = req.user;\n\n if (!user || user?.isActive === false || user?.deletedSelfAccountAt)\n return next(new AppError(\"User not found!\", 404));\n\n const isPasswordCorrect = await authService.isCorrectPassword(\n String(currentPassword),\n String(user.password)\n );\n\n const configs = getArkosConfig();\n const initAuthConfigs = configs?.authentication;\n\n if (!isPasswordCorrect)\n return next(\n new AppError(\n \"Current password is incorrect\",\n 400,\n \"IncorrentCurrentPassword\"\n )\n );\n\n if (\n !authService.isPasswordStrong(String(newPassword)) &&\n !configs?.validation\n ) {\n return next(\n new AppError(\n initAuthConfigs?.passwordValidation?.message ||\n \"The new password must contain at least one uppercase letter, one lowercase letter, and one number\",\n 400,\n \"PasswordDoesNotMeetRequirements\"\n )\n );\n }\n\n await this.getUserService().updateOne(\n { id: user.id },\n {\n password: await authService.hashPassword(newPassword),\n passwordChangedAt: new Date(Date.now()).toISOString(),\n }\n );\n\n const token = authService.signJwtToken(user.id!);\n const cookieOptions = authService.getJwtCookieOptions(req);\n const authConfigs = getArkosConfig()?.authentication;\n\n const responseData: Record<string, string> = {\n status: \"success\",\n message: \"Password updated successfully!\",\n };\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"response-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n ) {\n responseData.accessToken = token;\n }\n\n if (\n authConfigs?.login?.sendAccessTokenThrough === \"cookie-only\" ||\n authConfigs?.login?.sendAccessTokenThrough === \"both\" ||\n !authConfigs?.login?.sendAccessTokenThrough\n )\n res.cookie(\"arkos_access_token\", token, cookieOptions);\n\n req.accessToken = token;\n\n if (routeHookReader.getHooks(\"auth\", \"updatePassword\")?.after) {\n (res as any).originalData = responseData;\n req.additionalData = { user };\n req.responseData = responseData;\n res.locals.data = responseData;\n (res as any).originalStatus = 200;\n req.responseStatus = 200;\n res.locals.status = 200;\n return next();\n }\n\n res.status(200).json(responseData);\n }\n );\n\n findManyAuthAction = catchAsync(\n async (_: ArkosRequest, res: ArkosResponse) => {\n const arkosConfig = getArkosConfig();\n const authActions = authActionService.getAll()?.map((authAction) => {\n if (arkosConfig?.authentication?.mode === \"dynamic\")\n delete (authAction as any)?.roles;\n return authAction;\n });\n\n res.json({\n total: authActions.length,\n results: authActions.length,\n data: authActions,\n });\n }\n );\n\n findOneAuthAction = catchAsync(\n async (req: ArkosRequest, res: ArkosResponse) => {\n const arkosConfig = getArkosConfig();\n const resourceName = req.params?.resourceName;\n\n if (!resourceName)\n throw new AppError(\n `Please provide a resoureName`,\n 400,\n \"MissiongResourseName\"\n );\n\n const authActions = authActionService\n .getByResource(req.params?.resourceName)\n ?.map((authAction) => {\n if (arkosConfig?.authentication?.mode === \"dynamic\")\n delete (authAction as any)?.roles;\n return authAction;\n });\n\n if (!authActions)\n throw new AppError(\n `No auth action with resource name ${resourceName}`,\n 404,\n \"AuthActionNotFound\"\n );\n\n res.json({\n total: authActions.length,\n results: authActions.length,\n data: authActions,\n });\n }\n );\n}\n\nexport const authController = new AuthController();\n\nexport default authController;\n"]}