arkos 2.0.0-next.17 → 2.0.0-next.18

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 (343) hide show
  1. package/cli.js +1 -8
  2. package/dist/esm/app.js +2 -2
  3. package/dist/esm/app.js.map +1 -1
  4. package/dist/esm/components/arkos-route-hook/index.js +2 -1
  5. package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
  6. package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
  7. package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
  8. package/dist/esm/exports/index.js +1 -2
  9. package/dist/esm/exports/index.js.map +1 -1
  10. package/dist/esm/exports/services/index.js.map +1 -1
  11. package/dist/esm/modules/base/base.controller.js +4 -4
  12. package/dist/esm/modules/base/base.controller.js.map +1 -1
  13. package/dist/esm/modules/base/base.service.js +0 -47
  14. package/dist/esm/modules/base/base.service.js.map +1 -1
  15. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  16. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  17. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  18. package/dist/esm/types/arkos.js.map +1 -1
  19. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +4 -0
  20. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  21. package/dist/esm/utils/cli/generate.js +0 -90
  22. package/dist/esm/utils/cli/generate.js.map +1 -1
  23. package/dist/esm/utils/cli/index.js +9 -73
  24. package/dist/esm/utils/cli/index.js.map +1 -1
  25. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  26. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -51
  27. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  28. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +11 -4
  29. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
  30. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
  31. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
  32. package/dist/esm/utils/cli/utils/template-generators.js +27 -24
  33. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  34. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +19 -18
  35. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  36. package/dist/types/app.d.ts +4 -0
  37. package/dist/types/components/arkos-route-hook/index.d.ts +7 -1
  38. package/dist/types/components/arkos-route-hook/reader.d.ts +1 -1
  39. package/dist/types/components/arkos-route-hook/types.d.ts +4 -6
  40. package/dist/types/exports/index.d.ts +1 -2
  41. package/dist/types/exports/services/index.d.ts +2 -2
  42. package/dist/types/modules/base/base.service.d.ts +1 -8
  43. package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
  44. package/dist/types/types/arkos.d.ts +1 -2
  45. package/dist/types/utils/cli/generate.d.ts +11 -10
  46. package/package.json +16 -18
  47. package/dist/cjs/app.js +0 -114
  48. package/dist/cjs/app.js.map +0 -1
  49. package/dist/cjs/components/arkos-gateway/arkos-gateway.js +0 -344
  50. package/dist/cjs/components/arkos-gateway/arkos-gateway.js.map +0 -1
  51. package/dist/cjs/components/arkos-gateway/socket-extensions.js +0 -166
  52. package/dist/cjs/components/arkos-gateway/socket-extensions.js.map +0 -1
  53. package/dist/cjs/components/arkos-gateway/types.js +0 -7
  54. package/dist/cjs/components/arkos-gateway/types.js.map +0 -1
  55. package/dist/cjs/components/arkos-gateway/utils/helpers.js +0 -111
  56. package/dist/cjs/components/arkos-gateway/utils/helpers.js.map +0 -1
  57. package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js +0 -51
  58. package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js.map +0 -1
  59. package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +0 -43
  60. package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +0 -1
  61. package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js +0 -17
  62. package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js.map +0 -1
  63. package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
  64. package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
  65. package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
  66. package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
  67. package/dist/cjs/components/arkos-policy/index.js +0 -38
  68. package/dist/cjs/components/arkos-policy/index.js.map +0 -1
  69. package/dist/cjs/components/arkos-policy/types.js +0 -3
  70. package/dist/cjs/components/arkos-policy/types.js.map +0 -1
  71. package/dist/cjs/components/arkos-route-hook/index.js +0 -50
  72. package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
  73. package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
  74. package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
  75. package/dist/cjs/components/arkos-route-hook/types.js +0 -3
  76. package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
  77. package/dist/cjs/components/arkos-service-hook/index.js +0 -35
  78. package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
  79. package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
  80. package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
  81. package/dist/cjs/components/arkos-service-hook/types.js +0 -3
  82. package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
  83. package/dist/cjs/exports/auth/index.js +0 -6
  84. package/dist/cjs/exports/auth/index.js.map +0 -1
  85. package/dist/cjs/exports/config.js +0 -6
  86. package/dist/cjs/exports/config.js.map +0 -1
  87. package/dist/cjs/exports/controllers/index.js +0 -42
  88. package/dist/cjs/exports/controllers/index.js.map +0 -1
  89. package/dist/cjs/exports/error-handler/index.js +0 -26
  90. package/dist/cjs/exports/error-handler/index.js.map +0 -1
  91. package/dist/cjs/exports/index.js +0 -25
  92. package/dist/cjs/exports/index.js.map +0 -1
  93. package/dist/cjs/exports/middlewares/index.js +0 -7
  94. package/dist/cjs/exports/middlewares/index.js.map +0 -1
  95. package/dist/cjs/exports/prisma/index.js +0 -13
  96. package/dist/cjs/exports/prisma/index.js.map +0 -1
  97. package/dist/cjs/exports/services/index.js +0 -53
  98. package/dist/cjs/exports/services/index.js.map +0 -1
  99. package/dist/cjs/exports/utils/index.js +0 -26
  100. package/dist/cjs/exports/utils/index.js.map +0 -1
  101. package/dist/cjs/exports/validation/index.js +0 -11
  102. package/dist/cjs/exports/validation/index.js.map +0 -1
  103. package/dist/cjs/exports/websockets.js +0 -13
  104. package/dist/cjs/exports/websockets.js.map +0 -1
  105. package/dist/cjs/generated.js +0 -7
  106. package/dist/cjs/generated.js.map +0 -1
  107. package/dist/cjs/modules/auth/auth.controller.js +0 -254
  108. package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
  109. package/dist/cjs/modules/auth/auth.router.js +0 -130
  110. package/dist/cjs/modules/auth/auth.router.js.map +0 -1
  111. package/dist/cjs/modules/auth/auth.service.js +0 -312
  112. package/dist/cjs/modules/auth/auth.service.js.map +0 -1
  113. package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
  114. package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
  115. package/dist/cjs/modules/auth/utils/auth-hooks-manager.js +0 -153
  116. package/dist/cjs/modules/auth/utils/auth-hooks-manager.js.map +0 -1
  117. package/dist/cjs/modules/auth/utils/auth-openapi-generator.js +0 -372
  118. package/dist/cjs/modules/auth/utils/auth-openapi-generator.js.map +0 -1
  119. package/dist/cjs/modules/auth/utils/auth-prisma-json-schema-generator.js +0 -101
  120. package/dist/cjs/modules/auth/utils/auth-prisma-json-schema-generator.js.map +0 -1
  121. package/dist/cjs/modules/auth/utils/docs-links.js +0 -9
  122. package/dist/cjs/modules/auth/utils/docs-links.js.map +0 -1
  123. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
  124. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  125. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -156
  126. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
  127. package/dist/cjs/modules/base/base.controller.js +0 -293
  128. package/dist/cjs/modules/base/base.controller.js.map +0 -1
  129. package/dist/cjs/modules/base/base.middlewares.js +0 -229
  130. package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
  131. package/dist/cjs/modules/base/base.router.js +0 -126
  132. package/dist/cjs/modules/base/base.router.js.map +0 -1
  133. package/dist/cjs/modules/base/base.service.js +0 -371
  134. package/dist/cjs/modules/base/base.service.js.map +0 -1
  135. package/dist/cjs/modules/base/types/base.service.types.js +0 -3
  136. package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
  137. package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
  138. package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
  139. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
  140. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  141. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -243
  142. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  143. package/dist/cjs/modules/base/utils/model-openapi-generator.js +0 -443
  144. package/dist/cjs/modules/base/utils/model-openapi-generator.js.map +0 -1
  145. package/dist/cjs/modules/base/utils/router-validator.js +0 -13
  146. package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
  147. package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
  148. package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
  149. package/dist/cjs/modules/debugger/debugger.service.js +0 -59
  150. package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
  151. package/dist/cjs/modules/email/email.service.js +0 -113
  152. package/dist/cjs/modules/email/email.service.js.map +0 -1
  153. package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -70
  154. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
  155. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -27
  156. package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
  157. package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
  158. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
  159. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -104
  160. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  161. package/dist/cjs/modules/error-handler/utils/errors.js +0 -158
  162. package/dist/cjs/modules/error-handler/utils/errors.js.map +0 -1
  163. package/dist/cjs/modules/error-handler/utils/get-handled-error.js +0 -107
  164. package/dist/cjs/modules/error-handler/utils/get-handled-error.js.map +0 -1
  165. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js +0 -39
  166. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js.map +0 -1
  167. package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -252
  168. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
  169. package/dist/cjs/modules/file-upload/file-upload.router.js +0 -103
  170. package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
  171. package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
  172. package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
  173. package/dist/cjs/modules/file-upload/utils/file-upload-json-schema-generator.js +0 -351
  174. package/dist/cjs/modules/file-upload/utils/file-upload-json-schema-generator.js.map +0 -1
  175. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
  176. package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
  177. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
  178. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  179. package/dist/cjs/modules/swagger/swagger.router.js +0 -115
  180. package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
  181. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +0 -308
  182. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +0 -1
  183. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
  184. package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
  185. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -72
  186. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
  187. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -333
  188. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
  189. package/dist/cjs/package.json +0 -3
  190. package/dist/cjs/server.js +0 -60
  191. package/dist/cjs/server.js.map +0 -1
  192. package/dist/cjs/types/arkos-config/utils.js +0 -3
  193. package/dist/cjs/types/arkos-config/utils.js.map +0 -1
  194. package/dist/cjs/types/arkos-prisma-input.js +0 -3
  195. package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
  196. package/dist/cjs/types/arkos.js +0 -3
  197. package/dist/cjs/types/arkos.js.map +0 -1
  198. package/dist/cjs/types/auth.js +0 -3
  199. package/dist/cjs/types/auth.js.map +0 -1
  200. package/dist/cjs/types/index.js +0 -3
  201. package/dist/cjs/types/index.js.map +0 -1
  202. package/dist/cjs/types/new-arkos-config.js +0 -3
  203. package/dist/cjs/types/new-arkos-config.js.map +0 -1
  204. package/dist/cjs/types/router-config.js +0 -3
  205. package/dist/cjs/types/router-config.js.map +0 -1
  206. package/dist/cjs/types/upload.js +0 -3
  207. package/dist/cjs/types/upload.js.map +0 -1
  208. package/dist/cjs/types/validation/validation-manager.js +0 -55
  209. package/dist/cjs/types/validation/validation-manager.js.map +0 -1
  210. package/dist/cjs/types/validation/validator.js +0 -3
  211. package/dist/cjs/types/validation/validator.js.map +0 -1
  212. package/dist/cjs/utils/arkos-env.js +0 -9
  213. package/dist/cjs/utils/arkos-env.js.map +0 -1
  214. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -160
  215. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
  216. package/dist/cjs/utils/arkos-router/index.js +0 -165
  217. package/dist/cjs/utils/arkos-router/index.js.map +0 -1
  218. package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
  219. package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
  220. package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
  221. package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
  222. package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
  223. package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
  224. package/dist/cjs/utils/arkos-router/types/index.js +0 -3
  225. package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
  226. package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
  227. package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
  228. package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
  229. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
  230. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +0 -190
  231. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +0 -1
  232. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -179
  233. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
  234. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -560
  235. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
  236. package/dist/cjs/utils/bundler.js +0 -163
  237. package/dist/cjs/utils/bundler.js.map +0 -1
  238. package/dist/cjs/utils/cli/build.js +0 -208
  239. package/dist/cjs/utils/cli/build.js.map +0 -1
  240. package/dist/cjs/utils/cli/dev.js +0 -131
  241. package/dist/cjs/utils/cli/dev.js.map +0 -1
  242. package/dist/cjs/utils/cli/export-auth-action.js +0 -80
  243. package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
  244. package/dist/cjs/utils/cli/generate.js +0 -333
  245. package/dist/cjs/utils/cli/generate.js.map +0 -1
  246. package/dist/cjs/utils/cli/index.js +0 -259
  247. package/dist/cjs/utils/cli/index.js.map +0 -1
  248. package/dist/cjs/utils/cli/prisma-generate.js +0 -112
  249. package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
  250. package/dist/cjs/utils/cli/start.js +0 -83
  251. package/dist/cjs/utils/cli/start.js.map +0 -1
  252. package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
  253. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
  254. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -118
  255. package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
  256. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
  257. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
  258. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -846
  259. package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
  260. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -64
  261. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  262. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -242
  263. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
  264. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -51
  265. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
  266. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -23
  267. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
  268. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
  269. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
  270. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -545
  271. package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
  272. package/dist/cjs/utils/cli/utils/template-generators.js +0 -62
  273. package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
  274. package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
  275. package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
  276. package/dist/cjs/utils/define-config.js +0 -60
  277. package/dist/cjs/utils/define-config.js.map +0 -1
  278. package/dist/cjs/utils/docs-links.js +0 -5
  279. package/dist/cjs/utils/docs-links.js.map +0 -1
  280. package/dist/cjs/utils/dotenv.helpers.js +0 -46
  281. package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
  282. package/dist/cjs/utils/dynamic-loader.js +0 -22
  283. package/dist/cjs/utils/dynamic-loader.js.map +0 -1
  284. package/dist/cjs/utils/expand-env.js +0 -72
  285. package/dist/cjs/utils/expand-env.js.map +0 -1
  286. package/dist/cjs/utils/features/api.features.js +0 -216
  287. package/dist/cjs/utils/features/api.features.js.map +0 -1
  288. package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
  289. package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
  290. package/dist/cjs/utils/helpers/api.features.helpers.js +0 -347
  291. package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
  292. package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -106
  293. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
  294. package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
  295. package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
  296. package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
  297. package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
  298. package/dist/cjs/utils/helpers/exit-error.js +0 -13
  299. package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
  300. package/dist/cjs/utils/helpers/fs.helpers.js +0 -52
  301. package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
  302. package/dist/cjs/utils/helpers/global.helpers.js +0 -106
  303. package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
  304. package/dist/cjs/utils/helpers/prisma.helpers.js +0 -56
  305. package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
  306. package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
  307. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
  308. package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
  309. package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
  310. package/dist/cjs/utils/helpers/text.helpers.js +0 -28
  311. package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
  312. package/dist/cjs/utils/helpers/url-helpers.js +0 -14
  313. package/dist/cjs/utils/helpers/url-helpers.js.map +0 -1
  314. package/dist/cjs/utils/initialize-app.js +0 -80
  315. package/dist/cjs/utils/initialize-app.js.map +0 -1
  316. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -366
  317. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
  318. package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -380
  319. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
  320. package/dist/cjs/utils/prisma/types.js +0 -3
  321. package/dist/cjs/utils/prisma/types.js.map +0 -1
  322. package/dist/cjs/utils/remove-dir.js +0 -14
  323. package/dist/cjs/utils/remove-dir.js.map +0 -1
  324. package/dist/cjs/utils/setup-app.js +0 -136
  325. package/dist/cjs/utils/setup-app.js.map +0 -1
  326. package/dist/cjs/utils/sheu.js +0 -131
  327. package/dist/cjs/utils/sheu.js.map +0 -1
  328. package/dist/cjs/utils/validate-dto.js +0 -19
  329. package/dist/cjs/utils/validate-dto.js.map +0 -1
  330. package/dist/cjs/utils/validate-schema.js +0 -75
  331. package/dist/cjs/utils/validate-schema.js.map +0 -1
  332. package/dist/esm/components/arkos-service-hook/index.js +0 -32
  333. package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
  334. package/dist/esm/components/arkos-service-hook/reader.js +0 -24
  335. package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
  336. package/dist/esm/components/arkos-service-hook/types.js +0 -2
  337. package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
  338. package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
  339. package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
  340. package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
  341. package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
  342. package/dist/types/components/arkos-service-hook/types.d.ts +0 -219
  343. package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
