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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/README.md +146 -145
  2. package/cli.js +11 -20
  3. package/dist/esm/app.js +37 -35
  4. package/dist/esm/app.js.map +1 -1
  5. package/dist/esm/components/arkos-gateway/arkos-gateway.js +362 -0
  6. package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
  7. package/dist/esm/components/arkos-gateway/socket-extensions.js +176 -0
  8. package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
  9. package/dist/esm/components/arkos-gateway/types.js +3 -0
  10. package/dist/esm/components/arkos-gateway/types.js.map +1 -0
  11. package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
  12. package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
  13. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
  14. package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
  15. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
  16. package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
  17. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
  18. package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
  19. package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
  20. package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
  21. package/dist/esm/components/arkos-policy/index.js +3 -1
  22. package/dist/esm/components/arkos-policy/index.js.map +1 -1
  23. package/dist/esm/components/arkos-route-hook/index.js +30 -19
  24. package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
  25. package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
  26. package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
  27. package/dist/esm/exports/error-handler/index.js +1 -0
  28. package/dist/esm/exports/error-handler/index.js.map +1 -1
  29. package/dist/esm/exports/file-upload.js +2 -0
  30. package/dist/esm/exports/file-upload.js.map +1 -0
  31. package/dist/esm/exports/index.js +3 -3
  32. package/dist/esm/exports/index.js.map +1 -1
  33. package/dist/esm/exports/middlewares/index.js +1 -1
  34. package/dist/esm/exports/middlewares/index.js.map +1 -1
  35. package/dist/esm/exports/services/index.js +2 -2
  36. package/dist/esm/exports/services/index.js.map +1 -1
  37. package/dist/esm/exports/websockets.js +5 -0
  38. package/dist/esm/exports/websockets.js.map +1 -0
  39. package/dist/esm/generated.js.map +1 -1
  40. package/dist/esm/modules/auth/auth.controller.js +165 -230
  41. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  42. package/dist/esm/modules/auth/auth.router.js +28 -10
  43. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  44. package/dist/esm/modules/auth/auth.service.js +202 -136
  45. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  46. package/dist/esm/modules/auth/auth.types.js +2 -0
  47. package/dist/esm/modules/auth/auth.types.js.map +1 -0
  48. package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
  49. package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
  50. package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
  51. package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
  52. package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
  53. package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
  54. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
  55. package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
  56. package/dist/esm/modules/auth/utils/docs-links.js +6 -0
  57. package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
  58. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
  59. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js.map +1 -1
  60. package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
  61. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  62. package/dist/esm/modules/auth/utils/token-extraction.js +57 -0
  63. package/dist/esm/modules/auth/utils/token-extraction.js.map +1 -0
  64. package/dist/esm/modules/base/base.controller.js +228 -202
  65. package/dist/esm/modules/base/base.controller.js.map +1 -1
  66. package/dist/esm/modules/base/base.middlewares.js +69 -86
  67. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  68. package/dist/esm/modules/base/base.router.js +23 -9
  69. package/dist/esm/modules/base/base.router.js.map +1 -1
  70. package/dist/esm/modules/base/base.service.js +92 -197
  71. package/dist/esm/modules/base/base.service.js.map +1 -1
  72. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  73. package/dist/esm/modules/base/utils/error-prettifier.js +90 -30
  74. package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
  75. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
  76. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  77. package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
  78. package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
  79. package/dist/esm/modules/email/email.service.js +21 -12
  80. package/dist/esm/modules/email/email.service.js.map +1 -1
  81. package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
  82. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  83. package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
  84. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  85. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
  86. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +60 -110
  87. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  88. package/dist/esm/modules/error-handler/utils/errors.js +127 -0
  89. package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
  90. package/dist/esm/modules/error-handler/utils/get-handled-error.js +73 -0
  91. package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
  92. package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
  93. package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  94. package/dist/esm/modules/file-upload/file-upload.controller.js +227 -215
  95. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  96. package/dist/esm/modules/file-upload/file-upload.router.js +54 -15
  97. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  98. package/dist/esm/modules/file-upload/file-upload.service.js +41 -26
  99. package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
  100. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +371 -0
  101. package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
  102. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +73 -35
  103. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  104. package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js +206 -0
  105. package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js.map +1 -0
  106. package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js +103 -0
  107. package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js.map +1 -0
  108. package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js +212 -0
  109. package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js.map +1 -0
  110. package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js +30 -0
  111. package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js.map +1 -0
  112. package/dist/esm/modules/swagger/swagger.router.js +39 -22
  113. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  114. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
  115. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
  116. package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
  117. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
  118. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  119. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +47 -43
  120. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  121. package/dist/esm/server.js +1 -1
  122. package/dist/esm/server.js.map +1 -1
  123. package/dist/esm/types/arkos-config/utils.js +2 -0
  124. package/dist/esm/types/arkos-config/utils.js.map +1 -0
  125. package/dist/esm/types/arkos-prisma-input.js.map +1 -1
  126. package/dist/esm/types/arkos.js.map +1 -1
  127. package/dist/esm/types/auth.js.map +1 -1
  128. package/dist/esm/types/index.js.map +1 -1
  129. package/dist/esm/types/internal.js +2 -0
  130. package/dist/esm/types/internal.js.map +1 -0
  131. package/dist/esm/types/new-arkos-config.js.map +1 -1
  132. package/dist/esm/types/router-config.js.map +1 -1
  133. package/dist/esm/types/upload.js +2 -0
  134. package/dist/esm/types/upload.js.map +1 -0
  135. package/dist/esm/types/validation/validation-manager.js +57 -0
  136. package/dist/esm/types/validation/validation-manager.js.map +1 -0
  137. package/dist/esm/types/validation/validator.js +2 -0
  138. package/dist/esm/types/validation/validator.js.map +1 -0
  139. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
  140. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  141. package/dist/esm/utils/arkos-router/index.js +58 -158
  142. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  143. package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
  144. package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
  145. package/dist/esm/utils/arkos-router/route-config-validator.js +11 -10
  146. package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
  147. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  148. package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
  149. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
  150. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +198 -0
  151. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
  152. package/dist/esm/utils/arkos-router/utils/helpers/index.js +92 -29
  153. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  154. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +683 -119
  155. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  156. package/dist/esm/utils/bundler.js +6 -6
  157. package/dist/esm/utils/bundler.js.map +1 -1
  158. package/dist/esm/utils/cli/build.js +16 -9
  159. package/dist/esm/utils/cli/build.js.map +1 -1
  160. package/dist/esm/utils/cli/dev.js +33 -32
  161. package/dist/esm/utils/cli/dev.js.map +1 -1
  162. package/dist/esm/utils/cli/export-auth-action.js +7 -7
  163. package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
  164. package/dist/esm/utils/cli/generate.js +77 -58
  165. package/dist/esm/utils/cli/generate.js.map +1 -1
  166. package/dist/esm/utils/cli/index.js +74 -56
  167. package/dist/esm/utils/cli/index.js.map +1 -1
  168. package/dist/esm/utils/cli/prisma-generate.js +66 -35
  169. package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
  170. package/dist/esm/utils/cli/start.js +27 -16
  171. package/dist/esm/utils/cli/start.js.map +1 -1
  172. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  173. package/dist/esm/utils/cli/utils/dependency-version-check.js +39 -0
  174. package/dist/esm/utils/cli/utils/dependency-version-check.js.map +1 -0
  175. package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -3
  176. package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
  177. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
  178. package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
  179. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
  180. package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
  182. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  183. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
  184. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  185. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
  186. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
  187. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
  188. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  189. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
  190. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  191. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
  192. package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
  193. package/dist/esm/utils/cli/utils/template-generators.js +31 -18
  194. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  195. package/dist/esm/utils/cli/utils/watermark-stamper.js +1 -1
  196. package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
  197. package/dist/esm/utils/define-config.js +15 -0
  198. package/dist/esm/utils/define-config.js.map +1 -1
  199. package/dist/esm/utils/docs-links.js +2 -0
  200. package/dist/esm/utils/docs-links.js.map +1 -0
  201. package/dist/esm/utils/dotenv.helpers.js +3 -7
  202. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  203. package/dist/esm/utils/dynamic-loader.js +6 -5
  204. package/dist/esm/utils/dynamic-loader.js.map +1 -1
  205. package/dist/esm/utils/features/api.features.js +46 -27
  206. package/dist/esm/utils/features/api.features.js.map +1 -1
  207. package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
  208. package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
  209. package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
  210. package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
  211. package/dist/esm/utils/helpers/arkos-config.helpers.js +60 -24
  212. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  213. package/dist/esm/utils/helpers/exit-error.js +1 -0
  214. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  215. package/dist/esm/utils/helpers/fs.helpers.js +25 -32
  216. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  217. package/dist/esm/utils/helpers/global.helpers.js +1 -1
  218. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  219. package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
  220. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  221. package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
  222. package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
  223. package/dist/esm/utils/helpers/routers.helpers.js +2 -2
  224. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
  225. package/dist/esm/utils/helpers/url-helpers.js +11 -0
  226. package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
  227. package/dist/esm/utils/initialize-app.js +43 -17
  228. package/dist/esm/utils/initialize-app.js.map +1 -1
  229. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
  230. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  231. package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
  232. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  233. package/dist/esm/utils/prisma/types.js.map +1 -1
  234. package/dist/esm/utils/remove-dir.js +1 -1
  235. package/dist/esm/utils/remove-dir.js.map +1 -1
  236. package/dist/esm/utils/setup-app.js +59 -42
  237. package/dist/esm/utils/setup-app.js.map +1 -1
  238. package/dist/esm/utils/validate-schema.js +25 -23
  239. package/dist/esm/utils/validate-schema.js.map +1 -1
  240. package/dist/types/app.d.ts +15 -10
  241. package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +135 -0
  242. package/dist/types/components/arkos-gateway/socket-extensions.d.ts +80 -0
  243. package/dist/types/components/arkos-gateway/types.d.ts +467 -0
  244. package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
  245. package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
  246. package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
  247. package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
  248. package/dist/types/components/arkos-route-hook/index.d.ts +13 -6
  249. package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
  250. package/dist/types/components/arkos-route-hook/types.d.ts +12 -5
  251. package/dist/types/exports/error-handler/index.d.ts +1 -0
  252. package/dist/types/exports/file-upload.d.ts +1 -0
  253. package/dist/types/exports/index.d.ts +4 -5
  254. package/dist/types/exports/middlewares/index.d.ts +1 -1
  255. package/dist/types/exports/services/index.d.ts +3 -3
  256. package/dist/types/exports/websockets.d.ts +5 -0
  257. package/dist/types/modules/auth/auth.controller.d.ts +10 -3
  258. package/dist/types/modules/auth/auth.service.d.ts +170 -51
  259. package/dist/types/modules/auth/auth.types.d.ts +72 -0
  260. package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
  261. package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
  262. package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
  263. package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
  264. package/dist/types/modules/auth/utils/helpers/auth.controller.helpers.d.ts +1 -0
  265. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
  266. package/dist/types/modules/auth/utils/token-extraction.d.ts +53 -0
  267. package/dist/types/modules/base/base.controller.d.ts +7 -6
  268. package/dist/types/modules/base/base.middlewares.d.ts +3 -9
  269. package/dist/types/modules/base/base.service.d.ts +18 -26
  270. package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
  271. package/dist/types/modules/base/utils/error-prettifier.d.ts +8 -0
  272. package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
  273. package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
  274. package/dist/types/modules/email/email.service.d.ts +3 -1
  275. package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
  276. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
  277. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +2 -27
  278. package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
  279. package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
  280. package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
  281. package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
  282. package/dist/types/modules/file-upload/file-upload.service.d.ts +2 -6
  283. package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
  284. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +21 -1
  285. package/dist/types/modules/file-upload/utils/helpers/serve-upload-dir.d.ts +43 -0
  286. package/dist/types/modules/file-upload/utils/helpers/upload-path.helper.d.ts +14 -0
  287. package/dist/types/modules/file-upload/utils/helpers/upload-serving-validation.d.ts +5 -0
  288. package/dist/types/modules/file-upload/utils/helpers/upload-serving.registry.d.ts +31 -0
  289. package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
  290. package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
  291. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
  292. package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +8 -3
  293. package/dist/types/types/arkos-config/utils.d.ts +68 -0
  294. package/dist/types/types/arkos-prisma-input.d.ts +7 -3
  295. package/dist/types/types/arkos.d.ts +5 -15
  296. package/dist/types/types/auth.d.ts +4 -4
  297. package/dist/types/types/index.d.ts +15 -58
  298. package/dist/types/types/internal.d.ts +25 -0
  299. package/dist/types/types/new-arkos-config.d.ts +374 -67
  300. package/dist/types/types/router-config.d.ts +3 -66
  301. package/dist/types/types/upload.d.ts +45 -0
  302. package/dist/types/types/validation/validation-manager.d.ts +25 -0
  303. package/dist/types/types/validation/validator.d.ts +2 -0
  304. package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
  305. package/dist/types/utils/arkos-router/index.d.ts +86 -11
  306. package/dist/types/utils/arkos-router/types/index.d.ts +83 -31
  307. package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
  308. package/dist/types/utils/arkos-router/types/upload-config.d.ts +158 -10
  309. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
  310. package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
  311. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +21 -36
  312. package/dist/types/utils/bundler.d.ts +1 -1
  313. package/dist/types/utils/cli/build.d.ts +1 -1
  314. package/dist/types/utils/cli/generate.d.ts +15 -6
  315. package/dist/types/utils/cli/start.d.ts +3 -1
  316. package/dist/types/utils/cli/utils/dependency-version-check.d.ts +15 -0
  317. package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
  318. package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
  319. package/dist/types/utils/define-config.d.ts +57 -3
  320. package/dist/types/utils/docs-links.d.ts +1 -0
  321. package/dist/types/utils/dotenv.helpers.d.ts +1 -0
  322. package/dist/types/utils/dynamic-loader.d.ts +2 -2
  323. package/dist/types/utils/features/api.features.d.ts +1 -2
  324. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +9 -1
  325. package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
  326. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  327. package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
  328. package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
  329. package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
  330. package/dist/types/utils/initialize-app.d.ts +1 -0
  331. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
  332. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
  333. package/dist/types/utils/prisma/types.d.ts +3 -2
  334. package/dist/types/utils/validate-schema.d.ts +1 -1
  335. package/package.json +84 -75
  336. package/dist/cjs/app.js +0 -79
  337. package/dist/cjs/app.js.map +0 -1
  338. package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
  339. package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
  340. package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
  341. package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
  342. package/dist/cjs/components/arkos-policy/index.js +0 -36
  343. package/dist/cjs/components/arkos-policy/index.js.map +0 -1
  344. package/dist/cjs/components/arkos-policy/types.js +0 -3
  345. package/dist/cjs/components/arkos-policy/types.js.map +0 -1
  346. package/dist/cjs/components/arkos-route-hook/index.js +0 -50
  347. package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
  348. package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
  349. package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
  350. package/dist/cjs/components/arkos-route-hook/types.js +0 -3
  351. package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
  352. package/dist/cjs/components/arkos-service-hook/index.js +0 -35
  353. package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
  354. package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
  355. package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
  356. package/dist/cjs/components/arkos-service-hook/types.js +0 -3
  357. package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
  358. package/dist/cjs/exports/auth/index.js +0 -6
  359. package/dist/cjs/exports/auth/index.js.map +0 -1
  360. package/dist/cjs/exports/config.js +0 -6
  361. package/dist/cjs/exports/config.js.map +0 -1
  362. package/dist/cjs/exports/controllers/index.js +0 -42
  363. package/dist/cjs/exports/controllers/index.js.map +0 -1
  364. package/dist/cjs/exports/error-handler/index.js +0 -11
  365. package/dist/cjs/exports/error-handler/index.js.map +0 -1
  366. package/dist/cjs/exports/index.js +0 -23
  367. package/dist/cjs/exports/index.js.map +0 -1
  368. package/dist/cjs/exports/middlewares/index.js +0 -7
  369. package/dist/cjs/exports/middlewares/index.js.map +0 -1
  370. package/dist/cjs/exports/prisma/index.js +0 -13
  371. package/dist/cjs/exports/prisma/index.js.map +0 -1
  372. package/dist/cjs/exports/services/index.js +0 -53
  373. package/dist/cjs/exports/services/index.js.map +0 -1
  374. package/dist/cjs/exports/utils/index.js +0 -26
  375. package/dist/cjs/exports/utils/index.js.map +0 -1
  376. package/dist/cjs/exports/validation/index.js +0 -11
  377. package/dist/cjs/exports/validation/index.js.map +0 -1
  378. package/dist/cjs/generated.js +0 -7
  379. package/dist/cjs/generated.js.map +0 -1
  380. package/dist/cjs/modules/auth/auth.controller.js +0 -254
  381. package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
  382. package/dist/cjs/modules/auth/auth.router.js +0 -113
  383. package/dist/cjs/modules/auth/auth.router.js.map +0 -1
  384. package/dist/cjs/modules/auth/auth.service.js +0 -277
  385. package/dist/cjs/modules/auth/auth.service.js.map +0 -1
  386. package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
  387. package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
  388. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
  389. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  390. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
  391. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
  392. package/dist/cjs/modules/base/base.controller.js +0 -275
  393. package/dist/cjs/modules/base/base.controller.js.map +0 -1
  394. package/dist/cjs/modules/base/base.middlewares.js +0 -231
  395. package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
  396. package/dist/cjs/modules/base/base.router.js +0 -112
  397. package/dist/cjs/modules/base/base.router.js.map +0 -1
  398. package/dist/cjs/modules/base/base.service.js +0 -432
  399. package/dist/cjs/modules/base/base.service.js.map +0 -1
  400. package/dist/cjs/modules/base/types/base.service.types.js +0 -3
  401. package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
  402. package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
  403. package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
  404. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
  405. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  406. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
  407. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  408. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
  409. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  410. package/dist/cjs/modules/base/utils/router-validator.js +0 -13
  411. package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
  412. package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
  413. package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
  414. package/dist/cjs/modules/debugger/debugger.service.js +0 -59
  415. package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
  416. package/dist/cjs/modules/email/email.service.js +0 -106
  417. package/dist/cjs/modules/email/email.service.js.map +0 -1
  418. package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
  419. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
  420. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
  421. package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
  422. package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
  423. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
  424. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
  425. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  426. package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
  427. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
  428. package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
  429. package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
  430. package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
  431. package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
  432. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
  433. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
  434. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
  435. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  436. package/dist/cjs/modules/swagger/swagger.router.js +0 -65
  437. package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
  438. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
  439. package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  440. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
  441. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
  442. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
  443. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  444. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
  445. package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  446. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
  447. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
  448. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
  449. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  450. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
  451. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  452. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
  453. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  454. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
  455. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  456. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
  457. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  458. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
  459. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  460. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
  461. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  462. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
  463. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
  464. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
  465. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  466. package/dist/cjs/package.json +0 -3
  467. package/dist/cjs/server.js +0 -60
  468. package/dist/cjs/server.js.map +0 -1
  469. package/dist/cjs/types/arkos-prisma-input.js +0 -3
  470. package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
  471. package/dist/cjs/types/arkos.js +0 -3
  472. package/dist/cjs/types/arkos.js.map +0 -1
  473. package/dist/cjs/types/auth.js +0 -3
  474. package/dist/cjs/types/auth.js.map +0 -1
  475. package/dist/cjs/types/index.js +0 -3
  476. package/dist/cjs/types/index.js.map +0 -1
  477. package/dist/cjs/types/new-arkos-config.js +0 -3
  478. package/dist/cjs/types/new-arkos-config.js.map +0 -1
  479. package/dist/cjs/types/router-config.js +0 -3
  480. package/dist/cjs/types/router-config.js.map +0 -1
  481. package/dist/cjs/utils/arkos-env.js +0 -9
  482. package/dist/cjs/utils/arkos-env.js.map +0 -1
  483. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
  484. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
  485. package/dist/cjs/utils/arkos-router/index.js +0 -253
  486. package/dist/cjs/utils/arkos-router/index.js.map +0 -1
  487. package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
  488. package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
  489. package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
  490. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
  491. package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
  492. package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
  493. package/dist/cjs/utils/arkos-router/types/index.js +0 -3
  494. package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
  495. package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
  496. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
  497. package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
  498. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
  499. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
  500. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
  501. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
  502. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
  503. package/dist/cjs/utils/bundler.js +0 -163
  504. package/dist/cjs/utils/bundler.js.map +0 -1
  505. package/dist/cjs/utils/cli/build.js +0 -200
  506. package/dist/cjs/utils/cli/build.js.map +0 -1
  507. package/dist/cjs/utils/cli/dev.js +0 -128
  508. package/dist/cjs/utils/cli/dev.js.map +0 -1
  509. package/dist/cjs/utils/cli/export-auth-action.js +0 -79
  510. package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
  511. package/dist/cjs/utils/cli/generate.js +0 -229
  512. package/dist/cjs/utils/cli/generate.js.map +0 -1
  513. package/dist/cjs/utils/cli/index.js +0 -191
  514. package/dist/cjs/utils/cli/index.js.map +0 -1
  515. package/dist/cjs/utils/cli/prisma-generate.js +0 -112
  516. package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
  517. package/dist/cjs/utils/cli/start.js +0 -72
  518. package/dist/cjs/utils/cli/start.js.map +0 -1
  519. package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
  520. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
  521. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -114
  522. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
  523. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
  524. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
  525. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
  526. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
  527. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
  528. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  529. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
  530. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
  531. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
  532. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
  533. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
  534. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  535. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
  536. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
  537. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
  538. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  539. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
  540. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
  541. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
  542. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
  543. package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
  544. package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
  545. package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
  546. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
  547. package/dist/cjs/utils/define-config.js +0 -46
  548. package/dist/cjs/utils/define-config.js.map +0 -1
  549. package/dist/cjs/utils/dotenv.helpers.js +0 -52
  550. package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
  551. package/dist/cjs/utils/dynamic-loader.js +0 -22
  552. package/dist/cjs/utils/dynamic-loader.js.map +0 -1
  553. package/dist/cjs/utils/expand-env.js +0 -72
  554. package/dist/cjs/utils/expand-env.js.map +0 -1
  555. package/dist/cjs/utils/features/api.features.js +0 -201
  556. package/dist/cjs/utils/features/api.features.js.map +0 -1
  557. package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
  558. package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
  559. package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
  560. package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
  561. package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
  562. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
  563. package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
  564. package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
  565. package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
  566. package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
  567. package/dist/cjs/utils/helpers/exit-error.js +0 -12
  568. package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
  569. package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
  570. package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
  571. package/dist/cjs/utils/helpers/global.helpers.js +0 -105
  572. package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
  573. package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
  574. package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
  575. package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
  576. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
  577. package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
  578. package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
  579. package/dist/cjs/utils/helpers/text.helpers.js +0 -28
  580. package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
  581. package/dist/cjs/utils/initialize-app.js +0 -55
  582. package/dist/cjs/utils/initialize-app.js.map +0 -1
  583. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
  584. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
  585. package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
  586. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
  587. package/dist/cjs/utils/prisma/types.js +0 -3
  588. package/dist/cjs/utils/prisma/types.js.map +0 -1
  589. package/dist/cjs/utils/remove-dir.js +0 -14
  590. package/dist/cjs/utils/remove-dir.js.map +0 -1
  591. package/dist/cjs/utils/setup-app.js +0 -119
  592. package/dist/cjs/utils/setup-app.js.map +0 -1
  593. package/dist/cjs/utils/sheu.js +0 -131
  594. package/dist/cjs/utils/sheu.js.map +0 -1
  595. package/dist/cjs/utils/validate-dto.js +0 -19
  596. package/dist/cjs/utils/validate-dto.js.map +0 -1
  597. package/dist/cjs/utils/validate-schema.js +0 -75
  598. package/dist/cjs/utils/validate-schema.js.map +0 -1
  599. package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
  600. package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
  601. package/dist/esm/components/arkos-service-hook/index.js +0 -32
  602. package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
  603. package/dist/esm/components/arkos-service-hook/reader.js +0 -24
  604. package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
  605. package/dist/esm/components/arkos-service-hook/types.js +0 -2
  606. package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
  607. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
  608. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  609. package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
  610. package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
  611. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
  612. package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
  613. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
  614. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  615. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
  616. package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
  617. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
  618. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  619. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
  620. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  621. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
  622. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  623. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
  624. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
  625. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
  626. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
  627. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
  628. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
  629. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
  630. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
  631. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
  632. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  633. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
  634. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  635. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
  636. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  637. package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
  638. package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
  639. package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
  640. package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
  641. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
  642. package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
  643. package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
  644. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
  645. package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
  646. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
  647. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
  648. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
  649. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
  650. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
  651. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
  652. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
  653. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
  654. package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
  655. package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
