arkos 1.3.1-beta → 1.3.2-beta

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 (256) hide show
  1. package/dist/cjs/app.js +139 -1
  2. package/dist/cjs/exports/auth/index.js +6 -1
  3. package/dist/cjs/exports/controllers/index.js +11 -1
  4. package/dist/cjs/exports/error-handler/index.js +11 -1
  5. package/dist/cjs/exports/index.js +12 -1
  6. package/dist/cjs/exports/middlewares/index.js +7 -1
  7. package/dist/cjs/exports/prisma/index.js +13 -1
  8. package/dist/cjs/exports/services/index.js +48 -1
  9. package/dist/cjs/exports/utils/index.js +44 -1
  10. package/dist/cjs/exports/validation/index.js +11 -1
  11. package/dist/cjs/modules/auth/auth.controller.js +229 -1
  12. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  13. package/dist/cjs/modules/auth/auth.router.js +82 -1
  14. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  15. package/dist/cjs/modules/auth/auth.service.js +226 -1
  16. package/dist/cjs/modules/auth/utils/auth-error-objects.js +10 -1
  17. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +83 -1
  18. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +92 -1
  19. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  20. package/dist/cjs/modules/base/base.controller.js +172 -1
  21. package/dist/cjs/modules/base/base.middlewares.js +92 -1
  22. package/dist/cjs/modules/base/base.router.js +22 -1
  23. package/dist/cjs/modules/base/base.service.js +507 -1
  24. package/dist/cjs/modules/base/base.service.js.map +1 -1
  25. package/dist/cjs/modules/base/types/base.service.types.js +3 -1
  26. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
  27. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +80 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +50 -1
  29. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +104 -1
  30. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +208 -1
  31. package/dist/cjs/modules/base/utils/router-validator.js +16 -1
  32. package/dist/cjs/modules/base/utils/service-hooks-manager.js +19 -1
  33. package/dist/cjs/modules/email/email.service.js +104 -1
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js +146 -4
  35. package/dist/cjs/modules/error-handler/utils/app-error.js +17 -1
  36. package/dist/cjs/modules/error-handler/utils/catch-async.js +21 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +205 -3
  38. package/dist/cjs/modules/file-upload/file-upload.controller.js +233 -1
  39. package/dist/cjs/modules/file-upload/file-upload.router.js +60 -1
  40. package/dist/cjs/modules/file-upload/file-upload.service.js +322 -1
  41. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +97 -1
  42. package/dist/cjs/modules/swagger/swagger.router.js +38 -1
  43. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +338 -1
  44. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +64 -1
  45. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +37 -1
  46. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +48 -1
  47. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +32 -1
  48. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +49 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +34 -1
  50. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +471 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +572 -1
  52. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +260 -1
  53. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +112 -1
  54. package/dist/cjs/paths.js +9 -1
  55. package/dist/cjs/server.js +94 -5
  56. package/dist/cjs/types/arkos-config.js +3 -1
  57. package/dist/cjs/types/arkos-config.js.map +1 -1
  58. package/dist/cjs/types/auth.js +3 -1
  59. package/dist/cjs/types/index.js +11 -1
  60. package/dist/cjs/types/router-config.js +3 -1
  61. package/dist/cjs/utils/arkos-env.js +9 -1
  62. package/dist/cjs/utils/cli/build.js +214 -5
  63. package/dist/cjs/utils/cli/dev.js +154 -3
  64. package/dist/cjs/utils/cli/generate.js +109 -1
  65. package/dist/cjs/utils/cli/index.js +104 -1
  66. package/dist/cjs/utils/cli/index.js.map +1 -1
  67. package/dist/cjs/utils/cli/prisma-generate.js +120 -0
  68. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -0
  69. package/dist/cjs/utils/cli/start.js +103 -1
  70. package/dist/cjs/utils/cli/utils/cli.helpers.js +24 -1
  71. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +73 -1
  72. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +36 -0
  73. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  74. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js +21 -0
  75. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +201 -0
  77. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  78. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +288 -0
  79. package/dist/cjs/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  80. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +64 -0
  81. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  82. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +45 -0
  83. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  84. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +29 -0
  85. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  86. package/dist/cjs/utils/cli/utils/template-generators.js +34 -2
  87. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  88. package/dist/cjs/utils/cli/utils/watermark-stamper.js +17 -3
  89. package/dist/cjs/utils/dotenv.helpers.js +43 -1
  90. package/dist/cjs/utils/dynamic-loader.js +270 -9
  91. package/dist/cjs/utils/features/api.features.js +169 -1
  92. package/dist/cjs/utils/features/change-case.features.js +67 -1
  93. package/dist/cjs/utils/features/port-and-host-allocator.js +105 -1
  94. package/dist/cjs/utils/helpers/api.features.helpers.js +112 -1
  95. package/dist/cjs/utils/helpers/change-case.helpers.js +177 -1
  96. package/dist/cjs/utils/helpers/deepmerge.helper.js +115 -1
  97. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +76 -1
  98. package/dist/cjs/utils/helpers/fs.helpers.js +57 -1
  99. package/dist/cjs/utils/helpers/global.helpers.js +94 -1
  100. package/dist/cjs/utils/helpers/prisma.helpers.js +40 -1
  101. package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -1
  102. package/dist/cjs/utils/helpers/routers.helpers.js +37 -1
  103. package/dist/cjs/utils/helpers/text.helpers.js +28 -1
  104. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +455 -1
  105. package/dist/cjs/utils/prisma/prisma-schema-parser.js +216 -4
  106. package/dist/cjs/utils/prisma/types.js +3 -1
  107. package/dist/cjs/utils/sheu.js +120 -1
  108. package/dist/cjs/utils/validate-dto.js +17 -1
  109. package/dist/cjs/utils/validate-schema.js +15 -1
  110. package/dist/esm/app.js +132 -1
  111. package/dist/esm/exports/auth/index.js +2 -1
  112. package/dist/esm/exports/controllers/index.js +4 -1
  113. package/dist/esm/exports/error-handler/index.js +4 -1
  114. package/dist/esm/exports/index.js +8 -1
  115. package/dist/esm/exports/middlewares/index.js +2 -1
  116. package/dist/esm/exports/prisma/index.js +6 -1
  117. package/dist/esm/exports/services/index.js +9 -1
  118. package/dist/esm/exports/utils/index.js +4 -1
  119. package/dist/esm/exports/validation/index.js +4 -1
  120. package/dist/esm/modules/auth/auth.controller.js +222 -1
  121. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  122. package/dist/esm/modules/auth/auth.router.js +76 -1
  123. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  124. package/dist/esm/modules/auth/auth.service.js +219 -1
  125. package/dist/esm/modules/auth/utils/auth-error-objects.js +4 -1
  126. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +73 -1
  127. package/dist/esm/modules/auth/utils/services/auth-action.service.js +90 -1
  128. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  129. package/dist/esm/modules/base/base.controller.js +165 -1
  130. package/dist/esm/modules/base/base.middlewares.js +81 -1
  131. package/dist/esm/modules/base/base.router.js +15 -1
  132. package/dist/esm/modules/base/base.service.js +500 -1
  133. package/dist/esm/modules/base/base.service.js.map +1 -1
  134. package/dist/esm/modules/base/types/base.service.types.js +2 -1
  135. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  136. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +76 -1
  137. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +44 -1
  138. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +96 -1
  139. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +198 -1
  140. package/dist/esm/modules/base/utils/router-validator.js +14 -1
  141. package/dist/esm/modules/base/utils/service-hooks-manager.js +17 -1
  142. package/dist/esm/modules/email/email.service.js +97 -1
  143. package/dist/esm/modules/error-handler/error-handler.controller.js +107 -4
  144. package/dist/esm/modules/error-handler/utils/app-error.js +15 -1
  145. package/dist/esm/modules/error-handler/utils/catch-async.js +19 -1
  146. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +163 -3
  147. package/dist/esm/modules/file-upload/file-upload.controller.js +228 -1
  148. package/dist/esm/modules/file-upload/file-upload.router.js +54 -1
  149. package/dist/esm/modules/file-upload/file-upload.service.js +314 -1
  150. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +87 -1
  151. package/dist/esm/modules/swagger/swagger.router.js +32 -1
  152. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +333 -1
  153. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +58 -1
  154. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +34 -1
  155. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +42 -1
  156. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +26 -1
  157. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +46 -1
  158. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +28 -1
  159. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +465 -1
  160. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +566 -1
  161. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +255 -1
  162. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +101 -1
  163. package/dist/esm/paths.js +3 -1
  164. package/dist/esm/server.js +85 -5
  165. package/dist/esm/types/arkos-config.js +2 -1
  166. package/dist/esm/types/arkos-config.js.map +1 -1
  167. package/dist/esm/types/auth.js +2 -1
  168. package/dist/esm/types/index.js +8 -1
  169. package/dist/esm/types/router-config.js +2 -1
  170. package/dist/esm/utils/arkos-env.js +7 -1
  171. package/dist/esm/utils/cli/build.js +208 -5
  172. package/dist/esm/utils/cli/dev.js +147 -3
  173. package/dist/esm/utils/cli/generate.js +103 -1
  174. package/dist/esm/utils/cli/index.js +94 -1
  175. package/dist/esm/utils/cli/index.js.map +1 -1
  176. package/dist/esm/utils/cli/prisma-generate.js +114 -0
  177. package/dist/esm/utils/cli/prisma-generate.js.map +1 -0
  178. package/dist/esm/utils/cli/start.js +96 -1
  179. package/dist/esm/utils/cli/utils/cli.helpers.js +16 -1
  180. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +68 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js +33 -0
  182. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  183. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js +18 -0
  184. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  185. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +198 -0
  186. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  187. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +285 -0
  188. package/dist/esm/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  189. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +61 -0
  190. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  191. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +39 -0
  192. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  193. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +26 -0
  194. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  195. package/dist/esm/utils/cli/utils/template-generators.js +28 -2
  196. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  197. package/dist/esm/utils/cli/utils/watermark-stamper.js +15 -3
  198. package/dist/esm/utils/dotenv.helpers.js +37 -1
  199. package/dist/esm/utils/dynamic-loader.js +254 -9
  200. package/dist/esm/utils/features/api.features.js +162 -1
  201. package/dist/esm/utils/features/change-case.features.js +31 -1
  202. package/dist/esm/utils/features/port-and-host-allocator.js +67 -1
  203. package/dist/esm/utils/helpers/api.features.helpers.js +106 -1
  204. package/dist/esm/utils/helpers/change-case.helpers.js +161 -1
  205. package/dist/esm/utils/helpers/deepmerge.helper.js +113 -1
  206. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +69 -1
  207. package/dist/esm/utils/helpers/fs.helpers.js +48 -1
  208. package/dist/esm/utils/helpers/global.helpers.js +51 -1
  209. package/dist/esm/utils/helpers/prisma.helpers.js +32 -1
  210. package/dist/esm/utils/helpers/query-parser.helpers.js +40 -1
  211. package/dist/esm/utils/helpers/routers.helpers.js +29 -1
  212. package/dist/esm/utils/helpers/text.helpers.js +22 -1
  213. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +448 -1
  214. package/dist/esm/utils/prisma/prisma-schema-parser.js +209 -4
  215. package/dist/esm/utils/prisma/types.js +2 -1
  216. package/dist/esm/utils/sheu.js +118 -1
  217. package/dist/esm/utils/validate-dto.js +11 -1
  218. package/dist/esm/utils/validate-schema.js +9 -1
  219. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -1
  220. package/dist/types/modules/base/types/base.service.types.d.ts +12 -9
  221. package/dist/types/types/arkos-config.d.ts +3 -2
  222. package/dist/types/utils/cli/prisma-generate.d.ts +1 -0
  223. package/package.json +2 -2
  224. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  225. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  226. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  227. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  228. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  229. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  230. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  231. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  232. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  233. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  234. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  235. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  236. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  237. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  238. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  239. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  240. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  241. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  242. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  243. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  244. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  245. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  246. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  247. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  248. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  249. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  250. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-auth-configs-template.d.ts → auth-configs-template.d.ts} +0 -0
  251. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-controller-template.d.ts → controller-template.d.ts} +0 -0
  252. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-hooks-template.d.ts → hooks-template.d.ts} +0 -0
  253. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-middlewares.d.ts → middlewares-template.d.ts} +0 -0
  254. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-prisma-query-options.d.ts → query-options-template.d.ts} +0 -0
  255. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-router-template.d.ts → router-template.d.ts} +0 -0
  256. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-service-template.d.ts → service-template.d.ts} +0 -0
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateQueryOptionsTemplate = generateQueryOptionsTemplate;
4
+ const fs_helpers_1 = require("../../../../helpers/fs.helpers");
5
+ function generateQueryOptionsTemplate(options) {
6
+ const { modelName } = options;
7
+ const isAuth = modelName?.camel === "auth";
8
+ const ext = (0, fs_helpers_1.getUserFileExtension)();
9
+ const isTypeScript = ext === "ts";
10
+ if (!modelName)
11
+ throw new Error("Model name is required for query config template");
12
+ const imports = isAuth
13
+ ? `import { AuthPrismaQueryOptions } from 'arkos/prisma'`
14
+ : `import { PrismaQueryOptions } from 'arkos/prisma'`;
15
+ const typeAnnotation = isTypeScript
16
+ ? isAuth
17
+ ? `: AuthPrismaQueryOptions<typeof prisma.${modelName.camel}>`
18
+ : `: PrismaQueryOptions<typeof prisma.${modelName.camel}>`
19
+ : "";
20
+ const prismaImport = isTypeScript
21
+ ? `import prisma from "../../utils/prisma.js";\n`
22
+ : "";
23
+ if (isAuth) {
24
+ return `${prismaImport}${imports};
25
+
26
+ const ${modelName.camel}QueryOptions${typeAnnotation} = {
27
+ getMe: {},
28
+ updateMe: {},
29
+ deleteMe: {},
30
+ login: {},
31
+ signup: {},
32
+ updatePassword: {},
33
+ }
34
+
35
+ export default ${modelName.camel}QueryOptions;
36
+ `;
37
+ }
38
+ else {
39
+ return `${prismaImport}${imports};
40
+
41
+ const ${modelName.camel}QueryOptions${typeAnnotation} = {
42
+ global: {},
43
+ find: {},
44
+ findOne: {},
45
+ findMany: {},
46
+ update: {},
47
+ updateMany: {},
48
+ updateOne: {},
49
+ create: {},
50
+ createMany: {},
51
+ createOne: {},
52
+ save: {},
53
+ saveMany: {},
54
+ saveOne: {},
55
+ delete: {},
56
+ deleteMany: {},
57
+ deleteOne: {},
58
+ }
59
+
60
+ export default ${modelName.camel}QueryOptions;
61
+ `;
62
+ }
63
+ }
64
+ //# sourceMappingURL=query-options-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-options-template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/query-options-template.ts"],"names":[],"mappings":";;AAGA,oEAmEC;AAtED,+DAAsE;AAGtE,SAAgB,4BAA4B,CAAC,OAAwB;IACnE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,KAAK,KAAK,MAAM,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAA,iCAAoB,GAAE,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,KAAK,IAAI,CAAC;IAElC,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAGtE,MAAM,OAAO,GAAG,MAAM;QACpB,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,mDAAmD,CAAC;IAGxD,MAAM,cAAc,GAAG,YAAY;QACjC,CAAC,CAAC,MAAM;YACN,CAAC,CAAC,0CAA0C,SAAS,CAAC,KAAK,GAAG;YAC9D,CAAC,CAAC,sCAAsC,SAAS,CAAC,KAAK,GAAG;QAC5D,CAAC,CAAC,EAAE,CAAC;IAGP,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,4CAA4C;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,MAAM,EAAE,CAAC;QAEX,OAAO,GAAG,YAAY,GAAG,OAAO;;QAE5B,SAAS,CAAC,KAAK,eAAe,cAAc;;;;;;;;;iBASnC,SAAS,CAAC,KAAK;CAC/B,CAAC;IACA,CAAC;SAAM,CAAC;QAEN,OAAO,GAAG,YAAY,GAAG,OAAO;;QAE5B,SAAS,CAAC,KAAK,eAAe,cAAc;;;;;;;;;;;;;;;;;;;iBAmBnC,SAAS,CAAC,KAAK;CAC/B,CAAC;IACA,CAAC;AACH,CAAC","sourcesContent":["import { getUserFileExtension } from \"../../../../helpers/fs.helpers\";\nimport { TemplateOptions } from \"../../template-generators\";\n\nexport function generateQueryOptionsTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n const isAuth = modelName?.camel === \"auth\";\n const ext = getUserFileExtension();\n const isTypeScript = ext === \"ts\";\n\n if (!modelName)\n throw new Error(\"Model name is required for query config template\");\n\n // Generate imports\n const imports = isAuth\n ? `import { AuthPrismaQueryOptions } from 'arkos/prisma'`\n : `import { PrismaQueryOptions } from 'arkos/prisma'`;\n\n // Generate type annotation for TypeScript\n const typeAnnotation = isTypeScript\n ? isAuth\n ? `: AuthPrismaQueryOptions<typeof prisma.${modelName.camel}>`\n : `: PrismaQueryOptions<typeof prisma.${modelName.camel}>`\n : \"\";\n\n // Generate prisma import if TypeScript\n const prismaImport = isTypeScript\n ? `import prisma from \"../../utils/prisma\";\\n`\n : \"\";\n\n if (isAuth) {\n // Auth template\n return `${prismaImport}${imports};\n\nconst ${modelName.camel}QueryOptions${typeAnnotation} = {\n getMe: {},\n updateMe: {},\n deleteMe: {},\n login: {},\n signup: {},\n updatePassword: {},\n}\n\nexport default ${modelName.camel}QueryOptions;\n`;\n } else {\n // Regular template\n return `${prismaImport}${imports};\n\nconst ${modelName.camel}QueryOptions${typeAnnotation} = {\n global: {},\n find: {},\n findOne: {},\n findMany: {},\n update: {},\n updateMany: {},\n updateOne: {},\n create: {},\n createMany: {},\n createOne: {},\n save: {},\n saveMany: {},\n saveOne: {},\n delete: {},\n deleteMany: {},\n deleteOne: {},\n}\n\nexport default ${modelName.camel}QueryOptions;\n`;\n }\n}\n"]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateRouterTemplate = generateRouterTemplate;
7
+ const pluralize_1 = __importDefault(require("pluralize"));
8
+ const fs_helpers_1 = require("../../../../helpers/fs.helpers");
9
+ function generateRouterTemplate(options) {
10
+ const { modelName, imports } = options;
11
+ if (!modelName)
12
+ throw new Error("Model name is required for router template");
13
+ const ext = (0, fs_helpers_1.getUserFileExtension)();
14
+ const controllerPath = imports?.controller || `./${modelName.kebab}.controller.${ext}`;
15
+ const routerConfigTsType = ext === "ts" ? ": RouterConfig" : "";
16
+ const routerConfigTsTypeImport = ext === "ts" ? "import { RouterConfig } from 'arkos'" : "";
17
+ const controllerExists = (0, fs_helpers_1.checkFileExists)(controllerPath);
18
+ const controllerImportLine = controllerExists
19
+ ? `import ${modelName.camel}Controller from "${imports?.controller ||
20
+ `./${modelName.kebab}.controller${ext === "js" ? "." + "js" : ""}`}"`
21
+ : `// import ${modelName.camel}Controller from "${imports?.controller ||
22
+ `./${modelName.kebab}.controller${ext === "js" ? "." + "js" : ""}`}"`;
23
+ const controllerHandlerLine = controllerExists
24
+ ? ` ${modelName.camel}Controller.someHandler`
25
+ : ` // ${modelName.camel}Controller.someHandler`;
26
+ return `import { Router } from 'express'
27
+ import { authService } from 'arkos/services'
28
+ ${controllerImportLine}
29
+ ${routerConfigTsTypeImport}
30
+
31
+ export const config${routerConfigTsType} = { }
32
+
33
+ const ${modelName.camel}Router = Router()
34
+
35
+ ${modelName.camel}Router.post(
36
+ '/custom-endpoint', // resolves to /api/${(0, pluralize_1.default)(modelName.kebab)}/custom-endpoint
37
+ authService.authenticate,
38
+ authService.handleAccessControl('CustomAction', '${modelName.kebab}'),
39
+ ${controllerHandlerLine}
40
+ )
41
+
42
+ export default ${modelName.camel}Router
43
+ `;
44
+ }
45
+ //# sourceMappingURL=router-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/router-template.ts"],"names":[],"mappings":";;;;;AAOA,wDAkDC;AAzDD,0DAAkC;AAClC,+DAGwC;AAGxC,SAAgB,sBAAsB,CAAC,OAAwB;IAC7D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAG9E,MAAM,GAAG,GAAG,IAAA,iCAAoB,GAAE,CAAC;IACnC,MAAM,cAAc,GAClB,OAAO,EAAE,UAAU,IAAI,KAAK,SAAS,CAAC,KAAK,eAAe,GAAG,EAAE,CAAC;IAElE,MAAM,kBAAkB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,wBAAwB,GAC5B,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,MAAM,gBAAgB,GAAG,IAAA,4BAAe,EAAC,cAAc,CAAC,CAAC;IAEzD,MAAM,oBAAoB,GAAG,gBAAgB;QAC3C,CAAC,CAAC,UAAU,SAAS,CAAC,KAAK,oBACvB,OAAO,EAAE,UAAU;YACnB,KAAK,SAAS,CAAC,KAAK,cAAc,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAClE,GAAG;QACL,CAAC,CAAC,aAAa,SAAS,CAAC,KAAK,oBAC1B,OAAO,EAAE,UAAU;YACnB,KAAK,SAAS,CAAC,KAAK,cAAc,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAClE,GAAG,CAAC;IAER,MAAM,qBAAqB,GAAG,gBAAgB;QAC5C,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,wBAAwB;QAC9C,CAAC,CAAC,QAAQ,SAAS,CAAC,KAAK,wBAAwB,CAAC;IAEpD,OAAO;;EAEP,oBAAoB;EACpB,wBAAwB;;qBAEL,kBAAkB;;QAE/B,SAAS,CAAC,KAAK;;EAErB,SAAS,CAAC,KAAK;4CAC2B,IAAA,mBAAS,EACjD,SAAS,CAAC,KAAK,CAChB;;qDAEkD,SAAS,CAAC,KAAK;EAClE,qBAAqB;;;iBAGN,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import pluralize from \"pluralize\";\nimport {\n checkFileExists,\n getUserFileExtension,\n} from \"../../../../helpers/fs.helpers\";\nimport { TemplateOptions } from \"../../template-generators\";\n\nexport function generateRouterTemplate(options: TemplateOptions): string {\n const { modelName, imports } = options;\n\n if (!modelName) throw new Error(\"Model name is required for router template\");\n\n // Check if controller file exists\n const ext = getUserFileExtension();\n const controllerPath =\n imports?.controller || `./${modelName.kebab}.controller.${ext}`;\n\n const routerConfigTsType = ext === \"ts\" ? \": RouterConfig\" : \"\";\n const routerConfigTsTypeImport =\n ext === \"ts\" ? \"import { RouterConfig } from 'arkos'\" : \"\";\n\n const controllerExists = checkFileExists(controllerPath);\n\n const controllerImportLine = controllerExists\n ? `import ${modelName.camel}Controller from \"${\n imports?.controller ||\n `./${modelName.kebab}.controller${ext === \"js\" ? \".\" + \"js\" : \"\"}`\n }\"`\n : `// import ${modelName.camel}Controller from \"${\n imports?.controller ||\n `./${modelName.kebab}.controller${ext === \"js\" ? \".\" + \"js\" : \"\"}`\n }\"`;\n\n const controllerHandlerLine = controllerExists\n ? ` ${modelName.camel}Controller.someHandler`\n : ` // ${modelName.camel}Controller.someHandler`;\n\n return `import { Router } from 'express'\nimport { authService } from 'arkos/services'\n${controllerImportLine}\n${routerConfigTsTypeImport}\n\nexport const config${routerConfigTsType} = { }\n\nconst ${modelName.camel}Router = Router()\n\n${modelName.camel}Router.post(\n '/custom-endpoint', // resolves to /api/${pluralize(\n modelName.kebab\n )}/custom-endpoint\n authService.authenticate,\n authService.handleAccessControl('CustomAction', '${modelName.kebab}'),\n${controllerHandlerLine}\n)\n\nexport default ${modelName.camel}Router\n`;\n}\n"]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateServiceTemplate = generateServiceTemplate;
4
+ const fs_helpers_1 = require("../../../../helpers/fs.helpers");
5
+ function generateServiceTemplate(options) {
6
+ const { modelName, imports } = options;
7
+ const ext = (0, fs_helpers_1.getUserFileExtension)();
8
+ const isTypeScript = ext === "ts";
9
+ if (!modelName)
10
+ throw new Error("Model name is required for service template");
11
+ const prismaImport = isTypeScript
12
+ ? `"../../utils/prisma${ext === "ts" ? "" : "." + "js"}";\n`
13
+ : "";
14
+ const baseServiceImport = isTypeScript
15
+ ? `import { BaseService } from "${imports?.baseService || "arkos/services"}";`
16
+ : `import { BaseService } from "${imports?.baseService || "arkos/services"}";`;
17
+ const typeParameter = isTypeScript
18
+ ? `<typeof prisma.${modelName.camel}>`
19
+ : "";
20
+ return `${isTypeScript && "import prisma from "}${prismaImport}${baseServiceImport}
21
+
22
+ class ${modelName.pascal}Service extends BaseService${typeParameter} {}
23
+
24
+ const ${modelName.camel}Service = new ${modelName.pascal}Service("${modelName.kebab}");
25
+
26
+ export default ${modelName.camel}Service;
27
+ `;
28
+ }
29
+ //# sourceMappingURL=service-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/service-template.ts"],"names":[],"mappings":";;AAGA,0DAkCC;AArCD,+DAAsE;AAGtE,SAAgB,uBAAuB,CAAC,OAAwB;IAC9D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,GAAG,GAAG,IAAA,iCAAoB,GAAE,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,KAAK,IAAI,CAAC;IAElC,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAGjE,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,sBAAsB,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM;QAC5D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,iBAAiB,GAAG,YAAY;QACpC,CAAC,CAAC,gCACE,OAAO,EAAE,WAAW,IAAI,gBAC1B,IAAI;QACN,CAAC,CAAC,gCACE,OAAO,EAAE,WAAW,IAAI,gBAC1B,IAAI,CAAC;IAGT,MAAM,aAAa,GAAG,YAAY;QAChC,CAAC,CAAC,kBAAkB,SAAS,CAAC,KAAK,GAAG;QACtC,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,YAAY,IAAI,qBAAqB,GAAG,YAAY,GAAG,iBAAiB;;QAE5E,SAAS,CAAC,MAAM,8BAA8B,aAAa;;QAE3D,SAAS,CAAC,KAAK,iBAAiB,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,KAAK;;iBAElE,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { getUserFileExtension } from \"../../../../helpers/fs.helpers\";\nimport { TemplateOptions } from \"../../template-generators\";\n\nexport function generateServiceTemplate(options: TemplateOptions): string {\n const { modelName, imports } = options;\n const ext = getUserFileExtension();\n const isTypeScript = ext === \"ts\";\n\n if (!modelName)\n throw new Error(\"Model name is required for service template\");\n\n // Generate imports\n const prismaImport = isTypeScript\n ? `\"../../utils/prisma${ext === \"ts\" ? \"\" : \".\" + \"js\"}\";\\n`\n : \"\";\n\n const baseServiceImport = isTypeScript\n ? `import { BaseService } from \"${\n imports?.baseService || \"arkos/services\"\n }\";`\n : `import { BaseService } from \"${\n imports?.baseService || \"arkos/services\"\n }\";`;\n\n // Generate type parameter for TypeScript\n const typeParameter = isTypeScript\n ? `<typeof prisma.${modelName.camel}>`\n : \"\";\n\n return `${isTypeScript && \"import prisma from \"}${prismaImport}${baseServiceImport}\n \nclass ${modelName.pascal}Service extends BaseService${typeParameter} {}\n\nconst ${modelName.camel}Service = new ${modelName.pascal}Service(\"${modelName.kebab}\");\n\nexport default ${modelName.camel}Service;\n`;\n}\n"]}
@@ -1,2 +1,34 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateTemplate=generateTemplate;const generate_controller_template_1=require("./template-generator/templates/generate-controller-template"),generate_auth_configs_template_1=require("./template-generator/templates/generate-auth-configs-template"),generate_middlewares_1=require("./template-generator/templates/generate-middlewares"),generate_prisma_query_options_1=require("./template-generator/templates/generate-prisma-query-options"),generate_router_template_1=require("./template-generator/templates/generate-router-template"),generate_service_template_1=require("./template-generator/templates/generate-service-template"),generate_hooks_template_1=__importDefault(require("./template-generator/templates/generate-hooks-template"));function generateTemplate(e,t){switch(e){case"controller":return(0,generate_controller_template_1.generateControllerTemplate)(t);case"service":return(0,generate_service_template_1.generateServiceTemplate)(t);case"router":return(0,generate_router_template_1.generateRouterTemplate)(t);case"auth-configs":return(0,generate_auth_configs_template_1.generateAuthConfigsTemplate)(t);case"query-options":return(0,generate_prisma_query_options_1.generateQueryOptionsTemplate)(t);case"interceptors":return(0,generate_middlewares_1.generateMiddlewaresTemplate)(t);case"hooks":return(0,generate_hooks_template_1.default)(t);default:throw new Error(`
2
- Unknown template type: ${e}`)}}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateTemplate = generateTemplate;
7
+ const controller_template_1 = require("./template-generator/templates/controller-template");
8
+ const auth_configs_template_1 = require("./template-generator/templates/auth-configs-template");
9
+ const middlewares_template_1 = require("./template-generator/templates/middlewares-template");
10
+ const query_options_template_1 = require("./template-generator/templates/query-options-template");
11
+ const router_template_1 = require("./template-generator/templates/router-template");
12
+ const service_template_1 = require("./template-generator/templates/service-template");
13
+ const hooks_template_1 = __importDefault(require("./template-generator/templates/hooks-template"));
14
+ function generateTemplate(type, options) {
15
+ switch (type) {
16
+ case "controller":
17
+ return (0, controller_template_1.generateControllerTemplate)(options);
18
+ case "service":
19
+ return (0, service_template_1.generateServiceTemplate)(options);
20
+ case "router":
21
+ return (0, router_template_1.generateRouterTemplate)(options);
22
+ case "auth-configs":
23
+ return (0, auth_configs_template_1.generateAuthConfigsTemplate)(options);
24
+ case "query-options":
25
+ return (0, query_options_template_1.generateQueryOptionsTemplate)(options);
26
+ case "interceptors":
27
+ return (0, middlewares_template_1.generateMiddlewaresTemplate)(options);
28
+ case "hooks":
29
+ return (0, hooks_template_1.default)(options);
30
+ default:
31
+ throw new Error(`\n Unknown template type: ${type}`);
32
+ }
33
+ }
34
+ //# sourceMappingURL=template-generators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-generators.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/template-generators.ts"],"names":[],"mappings":";;;;;AA0BA,4CAsBC;AAhDD,8GAAyG;AACzG,kHAA4G;AAC5G,8FAAkG;AAClG,gHAA4G;AAC5G,sGAAiG;AACjG,wGAAmG;AACnG,qHAA2F;AAoB3F,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,OAAwB;IAExB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,IAAA,yDAA0B,EAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,IAAA,mDAAuB,EAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,QAAQ;YACX,OAAO,IAAA,iDAAsB,EAAC,OAAO,CAAC,CAAC;QACzC,KAAK,cAAc;YACjB,OAAO,IAAA,4DAA2B,EAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,eAAe;YAClB,OAAO,IAAA,4DAA4B,EAAC,OAAO,CAAC,CAAC;QAC/C,KAAK,cAAc;YACjB,OAAO,IAAA,kDAA2B,EAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,OAAO;YACV,OAAO,IAAA,iCAAqB,EAAC,OAAO,CAAC,CAAC;QACxC;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC","sourcesContent":["import { generateControllerTemplate } from \"./template-generator/templates/generate-controller-template\";\nimport { generateAuthConfigsTemplate } from \"./template-generator/templates/generate-auth-configs-template\";\nimport { generateMiddlewaresTemplate } from \"./template-generator/templates/generate-middlewares\";\nimport { generateQueryOptionsTemplate } from \"./template-generator/templates/generate-prisma-query-options\";\nimport { generateRouterTemplate } from \"./template-generator/templates/generate-router-template\";\nimport { generateServiceTemplate } from \"./template-generator/templates/generate-service-template\";\nimport generateHooksTemplate from \"./template-generator/templates/generate-hooks-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 \"auth-configs\":\n return generateAuthConfigsTemplate(options);\n case \"query-options\":\n return generateQueryOptionsTemplate(options);\n case \"interceptors\":\n return generateMiddlewaresTemplate(options);\n case \"hooks\":\n return generateHooksTemplate(options);\n default:\n throw new Error(`\\n 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":";;;;;AA0BA,4CAsBC;AAhDD,4FAAgG;AAChG,gGAAmG;AACnG,8FAAkG;AAClG,kGAAqG;AACrG,oFAAwF;AACxF,sFAA0F;AAC1F,mGAAkF;AAoBlF,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,OAAwB;IAExB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,IAAA,gDAA0B,EAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,IAAA,0CAAuB,EAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,QAAQ;YACX,OAAO,IAAA,wCAAsB,EAAC,OAAO,CAAC,CAAC;QACzC,KAAK,cAAc;YACjB,OAAO,IAAA,mDAA2B,EAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,eAAe;YAClB,OAAO,IAAA,qDAA4B,EAAC,OAAO,CAAC,CAAC;QAC/C,KAAK,cAAc;YACjB,OAAO,IAAA,kDAA2B,EAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,OAAO;YACV,OAAO,IAAA,wBAAqB,EAAC,OAAO,CAAC,CAAC;QACxC;YACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC","sourcesContent":["import { generateControllerTemplate } from \"./template-generator/templates/controller-template\";\nimport { generateAuthConfigsTemplate } from \"./template-generator/templates/auth-configs-template\";\nimport { generateMiddlewaresTemplate } from \"./template-generator/templates/middlewares-template\";\nimport { generateQueryOptionsTemplate } from \"./template-generator/templates/query-options-template\";\nimport { generateRouterTemplate } from \"./template-generator/templates/router-template\";\nimport { generateServiceTemplate } from \"./template-generator/templates/service-template\";\nimport generateHooksTemplate from \"./template-generator/templates/hooks-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 \"auth-configs\":\n return generateAuthConfigsTemplate(options);\n case \"query-options\":\n return generateQueryOptionsTemplate(options);\n case \"interceptors\":\n return generateMiddlewaresTemplate(options);\n case \"hooks\":\n return generateHooksTemplate(options);\n default:\n throw new Error(`\\n Unknown template type: ${type}`);\n }\n}\n"]}
@@ -1,3 +1,17 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const cli_helpers_1=require("./cli.helpers");class WatermarkStamper{stamp({envFiles:e,host:r,port:o}){console.info(`
2
- \x1B[1m\x1B[36m Arkos.js ${(0,cli_helpers_1.getVersion)()}\x1B[0m`),r&&o&&console.info(` - Local: http://${r}:${o}`),e?.length&&console.info(` - Environments: ${e?.join(", ").replaceAll(`${process.cwd()}/`,"")}
3
- `)}}const watermarkStamper=new WatermarkStamper;exports.default=watermarkStamper;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cli_helpers_1 = require("./cli.helpers");
4
+ class WatermarkStamper {
5
+ stamp({ envFiles, host, port, }) {
6
+ console.info(`\n \x1b[1m\x1b[36m Arkos.js ${(0, cli_helpers_1.getVersion)()}\x1b[0m`);
7
+ if (host && port)
8
+ console.info(` - Local: http://${host}:${port}`);
9
+ if (envFiles?.length || 0 > 1)
10
+ console.info(` - Environments: ${envFiles
11
+ ?.join(", ")
12
+ .replaceAll(`${process.cwd()}/`, "")}\n`);
13
+ }
14
+ }
15
+ const watermarkStamper = new WatermarkStamper();
16
+ exports.default = watermarkStamper;
17
+ //# sourceMappingURL=watermark-stamper.js.map
@@ -1 +1,43 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadEnvironmentVariables=loadEnvironmentVariables;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),dotenv_1=__importDefault(require("dotenv"));function loadEnvironmentVariables(){const e=process.env.NODE_ENV,n=process.cwd();let o=[];[path_1.default.resolve(n,".env.defaults"),path_1.default.resolve(n,`.env.${e}`),path_1.default.resolve(n,`.env.${e}.local`),path_1.default.resolve(n,".env.local"),path_1.default.resolve(n,".env")].forEach(r=>{if(fs_1.default.existsSync(r))if(e==="production"&&r.endsWith(".local"))console.info(`Skipping the local ${r.replace(n,"")} files in production`);else{const t=dotenv_1.default.config({path:r,override:!0});t.error?console.warn(`Warning: Error loading ${r}`,t.error):o.push(r)}});const s=["DATABASE_URL"].filter(r=>!process.env[r]);if(s.length>0&&console.error("Missing required environment variables:",s.join(", ")),o)return o}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadEnvironmentVariables = loadEnvironmentVariables;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const dotenv_1 = __importDefault(require("dotenv"));
10
+ function loadEnvironmentVariables() {
11
+ const ENV = process.env.NODE_ENV;
12
+ const cwd = process.cwd();
13
+ let loadedEnvs = [];
14
+ const envFiles = [
15
+ path_1.default.resolve(cwd, `.env.defaults`),
16
+ path_1.default.resolve(cwd, `.env.${ENV}`),
17
+ path_1.default.resolve(cwd, `.env.${ENV}.local`),
18
+ path_1.default.resolve(cwd, ".env.local"),
19
+ path_1.default.resolve(cwd, ".env"),
20
+ ];
21
+ envFiles.forEach((filePath) => {
22
+ if (fs_1.default.existsSync(filePath)) {
23
+ if (ENV === "production" && filePath.endsWith(".local"))
24
+ console.info(`Skipping the local ${filePath.replace(cwd, "")} files in production`);
25
+ else {
26
+ const result = dotenv_1.default.config({ path: filePath, override: true });
27
+ if (result.error) {
28
+ console.warn(`Warning: Error loading ${filePath}`, result.error);
29
+ }
30
+ else
31
+ loadedEnvs.push(filePath);
32
+ }
33
+ }
34
+ });
35
+ const requiredVars = ["DATABASE_URL"];
36
+ const missingVars = requiredVars.filter((varName) => !process.env[varName]);
37
+ if (missingVars.length > 0) {
38
+ console.error("Missing required environment variables:", missingVars.join(", "));
39
+ }
40
+ if (loadedEnvs)
41
+ return loadedEnvs;
42
+ }
43
+ //# sourceMappingURL=dotenv.helpers.js.map
@@ -1,9 +1,270 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.appModules=void 0,exports.setModuleComponents=setModuleComponents,exports.getModuleComponents=getModuleComponents,exports.getFileModuleComponentsFileStructure=getFileModuleComponentsFileStructure,exports.isClass=isClass,exports.isZodSchema=isZodSchema,exports.processSubdir=processSubdir,exports.validateNamingConventions=validateNamingConventions,exports.assignModuleToResult=assignModuleToResult,exports.importModuleComponents=importModuleComponents,exports.loadAllModuleComponents=loadAllModuleComponents;const zod_1=require("zod"),path_1=__importDefault(require("path")),cli_helpers_1=require("./cli/utils/cli.helpers"),sheu_1=__importDefault(require("./sheu")),dynamic_loader_helpers_1=require("./helpers/dynamic-loader.helpers"),change_case_helpers_1=require("./helpers/change-case.helpers"),fs_helpers_1=require("./helpers/fs.helpers"),global_helpers_1=require("./helpers/global.helpers"),prisma_schema_parser_1=__importDefault(require("./prisma/prisma-schema-parser"));let prismaModelsModules={};function setModuleComponents(s,e){prismaModelsModules[(0,change_case_helpers_1.pascalCase)(s)]=e}function getModuleComponents(s){return prismaModelsModules[(0,change_case_helpers_1.pascalCase)(s)]}function getFileModuleComponentsFileStructure(s){const e=(0,change_case_helpers_1.kebabCase)(s).toLowerCase(),r=s.toLowerCase()==="auth",t=(0,fs_helpers_1.getUserFileExtension)();return{core:{hooks:`${e}.hooks.${t}`,interceptors:`${e}.middlewares.${t}`,authConfigs:`${e}.auth-configs.${t}`,authConfigsNew:`${e}.auth.${t}`,prismaQueryOptions:`${e}.prisma-query-options.${t}`,prismaQueryOptionsNew:`${e}.query.${t}`,router:`${e}.router.${t}`},dtos:r?{login:`login.dto.${t}`,signup:`signup.dto.${t}`,getMe:`get-me.dto.${t}`,updateMe:`update-me.dto.${t}`,updatePassword:`update-password.dto.${t}`}:{model:`${e}.dto.${t}`,create:`create-${e}.dto.${t}`,createOne:`create-${e}.dto.${t}`,createMany:"",update:`update-${e}.dto.${t}`,updateOne:`update-${e}.dto.${t}`,updateMany:"",query:`query-${e}.dto.${t}`,findOne:"",findMany:""},schemas:r?{login:`login.schema.${t}`,signup:`signup.schema.${t}`,getMe:`get-me.schema.${t}`,updateMe:`update-me.schema.${t}`,updatePassword:`update-password.schema.${t}`}:{model:`${e}.schema.${t}`,create:`create-${e}.schema.${t}`,createOne:`create-${e}.schema.${t}`,createMany:"",update:`update-${e}.schema.${t}`,updateOne:`update-${e}.schema.${t}`,updateMany:"",query:`query-${e}.schema.${t}`,findOne:"",findMany:""}}}function isClass(s){return typeof s=="function"&&/^class\s/.test(Function.prototype.toString.call(s))}function isZodSchema(s){return s instanceof zod_1.z.ZodType}async function processSubdir(s,e){const r=path_1.default.resolve((0,fs_helpers_1.crd)(),"src","modules",(0,change_case_helpers_1.kebabCase)(s)),t=path_1.default.join(r,e),n=getFileModuleComponentsFileStructure(s),p={};if(!await(0,dynamic_loader_helpers_1.pathExists)(t))return p;try{await Promise.all(Object.entries(n[e]).map(async([c,a])=>{const d=path_1.default.join(t,a);if(!(!a||!await(0,dynamic_loader_helpers_1.pathExists)(d)))try{const o=await(0,global_helpers_1.importModule)(d).catch(async l=>{await(0,dynamic_loader_helpers_1.pathExists)(d)&&(sheu_1.default.error(`Failed to import ${a}: `),console.error(l),(0,cli_helpers_1.killServerChildProcess)(),process.exit(1))}),i=`src/modules/${(0,change_case_helpers_1.kebabCase)(s)}/${a}`;if(e==="dtos"&&!isClass(o?.default))throw Error(`ValidationError: Please export as default a valid class under ${i}, in order to use as Dto.`);if(e==="schemas"&&!isZodSchema(o?.default))throw Error(`ValidationError: Please export as default a valid zod schema under ${i}, in order to use as Schema`);o&&o?.default&&(p[c]=o.default)}catch(o){if(o?.message?.includes("ValidationError"))throw o;console.error(o)}}))}catch(c){if(c?.message?.includes("ValidationError"))throw c;console.error(c)}return p}function validateNamingConventions(s,e,r){if(s==="prismaQueryOptions"){if(sheu_1.default.warn(`Found ${e} which will be deprecated from 1.4.0-beta, consider switching to ${e.replace("prisma-query-options","query")}.`),r.prismaQueryOptions)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
2
- Cannot use both ${e} and ${e.replace("prisma-query-options","query")} at once, please choose only one name convention.
3
- `)}else if(s==="prismaQueryOptionsNew"){if(r.prismaQueryOptions)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
4
- Cannot use both ${e} and ${e.replace("query","prisma-query-options")} at once, please choose only one name convention.
5
- `)}else if(s==="authConfigs"){if(sheu_1.default.warn(`Found ${e} which will be deprecated from 1.4.0-beta, consider switching to ${e.replace("auth-configs","auth")}.`),r.authConfigs)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
6
- Cannot use both ${e} and ${e.replace("auth-configs","auth")} at once, please choose only one name convention.
7
- `)}else if(s==="authConfigsNew"&&r.authConfigs)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
8
- Cannot use both ${e} and ${e.replace("auth","auth-configs")} at once, please choose only one name convention.
9
- `)}function assignModuleToResult(s,e,r,t,n){e==="prismaQueryOptions"||e==="prismaQueryOptionsNew"?t.prismaQueryOptions=r.default||r:e==="authConfigs"||e==="authConfigsNew"?t.authConfigs=r.default||r:e==="interceptors"?t[e]=r:e==="router"?t[e]={...r,config:(0,dynamic_loader_helpers_1.applyStrictRoutingRules)(s,n,r?.config||{})}:t[e]=r.default||r}async function importModuleComponents(s,e,r){const t={dtos:{},schemas:{}},n=e.routers?.strict;if(!r&&!n)return t;if(getModuleComponents(s))return getModuleComponents(s);const p=path_1.default.resolve((0,fs_helpers_1.crd)(),"src","modules",(0,change_case_helpers_1.kebabCase)(s)),c=getFileModuleComponentsFileStructure(s),a=e.validation?.resolver?e.validation.resolver==="zod"?"schemas":"dtos":null,[d,o]=await Promise.all([Object.entries(c.core).map(async([i,l])=>{if(["createMany","findMany","findOne","updateMany"].includes(i)||!l)return;const h=path_1.default.join(p,l);if(!(i==="router"&&!n&&!await(0,dynamic_loader_helpers_1.pathExists)(h))&&!(i!=="router"&&n&&!await(0,dynamic_loader_helpers_1.pathExists)(h)))try{let u=await(0,global_helpers_1.importModule)(h).catch(async f=>{try{await(0,dynamic_loader_helpers_1.pathExists)(h)&&(sheu_1.default.error(`Failed to import ${l}`),console.error(f),(0,cli_helpers_1.killServerChildProcess)(),process.exit(1))}catch{}});!u&&i==="router"&&n&&(u={}),u&&(validateNamingConventions(i,l,t),assignModuleToResult(s,i,u,t,e))}catch(u){if(u.message?.includes("Cannot use both"))throw u;console.error(u),(0,cli_helpers_1.killServerChildProcess)()}}),a&&processSubdir(s,a)]);return prismaModelsModules[(0,change_case_helpers_1.pascalCase)(s)]={...t,...a&&{[a]:o}},{...t,...a&&{[a]:o}}}exports.appModules=Array.from(new Set([...prisma_schema_parser_1.default.getModelsAsArrayOfStrings(),"auth","file-upload"]));async function loadAllModuleComponents(s){const e=[];await Promise.all(exports.appModules.map(async t=>{const n=path_1.default.resolve((0,fs_helpers_1.crd)(),"src","modules",(0,change_case_helpers_1.kebabCase)(t));await(0,dynamic_loader_helpers_1.pathExists)(n)&&e.push(t)}));const r=exports.appModules.map(async t=>await importModuleComponents(t,s,e.includes(t)));await Promise.all(r)}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.appModules = void 0;
7
+ exports.setModuleComponents = setModuleComponents;
8
+ exports.getModuleComponents = getModuleComponents;
9
+ exports.getFileModuleComponentsFileStructure = getFileModuleComponentsFileStructure;
10
+ exports.isClass = isClass;
11
+ exports.isZodSchema = isZodSchema;
12
+ exports.processSubdir = processSubdir;
13
+ exports.validateNamingConventions = validateNamingConventions;
14
+ exports.assignModuleToResult = assignModuleToResult;
15
+ exports.importModuleComponents = importModuleComponents;
16
+ exports.loadAllModuleComponents = loadAllModuleComponents;
17
+ const zod_1 = require("zod");
18
+ const path_1 = __importDefault(require("path"));
19
+ const cli_helpers_1 = require("./cli/utils/cli.helpers");
20
+ const sheu_1 = __importDefault(require("./sheu"));
21
+ const dynamic_loader_helpers_1 = require("./helpers/dynamic-loader.helpers");
22
+ const change_case_helpers_1 = require("./helpers/change-case.helpers");
23
+ const fs_helpers_1 = require("./helpers/fs.helpers");
24
+ const global_helpers_1 = require("./helpers/global.helpers");
25
+ const prisma_schema_parser_1 = __importDefault(require("./prisma/prisma-schema-parser"));
26
+ let prismaModelsModules = {};
27
+ function setModuleComponents(modelName, modules) {
28
+ prismaModelsModules[(0, change_case_helpers_1.pascalCase)(modelName)] = modules;
29
+ }
30
+ function getModuleComponents(modelName) {
31
+ return prismaModelsModules[(0, change_case_helpers_1.pascalCase)(modelName)];
32
+ }
33
+ function getFileModuleComponentsFileStructure(modelName) {
34
+ const kebabModelName = (0, change_case_helpers_1.kebabCase)(modelName).toLowerCase();
35
+ const isAuthModule = modelName.toLowerCase() === "auth";
36
+ const ext = (0, fs_helpers_1.getUserFileExtension)();
37
+ return {
38
+ core: {
39
+ hooks: `${kebabModelName}.hooks.${ext}`,
40
+ interceptors: `${kebabModelName}.middlewares.${ext}`,
41
+ authConfigs: `${kebabModelName}.auth-configs.${ext}`,
42
+ authConfigsNew: `${kebabModelName}.auth.${ext}`,
43
+ prismaQueryOptions: `${kebabModelName}.prisma-query-options.${ext}`,
44
+ prismaQueryOptionsNew: `${kebabModelName}.query.${ext}`,
45
+ router: `${kebabModelName}.router.${ext}`,
46
+ },
47
+ dtos: isAuthModule
48
+ ? {
49
+ login: `login.dto.${ext}`,
50
+ signup: `signup.dto.${ext}`,
51
+ getMe: `get-me.dto.${ext}`,
52
+ updateMe: `update-me.dto.${ext}`,
53
+ updatePassword: `update-password.dto.${ext}`,
54
+ }
55
+ : {
56
+ model: `${kebabModelName}.dto.${ext}`,
57
+ create: `create-${kebabModelName}.dto.${ext}`,
58
+ createOne: `create-${kebabModelName}.dto.${ext}`,
59
+ createMany: ``,
60
+ update: `update-${kebabModelName}.dto.${ext}`,
61
+ updateOne: `update-${kebabModelName}.dto.${ext}`,
62
+ updateMany: ``,
63
+ query: `query-${kebabModelName}.dto.${ext}`,
64
+ findOne: ``,
65
+ findMany: ``,
66
+ },
67
+ schemas: isAuthModule
68
+ ? {
69
+ login: `login.schema.${ext}`,
70
+ signup: `signup.schema.${ext}`,
71
+ getMe: `get-me.schema.${ext}`,
72
+ updateMe: `update-me.schema.${ext}`,
73
+ updatePassword: `update-password.schema.${ext}`,
74
+ }
75
+ : {
76
+ model: `${kebabModelName}.schema.${ext}`,
77
+ create: `create-${kebabModelName}.schema.${ext}`,
78
+ createOne: `create-${kebabModelName}.schema.${ext}`,
79
+ createMany: ``,
80
+ update: `update-${kebabModelName}.schema.${ext}`,
81
+ updateOne: `update-${kebabModelName}.schema.${ext}`,
82
+ updateMany: ``,
83
+ query: `query-${kebabModelName}.schema.${ext}`,
84
+ findOne: ``,
85
+ findMany: ``,
86
+ },
87
+ };
88
+ }
89
+ function isClass(value) {
90
+ return (typeof value === "function" &&
91
+ /^class\s/.test(Function.prototype.toString.call(value)));
92
+ }
93
+ function isZodSchema(value) {
94
+ return value instanceof zod_1.z.ZodType;
95
+ }
96
+ async function processSubdir(modelName, type) {
97
+ const moduleDir = path_1.default.resolve((0, fs_helpers_1.crd)(), "src", "modules", (0, change_case_helpers_1.kebabCase)(modelName));
98
+ const subdir = path_1.default.join(moduleDir, type);
99
+ const fileStructure = getFileModuleComponentsFileStructure(modelName);
100
+ const result = {};
101
+ if (!(await (0, dynamic_loader_helpers_1.pathExists)(subdir)))
102
+ return result;
103
+ try {
104
+ await Promise.all(Object.entries(fileStructure[type]).map(async ([key, fileName]) => {
105
+ const filePath = path_1.default.join(subdir, fileName);
106
+ if (!fileName || !(await (0, dynamic_loader_helpers_1.pathExists)(filePath)))
107
+ return;
108
+ try {
109
+ const module = await (0, global_helpers_1.importModule)(filePath).catch(async (err) => {
110
+ if (await (0, dynamic_loader_helpers_1.pathExists)(filePath)) {
111
+ sheu_1.default.error(`Failed to import ${fileName}: `);
112
+ console.error(err);
113
+ (0, cli_helpers_1.killServerChildProcess)();
114
+ process.exit(1);
115
+ }
116
+ });
117
+ const cleanFilePath = `src/modules/${(0, change_case_helpers_1.kebabCase)(modelName)}/${fileName}`;
118
+ if (type === "dtos" && !isClass(module?.default))
119
+ throw Error(`ValidationError: Please export as default a valid class under ${cleanFilePath}, in order to use as Dto.`);
120
+ else if (type === "schemas" && !isZodSchema(module?.default))
121
+ throw Error(`ValidationError: Please export as default a valid zod schema under ${cleanFilePath}, in order to use as Schema`);
122
+ if (module && module?.default)
123
+ result[key] = module.default;
124
+ }
125
+ catch (err) {
126
+ if (err?.message?.includes("ValidationError"))
127
+ throw err;
128
+ console.error(err);
129
+ }
130
+ }));
131
+ }
132
+ catch (err) {
133
+ if (err?.message?.includes("ValidationError"))
134
+ throw err;
135
+ console.error(err);
136
+ }
137
+ return result;
138
+ }
139
+ function validateNamingConventions(key, fileName, result) {
140
+ if (key === "prismaQueryOptions") {
141
+ sheu_1.default.warn(`Found ${fileName} which will be deprecated from 1.4.0-beta, consider switching to ${fileName.replace("prisma-query-options", "query")}.`);
142
+ if (result.prismaQueryOptions) {
143
+ (0, cli_helpers_1.killServerChildProcess)();
144
+ throw new Error(`\n Cannot use both ${fileName} and ${fileName.replace("prisma-query-options", "query")} at once, please choose only one name convention. \n`);
145
+ }
146
+ }
147
+ else if (key === "prismaQueryOptionsNew") {
148
+ if (result.prismaQueryOptions) {
149
+ (0, cli_helpers_1.killServerChildProcess)();
150
+ throw new Error(`\n Cannot use both ${fileName} and ${fileName.replace("query", "prisma-query-options")} at once, please choose only one name convention. \n`);
151
+ }
152
+ }
153
+ else if (key === "authConfigs") {
154
+ sheu_1.default.warn(`Found ${fileName} which will be deprecated from 1.4.0-beta, consider switching to ${fileName.replace("auth-configs", "auth")}.`);
155
+ if (result.authConfigs) {
156
+ (0, cli_helpers_1.killServerChildProcess)();
157
+ throw new Error(`\n Cannot use both ${fileName} and ${fileName.replace("auth-configs", "auth")} at once, please choose only one name convention. \n`);
158
+ }
159
+ }
160
+ else if (key === "authConfigsNew") {
161
+ if (result.authConfigs) {
162
+ (0, cli_helpers_1.killServerChildProcess)();
163
+ throw new Error(`\n Cannot use both ${fileName} and ${fileName.replace("auth", "auth-configs")} at once, please choose only one name convention. \n`);
164
+ }
165
+ }
166
+ }
167
+ function assignModuleToResult(appModule, key, module, result, arkosConfig) {
168
+ if (key === "prismaQueryOptions" || key === "prismaQueryOptionsNew") {
169
+ result.prismaQueryOptions = module.default || module;
170
+ }
171
+ else if (key === "authConfigs" || key === "authConfigsNew") {
172
+ result.authConfigs = module.default || module;
173
+ }
174
+ else if (key === "interceptors") {
175
+ result[key] = module;
176
+ }
177
+ else if (key === "router") {
178
+ result[key] = {
179
+ ...module,
180
+ config: (0, dynamic_loader_helpers_1.applyStrictRoutingRules)(appModule, arkosConfig, module?.config || {}),
181
+ };
182
+ }
183
+ else {
184
+ result[key] = module.default || module;
185
+ }
186
+ }
187
+ async function importModuleComponents(modelName, arkosConfig, moduleDirExists) {
188
+ const result = {
189
+ dtos: {},
190
+ schemas: {},
191
+ };
192
+ const usingStrictRouting = arkosConfig.routers?.strict;
193
+ if (!moduleDirExists && !usingStrictRouting)
194
+ return result;
195
+ if (getModuleComponents(modelName))
196
+ return getModuleComponents(modelName);
197
+ const moduleDir = path_1.default.resolve((0, fs_helpers_1.crd)(), "src", "modules", (0, change_case_helpers_1.kebabCase)(modelName));
198
+ const fileStructure = getFileModuleComponentsFileStructure(modelName);
199
+ const validationSubdir = arkosConfig.validation?.resolver
200
+ ? arkosConfig.validation.resolver === "zod"
201
+ ? "schemas"
202
+ : "dtos"
203
+ : null;
204
+ const [_, validators] = await Promise.all([
205
+ Object.entries(fileStructure.core).map(async ([key, fileName]) => {
206
+ if (["createMany", "findMany", "findOne", "updateMany"].includes(key) ||
207
+ !fileName)
208
+ return;
209
+ const filePath = path_1.default.join(moduleDir, fileName);
210
+ if (key === "router" &&
211
+ !usingStrictRouting &&
212
+ !(await (0, dynamic_loader_helpers_1.pathExists)(filePath)))
213
+ return;
214
+ else if (key !== "router" &&
215
+ usingStrictRouting &&
216
+ !(await (0, dynamic_loader_helpers_1.pathExists)(filePath)))
217
+ return;
218
+ try {
219
+ let module = await (0, global_helpers_1.importModule)(filePath).catch(async (err) => {
220
+ try {
221
+ if (await (0, dynamic_loader_helpers_1.pathExists)(filePath)) {
222
+ sheu_1.default.error(`Failed to import ${fileName}`);
223
+ console.error(err);
224
+ (0, cli_helpers_1.killServerChildProcess)();
225
+ process.exit(1);
226
+ }
227
+ }
228
+ catch (err) { }
229
+ });
230
+ if (!module && key === "router" && usingStrictRouting)
231
+ module = {};
232
+ if (module) {
233
+ validateNamingConventions(key, fileName, result);
234
+ assignModuleToResult(modelName, key, module, result, arkosConfig);
235
+ }
236
+ }
237
+ catch (err) {
238
+ if (err.message?.includes("Cannot use both"))
239
+ throw err;
240
+ console.error(err);
241
+ (0, cli_helpers_1.killServerChildProcess)();
242
+ }
243
+ }),
244
+ validationSubdir && processSubdir(modelName, validationSubdir),
245
+ ]);
246
+ prismaModelsModules[(0, change_case_helpers_1.pascalCase)(modelName)] = {
247
+ ...result,
248
+ ...(validationSubdir && { [validationSubdir]: validators }),
249
+ };
250
+ return {
251
+ ...result,
252
+ ...(validationSubdir && { [validationSubdir]: validators }),
253
+ };
254
+ }
255
+ exports.appModules = Array.from(new Set([
256
+ ...prisma_schema_parser_1.default.getModelsAsArrayOfStrings(),
257
+ "auth",
258
+ "file-upload",
259
+ ]));
260
+ async function loadAllModuleComponents(arkosConfig) {
261
+ const moduleDirExists = [];
262
+ await Promise.all(exports.appModules.map(async (appModule) => {
263
+ const moduleDir = path_1.default.resolve((0, fs_helpers_1.crd)(), "src", "modules", (0, change_case_helpers_1.kebabCase)(appModule));
264
+ if (await (0, dynamic_loader_helpers_1.pathExists)(moduleDir))
265
+ moduleDirExists.push(appModule);
266
+ }));
267
+ const modulesComponentsImportPromises = exports.appModules.map(async (appModule) => await importModuleComponents(appModule, arkosConfig, moduleDirExists.includes(appModule)));
268
+ await Promise.all(modulesComponentsImportPromises);
269
+ }
270
+ //# sourceMappingURL=dynamic-loader.js.map