@@ -5,7 +5,10 @@ import classValidatorDtoGenerator from "./template-generator/templates/class-val
5
5
  import zodSchemaGenerator from "./template-generator/templates/zod-schema-generator.js";
6
6
  import prismaSchemaParser from "../../prisma/prisma-schema-parser.js";
7
7
  import { generatePolicyTemplate } from "./template-generator/templates/policy-template.js";
8
+ import { getArkosConfig } from "../../../server.js";
8
9
  export function generateTemplate(type, options) {
10
+ const { validation } = getArkosConfig();
11
+ const resolver = validation?.resolver ?? "zod";
9
12
  switch (type) {
10
13
  case "controller":
11
14
  return generateControllerTemplate(options);
@@ -15,40 +18,40 @@ export function generateTemplate(type, options) {
15
18
  return generateRouterTemplate(options);
16
19
  case "policy":
17
20
  return generatePolicyTemplate(options);
18
- case "create-schema":
19
- return zodSchemaGenerator.generateCreateSchema(options);
20
- case "update-schema":
21
- return zodSchemaGenerator.generateUpdateSchema(options);
22
- case "schema":
23
- return zodSchemaGenerator.generateBaseSchema(options);
24
- case "query-schema":
25
- return zodSchemaGenerator.generateQuerySchema(options);
26
21
  case "create-dto":
27
- return classValidatorDtoGenerator.generateCreateDto(options);
22
+ return resolver === "class-validator"
23
+ ? classValidatorDtoGenerator.generateCreateDto(options)
24
+ : zodSchemaGenerator.generateCreateSchema(options);
28
25
  case "update-dto":
29
- return classValidatorDtoGenerator.generateUpdateDto(options);
26
+ return resolver === "class-validator"
27
+ ? classValidatorDtoGenerator.generateUpdateDto(options)
28
+ : zodSchemaGenerator.generateUpdateSchema(options);
30
29
  case "dto":
31
- return classValidatorDtoGenerator.generateBaseDto(options);
30
+ return resolver === "class-validator"
31
+ ? classValidatorDtoGenerator.generateBaseDto(options)
32
+ : zodSchemaGenerator.generateBaseSchema(options);
32
33
  case "query-dto":
33
- return classValidatorDtoGenerator.generateQueryDto(options);
34
+ return resolver === "class-validator"
35
+ ? classValidatorDtoGenerator.generateQueryDto(options)
36
+ : zodSchemaGenerator.generateQuerySchema(options);
34
37
  case "prisma-model":
35
38
  return prismaSchemaParser.generatePrismaModel(options);
36
- case "login-schema":
37
- return zodSchemaGenerator.generateLoginSchema(options);
38
- case "signup-schema":
39
- return zodSchemaGenerator.generateSignupSchema(options);
40
- case "update-me-schema":
41
- return zodSchemaGenerator.generateUpdateMeSchema(options);
42
- case "update-password-schema":
43
- return zodSchemaGenerator.generateUpdatePasswordSchema(options);
44
39
  case "login-dto":
45
- return classValidatorDtoGenerator.generateLoginDto(options);
40
+ return resolver === "class-validator"
41
+ ? classValidatorDtoGenerator.generateLoginDto(options)
42
+ : zodSchemaGenerator.generateLoginSchema(options);
46
43
  case "signup-dto":
47
- return classValidatorDtoGenerator.generateSignupDto(options);
44
+ return resolver === "class-validator"
45
+ ? classValidatorDtoGenerator.generateSignupDto(options)
46
+ : zodSchemaGenerator.generateSignupSchema(options);
48
47
  case "update-me-dto":
49
- return classValidatorDtoGenerator.generateUpdateMeDto(options);
48
+ return resolver === "class-validator"
49
+ ? classValidatorDtoGenerator.generateUpdateMeDto(options)
50
+ : zodSchemaGenerator.generateUpdateMeSchema(options);
50
51
  case "update-password-dto":
51
- return classValidatorDtoGenerator.generateUpdatePasswordDto(options);
52
+ return resolver === "class-validator"
53
+ ? classValidatorDtoGenerator.generateUpdatePasswordDto(options)
54
+ : zodSchemaGenerator.generateUpdatePasswordSchema(options);
52
55
  default:
53
56
  throw new Error(`Unknown template type: ${type}`);
54
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-generators.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/template-generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,0BAA0B,MAAM,8DAA8D,CAAC;AACtG,OAAO,kBAAkB,MAAM,qDAAqD,CAAC;AACrF,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAoBxF,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAAwB;IAExB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACzC,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEzC,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxD,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEzD,KAAK,YAAY;YACf,OAAO,0BAA0B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/D,KAAK,YAAY;YACf,OAAO,0BAA0B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/D,KAAK,KAAK;YACR,OAAO,0BAA0B,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7D,KAAK,WAAW;YACd,OAAO,0BAA0B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE9D,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEzD,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACzD,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,KAAK,kBAAkB;YACrB,OAAO,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5D,KAAK,wBAAwB;YAC3B,OAAO,kBAAkB,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAClE,KAAK,WAAW;YACd,OAAO,0BAA0B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9D,KAAK,YAAY;YACf,OAAO,0BAA0B,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/D,KAAK,eAAe;YAClB,OAAO,0BAA0B,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACjE,KAAK,qBAAqB;YACxB,OAAO,0BAA0B,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAEvE;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC","sourcesContent":["import { generateControllerTemplate } from \"./template-generator/templates/generate-controller-template\";\nimport { generateRouterTemplate } from \"./template-generator/templates/router-template\";\nimport { generateServiceTemplate } from \"./template-generator/templates/service-template\";\nimport classValidatorDtoGenerator from \"./template-generator/templates/class-validator-dto-generator\";\nimport zodSchemaGenerator from \"./template-generator/templates/zod-schema-generator\";\nimport prismaSchemaParser from \"../../prisma/prisma-schema-parser\";\nimport { generatePolicyTemplate } from \"./template-generator/templates/policy-template\";\n\ninterface ModelName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\ninterface MiddlewareName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\nexport interface TemplateOptions {\n modelName: ModelName;\n middlewareName?: MiddlewareName;\n imports?: Record<string, string>;\n}\n\nexport function generateTemplate(\n type: string,\n options: TemplateOptions\n): string {\n switch (type) {\n case \"controller\":\n return generateControllerTemplate(options);\n case \"service\":\n return generateServiceTemplate(options);\n case \"router\":\n return generateRouterTemplate(options);\n case \"policy\":\n return generatePolicyTemplate(options);\n\n case \"create-schema\":\n return zodSchemaGenerator.generateCreateSchema(options);\n case \"update-schema\":\n return zodSchemaGenerator.generateUpdateSchema(options);\n case \"schema\":\n return zodSchemaGenerator.generateBaseSchema(options);\n case \"query-schema\":\n return zodSchemaGenerator.generateQuerySchema(options);\n\n case \"create-dto\":\n return classValidatorDtoGenerator.generateCreateDto(options);\n case \"update-dto\":\n return classValidatorDtoGenerator.generateUpdateDto(options);\n case \"dto\":\n return classValidatorDtoGenerator.generateBaseDto(options);\n case \"query-dto\":\n return classValidatorDtoGenerator.generateQueryDto(options);\n\n case \"prisma-model\":\n return prismaSchemaParser.generatePrismaModel(options);\n\n case \"login-schema\":\n return zodSchemaGenerator.generateLoginSchema(options);\n case \"signup-schema\":\n return zodSchemaGenerator.generateSignupSchema(options);\n case \"update-me-schema\":\n return zodSchemaGenerator.generateUpdateMeSchema(options);\n case \"update-password-schema\":\n return zodSchemaGenerator.generateUpdatePasswordSchema(options);\n case \"login-dto\":\n return classValidatorDtoGenerator.generateLoginDto(options);\n case \"signup-dto\":\n return classValidatorDtoGenerator.generateSignupDto(options);\n case \"update-me-dto\":\n return classValidatorDtoGenerator.generateUpdateMeDto(options);\n case \"update-password-dto\":\n return classValidatorDtoGenerator.generateUpdatePasswordDto(options);\n\n default:\n throw new Error(`Unknown template type: ${type}`);\n }\n}\n"]}
1
+ {"version":3,"file":"template-generators.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/template-generators.ts"],"names":[],"mappings":"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","sourcesContent":["import { generateControllerTemplate } from \"./template-generator/templates/generate-controller-template\";\nimport { generateRouterTemplate } from \"./template-generator/templates/router-template\";\nimport { generateServiceTemplate } from \"./template-generator/templates/service-template\";\nimport classValidatorDtoGenerator from \"./template-generator/templates/class-validator-dto-generator\";\nimport zodSchemaGenerator from \"./template-generator/templates/zod-schema-generator\";\nimport prismaSchemaParser from \"../../prisma/prisma-schema-parser\";\nimport { generatePolicyTemplate } from \"./template-generator/templates/policy-template\";\nimport { getArkosConfig } from \"../../../server\";\n\ninterface ModelName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\ninterface MiddlewareName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\nexport interface TemplateOptions {\n modelName: ModelName;\n middlewareName?: MiddlewareName;\n imports?: Record<string, string>;\n}\n\nexport function generateTemplate(\n type: string,\n options: TemplateOptions\n): string {\n const { validation } = getArkosConfig()\n const resolver = validation?.resolver ?? \"zod\"\n\n switch (type) {\n case \"controller\":\n return generateControllerTemplate(options);\n case \"service\":\n return generateServiceTemplate(options);\n case \"router\":\n return generateRouterTemplate(options);\n case \"policy\":\n return generatePolicyTemplate(options);\n\n case \"create-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateCreateDto(options)\n : zodSchemaGenerator.generateCreateSchema(options);\n case \"update-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdateDto(options)\n : zodSchemaGenerator.generateUpdateSchema(options);\n case \"dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateBaseDto(options)\n : zodSchemaGenerator.generateBaseSchema(options);\n case \"query-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateQueryDto(options)\n : zodSchemaGenerator.generateQuerySchema(options);\n\n case \"prisma-model\":\n return prismaSchemaParser.generatePrismaModel(options);\n\n case \"login-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateLoginDto(options)\n : zodSchemaGenerator.generateLoginSchema(options);\n case \"signup-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateSignupDto(options)\n : zodSchemaGenerator.generateSignupSchema(options);\n case \"update-me-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdateMeDto(options)\n : zodSchemaGenerator.generateUpdateMeSchema(options);\n case \"update-password-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdatePasswordDto(options)\n : zodSchemaGenerator.generateUpdatePasswordSchema(options);\n\n default:\n throw new Error(`Unknown template type: ${type}`);\n }\n}\n"]}
@@ -264,27 +264,28 @@ export class PrismaJsonSchemaGenerator {
264
264
  continue;
265
265
  if (this.isModelRelation(field.type) && field.isArray)
266
266
  continue;
267
- if (this.isModelRelation(field.type) && !field.isArray) {
268
- const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
269
- if (referencedModel) {
270
- const refField = field.foreignReferenceField || "id";
271
- const refFieldDef = referencedModel.fields.find((f) => f.name === refField);
272
- parameters.push({
273
- name: field.name,
274
- in: "query",
275
- description: `Filter by ${field.name} (matches on ${refField})`,
276
- schema: {
277
- type: "object",
278
- properties: {
279
- [refField]: {
280
- type: this.mapPrismaTypeToJsonSchema(refFieldDef?.type || "String"),
267
+ if (field.type === "Profile")
268
+ if (this.isModelRelation(field.type) && !field.isArray) {
269
+ const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
270
+ if (referencedModel) {
271
+ const refField = field.foreignReferenceField || "id";
272
+ const refFieldDef = referencedModel.fields.find((f) => f.name === refField);
273
+ parameters.push({
274
+ name: field.name,
275
+ in: "query",
276
+ description: `Filter by ${field.name} (matches on ${refField})`,
277
+ schema: {
278
+ type: "object",
279
+ properties: {
280
+ [refField]: {
281
+ type: this.mapPrismaTypeToJsonSchema(refFieldDef?.type || "String"),
282
+ },
281
283
  },
282
284
  },
283
- },
284
- });
285
+ });
286
+ }
287
+ continue;
285
288
  }
286
- continue;
287
- }
288
289
  if (this.isEnum(field.type)) {
289
290
  const enumDef = this.schema.enums.find((e) => e.name === field.type);
290
291
  parameters.push({
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-json-schema-generator.js","sourceRoot":"","sources":["../../../../src/utils/prisma/prisma-json-schema-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"./prisma-schema-parser\";\nimport {\n PrismaModel,\n PrismaField,\n JsonSchema,\n JsonSchemaProperty,\n} from \"./types\";\nimport { OperationByModule } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosModuleType } from \"../../components/arkos-route-hook/types\";\n\nexport interface SchemaGenerationConfig<T extends ArkosModuleType> {\n modelName: T;\n schemasToGenerate?: OperationByModule<T>[];\n}\n\nexport interface GeneratedSchemas {\n [key: string]: JsonSchema;\n}\n\n/**\n * Enhanced JSON Schema generator that creates schemas based on Prisma models and query options\n */\nexport class PrismaJsonSchemaGenerator {\n schema = prismaSchemaParser.parse();\n private isCompositeType(typeName: string): boolean {\n return prismaSchemaParser.compositeTypes.some((t) => t.name === typeName);\n }\n generateCreateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n const restrictedFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n if (model.name.toLowerCase() === \"auth\")\n restrictedFields.push(\n \"roles\",\n \"role\",\n \"isActive\",\n \"isStaff\",\n \"isSuperUser\",\n \"passwordChangedAt\",\n \"deletedSelfAccountAt\",\n \"lastLoginAt\"\n );\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || restrictedFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n\n if (!field.isOptional && field.defaultValue === undefined)\n required.push(field.name);\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional, no default, and not array\n if (\n !field.isOptional &&\n field.defaultValue === undefined &&\n !field.isArray\n ) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n generateUpdateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const autoFillFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || autoFillFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n }\n\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n }\n\n return {\n type: \"object\",\n properties,\n required: [], // All fields are optional in update\n };\n }\n\n /**\n * Generate response schema (includes nested relations based on query options)\n */\n generateResponseSchema(\n model: PrismaModel,\n options: Record<string, any>\n ): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Get select and include options\n const selectFields = options?.select;\n const omittedFields = options?.omit;\n const includeRelations = options?.include;\n\n if (selectFields && includeRelations) {\n throw new Error(\n `Found both 'select' and 'include' in ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name === \"password\") continue;\n\n // Skip ommited fields\n if (omittedFields && omittedFields[field.name]) continue;\n\n // If select is specified, only include selected fields\n if (selectFields && !selectFields[field.name]) continue;\n\n // Handle relations\n if (this.isModelRelation(field.type)) {\n // Include relation if specified in include option\n if (\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n\n if (relationModel) {\n const relationSchema = this.generateNestedRelationSchema(\n relationModel,\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: relationSchema }\n : relationSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional (for response schemas, we include all by default)\n if (!field.isOptional) required.push(field.name);\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n /**\n * Generate nested relation schema\n */\n private generateNestedRelationSchema(\n model: PrismaModel,\n includeOptions: any\n ): JsonSchemaProperty {\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Handle nested select\n const selectFields = includeOptions?.select;\n const nestedIncludes = includeOptions?.include;\n const ommittedFields = includeOptions?.omit;\n\n if (selectFields && nestedIncludes) {\n throw new Error(\n `Found both 'select' and 'include' in nested ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name.toLowerCase().includes(\"password\")) {\n continue;\n }\n\n if (selectFields && !selectFields[field.name]) {\n continue;\n }\n\n if (this.isModelRelation(field.type)) {\n if (\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n if (relationModel) {\n const nestedSchema = this.generateNestedRelationSchema(\n relationModel,\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: nestedSchema }\n : nestedSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n if (!field.isOptional) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n private isModelRelation(typeName: string): boolean {\n return this.schema.models.some((m) => m.name === typeName);\n }\n\n private convertFieldToJsonSchema(field: PrismaField): JsonSchemaProperty {\n // Reuse the existing method from the original generator\n const baseType = this.mapPrismaTypeToJsonSchema(field.type);\n const property: JsonSchemaProperty = { type: baseType };\n\n if (this.isCompositeType(field.type)) {\n const compositeType = prismaSchemaParser.compositeTypes.find(\n (t) => t.name === field.type\n )!;\n const nestedProperties: { [key: string]: JsonSchemaProperty } = {};\n for (const nestedField of compositeType?.fields) {\n nestedProperties[nestedField.name] =\n this.convertFieldToJsonSchema(nestedField);\n }\n if (field.isArray) {\n return {\n type: \"array\",\n items: { type: \"object\", properties: nestedProperties },\n };\n }\n return { type: \"object\", properties: nestedProperties };\n }\n\n if (field.isArray) {\n property.type = \"array\";\n property.items = { type: this.mapPrismaTypeToJsonSchema(field.type) };\n }\n\n if (field.defaultValue !== undefined) {\n property.default = field.defaultValue;\n }\n\n if (field.type === \"DateTime\") {\n property.format = \"date-time\";\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n if (enumDef) {\n property.enum = enumDef.values;\n }\n }\n\n return property;\n }\n\n private mapPrismaTypeToJsonSchema(prismaType: string): string {\n const typeMap: { [key: string]: string } = {\n String: \"string\",\n Int: \"number\",\n Float: \"number\",\n Boolean: \"boolean\",\n DateTime: \"string\",\n Json: \"object\",\n Bytes: \"string\",\n };\n\n if (typeMap[prismaType]) return typeMap[prismaType];\n\n if (this.isEnum(prismaType)) return \"string\";\n\n if (this.isModelRelation(prismaType)) return \"object\";\n\n if (this.isCompositeType(prismaType)) return \"object\";\n\n return \"string\";\n }\n\n private isEnum(typeName: string): boolean {\n return this.schema.enums.some((e) => e.name === typeName);\n }\n\n /**\n * Generate OpenAPI query filter parameters from scalar model fields.\n * Mirrors the logic from ZodSchemaGenerator.generateQuerySchema.\n */\n generateQueryFilterParameters(\n model: PrismaModel,\n options?: { modelFieldsOnly?: boolean }\n ) {\n const parameters: any[] = [];\n const restrictedFields = [\"id\", \"password\"];\n\n if (options?.modelFieldsOnly !== true)\n parameters.push(\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: { type: \"integer\", minimum: 1 },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: { type: \"integer\", minimum: 1, maximum: 100 },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: { type: \"string\" },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: { type: \"string\" },\n }\n );\n\n for (const field of model?.fields) {\n if (restrictedFields.includes(field.name)) continue;\n\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n if (isForeignKey) continue;\n\n if (this.isModelRelation(field.type) && field.isArray) continue;\n\n if (this.isModelRelation(field.type) && !field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n if (referencedModel) {\n const refField = field.foreignReferenceField || \"id\";\n const refFieldDef = referencedModel.fields.find(\n (f) => f.name === refField\n );\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name} (matches on ${refField})`,\n schema: {\n type: \"object\",\n properties: {\n [refField]: {\n type: this.mapPrismaTypeToJsonSchema(\n refFieldDef?.type || \"String\"\n ),\n },\n },\n },\n });\n }\n continue;\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"string\", enum: enumDef?.values },\n });\n continue;\n }\n\n if (field.type === \"Boolean\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"boolean\" },\n });\n continue;\n }\n\n if (field.type === \"String\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n icontains: { type: \"string\" },\n },\n },\n });\n continue;\n }\n\n if ([\"Int\", \"Float\", \"Decimal\", \"BigInt\"].includes(field.type)) {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"number\" },\n gte: { type: \"number\" },\n lte: { type: \"number\" },\n },\n },\n });\n continue;\n }\n\n if (field.type === \"DateTime\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"string\", format: \"date-time\" },\n gte: { type: \"string\", format: \"date-time\" },\n lte: { type: \"string\", format: \"date-time\" },\n },\n },\n });\n continue;\n }\n }\n\n return parameters || [];\n }\n}\n\nconst prismaJsonSchemaGenerator = new PrismaJsonSchemaGenerator();\n\nexport default prismaJsonSchemaGenerator;\n"]}
1
+ {"version":3,"file":"prisma-json-schema-generator.js","sourceRoot":"","sources":["../../../../src/utils/prisma/prisma-json-schema-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"./prisma-schema-parser\";\nimport {\n PrismaModel,\n PrismaField,\n JsonSchema,\n JsonSchemaProperty,\n} from \"./types\";\nimport { OperationByModule } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosModuleType } from \"../../components/arkos-route-hook/types\";\n\nexport interface SchemaGenerationConfig<T extends ArkosModuleType> {\n modelName: T;\n schemasToGenerate?: OperationByModule<T>[];\n}\n\nexport interface GeneratedSchemas {\n [key: string]: JsonSchema;\n}\n\n/**\n * Enhanced JSON Schema generator that creates schemas based on Prisma models and query options\n */\nexport class PrismaJsonSchemaGenerator {\n schema = prismaSchemaParser.parse();\n private isCompositeType(typeName: string): boolean {\n return prismaSchemaParser.compositeTypes.some((t) => t.name === typeName);\n }\n generateCreateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n const restrictedFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n if (model.name.toLowerCase() === \"auth\")\n restrictedFields.push(\n \"roles\",\n \"role\",\n \"isActive\",\n \"isStaff\",\n \"isSuperUser\",\n \"passwordChangedAt\",\n \"deletedSelfAccountAt\",\n \"lastLoginAt\"\n );\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || restrictedFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n\n if (!field.isOptional && field.defaultValue === undefined)\n required.push(field.name);\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional, no default, and not array\n if (\n !field.isOptional &&\n field.defaultValue === undefined &&\n !field.isArray\n ) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n generateUpdateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const autoFillFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || autoFillFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n }\n\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n }\n\n return {\n type: \"object\",\n properties,\n required: [], // All fields are optional in update\n };\n }\n\n /**\n * Generate response schema (includes nested relations based on query options)\n */\n generateResponseSchema(\n model: PrismaModel,\n options: Record<string, any>\n ): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Get select and include options\n const selectFields = options?.select;\n const omittedFields = options?.omit;\n const includeRelations = options?.include;\n\n if (selectFields && includeRelations) {\n throw new Error(\n `Found both 'select' and 'include' in ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name === \"password\") continue;\n\n // Skip ommited fields\n if (omittedFields && omittedFields[field.name]) continue;\n\n // If select is specified, only include selected fields\n if (selectFields && !selectFields[field.name]) continue;\n\n // Handle relations\n if (this.isModelRelation(field.type)) {\n // Include relation if specified in include option\n if (\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n\n if (relationModel) {\n const relationSchema = this.generateNestedRelationSchema(\n relationModel,\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: relationSchema }\n : relationSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional (for response schemas, we include all by default)\n if (!field.isOptional) required.push(field.name);\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n /**\n * Generate nested relation schema\n */\n private generateNestedRelationSchema(\n model: PrismaModel,\n includeOptions: any\n ): JsonSchemaProperty {\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Handle nested select\n const selectFields = includeOptions?.select;\n const nestedIncludes = includeOptions?.include;\n const ommittedFields = includeOptions?.omit;\n\n if (selectFields && nestedIncludes) {\n throw new Error(\n `Found both 'select' and 'include' in nested ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name.toLowerCase().includes(\"password\")) {\n continue;\n }\n\n if (selectFields && !selectFields[field.name]) {\n continue;\n }\n\n if (this.isModelRelation(field.type)) {\n if (\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n if (relationModel) {\n const nestedSchema = this.generateNestedRelationSchema(\n relationModel,\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: nestedSchema }\n : nestedSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n if (!field.isOptional) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n private isModelRelation(typeName: string): boolean {\n return this.schema.models.some((m) => m.name === typeName);\n }\n\n private convertFieldToJsonSchema(field: PrismaField): JsonSchemaProperty {\n // Reuse the existing method from the original generator\n const baseType = this.mapPrismaTypeToJsonSchema(field.type);\n const property: JsonSchemaProperty = { type: baseType };\n\n if (this.isCompositeType(field.type)) {\n const compositeType = prismaSchemaParser.compositeTypes.find(\n (t) => t.name === field.type\n )!;\n const nestedProperties: { [key: string]: JsonSchemaProperty } = {};\n for (const nestedField of compositeType?.fields) {\n nestedProperties[nestedField.name] =\n this.convertFieldToJsonSchema(nestedField);\n }\n if (field.isArray) {\n return {\n type: \"array\",\n items: { type: \"object\", properties: nestedProperties },\n };\n }\n return { type: \"object\", properties: nestedProperties };\n }\n\n if (field.isArray) {\n property.type = \"array\";\n property.items = { type: this.mapPrismaTypeToJsonSchema(field.type) };\n }\n\n if (field.defaultValue !== undefined) {\n property.default = field.defaultValue;\n }\n\n if (field.type === \"DateTime\") {\n property.format = \"date-time\";\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n if (enumDef) {\n property.enum = enumDef.values;\n }\n }\n\n return property;\n }\n\n private mapPrismaTypeToJsonSchema(prismaType: string): string {\n const typeMap: { [key: string]: string } = {\n String: \"string\",\n Int: \"number\",\n Float: \"number\",\n Boolean: \"boolean\",\n DateTime: \"string\",\n Json: \"object\",\n Bytes: \"string\",\n };\n\n if (typeMap[prismaType]) return typeMap[prismaType];\n\n if (this.isEnum(prismaType)) return \"string\";\n\n if (this.isModelRelation(prismaType)) return \"object\";\n\n if (this.isCompositeType(prismaType)) return \"object\";\n\n return \"string\";\n }\n\n private isEnum(typeName: string): boolean {\n return this.schema.enums.some((e) => e.name === typeName);\n }\n\n /**\n * Generate OpenAPI query filter parameters from scalar model fields.\n * Mirrors the logic from ZodSchemaGenerator.generateQuerySchema.\n */\n generateQueryFilterParameters(\n model: PrismaModel,\n options?: { modelFieldsOnly?: boolean }\n ) {\n const parameters: any[] = [];\n const restrictedFields = [\"id\", \"password\"];\n\n if (options?.modelFieldsOnly !== true)\n parameters.push(\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: { type: \"integer\", minimum: 1 },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: { type: \"integer\", minimum: 1, maximum: 100 },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: { type: \"string\" },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: { type: \"string\" },\n }\n );\n\n for (const field of model?.fields) {\n if (restrictedFields.includes(field.name)) continue;\n\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n if (isForeignKey) continue;\n\n if (this.isModelRelation(field.type) && field.isArray) continue;\n\n if (field.type === \"Profile\")\n if (this.isModelRelation(field.type) && !field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n if (referencedModel) {\n const refField = field.foreignReferenceField || \"id\";\n const refFieldDef = referencedModel.fields.find(\n (f) => f.name === refField\n );\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name} (matches on ${refField})`,\n schema: {\n type: \"object\",\n properties: {\n [refField]: {\n type: this.mapPrismaTypeToJsonSchema(\n refFieldDef?.type || \"String\"\n ),\n },\n },\n },\n });\n }\n continue;\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"string\", enum: enumDef?.values },\n });\n continue;\n }\n\n if (field.type === \"Boolean\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"boolean\" },\n });\n continue;\n }\n\n if (field.type === \"String\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n icontains: { type: \"string\" },\n },\n },\n });\n continue;\n }\n\n if ([\"Int\", \"Float\", \"Decimal\", \"BigInt\"].includes(field.type)) {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"number\" },\n gte: { type: \"number\" },\n lte: { type: \"number\" },\n },\n },\n });\n continue;\n }\n\n if (field.type === \"DateTime\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"string\", format: \"date-time\" },\n gte: { type: \"string\", format: \"date-time\" },\n lte: { type: \"string\", format: \"date-time\" },\n },\n },\n });\n continue;\n }\n }\n\n return parameters || [];\n }\n}\n\nconst prismaJsonSchemaGenerator = new PrismaJsonSchemaGenerator();\n\nexport default prismaJsonSchemaGenerator;\n"]}
@@ -3,6 +3,9 @@ import express from "express";
3
3
  import { Arkos } from "./types/arkos";
4
4
  import { IncomingMessage, Server, ServerResponse } from "http";
5
5
  export declare const app: express.Express;
6
+ export declare const docsLink = "https://www.arkosjs.com/docs/core-concepts/routing/setup#setting-up-your-app";
7
+ type AppState = "idle" | "building" | "built" | "listening";
8
+ export declare let state: AppState;
6
9
  /**
7
10
  * Creates and configures an Arkos application instance.
8
11
  *
@@ -43,3 +46,4 @@ export declare const app: express.Express;
43
46
  */
44
47
  export declare function arkos(): Arkos;
45
48
  export declare function getAppServer(): Server<typeof IncomingMessage, typeof ServerResponse>;
49
+ export {};
@@ -1,3 +1,4 @@
1
+ import { ArkosPrismaService } from "../../exports/services";
1
2
  import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
2
3
  /**
3
4
  * Creates an interceptor for a built-in Arkos module or a generated model route.
@@ -22,4 +23,9 @@ import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
22
23
  * ```
23
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 instace for such model
29
+ */
30
+ service?: ArkosPrismaService<T>;
31
+ }): ArkosRouteHookReturn<T>;
@@ -1,6 +1,6 @@
1
1
  import { ArkosModuleType, ArkosRouteHookHooks, ArkosRouteHookMethodConfig, ArkosRouteHookInstance, ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance } from "./types";
2
2
  import { ArkosRequestHandler, ArkosRouteConfig } from "../../exports";
3
- type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "service">;
3
+ type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "_configs">;
4
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" | "service"> : PrismaOperations;
5
5
  /**
6
6
  * Reader for `ArkosRouteHook` instances.
@@ -16,7 +16,7 @@ type PrismaQueryFor<TModel extends string, TOp extends string> = TModel extends
16
16
  /**
17
17
  * Full config for an interceptor method — inherits all ArkosRouteConfig options
18
18
  * (validation, auth, rate limiting, etc.) minus `path`, plus lifecycle hooks,
19
- * 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.
20
20
  */
21
21
  export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp extends string = string> = Omit<ArkosRouteConfig, "path"> & ArkosRouteHookHooks & {
22
22
  /**
@@ -24,10 +24,6 @@ export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp exten
24
24
  * Typed against the model's actual Prisma args for this operation.
25
25
  */
26
26
  prismaArgs?: PrismaQueryFor<TModel, TOp>;
27
- /**
28
- * ArkosPrismaService instace for such model
29
- */
30
- service?: ArkosPrismaService<TModel>;
31
27
  };
32
28
  /**
33
29
  * Union of all valid module name types for ArkosRouteHook.
@@ -42,7 +38,9 @@ export type ArkosModuleType = "auth" | "file-upload" | Models;
42
38
  export interface ArkosRouteHookInstance<TModel extends Models> {
43
39
  readonly __type: "ArkosRouteHook";
44
40
  readonly moduleName: TModel;
45
- readonly service?: ArkosPrismaService;
41
+ readonly _configs: {
42
+ readonly service?: ArkosPrismaService;
43
+ };
46
44
  createOne(config: ArkosRouteHookMethodConfig<TModel, "CreateArgs">): this;
47
45
  findOne(config: ArkosRouteHookMethodConfig<TModel, "FindFirstArgs">): this;
48
46
  findMany(config: ArkosRouteHookMethodConfig<TModel, "FindManyArgs">): this;
@@ -9,12 +9,11 @@ import { ArkosConfig } from "../types/new-arkos-config";
9
9
  import { loadEnvironmentVariables } from "../utils/dotenv.helpers";
10
10
  import { arkos } from "../app";
11
11
  import { ArkosRouteHook } from "../components/arkos-route-hook";
12
- import { ArkosServiceHook } from "../components/arkos-service-hook";
13
12
  import { ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
14
13
  import { ArkosPolicy } from "../components/arkos-policy";
15
14
  import { IArkosPolicy } from "../components/arkos-policy/types";
16
15
  import type { ArkosLoadable } from "../types/arkos";
17
16
  import { ArkosFile } from "../types/upload";
18
17
  import { isProduction } from "../utils/helpers/arkos-config.helpers";
19
- export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, RouterConfig, RouteHook, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosServiceHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, ArkosFile, isProduction, };
18
+ export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, RouterConfig, RouteHook, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, ArkosFile, isProduction, };
20
19
  export = arkos;
@@ -4,7 +4,7 @@ import authService, { AuthService } from "../../modules/auth/auth.service";
4
4
  import emailService, { EmailService } from "../../modules/email/email.service";
5
5
  import { ArkosPrismaService } from "../../modules/base/base.service";
6
6
  import authActionService from "../../modules/auth/utils/services/auth-action.service";
7
- import { ServiceHookContext, BeforeCreateOneHookArgs, AfterCreateOneHookArgs, BeforeCreateManyHookArgs, AfterCreateManyHookArgs, BeforeCountHookArgs, AfterCountHookArgs, BeforeFindManyHookArgs, AfterFindManyHookArgs, BeforeFindOneHookArgs, AfterFindOneHookArgs, BeforeUpdateOneHookArgs, AfterUpdateOneHookArgs, BeforeUpdateManyHookArgs, AfterUpdateManyHookArgs, BeforeDeleteOneHookArgs, AfterDeleteOneHookArgs, BeforeDeleteManyHookArgs, AfterDeleteManyHookArgs, OnCreateOneErrorHookArgs, OnCreateManyErrorHookArgs, OnCountErrorHookArgs, OnFindManyErrorHookArgs, OnFindByIdErrorHookArgs, OnFindOneErrorHookArgs, OnUpdateOneErrorHookArgs, OnUpdateManyErrorHookArgs, OnDeleteOneErrorHookArgs, OnDeleteManyErrorHookArgs } from "../../components/arkos-service-hook/types";
7
+ import { ServiceHookContext } from "../../modules/base/types/base.service.types";
8
8
  /**
9
9
  * Authentication service.
10
10
  */
@@ -12,7 +12,7 @@ export { authService, AuthService, authActionService };
12
12
  /**
13
13
  * Base service.
14
14
  */
15
- export { ArkosPrismaService, ServiceHookContext, BeforeCreateOneHookArgs, AfterCreateOneHookArgs, BeforeCreateManyHookArgs, AfterCreateManyHookArgs, BeforeCountHookArgs, AfterCountHookArgs, BeforeFindManyHookArgs, AfterFindManyHookArgs, BeforeFindOneHookArgs, AfterFindOneHookArgs, BeforeUpdateOneHookArgs, AfterUpdateOneHookArgs, BeforeUpdateManyHookArgs, AfterUpdateManyHookArgs, BeforeDeleteOneHookArgs, AfterDeleteOneHookArgs, BeforeDeleteManyHookArgs, AfterDeleteManyHookArgs, OnCreateOneErrorHookArgs, OnCreateManyErrorHookArgs, OnCountErrorHookArgs, OnFindManyErrorHookArgs, OnFindByIdErrorHookArgs, OnFindOneErrorHookArgs, OnUpdateOneErrorHookArgs, OnUpdateManyErrorHookArgs, OnDeleteOneErrorHookArgs, OnDeleteManyErrorHookArgs, };
15
+ export { ArkosPrismaService, ServiceHookContext, };
16
16
  /**
17
17
  * Email service.
18
18
  */
@@ -1,13 +1,7 @@
1
1
  import { ModelGroupRelationFields } from "./utils/helpers/base.service.helpers";
2
2
  import { PrismaClient } from "../../generated";
3
3
  import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from "./types/base.service.types";
4
- import { ServiceHookContext } from "../../components/arkos-service-hook/types";
5
- export interface ServiceOperationHooks {
6
- beforeOperation?: (params: any) => void | Promise<void>;
7
- afterOperation?: (result: any, params: any) => void | Promise<void>;
8
- beforePrisma?: (prismaArgs: any, params: any) => any | Promise<any>;
9
- afterPrisma?: (result: any, params: any) => any | Promise<any>;
10
- }
4
+ import { ServiceHookContext } from "./types/base.service.types";
11
5
  /**
12
6
  * Base service class for handling CRUD operations on a specific model.
13
7
  * This class provides standard implementation of data operations that can be extended
@@ -35,7 +29,6 @@ export declare class ArkosPrismaService<TModelName extends keyof Models = keyof
35
29
  get prisma(): PrismaClient;
36
30
  private executeOperation;
37
31
  private executeTransactionOperation;
38
- private buildHookParams;
39
32
  private handlePasswordHashing;
40
33
  private processRelationFieldsInBody;
41
34
  private buildPrismaArgs;
@@ -1,5 +1,16 @@
1
1
  import { ExtractPrismaData, ExtractPrismaFilters, ExtractPrismaQueryOptions, PrismaModels } from "../../../generated";
2
+ import { User } from "../../../types";
2
3
  export type Models = PrismaModels<any>;
4
+ export interface ServiceHookContext {
5
+ /**
6
+ * The authenticated user making the request.
7
+ */
8
+ user?: User;
9
+ /**
10
+ * The access token from the request for authorization.
11
+ */
12
+ accessToken?: string;
13
+ }
3
14
  export type Delegate<TModelName extends keyof Models> = Models[TModelName]["Delegate"];
4
15
  export type CreateData<TModelName extends keyof Models> = ExtractPrismaData<Models[TModelName]["CreateArgs"]>;
5
16
  export type CreateOptions<TModelName extends keyof Models> = ExtractPrismaQueryOptions<Models[TModelName]["CreateArgs"], "data">;
@@ -1,7 +1,6 @@
1
1
  import { Express } from "express";
2
2
  import { IncomingMessage, Server, ServerResponse } from "http";
3
3
  import { ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance, ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
4
- import { ArkosServiceHookInstance } from "../components/arkos-service-hook/types";
5
4
  import { IArkosRouter } from "../exports";
6
5
  type ArkosRouterMethods = "get" | "post" | "put" | "patch" | "delete" | "options" | "head" | "all" | "use" | "trace" | "route" | "use" | "load";
7
6
  /**
@@ -75,5 +74,5 @@ export interface Arkos extends Omit<Express, "listen" | ArkosRouterMethods>, Pic
75
74
  * Union of all valid types that can be passed to `app.load()`.
76
75
  * Grows as new Arkos-specific loadable types are introduced.
77
76
  */
78
- export type ArkosLoadable = ArkosRouteHookInstance<any> | ArkosAuthRouteHookInstance | ArkosFileUploadRouteHookInstance | ArkosServiceHookInstance<any, any>;
77
+ export type ArkosLoadable = ArkosRouteHookInstance<any> | ArkosAuthRouteHookInstance | ArkosFileUploadRouteHookInstance;
79
78
  export {};
@@ -10,26 +10,27 @@ export type GenerateOptions = {
10
10
  shouldPrintError?: boolean;
11
11
  isBulk?: boolean;
12
12
  };
13
+ export interface GenerateConfig {
14
+ templateName: string;
15
+ fileSuffix?: string;
16
+ customValidation?: (modelName: string) => void;
17
+ customImports?: (names: any) => any;
18
+ customPath?: string;
19
+ prefix?: string;
20
+ allowedModules: string[] | "*";
21
+ ext?: string;
22
+ attachModuleName?: boolean;
23
+ }
13
24
  export declare const generateCommand: {
14
25
  controller: (options: GenerateOptions) => Promise<void>;
15
26
  service: (options: GenerateOptions) => Promise<void>;
16
27
  router: (options: GenerateOptions) => Promise<void>;
17
28
  policy: (options: GenerateOptions) => Promise<void>;
18
- routeHook: (options: GenerateOptions) => Promise<void>;
19
- serviceHook: (options: GenerateOptions) => Promise<void>;
20
- createSchema: (options: GenerateOptions) => Promise<void>;
21
- updateSchema: (options: GenerateOptions) => Promise<void>;
22
- baseSchema: (options: GenerateOptions) => Promise<void>;
23
- querySchema: (options: GenerateOptions) => Promise<void>;
24
29
  createDto: (options: GenerateOptions) => Promise<void>;
25
30
  updateDto: (options: GenerateOptions) => Promise<void>;
26
31
  baseDto: (options: GenerateOptions) => Promise<void>;
27
32
  queryDto: (options: GenerateOptions) => Promise<void>;
28
33
  prismaModel: (options: GenerateOptions) => Promise<void>;
29
- loginSchema: (options: GenerateOptions) => Promise<void>;
30
- signupSchema: (options: GenerateOptions) => Promise<void>;
31
- updateMeSchema: (options: GenerateOptions) => Promise<void>;
32
- updatePasswordSchema: (options: GenerateOptions) => Promise<void>;
33
34
  loginDto: (options: GenerateOptions) => Promise<void>;
34
35
  signupDto: (options: GenerateOptions) => Promise<void>;
35
36
  updateMeDto: (options: GenerateOptions) => Promise<void>;
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "arkos",
3
- "version": "2.0.0-next.17",
3
+ "version": "2.0.0-next.18",
4
4
  "description": "The Express & Prisma RESTful Framework",
5
- "main": "dist/cjs/exports/index.js",
5
+ "main": "dist/esm/exports/index.js",
6
6
  "module": "dist/esm/exports/index.js",
7
7
  "types": "dist/types/exports/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/types/exports/index.d.ts",
11
11
  "import": "./dist/esm/exports/index.js",
12
- "require": "./dist/cjs/exports/index.js"
12
+ "require": "./dist/esm/exports/index.js"
13
13
  },
14
14
  "./types": {
15
15
  "types": "./dist/types/exports/index.d.ts",
@@ -19,61 +19,61 @@
19
19
  "./prisma": {
20
20
  "types": "./dist/types/exports/prisma/index.d.ts",
21
21
  "import": "./dist/esm/exports/prisma/index.js",
22
- "require": "./dist/cjs/exports/prisma/index.js"
22
+ "require": "./dist/esm/exports/prisma/index.js"
23
23
  },
24
24
  "./auth": {
25
25
  "types": "./dist/types/exports/auth/index.d.ts",
26
26
  "import": "./dist/esm/exports/auth/index.js",
27
- "require": "./dist/cjs/exports/auth/index.js"
27
+ "require": "./dist/esm/exports/auth/index.js"
28
28
  },
29
29
  "./services": {
30
30
  "types": "./dist/types/exports/services/index.d.ts",
31
31
  "import": "./dist/esm/exports/services/index.js",
32
- "require": "./dist/cjs/exports/services/index.js"
32
+ "require": "./dist/esm/exports/services/index.js"
33
33
  },
34
34
  "./controllers": {
35
35
  "types": "./dist/types/exports/controllers/index.d.ts",
36
36
  "import": "./dist/esm/exports/controllers/index.js",
37
- "require": "./dist/cjs/exports/controllers/index.js"
37
+ "require": "./dist/esm/exports/controllers/index.js"
38
38
  },
39
39
  "./middlewares": {
40
40
  "types": "./dist/types/exports/middlewares/index.d.ts",
41
41
  "import": "./dist/esm/exports/middlewares/index.js",
42
- "require": "./dist/cjs/exports/middlewares/index.js"
42
+ "require": "./dist/esm/exports/middlewares/index.js"
43
43
  },
44
44
  "./validation": {
45
45
  "types": "./dist/types/exports/validation/index.d.ts",
46
46
  "import": "./dist/esm/exports/validation/index.js",
47
- "require": "./dist/cjs/exports/validation/index.js"
47
+ "require": "./dist/esm/exports/validation/index.js"
48
48
  },
49
49
  "./error-handler": {
50
50
  "types": "./dist/types/exports/error-handler/index.d.ts",
51
51
  "import": "./dist/esm/exports/error-handler/index.js",
52
- "require": "./dist/cjs/exports/error-handler/index.js"
52
+ "require": "./dist/esm/exports/error-handler/index.js"
53
53
  },
54
54
  "./websockets": {
55
55
  "types": "./dist/types/exports/websockets.d.ts",
56
56
  "import": "./dist/esm/exports/websockets.js",
57
- "require": "./dist/cjs/exports/websockets.js"
57
+ "require": "./dist/esm/exports/websockets.js"
58
58
  },
59
59
  "./utils": {
60
60
  "types": "./dist/types/exports/utils/index.d.ts",
61
61
  "import": "./dist/esm/exports/utils/index.js",
62
- "require": "./dist/cjs/exports/utils/index.js"
62
+ "require": "./dist/esm/exports/utils/index.js"
63
63
  },
64
64
  "./config": {
65
65
  "types": "./dist/types/exports/config.d.ts",
66
66
  "import": "./dist/esm/exports/config.js",
67
- "require": "./dist/cjs/exports/config.js"
67
+ "require": "./dist/esm/exports/config.js"
68
68
  },
69
69
  "./cli": {
70
70
  "import": "./dist/esm/utils/cli/index.js",
71
- "require": "./dist/cjs/utils/cli/index.js"
71
+ "require": "./dist/esm/utils/cli/index.js"
72
72
  },
73
73
  "./*": {
74
74
  "types": "./dist/types/exports/*.d.ts",
75
75
  "import": "./dist/esm/exports/*.js",
76
- "require": "./dist/cjs/exports/*.js"
76
+ "require": "./dist/esm/exports/*.js"
77
77
  }
78
78
  },
79
79
  "bin": {
@@ -116,10 +116,8 @@
116
116
  "scripts": {
117
117
  "build:esm": "tsc -p tsconfig.esm.json && npx tsx scripts/fix-esm-imports.ts",
118
118
  "build:types": "tsc -p tsconfig.types.json",
119
- "build:cjs": "tsc -p tsconfig.cjs.json",
120
- "build": "pnpm clean dist && pnpm run build:cjs && pnpm run build:esm && pnpm run build:types && tsx scripts/post-build-scripts.ts",
119
+ "build": "pnpm clean dist && pnpm run build:esm && pnpm run build:types && tsx scripts/post-build-scripts.ts",
121
120
  "buildTsup": "tsup && tsx scripts/post-build-scripts.ts",
122
- "minifyOld": "esbuild dist/cjs/**/*.js --minify --outdir=dist --allow-overwrite --log-limit=0 --define:process.env.NODE_ENV=process.env.NODE_ENV",
123
121
  "minify": "esbuild $(find dist -type f -name '*.js') --minify --outdir=dist --allow-overwrite --log-limit=0 --define:process.env.NODE_ENV=process.env.NODE_ENV",
124
122
  "clean": "tsx scripts/remove-dir-cli.ts",
125
123
  "dev": "tsx --watch",