@@ -0,0 +1,467 @@
1
+ import { BroadcastOperator, Socket } from "socket.io";
2
+ import { User } from "../../types";
3
+ import { DefaultEventsMap } from "socket.io";
4
+ import { Validator } from "../../types/validation/validator";
5
+ import { Options as RateLimitOptions } from "express-rate-limit";
6
+ import { DetailedAccessControlRule } from "../../types/auth";
7
+ import { AllButLast, DecorateAcknowledgements, DecorateAcknowledgementsWithMultipleResponses, EventNames, EventNamesWithAck, EventNamesWithError, EventParams, FirstNonErrorArg, Last } from "socket.io/dist/typed-events";
8
+ import { InferValidationType } from "../../utils/arkos-router/types";
9
+ export interface EventsMap {
10
+ [event: string]: any;
11
+ }
12
+ export interface ArkosSocket<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, ServerSideEvents extends EventsMap = DefaultEventsMap, SocketData extends Validator = any, SocketLocals extends Record<string, any> = Record<string, any>> extends Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {
13
+ /**
14
+ * The engine.io handshake, enriched with the parsed `Cookie` header.
15
+ *
16
+ * Arkos parses the raw header once per connection, so handlers can read
17
+ * cookies without installing `io.engine.use(cookieParser())` themselves.
18
+ */
19
+ handshake: Socket["handshake"] & {
20
+ cookies?: Record<string, string>;
21
+ };
22
+ /**
23
+ * Populated by Arkos after successful authentication on connection.
24
+ * Available in all event handlers when `authentication: true` on the gateway.
25
+ */
26
+ currentUser?: User;
27
+ /**
28
+ * Populated by Arkos after successful validation.
29
+ * Typed to the event's validation schema when using TypeScript.
30
+ */
31
+ data: InferValidationType<SocketData, any>;
32
+ /** User access token. */
33
+ accessToken?: string;
34
+ /**
35
+ * Metadata from the incoming message, extracted from `_meta` by Arkos.
36
+ *
37
+ * - `mid`: Unique message ID used for deduplication.
38
+ * - `timestamp`: When the message was sent by the client.
39
+ */
40
+ meta?: {
41
+ mid?: string;
42
+ timestamp?: string | number | Date;
43
+ };
44
+ /**
45
+ * Per-event local storage, scoped to the current event pipeline.
46
+ * Use to pass data between pipes and the event handler — like Express's `res.locals`.
47
+ * Reset automatically on each event.
48
+ *
49
+ * @example
50
+ * chatGateway.pipe((socket, data) => {
51
+ * socket.locals.enriched = enrichUser(socket.currentUser)
52
+ * })
53
+ *
54
+ * chatGateway.on({ event: "send_message" }, (socket, data) => {
55
+ * console.log(socket.locals.enriched)
56
+ * })
57
+ */
58
+ locals?: SocketLocals;
59
+ /**
60
+ * Internal Arkos context injected by the gateway at connection time.
61
+ *
62
+ * @internal
63
+ */
64
+ _arkos: {
65
+ store: ArkosGatewayStore;
66
+ gatewayConfig: ArkosGatewayConfig;
67
+ };
68
+ /**
69
+ * Targets all active socket connections of a user by their user ID.
70
+ * Uses the internal `arkos::user:{userId}` room convention.
71
+ *
72
+ * Supports emit, management, and exclusion operations across all of the
73
+ * user's active connections.
74
+ *
75
+ * @example
76
+ * socket.user(userId).emit("notification", data)
77
+ * socket.user(userId).except({ user: otherUserId }).emit("sync", data)
78
+ * const sockets = await socket.user(userId).fetchSockets()
79
+ * const online = await socket.user(userId).isOnline()
80
+ *
81
+ * @since 1.7.0-canary.29
82
+ */
83
+ user(userId: string): ArkosUserTarget;
84
+ /**
85
+ * Wraps the next `emit` or `emitWithAck` with exponential backoff retry logic.
86
+ * Chain `.timeout(ms)` before `.emitWithAck()` as usual.
87
+ *
88
+ * @example
89
+ * socket.retry(3).emit("event", data)
90
+ * socket.retry(3).timeout(5000).emitWithAck("event", data)
91
+ *
92
+ * @since 1.7.0-canary.29
93
+ */
94
+ retry(times: number, initialDelay?: number, multiplier?: number): ArkosRetryTarget;
95
+ /**
96
+ * Emits an event to this client.
97
+ * Arkos automatically injects `_meta` (`mid` + `timestamp`) into every outgoing payload
98
+ * for client-side deduplication and freshness checks.
99
+ *
100
+ * @example
101
+ * socket.emit("message", { text: "hello" })
102
+ * socket.emit("notification", { title: "New order" })
103
+ */
104
+ emit<Ev extends EventNames<EmitEvents>>(ev: Ev, ...args: EventParams<EmitEvents, Ev>): true;
105
+ /**
106
+ * Emits an event and waits for an acknowledgement from the client.
107
+ * Arkos injects `_meta` automatically. Use `.timeout(ms)` to avoid hanging indefinitely.
108
+ *
109
+ * @example
110
+ * const response = await socket.timeout(5000).emitWithAck("confirm", data)
111
+ */
112
+ emitWithAck<Ev extends EventNamesWithAck<EmitEvents>>(ev: Ev, ...args: AllButLast<EventParams<EmitEvents, Ev>>): Promise<FirstNonErrorArg<Last<EventParams<EmitEvents, Ev>>>>;
113
+ /**
114
+ * Targets a room when broadcasting — excludes the sender.
115
+ * Returns an {@link ArkosBroadcastOperator} with enhanced `.except({ user })` support
116
+ * and automatic `_meta` injection on every `.emit()`.
117
+ *
118
+ * @example
119
+ * socket.to("room-101").emit("message", data)
120
+ * socket.to("room-101").except({ user: userId }).emit("message", data)
121
+ * socket.to("room-101").volatile.emit("typing", data)
122
+ * await socket.to("room-101").timeout(3000).emitWithAck("confirm", data)
123
+ *
124
+ * @since 1.7.0-canary.29
125
+ */
126
+ to(room: string | string[]): ArkosBroadcastOperator<DecorateAcknowledgementsWithMultipleResponses<EmitEvents>, SocketData> & BroadcastOperator<EmitEvents, SocketData>;
127
+ /**
128
+ * Broadcasts to all connected clients except the sender.
129
+ * Returns an {@link ArkosBroadcastOperator} with enhanced `.except({ user })` support
130
+ * and automatic `_meta` injection on every `.emit()`.
131
+ *
132
+ * @example
133
+ * socket.broadcast.emit("announcement", data)
134
+ * socket.broadcast.except({ user: userId }).emit("announcement", data)
135
+ * socket.broadcast.volatile.emit("ping", data)
136
+ *
137
+ * @since 1.7.0-canary.29
138
+ */
139
+ get broadcast(): ArkosBroadcastOperator<DecorateAcknowledgementsWithMultipleResponses<EmitEvents>, SocketData> & BroadcastOperator<EmitEvents, SocketData>;
140
+ }
141
+ /**
142
+ * Enhanced broadcast/room target returned by `socket.to()` and `socket.broadcast`.
143
+ * Extends the native `BroadcastOperator` with `{ user }` exclusion support
144
+ * and automatic `_meta` injection on emit.
145
+ *
146
+ * @since 1.7.0-canary.29
147
+ */
148
+ export interface ArkosBroadcastOperator<EmitEvents extends EventsMap = DefaultEventsMap, SocketData extends Validator = any> extends BroadcastOperator<EmitEvents, SocketData> {
149
+ /**
150
+ * Exclude sockets from the broadcast.
151
+ * Accepts a room name, socket ID, or `{ user: string | string[] }` to exclude
152
+ * all sockets belonging to one or more users.
153
+ *
154
+ * @example
155
+ * socket.to("room-101").except("room-102").emit("foo", data)
156
+ * socket.broadcast.except({ user: userId }).emit("foo", data)
157
+ * socket.broadcast.except({ user: [userId1, userId2] }).emit("foo", data)
158
+ */
159
+ except(room: string | string[] | {
160
+ user: string | string[];
161
+ }): ArkosBroadcastOperator<EmitEvents, SocketData>;
162
+ /**
163
+ * Emits to all clients,`_meta` is injected automatically.
164
+ *
165
+ * @example
166
+ * // the “foo” event will be broadcast to all connected clients
167
+ * io.emit("foo", "bar");
168
+ *
169
+ * // the “foo” event will be broadcast to all connected clients in the “room-101” room
170
+ * io.to("room-101").emit("foo", "bar");
171
+ *
172
+ * // with an acknowledgement expected from all connected clients
173
+ * io.timeout(1000).emit("some-event", (err, responses) => {
174
+ * if (err) {
175
+ * // some clients did not acknowledge the event in the given delay
176
+ * } else {
177
+ * console.log(responses); // one response per client
178
+ * }
179
+ * });
180
+ *
181
+ * @return Always true
182
+ */
183
+ emit<Ev extends EventNames<EmitEvents>>(ev: Ev, ...args: EventParams<EmitEvents, Ev>): true;
184
+ /** Chain volatile flag — event may be lost if client is not ready. */
185
+ get volatile(): ArkosBroadcastOperator<EmitEvents, SocketData>;
186
+ /** Chain compress flag. */
187
+ compress(value: boolean): ArkosBroadcastOperator<EmitEvents, SocketData>;
188
+ /** Chain timeout for `emitWithAck`. */
189
+ timeout(ms: number): ArkosBroadcastOperator<DecorateAcknowledgements<EmitEvents>, SocketData>;
190
+ /**
191
+ * Emits an event and waits for an acknowledgement from all clients.
192
+ * `_meta` is injected automatically
193
+ * @example
194
+ * try {
195
+ * const responses = await io.timeout(1000).emitWithAck("some-event");
196
+ * console.log(responses); // one response per client
197
+ * } catch (e) {
198
+ * // some clients did not acknowledge the event in the given delay
199
+ * }
200
+ *
201
+ * @return a Promise that will be fulfilled when all clients have acknowledged the event
202
+ */
203
+ emitWithAck<Ev extends EventNamesWithError<EmitEvents>>(ev: Ev, ...args: AllButLast<EventParams<EmitEvents, Ev>>): Promise<FirstNonErrorArg<Last<EventParams<EmitEvents, Ev>>>>;
204
+ /**
205
+ * Targets all active socket connections of a user by their user ID.
206
+ * Uses the internal `arkos::user:{userId}` room convention.
207
+ *
208
+ * Supports emit, management, and exclusion operations across all of the
209
+ * user's active connections.
210
+ *
211
+ * @example
212
+ * socket.user(userId).emit("notification", data)
213
+ * socket.user(userId).except({ user: otherUserId }).emit("sync", data)
214
+ * const sockets = await socket.user(userId).fetchSockets()
215
+ * const online = await socket.user(userId).isOnline()
216
+ *
217
+ * @since 1.7.0-canary.29
218
+ */
219
+ user(userId: string): ArkosUserTarget;
220
+ /**
221
+ * Returns all unique user IDs currently in the target room(s).
222
+ *
223
+ * @example
224
+ * const users = await socket.to("room-123").users()
225
+ */
226
+ users(): Promise<string[]>;
227
+ }
228
+ /**
229
+ * Returned by `socket.retry(n)`. Wraps `emit` and `emitWithAck`
230
+ * with exponential backoff. Chain `.timeout(ms)` before `.emitWithAck()` as usual.
231
+ *
232
+ * @since 1.7.0-canary.29
233
+ */
234
+ export interface ArkosRetryTarget {
235
+ /** Emit with ack and retry. `_meta` is injected automatically. */
236
+ emitWithAck(event: string, data: any, ...rest: any[]): Promise<any>;
237
+ /**
238
+ * Chain a timeout before `emitWithAck`.
239
+ *
240
+ * @example
241
+ * socket.retry(3).timeout(5000).emitWithAck("event", data)
242
+ */
243
+ timeout(ms: number): ArkosRetryTarget;
244
+ }
245
+ /**
246
+ * Returned by `socket.user(userId)`.
247
+ * Targets all active socket connections of a user.
248
+ *
249
+ * @since 1.7.0-canary.29
250
+ */
251
+ export interface ArkosUserTarget extends ArkosBroadcastOperator {
252
+ /**
253
+ * Returns all active rooms for this user.
254
+ *
255
+ * @example
256
+ * const rooms = await socket.user(userId).activeRooms()
257
+ * console.log(rooms.length) // number of active tabs/connections
258
+ */
259
+ activeRooms(): Promise<string[]>;
260
+ }
261
+ export type ArkosGatewayPipe = (socket: ArkosSocket, data: any) => void | Promise<void>;
262
+ /**
263
+ * Connection-level middleware registered with `gateway.use()`.
264
+ * Same `(socket, next)` contract as Socket.io namespace middleware.
265
+ * Runs before the namespace's authentication middleware and is inherited
266
+ * by nested gateways.
267
+ */
268
+ export type ArkosGatewayMiddleware = (socket: ArkosSocket, next: (err?: any) => void) => void | Promise<void>;
269
+ export type ArkosGatewayEventConfig<TSchema extends Validator = any> = {
270
+ /** The Socket.io event name to listen for. */
271
+ event: string;
272
+ /** Zod schema or class-validator DTO to validate the incoming event payload. */
273
+ validation?: TSchema;
274
+ /** Per-event rate limiting. Overrides gateway-level `rateLimit` for this event. */
275
+ rateLimit?: Partial<RateLimitOptions> | false;
276
+ /**
277
+ * Authorization configuration.
278
+ *
279
+ * @remarks Gateway `authentication` must NOT be `false` or this throws at registration time.
280
+ */
281
+ authorization?: {
282
+ resource: string;
283
+ action: string;
284
+ rule?: DetailedAccessControlRule | string[] | "*";
285
+ };
286
+ /**
287
+ * When `true`, Arkos automatically calls `ack({ success: true })` after the handler
288
+ * finishes, unless the handler already called ack manually.
289
+ */
290
+ ack?: boolean;
291
+ /** Disables this event handler without removing it. */
292
+ disabled?: boolean;
293
+ /**
294
+ * Maximum age in milliseconds for incoming messages.
295
+ * Requires `data._meta.timestamp`. Events older than this are rejected.
296
+ */
297
+ maxAge?: number;
298
+ /** Per-event deduplication. Overrides gateway-level `dedup`. */
299
+ dedup?: {
300
+ /** @default true */
301
+ enabled?: boolean;
302
+ /** Time-to-live in seconds for the dedup key. @default 3600 */
303
+ ttl?: number;
304
+ } | false;
305
+ };
306
+ export type ArkosGatewayAckFn = (response: any) => void;
307
+ export type ArkosGatewayHandler<TData extends Validator = any> = (socket: ArkosSocket, data: InferValidationType<TData, any>, ack?: ArkosGatewayAckFn) => void | Promise<void>;
308
+ export type ArkosGatewayEventEntry = {
309
+ config: ArkosGatewayEventConfig;
310
+ handler: ArkosGatewayHandler;
311
+ pipes: ArkosGatewayPipe[];
312
+ };
313
+ export type ArkosGatewayConnectionHandler = (socket: ArkosSocket) => void | Promise<void>;
314
+ export type ArkosGatewayHookHandler = ArkosGatewayConnectionHandler | ArkosGatewayErrorHandler;
315
+ export type ArkosGatewayErrorHandler = (error: any, socket: ArkosSocket) => void | Promise<void>;
316
+ export type ArkosGatewayHookType = "connection" | "disconnect" | "error";
317
+ export type ArkosGatewayConfig = {
318
+ /**
319
+ * Socket.io namespace for this gateway.
320
+ *
321
+ * @example
322
+ * name: "/chat"
323
+ */
324
+ name: string;
325
+ /**
326
+ * When `true`, Arkos runs auth middleware on connection and populates `socket.currentUser`.
327
+ * Unauthenticated sockets are rejected.
328
+ *
329
+ * @default false
330
+ */
331
+ authentication?: boolean;
332
+ /** Gateway-level rate limiting, applied per socket. Can be overridden per event. */
333
+ rateLimit?: Partial<RateLimitOptions>;
334
+ /**
335
+ * Gateway-level deduplication. Drills down to child gateways and can be overridden
336
+ * per child or per event listener.
337
+ */
338
+ dedup?: {
339
+ /** @default true */
340
+ enabled?: boolean;
341
+ /** @default 3600 */
342
+ ttl?: number;
343
+ } | false;
344
+ /**
345
+ * Maximum age in milliseconds for incoming messages.
346
+ * Can be overridden per event via `maxAge` in `gateway.on()`.
347
+ */
348
+ maxAge?: number;
349
+ };
350
+ /**
351
+ * Options for `gateway.register()`.
352
+ * Passed once at the root — applies to all child gateways.
353
+ */
354
+ export type ArkosGatewayRegisterOptions = {
355
+ /**
356
+ * Unified store for rate limiting and deduplication.
357
+ * Defaults to an in-memory store — zero config for single-instance deployments.
358
+ * For distributed deployments plug in a Redis-backed store.
359
+ *
360
+ * @example
361
+ * store: new RedisArkosStore(redis)
362
+ */
363
+ store?: ArkosGatewayStore;
364
+ };
365
+ /**
366
+ * Unified store interface for rate limiting and deduplication.
367
+ * Implement this to plug in Redis, Valkey, or any distributed store.
368
+ *
369
+ * @example
370
+ * class RedisArkosStore implements ArkosGatewayStore {
371
+ * async increment(key, windowMs) { ... }
372
+ * async clear(prefix) { ... }
373
+ * async has(key) { ... }
374
+ * async set(key, ttl) { ... }
375
+ * async setIfNotExists(key, ttl) { ... }
376
+ * }
377
+ */
378
+ export interface ArkosGatewayStore {
379
+ /** Increment a rate limit counter. Key format: `arkos::rl:{socketId}:{event}` */
380
+ increment(key: string, windowMs: number): Promise<{
381
+ count: number;
382
+ resetAt: number;
383
+ }>;
384
+ /** Clear all rate limit entries matching a prefix. Key format: `arkos::rl:{socketId}` */
385
+ clear(prefix: string): Promise<void>;
386
+ /** Check if a dedup key exists. */
387
+ has(key: string): Promise<boolean>;
388
+ /** Store a dedup key with TTL in seconds. */
389
+ set(key: string, ttl: number): Promise<void>;
390
+ /**
391
+ * Atomically store a dedup key only if it does not already exist.
392
+ * Returns `true` if created (process the message), `false` if duplicate (skip).
393
+ */
394
+ setIfNotExists(key: string, ttl: number): Promise<boolean>;
395
+ }
396
+ /**
397
+ * Minimal broadcast/emit contract that {@link ArkosBroadcastOperatorImpl} wraps.
398
+ * Deliberately narrower than socket.io's `BroadcastOperator` — only the methods
399
+ * Arkos actually calls, so both a `BroadcastOperator` (from `socket.to()`) and a
400
+ * raw `Namespace` (from `gateway.nsp`) satisfy it structurally.
401
+ *
402
+ * @since 1.7.1-canary.3
403
+ */
404
+ export interface ArkosEmitTarget<EmitEvents extends EventsMap = DefaultEventsMap> {
405
+ /**
406
+ * Emits an event to the target. `_meta` (`mid` + `timestamp`) is injected automatically.
407
+ *
408
+ * @example
409
+ * socket.to("room-101").emit("message", { text: "hello" })
410
+ * socket.broadcast.emit("announcement", data)
411
+ */
412
+ emit(event: string, ...args: any[]): boolean;
413
+ /**
414
+ * Emits an event and waits for an acknowledgement from all matched clients.
415
+ * `_meta` is injected automatically.
416
+ *
417
+ * Optional — not every target supports ack collection directly (e.g. a raw
418
+ * `Namespace` requires `.timeout(ms)` first). Throws at runtime if called on
419
+ * a target that doesn't implement it natively.
420
+ *
421
+ * @example
422
+ * const responses = await socket.to("room-101").timeout(3000).emitWithAck("confirm", data)
423
+ */
424
+ emitWithAck?(event: string, ...args: any[]): Promise<any>;
425
+ /**
426
+ * Excludes sockets from the broadcast.
427
+ * Accepts a room name, socket ID, or array of rooms/IDs.
428
+ * For `{ user }` exclusion, see {@link ArkosBroadcastOperatorImpl.except}.
429
+ *
430
+ * @example
431
+ * socket.to("room-101").except("room-102").emit("foo", data)
432
+ */
433
+ except(room: string | string[]): ArkosEmitTarget<EmitEvents>;
434
+ /**
435
+ * Sets the compress flag for the next emission.
436
+ *
437
+ * @example
438
+ * socket.broadcast.compress(false).emit("ping", data)
439
+ */
440
+ compress(value: boolean): ArkosEmitTarget<EmitEvents>;
441
+ /**
442
+ * Sets a timeout in milliseconds for `emitWithAck`.
443
+ * Rejects the promise if no client acknowledges within the given delay.
444
+ *
445
+ * @example
446
+ * socket.to("room-101").timeout(3000).emitWithAck("confirm", data)
447
+ */
448
+ timeout(ms: number): ArkosEmitTarget;
449
+ /**
450
+ * Returns all sockets currently matched by this target.
451
+ *
452
+ * @example
453
+ * const sockets = await socket.to("room-101").fetchSockets()
454
+ */
455
+ fetchSockets(): Promise<any[]>;
456
+ to(room: string | string[]): ArkosEmitTarget;
457
+ /**
458
+ * Sets the volatile flag — the event may be dropped if the client is not ready.
459
+ * Useful for high-frequency non-critical events like cursor positions or typing indicators.
460
+ *
461
+ * @example
462
+ * socket.to("room-101").volatile.emit("cursor", position)
463
+ */
464
+ readonly volatile: ArkosEmitTarget<EmitEvents>;
465
+ }
466
+ export declare class ArkosGatewayController {
467
+ }
@@ -0,0 +1,9 @@
1
+ import { ArkosGatewayErrorHandler, ArkosGatewayPipe, ArkosSocket } from "../types";
2
+ export declare function handleArkosGatewayErrors(err: any, socket: ArkosSocket, errorHandlers: ArkosGatewayErrorHandler[] | undefined, loggerMeta: {
3
+ namespace: string;
4
+ event: string;
5
+ startTime: number;
6
+ }, ack?: (response: any) => void): Promise<void>;
7
+ export declare function runArkosGatewayPipes(pipes: ArkosGatewayPipe[], socket: ArkosSocket, data: any): Promise<void>;
8
+ export declare function handleGatewayEventLog(namespace: string, event: string, statusCode: number, startTime: number): void;
9
+ export declare function handleGatewayLifecycleLog(namespace: string, event: "connected" | "disconnected" | "error", socketId: string, errorType?: string): void;
@@ -0,0 +1,14 @@
1
+ import { ArkosGatewayStore } from "../types";
2
+ export declare class MemoryGatewayStore implements ArkosGatewayStore {
3
+ private rl;
4
+ private dedup;
5
+ increment(key: string, windowMs: number): Promise<{
6
+ count: number;
7
+ resetAt: number;
8
+ }>;
9
+ clear(prefix: string): Promise<void>;
10
+ has(key: string): Promise<boolean>;
11
+ set(key: string, ttl: number): Promise<void>;
12
+ setIfNotExists(key: string, ttl: number): Promise<boolean>;
13
+ }
14
+ export declare const defaultGatewayStore: MemoryGatewayStore;
@@ -0,0 +1,20 @@
1
+ import { ArkosGatewayStore } from "../types";
2
+ /**
3
+ * Multi-tier store that chains multiple stores together.
4
+ * Writes go to all tiers. Reads check tiers in order, promoting hits to faster tiers.
5
+ *
6
+ * @example
7
+ * new MultiTierArkosStore([new MemoryArkosStore(), new RedisArkosStore(redis)])
8
+ */
9
+ export declare class MultiTierArkosGatewayStore implements ArkosGatewayStore {
10
+ private tiers;
11
+ constructor(tiers: ArkosGatewayStore[]);
12
+ increment(key: string, windowMs: number): Promise<{
13
+ count: number;
14
+ resetAt: number;
15
+ }>;
16
+ clear(prefix: string): Promise<void>;
17
+ has(key: string): Promise<boolean>;
18
+ set(key: string, ttl: number): Promise<void>;
19
+ setIfNotExists(key: string, ttl: number): Promise<boolean>;
20
+ }
@@ -0,0 +1,11 @@
1
+ import { Options as RateLimitOptions } from "express-rate-limit";
2
+ import { ArkosGatewayStore } from "../types";
3
+ /**
4
+ * Checks whether a socket has exceeded the rate limit for a given event.
5
+ * Returns true if the request is allowed, false if rate limited.
6
+ */
7
+ export declare function checkRateLimit(socketId: string, event: string, options: Partial<RateLimitOptions>, store: ArkosGatewayStore): Promise<{
8
+ allowed: boolean;
9
+ retryAfter?: number;
10
+ }>;
11
+ export declare function clearRateLimitForSocket(socketId: string, store: ArkosGatewayStore): Promise<void>;
@@ -1,4 +1,5 @@
1
- import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
1
+ import { ArkosPrismaService, AuthService } from '../../exports/services';
2
+ import { ArkosModuleType, ArkosRouteHookReturn } from './types';
2
3
  /**
3
4
  * Creates an interceptor for a built-in Arkos module or a generated model route.
4
5
  *
@@ -10,16 +11,22 @@ import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
10
11
  *
11
12
  * @example
12
13
  * ```ts
13
- * const userInterceptor = ArkosRouteHook("user");
14
+ * const userRouteHook = ArkosRouteHook("user");
14
15
  *
15
- * userInterceptor.createOne({
16
+ * userRouteHook.createOne({
16
17
  * validation: { body: CreateUserSchema },
17
18
  * before: [sanitize],
18
19
  * after: [notify]
19
20
  * });
20
21
  *
21
- * app.load(userInterceptor);
22
+ * app.load(userRouteHook);
22
23
  * ```
23
- * @see {@link https://www.arkosjs.com/docs/core-concepts/components/interceptors}
24
+ * @see {@link https://www.arkosjs.com/docs/core-concepts/components/route-hooks}
24
25
  */
25
- export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T): ArkosRouteHookReturn<T>;
26
+ export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T, configs?: {
27
+ /**
28
+ * `ArkosPrismaService` instance for such model, or an `AuthService`
29
+ * subclass instance when `moduleName` is `"auth"`.
30
+ */
31
+ service?: T extends 'auth' ? AuthService : ArkosPrismaService<T>;
32
+ }): ArkosRouteHookReturn<T>;
@@ -1,7 +1,7 @@
1
1
  import { ArkosModuleType, ArkosRouteHookHooks, ArkosRouteHookMethodConfig, ArkosRouteHookInstance, ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance } from "./types";
2
- import { ArkosRequestHandler, ArkosRouteConfig } from "../../exports";
3
- type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName">;
4
- export type OperationByModule<TModule extends ArkosModuleType> = TModule extends "file-upload" ? keyof Omit<ArkosFileUploadRouteHookInstance, "__type" | "moduleName"> : TModule extends "auth" ? keyof Omit<ArkosAuthRouteHookInstance, "__type" | "moduleName"> : PrismaOperations;
2
+ import { ArkosRouteConfig } from "../../exports";
3
+ type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "_configs">;
4
+ export type OperationByModule<TModule extends ArkosModuleType> = TModule extends "file-upload" ? keyof Omit<ArkosFileUploadRouteHookInstance, "__type" | "moduleName" | "service"> : TModule extends "auth" ? keyof Omit<ArkosAuthRouteHookInstance, "__type" | "moduleName" | "_configs" | "service"> : PrismaOperations;
5
5
  /**
6
6
  * Reader for `ArkosRouteHook` instances.
7
7
  * Reads config from the global loadable registry by module name.
@@ -43,10 +43,7 @@ declare class ArkosRouteHookReader {
43
43
  /**
44
44
  * Returns all extracted slices for a given operation in one call.
45
45
  */
46
- forOperation<TModule extends ArkosModuleType>(moduleName: TModule, operation: OperationByModule<TModule>): {
47
- before: ArkosRequestHandler[];
48
- after: ArkosRequestHandler[];
49
- onError: ArkosRequestHandler[];
46
+ forOperation<TModule extends ArkosModuleType>(moduleName: TModule, operation: OperationByModule<TModule>): ArkosRouteHookHooks & {
50
47
  prismaArgs?: Record<string, any>;
51
48
  routeConfig: Omit<ArkosRouteConfig, "path">;
52
49
  };
@@ -1,11 +1,12 @@
1
1
  import { ArkosRouteConfig } from "../../exports";
2
+ import { ArkosPrismaService, AuthService } from "../../exports/services";
2
3
  import { PrismaModels } from "../../generated";
3
- import { ArkosRequestHandler } from "../../types";
4
+ import { ArkosErrorRequestHandler, ArkosRequestHandler } from "../../types";
4
5
  export type Models = keyof PrismaModels<any>;
5
6
  export interface ArkosRouteHookHooks {
6
- before?: ArkosRequestHandler[];
7
- after?: ArkosRequestHandler[];
8
- onError?: ArkosRequestHandler[];
7
+ before?: ArkosRequestHandler[] | ArkosRequestHandler;
8
+ after?: ArkosRequestHandler[] | ArkosRequestHandler;
9
+ onError?: ArkosErrorRequestHandler[] | ArkosErrorRequestHandler;
9
10
  }
10
11
  /**
11
12
  * Extracts the correct Prisma args type for a given model and operation.
@@ -15,7 +16,7 @@ type PrismaQueryFor<TModel extends string, TOp extends string> = TModel extends
15
16
  /**
16
17
  * Full config for an interceptor method — inherits all ArkosRouteConfig options
17
18
  * (validation, auth, rate limiting, etc.) minus `path`, plus lifecycle hooks,
18
- * plus `prismaQuery` typed to the specific model and operation's Prisma args.
19
+ * plus `prismaArgs` typed to the specific model and operation's Prisma args.
19
20
  */
20
21
  export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp extends string = string> = Omit<ArkosRouteConfig, "path"> & ArkosRouteHookHooks & {
21
22
  /**
@@ -37,6 +38,9 @@ export type ArkosModuleType = "auth" | "file-upload" | Models;
37
38
  export interface ArkosRouteHookInstance<TModel extends Models> {
38
39
  readonly __type: "ArkosRouteHook";
39
40
  readonly moduleName: TModel;
41
+ readonly _configs: {
42
+ readonly service?: ArkosPrismaService;
43
+ };
40
44
  createOne(config: ArkosRouteHookMethodConfig<TModel, "CreateArgs">): this;
41
45
  findOne(config: ArkosRouteHookMethodConfig<TModel, "FindFirstArgs">): this;
42
46
  findMany(config: ArkosRouteHookMethodConfig<TModel, "FindManyArgs">): this;
@@ -53,6 +57,9 @@ export interface ArkosRouteHookInstance<TModel extends Models> {
53
57
  export interface ArkosAuthRouteHookInstance {
54
58
  readonly __type: "ArkosRouteHook";
55
59
  readonly moduleName: "auth";
60
+ readonly _configs: {
61
+ readonly service?: AuthService;
62
+ };
56
63
  getMe(config: ArkosRouteHookMethodConfig): this;
57
64
  login(config: ArkosRouteHookMethodConfig): this;
58
65
  logout(config: ArkosRouteHookMethodConfig): this;
@@ -1,3 +1,4 @@
1
1
  import catchAsync from "../../modules/error-handler/utils/catch-async";
2
2
  import AppError from "../../modules/error-handler/utils/app-error";
3
+ export * from "../../modules/error-handler/utils/errors";
3
4
  export { catchAsync, AppError };
@@ -0,0 +1 @@
1
+ export type { ArkosFile, PrepareFileContext, UploadDirParams, UploadPrepare, UploadPrepareFile, UploadUrlPath, } from "../types/upload";
@@ -1,4 +1,3 @@
1
- import { RouterConfig } from "../types/router-config";
2
1
  import { BaseController } from "./../modules/base/base.controller";
3
2
  import { getArkosConfig } from "../server";
4
3
  import ArkosRouter from "../utils/arkos-router";
@@ -7,12 +6,12 @@ import { ArkosRouteConfig } from "../utils/arkos-router/types";
7
6
  import { ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler } from "../types";
8
7
  import { ArkosConfig } from "../types/new-arkos-config";
9
8
  import { loadEnvironmentVariables } from "../utils/dotenv.helpers";
10
- import { arkos } from "../app";
9
+ import arkos from "../app";
11
10
  import { ArkosRouteHook } from "../components/arkos-route-hook";
12
- import { ArkosServiceHook } from "../components/arkos-service-hook";
13
11
  import { ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
14
12
  import { ArkosPolicy } from "../components/arkos-policy";
15
13
  import { IArkosPolicy } from "../components/arkos-policy/types";
16
14
  import type { ArkosLoadable } from "../types/arkos";
17
- export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, RouterConfig, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosServiceHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, };
18
- export = arkos;
15
+ import { isProduction } from "../utils/helpers/arkos-config.helpers";
16
+ export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, isProduction, };
17
+ export default arkos;
@@ -1 +1 @@
1
- export { addPrismaQueryOptionsToRequest, handleRequestBodyValidationAndTransformation, } from "../../modules/base/base.middlewares";
1
+ export { addPrismaQueryOptionsToRequest, } from "../../modules/base/base.middlewares";