arkos 2.0.0-next.13 → 2.0.0-next.16

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 (246) hide show
  1. package/README.md +144 -145
  2. package/cli.js +1 -0
  3. package/dist/cjs/app.js +7 -0
  4. package/dist/cjs/app.js.map +1 -1
  5. package/dist/cjs/exports/error-handler/index.js +15 -0
  6. package/dist/cjs/exports/error-handler/index.js.map +1 -1
  7. package/dist/cjs/modules/auth/auth.router.js +3 -0
  8. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  9. package/dist/cjs/modules/auth/auth.service.js +2 -0
  10. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  11. package/dist/cjs/modules/base/base.controller.js +15 -3
  12. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  13. package/dist/cjs/modules/base/base.middlewares.js +19 -12
  14. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  15. package/dist/cjs/modules/base/base.service.js +5 -1
  16. package/dist/cjs/modules/base/base.service.js.map +1 -1
  17. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +9 -0
  18. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  19. package/dist/cjs/modules/error-handler/error-handler.controller.js +25 -42
  20. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  21. package/dist/cjs/modules/error-handler/utils/app-error.js +0 -1
  22. package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
  23. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +8 -9
  24. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  25. package/dist/cjs/modules/error-handler/utils/errors.js +158 -0
  26. package/dist/cjs/modules/error-handler/utils/errors.js.map +1 -0
  27. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js +39 -0
  28. package/dist/cjs/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  29. package/dist/cjs/modules/file-upload/file-upload.controller.js +10 -14
  30. package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
  31. package/dist/cjs/modules/file-upload/file-upload.router.js +2 -0
  32. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  33. package/dist/cjs/modules/swagger/swagger.router.js +8 -2
  34. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  35. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +18 -0
  36. package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
  37. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +5 -5
  38. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  39. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
  40. package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  41. package/dist/cjs/types/arkos-prisma-input.js.map +1 -1
  42. package/dist/cjs/types/index.js.map +1 -1
  43. package/dist/cjs/types/new-arkos-config.js.map +1 -1
  44. package/dist/cjs/types/router-config.js.map +1 -1
  45. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +86 -28
  46. package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  47. package/dist/cjs/utils/arkos-router/index.js +11 -7
  48. package/dist/cjs/utils/arkos-router/index.js.map +1 -1
  49. package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
  50. package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -1
  51. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +34 -28
  52. package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  53. package/dist/cjs/utils/arkos-router/utils/helpers/index.js +9 -6
  54. package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
  55. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +334 -77
  56. package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  57. package/dist/cjs/utils/bundler.js.map +1 -1
  58. package/dist/cjs/utils/cli/build.js +2 -3
  59. package/dist/cjs/utils/cli/build.js.map +1 -1
  60. package/dist/cjs/utils/cli/dev.js +11 -6
  61. package/dist/cjs/utils/cli/dev.js.map +1 -1
  62. package/dist/cjs/utils/cli/export-auth-action.js +5 -4
  63. package/dist/cjs/utils/cli/export-auth-action.js.map +1 -1
  64. package/dist/cjs/utils/cli/generate.js +6 -8
  65. package/dist/cjs/utils/cli/generate.js.map +1 -1
  66. package/dist/cjs/utils/cli/index.js +22 -19
  67. package/dist/cjs/utils/cli/index.js.map +1 -1
  68. package/dist/cjs/utils/cli/start.js +4 -2
  69. package/dist/cjs/utils/cli/start.js.map +1 -1
  70. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  71. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +19 -7
  72. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  73. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +7 -6
  74. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  75. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +4 -4
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
  77. package/dist/cjs/utils/cli/utils/template-generators.js +0 -6
  78. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  79. package/dist/cjs/utils/define-config.js +5 -0
  80. package/dist/cjs/utils/define-config.js.map +1 -1
  81. package/dist/cjs/utils/dotenv.helpers.js +0 -6
  82. package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
  83. package/dist/cjs/utils/features/api.features.js +23 -5
  84. package/dist/cjs/utils/features/api.features.js.map +1 -1
  85. package/dist/cjs/utils/helpers/arkos-config.helpers.js +22 -2
  86. package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -1
  87. package/dist/cjs/utils/helpers/exit-error.js +1 -0
  88. package/dist/cjs/utils/helpers/exit-error.js.map +1 -1
  89. package/dist/cjs/utils/helpers/fs.helpers.js +25 -24
  90. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  91. package/dist/cjs/utils/helpers/global.helpers.js +3 -2
  92. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  93. package/dist/cjs/utils/helpers/prisma.helpers.js +4 -5
  94. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  95. package/dist/cjs/utils/helpers/url-helpers.js +14 -0
  96. package/dist/cjs/utils/helpers/url-helpers.js.map +1 -0
  97. package/dist/cjs/utils/initialize-app.js +35 -6
  98. package/dist/cjs/utils/initialize-app.js.map +1 -1
  99. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +12 -6
  100. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  101. package/dist/cjs/utils/prisma/prisma-schema-parser.js +10 -3
  102. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
  103. package/dist/cjs/utils/setup-app.js +58 -41
  104. package/dist/cjs/utils/setup-app.js.map +1 -1
  105. package/dist/esm/app.js +6 -0
  106. package/dist/esm/app.js.map +1 -1
  107. package/dist/esm/exports/error-handler/index.js +1 -0
  108. package/dist/esm/exports/error-handler/index.js.map +1 -1
  109. package/dist/esm/modules/auth/auth.router.js +3 -0
  110. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  111. package/dist/esm/modules/auth/auth.service.js +2 -0
  112. package/dist/esm/modules/auth/auth.service.js.map +1 -1
  113. package/dist/esm/modules/base/base.controller.js +15 -3
  114. package/dist/esm/modules/base/base.controller.js.map +1 -1
  115. package/dist/esm/modules/base/base.middlewares.js +19 -12
  116. package/dist/esm/modules/base/base.middlewares.js.map +1 -1
  117. package/dist/esm/modules/base/base.service.js +5 -1
  118. package/dist/esm/modules/base/base.service.js.map +1 -1
  119. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +9 -0
  120. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  121. package/dist/esm/modules/error-handler/error-handler.controller.js +22 -42
  122. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  123. package/dist/esm/modules/error-handler/utils/app-error.js +0 -1
  124. package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
  125. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +8 -9
  126. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  127. package/dist/esm/modules/error-handler/utils/errors.js +127 -0
  128. package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
  129. package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
  130. package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
  131. package/dist/esm/modules/file-upload/file-upload.controller.js +10 -14
  132. package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
  133. package/dist/esm/modules/file-upload/file-upload.router.js +2 -0
  134. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  135. package/dist/esm/modules/swagger/swagger.router.js +8 -2
  136. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  137. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +18 -0
  138. package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -1
  139. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +5 -5
  140. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
  141. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +1 -1
  142. package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
  143. package/dist/esm/types/arkos-prisma-input.js.map +1 -1
  144. package/dist/esm/types/index.js.map +1 -1
  145. package/dist/esm/types/new-arkos-config.js.map +1 -1
  146. package/dist/esm/types/router-config.js.map +1 -1
  147. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +86 -28
  148. package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
  149. package/dist/esm/utils/arkos-router/index.js +11 -7
  150. package/dist/esm/utils/arkos-router/index.js.map +1 -1
  151. package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
  152. package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
  153. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +34 -28
  154. package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
  155. package/dist/esm/utils/arkos-router/utils/helpers/index.js +9 -6
  156. package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
  157. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +334 -77
  158. package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
  159. package/dist/esm/utils/bundler.js.map +1 -1
  160. package/dist/esm/utils/cli/build.js +3 -4
  161. package/dist/esm/utils/cli/build.js.map +1 -1
  162. package/dist/esm/utils/cli/dev.js +12 -7
  163. package/dist/esm/utils/cli/dev.js.map +1 -1
  164. package/dist/esm/utils/cli/export-auth-action.js +5 -4
  165. package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
  166. package/dist/esm/utils/cli/generate.js +6 -8
  167. package/dist/esm/utils/cli/generate.js.map +1 -1
  168. package/dist/esm/utils/cli/index.js +22 -19
  169. package/dist/esm/utils/cli/index.js.map +1 -1
  170. package/dist/esm/utils/cli/start.js +4 -2
  171. package/dist/esm/utils/cli/start.js.map +1 -1
  172. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  173. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
  174. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
  175. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +7 -6
  176. package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
  177. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +4 -4
  178. package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
  179. package/dist/esm/utils/cli/utils/template-generators.js +0 -6
  180. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  181. package/dist/esm/utils/define-config.js +5 -0
  182. package/dist/esm/utils/define-config.js.map +1 -1
  183. package/dist/esm/utils/dotenv.helpers.js +0 -6
  184. package/dist/esm/utils/dotenv.helpers.js.map +1 -1
  185. package/dist/esm/utils/features/api.features.js +23 -5
  186. package/dist/esm/utils/features/api.features.js.map +1 -1
  187. package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
  188. package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
  189. package/dist/esm/utils/helpers/exit-error.js +1 -0
  190. package/dist/esm/utils/helpers/exit-error.js.map +1 -1
  191. package/dist/esm/utils/helpers/fs.helpers.js +25 -24
  192. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
  193. package/dist/esm/utils/helpers/global.helpers.js +1 -1
  194. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  195. package/dist/esm/utils/helpers/prisma.helpers.js +4 -5
  196. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  197. package/dist/esm/utils/helpers/url-helpers.js +11 -0
  198. package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
  199. package/dist/esm/utils/initialize-app.js +35 -6
  200. package/dist/esm/utils/initialize-app.js.map +1 -1
  201. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +12 -6
  202. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
  203. package/dist/esm/utils/prisma/prisma-schema-parser.js +10 -3
  204. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
  205. package/dist/esm/utils/setup-app.js +59 -42
  206. package/dist/esm/utils/setup-app.js.map +1 -1
  207. package/dist/types/app.d.ts +5 -6
  208. package/dist/types/exports/error-handler/index.d.ts +1 -0
  209. package/dist/types/modules/auth/auth.service.d.ts +2 -6
  210. package/dist/types/modules/base/base.service.d.ts +2 -1
  211. package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
  212. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -1
  213. package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
  214. package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
  215. package/dist/types/modules/file-upload/file-upload.controller.d.ts +0 -1
  216. package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -2
  217. package/dist/types/types/arkos-prisma-input.d.ts +3 -2
  218. package/dist/types/types/index.d.ts +0 -21
  219. package/dist/types/types/new-arkos-config.d.ts +183 -14
  220. package/dist/types/types/router-config.d.ts +1 -1
  221. package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
  222. package/dist/types/utils/arkos-router/index.d.ts +76 -8
  223. package/dist/types/utils/arkos-router/types/index.d.ts +19 -6
  224. package/dist/types/utils/arkos-router/types/upload-config.d.ts +63 -7
  225. package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +1 -1
  226. package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +2 -0
  227. package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +0 -36
  228. package/dist/types/utils/bundler.d.ts +1 -1
  229. package/dist/types/utils/cli/generate.d.ts +0 -1
  230. package/dist/types/utils/cli/start.d.ts +1 -1
  231. package/dist/types/utils/helpers/arkos-config.helpers.d.ts +2 -0
  232. package/dist/types/utils/helpers/fs.helpers.d.ts +1 -1
  233. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  234. package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
  235. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +1 -0
  236. package/package.json +15 -15
  237. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
  238. package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  239. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
  240. package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  241. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
  242. package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
  243. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
  244. package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
  245. package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
  246. package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
@@ -1,6 +1,78 @@
1
1
  import { RouterOptions } from "express";
2
2
  import { IArkosRouter } from "./types";
3
3
  import { OpenAPIV3 } from "openapi-types";
4
+ import { Arkos } from "../../types/arkos";
5
+ export type ArkosRouterOptions = {
6
+ /**
7
+ * Prefix to apply to all routes in this router.
8
+ * Nested routers inherit and concatenate prefixes from parent routers.
9
+ *
10
+ * @since 1.5.0-beta
11
+ * @example
12
+ * // All routes in this router will be prefixed with "/api"
13
+ * prefix: "/api"
14
+ */
15
+ prefix?: string | RegExp | Array<string | RegExp>;
16
+ /**
17
+ * OpenAPI metadata to apply to all routes in this router.
18
+ * Nested routers inherit from parent routers unless explicitly overridden.
19
+ * Route-level openapi config fully replaces inherited values when defined.
20
+ *
21
+ * @since 1.6.0-beta
22
+ * @example
23
+ * openapi: {
24
+ * tags: ["Users"],
25
+ * security: [{ bearerAuth: [] }]
26
+ * }
27
+ */
28
+ openapi?: {
29
+ /**
30
+ * Tags to apply to all routes in this router, used to group them in OpenAPI documentation.
31
+ * Route-level tags fully replaces this value when defined.
32
+ *
33
+ * @since 1.6.0-beta
34
+ * @example
35
+ * // Group all routes in this router under "Users"
36
+ * tags: ["Users"]
37
+ */
38
+ tags?: string[];
39
+ /**
40
+ * Security requirements to apply to all routes in this router.
41
+ * Route-level security fully replaces this value when defined.
42
+ *
43
+ * @since 1.6.2-canary.1
44
+ * @example
45
+ * // Require bearer auth for all routes in this router
46
+ * security: [{ bearerAuth: [] }]
47
+ *
48
+ * // Explicitly make all routes public (overridable per route)
49
+ * security: []
50
+ */
51
+ security?: OpenAPIV3.SecurityRequirementObject[];
52
+ /**
53
+ * Server definitions to apply to all routes in this router.
54
+ * Follows the OpenAPI 3.0 Server Object specification.
55
+ * Route-level servers fully replaces this value when defined.
56
+ *
57
+ * @since 1.6.2-canary.1
58
+ * @example
59
+ * servers: [{ url: "https://api.example.com/v2", description: "V2 API" }]
60
+ */
61
+ servers?: OpenAPIV3.ServerObject[];
62
+ /**
63
+ * External documentation to apply to all routes in this router.
64
+ * Route-level externalDocs fully replaces this value when defined.
65
+ *
66
+ * @since 1.6.2-canary.1
67
+ * @example
68
+ * externalDocs: {
69
+ * description: "Find more information here",
70
+ * url: "https://docs.example.com/users"
71
+ * }
72
+ */
73
+ externalDocs?: OpenAPIV3.ExternalDocumentationObject;
74
+ };
75
+ };
4
76
  /**
5
77
  * Creates an enhanced Express Router with features like OpenAPI documentation capabilities and smart data validation.
6
78
  *
@@ -23,15 +95,11 @@ import { OpenAPIV3 } from "openapi-types";
23
95
  *
24
96
  * @returns {IArkosRouter} A proxied Express Router instance with enhanced OpenAPI capabilities
25
97
  *
26
- * @see {@link ArkosRouteConfig} for configuration options
98
+ * @see {@link https://www.arkosjs.com/docs/reference/arkos-router} for configuration options
99
+ * @since 1.4.0-beta
27
100
  */
28
- export default function ArkosRouter(options?: RouterOptions & {
29
- prefix?: string | RegExp | Array<string | RegExp>;
30
- openapi?: {
31
- tags?: string[];
32
- };
33
- }): IArkosRouter;
34
- export declare function generateOpenAPIFromApp(app: any): Record<string, Record<string, Partial<{
101
+ export default function ArkosRouter(options?: RouterOptions & ArkosRouterOptions): IArkosRouter;
102
+ export declare function generateOpenAPIFromApp(app: Arkos): Record<string, Record<string, Partial<{
35
103
  tags?: string[];
36
104
  summary?: string;
37
105
  description?: string;
@@ -8,11 +8,22 @@ import compression from "compression";
8
8
  import { OpenApiConfig } from "./openapi-config";
9
9
  import { UploadConfig } from "./upload-config";
10
10
  import { BodyParserConfig } from "./body-parser-config";
11
+ import { ArkosRouterOptions } from "..";
11
12
  export type ArkosUseConfig = Pick<ArkosRouteConfig, "authentication" | "rateLimit" | "compression" | "queryParser" | "bodyParser" | "disabled"> & {
12
13
  path?: PathParams;
13
14
  };
14
15
  type InferValidationType<T, Fallback> = T extends ZodSchema ? z.infer<T> : T extends new (...args: any[]) => infer I ? I : Fallback;
15
16
  export type PathParams = string | RegExp | Array<string | RegExp>;
17
+ export type InternalIArkosRouter = IArkosRouter & {
18
+ _arkos: {
19
+ options?: ArkosRouterOptions;
20
+ routes: Array<{
21
+ handler: ArkosAnyRequestHandler;
22
+ config: ArkosRouteConfig;
23
+ method: string;
24
+ }>;
25
+ };
26
+ };
16
27
  export type ArkosAnyRequestHandler = ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>;
17
28
  /**
18
29
  * Handler function for HTTP methods that accepts route configuration and request handlers.
@@ -23,13 +34,13 @@ export type ArkosAnyRequestHandler = ArkosRequestHandler | ArkosErrorRequestHand
23
34
  */
24
35
  type RouterMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
25
36
  (config: PathParams, ...handlers: Array<ArkosAnyRequestHandler>): T;
26
- <TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
27
- <TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
37
+ <TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
38
+ <TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | undefined = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
28
39
  };
29
40
  export type ArkosRouteMethodHandler<T> = {
30
41
  (config: ArkosAnyRequestHandler | Omit<ArkosRouteConfig, "path">, ...handlers: Array<ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>>): T;
31
- <TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
32
- <TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
42
+ <TQuery extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
43
+ <TQuery extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | null | false | undefined = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, "path">, ...handlers: Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
33
44
  };
34
45
  /**
35
46
  * Handler function for `use` that accepts route configuration and middleware handlers.
@@ -41,6 +52,7 @@ export type ArkosRouteMethodHandler<T> = {
41
52
  export type UseMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
42
53
  (config: ArkosUseConfig, ...handlers: Array<ArkosRequestHandler | Array<ArkosRequestHandler>>): T;
43
54
  (config: ArkosUseConfig, ...handlers: Array<ArkosErrorRequestHandler | Array<ArkosErrorRequestHandler>>): T;
55
+ (...handlers: Array<ArkosRequestHandler | Array<ArkosRequestHandler>>): T;
44
56
  };
45
57
  export interface IArkosRoute extends IRoute {
46
58
  /** GET method handler with route configuration support */
@@ -110,7 +122,7 @@ export interface IArkosRouter extends IRouter {
110
122
  /**
111
123
  * Configuration object for defining routes in Arkos.js.
112
124
  */
113
- export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | false | undefined = any> = {
125
+ export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any, TBody extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any, TParams extends ZodSchema | (new (...args: any[]) => object) | null | false | null | undefined = any> = {
114
126
  /**
115
127
  * Disables the route by not mounting it internally.
116
128
  */
@@ -139,10 +151,11 @@ export type ArkosRouteConfig<TQuery extends ZodSchema | (new (...args: any[]) =>
139
151
  *
140
152
  * @remarks
141
153
  * - Set to `false` to disable all validation.
154
+ * - Set to `null` to forbidden all request inputs.
142
155
  * - Provide an object with `query`, `body`, and/or `params` properties to validate specific parts of the request.
143
156
  * - Each property accepts a Zod schema, a class constructor, or `false` to disable validation for that part.
144
157
  */
145
- validation?: false | {
158
+ validation?: false | null | {
146
159
  query?: TQuery;
147
160
  body?: TBody;
148
161
  params?: TParams;
@@ -16,7 +16,7 @@ export type UploadConfig =
16
16
  */
17
17
  ({
18
18
  type: "single";
19
- /** Name of the multipart form field to process */
19
+ /** Name of the multipart form field to process. Supports bracket notation, including nested array paths (e.g. "banners[][image]") */
20
20
  field: string;
21
21
  } & ArkosRouterBaseUploadConfig)
22
22
  /**
@@ -39,10 +39,12 @@ export type UploadConfig =
39
39
  */
40
40
  | ({
41
41
  type: "array";
42
- /** Shared name of the multipart form fields to process */
42
+ /** Shared name of the multipart form fields to process. Supports bracket notation, including nested array paths (e.g. "banners[][images]") */
43
43
  field: string;
44
44
  /** Maximum number of files to process (defaults to framework config) */
45
45
  maxCount?: number;
46
+ /** Minimum number of files required */
47
+ minCount?: number;
46
48
  } & ArkosRouterBaseUploadConfig)
47
49
  /**
48
50
  * Creates middleware that processes multiple files associated with the
@@ -52,18 +54,25 @@ export type UploadConfig =
52
54
  * maps each field name to an array of the associated file information
53
55
  * objects.
54
56
  *
55
- * @throws `MulterError('LIMIT_UNEXPECTED_FILE')` if more than `maxCount` files are associated with `fieldName` for any field
57
+ * Each field entry is a full single or array upload config with a `name`
58
+ * property. Field names support bracket notation, including nested array
59
+ * paths (e.g. "banners[][images]").
56
60
  *
57
61
  * @example
58
62
  * uploads: {
59
63
  * type: "fields",
60
64
  * fields: [
61
- * { field: "avatar", maxCount: 1, uploadDir: "images" },
62
- * { field: "resume", maxCount: 1, uploadDir: "documents" }
65
+ * { name: "avatar", type: "single", uploadDir: "images" },
66
+ * { name: "resume", type: "single", uploadDir: "documents" },
67
+ * { name: "banners[][images]", type: "array", maxCount: 5, uploadDir: "banners" }
63
68
  * ]
64
69
  * }
65
70
  */
66
71
  | ({
72
+ type: "fields";
73
+ /** Array of field configurations describing multipart form fields to process */
74
+ fields: UploadConfigFieldEntry[];
75
+ } & Pick<ArkosRouterBaseUploadConfig, "deleteOnError">) | ({
67
76
  type: "fields";
68
77
  /** Array of field configurations describing multipart form fields to process */
69
78
  fields: {
@@ -71,12 +80,59 @@ export type UploadConfig =
71
80
  name: string;
72
81
  /** Maximum number of files for this field (defaults to framework config) */
73
82
  maxCount?: number;
83
+ minCount?: number;
74
84
  }[];
75
85
  } & ArkosRouterBaseUploadConfig);
76
86
  /**
77
- * Base configuration options for file uploads.
78
- * These settings can override framework-level defaults for specific routes.
87
+ * A single field entry inside a `fields` upload config.
88
+ * Each entry is a full single or array upload config with an additional
89
+ * `name` property identifying the form field.
90
+ *
91
+ * Field names support bracket notation, including nested array paths
92
+ * (e.g. "banners[][images]"). For nested array paths, multer validation
93
+ * is bypassed and constraints (allowedFileTypes, maxSize, minCount, maxCount)
94
+ * are enforced per group after upload.
95
+ */
96
+ export type UploadConfigFieldEntry =
97
+ /**
98
+ * A single-file field entry.
99
+ *
100
+ * @example
101
+ * { name: "avatar", type: "single", uploadDir: "images", required: true }
102
+ *
103
+ * @example
104
+ * // nested array path — one image per banner
105
+ * { name: "banners[][image]", type: "single", uploadDir: "banners" }
106
+ */
107
+ ({
108
+ /** Name of the form field. Supports bracket notation including nested array paths. */
109
+ name: string;
110
+ type: "single";
111
+ } & Omit<ArkosRouterBaseUploadConfig, "deleteOnError">)
112
+ /**
113
+ * A multi-file field entry.
114
+ *
115
+ * @example
116
+ * { name: "gallery", type: "array", maxCount: 6, uploadDir: "gallery" }
117
+ *
118
+ * @example
119
+ * // nested array path — multiple images per banner, min 1 max 5
120
+ * { name: "banners[][images]", type: "array", minCount: 1, maxCount: 5, uploadDir: "banners" }
79
121
  */
122
+ | ({
123
+ /** Name of the form field. Supports bracket notation including nested array paths. */
124
+ name: string;
125
+ type?: "array";
126
+ /** Maximum number of files for this field (defaults to framework config) */
127
+ maxCount?: number;
128
+ /** Minimum number of files required for this field */
129
+ minCount?: number;
130
+ } & Omit<ArkosRouterBaseUploadConfig, "deleteOnError">); /**
131
+
132
+ /**
133
+ * Base configuration options for file uploads.
134
+ * These settings can override framework-level defaults for specific routes.
135
+ */
80
136
  export type ArkosRouterBaseUploadConfig = {
81
137
  /**
82
138
  * Directory category where files will be stored.
@@ -4,4 +4,4 @@ export declare function applyArkosRouterProxy<T extends object>(target: T, optio
4
4
  openapi?: {
5
5
  tags?: string[];
6
6
  };
7
- }, name?: "app" | "ArkosRouter()"): T;
7
+ }, component?: "app" | "router"): T;
@@ -1,8 +1,10 @@
1
1
  import { ArkosRouteConfig } from "../../types";
2
+ import { ArkosRouterOptions } from "../..";
2
3
  export declare function extractArkosRoutes(app: any, basePath?: string): Array<{
3
4
  path: string;
4
5
  method: string;
5
6
  config?: ArkosRouteConfig;
7
+ routeOptions?: ArkosRouterOptions;
6
8
  }>;
7
9
  export declare function getMiddlewareStack(config: ArkosRouteConfig | Omit<ArkosRouteConfig, "path">): any[];
8
10
  /**
@@ -5,45 +5,9 @@ declare class UploadManager {
5
5
  private getUpload;
6
6
  getMiddleware(config: UploadConfig): RequestHandler;
7
7
  handleUpload(config: UploadConfig, oldFilePath?: string): any;
8
- /**
9
- * Validates that all required upload files are present in the request.
10
- * Checks req.file or req.files based on upload configuration type.
11
- *
12
- * @param {UploadConfig} uploadConfig - The upload configuration from config.experimental.uploads
13
- * @throws {AppError} If required files are missing
14
- *
15
- * @example
16
- * // Single file upload - checks req.file
17
- * validateRequiredFiles(
18
- * { type: 'single', field: 'avatar', required: true },
19
- * req,
20
- * '/users/:id/avatar'
21
- * )
22
- *
23
- * @example
24
- * // Array file upload - checks req.files array
25
- * validateRequiredFiles(
26
- * { type: 'array', field: 'photos', required: true },
27
- * req,
28
- * '/gallery/upload'
29
- * )
30
- *
31
- * @example
32
- * // Multiple fields - checks req.files object
33
- * validateRequiredFiles(
34
- * { type: 'fields', fields: [{ name: 'avatar' }, { name: 'resume' }], required: true },
35
- * req,
36
- * '/profile/upload'
37
- * )
38
- */
39
8
  validateRequiredFiles(uploadConfig: UploadConfig): any;
40
9
  handleFileCleanup(config: UploadConfig): (err: any, req: ArkosRequest, _: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
41
10
  handlePostUpload(config: UploadConfig): any;
42
- /**
43
- * Validates the file's type and MIME type.
44
- * @param {Express.Multer.File} file - The uploaded file.
45
- * @param {Function} cb - The callback function to indicate if file is valid.
46
- */
47
11
  private fileFilter;
48
12
  }
49
13
  declare const uploadManager: UploadManager;
@@ -87,7 +87,7 @@ export declare class Bundler {
87
87
  * @param filePath - Absolute path to the JSON file
88
88
  * @returns Parsed object, or empty object if parsing fails
89
89
  */
90
- private readJsonWithComments;
90
+ readJsonWithComments(filePath: string): any;
91
91
  /**
92
92
  * Resolves a single import path to its final rewritten form.
93
93
  *
@@ -5,7 +5,6 @@ export type GenerateOptions = {
5
5
  path?: string;
6
6
  model?: string;
7
7
  module?: string;
8
- modules?: string;
9
8
  overwrite?: boolean;
10
9
  shouldExit?: boolean;
11
10
  shouldPrintError?: boolean;
@@ -5,7 +5,7 @@ interface StartOptions {
5
5
  /**
6
6
  * Production start command for the arkos CLI
7
7
  */
8
- export declare function startCommand(options?: StartOptions): void;
8
+ export declare function startCommand(options?: StartOptions): Promise<void>;
9
9
  /**
10
10
  * Help function to help other processes to terminate the production server child process
11
11
  */
@@ -7,3 +7,5 @@ export declare function isAuthenticationEnabled(): boolean | undefined;
7
7
  * @returns {ArkosConfig}
8
8
  */
9
9
  export declare function getArkosConfig(): UserArkosConfig;
10
+ export declare function isProduction(): boolean;
11
+ export declare function validateArkosConfig(): void;
@@ -12,4 +12,4 @@ export declare let userFileExtension: "ts" | "js" | undefined;
12
12
  * Returns 'ts' when TypeScript config exists and not in build mode, otherwise 'js'
13
13
  * @returns 'ts' | 'js'
14
14
  */
15
- export declare const getUserFileExtension: () => "ts" | "js";
15
+ export declare const getUserFileExtension: (root?: string) => "ts" | "js";
@@ -1,5 +1,6 @@
1
1
  export declare function getPackageJson(): any;
2
2
  export declare function isEsm(): boolean;
3
+ export declare const userRequire: NodeJS.Require;
3
4
  export declare function importModule(modulePath: string, options?: {
4
5
  fixExtension: boolean;
5
6
  }): Promise<any>;
@@ -0,0 +1 @@
1
+ export declare function lenientDecode(str: string): string;
@@ -29,6 +29,7 @@ export declare class PrismaSchemaParser {
29
29
  prismaSchemasContent: string;
30
30
  parsed: boolean;
31
31
  config: SchemaConfig;
32
+ warningNotLogged: boolean;
32
33
  constructor();
33
34
  /**
34
35
  * Parses the Prisma schema and extracts all models and enums.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkos",
3
- "version": "2.0.0-next.13",
3
+ "version": "2.0.0-next.16",
4
4
  "description": "The Express & Prisma RESTful Framework",
5
5
  "main": "dist/cjs/exports/index.js",
6
6
  "module": "dist/esm/exports/index.js",
@@ -103,7 +103,6 @@
103
103
  "test": "jest",
104
104
  "test:watch": "jest --watch",
105
105
  "test:coverage": "jest --coverage",
106
- "test:ui": "vitest --ui",
107
106
  "test:create": "tsx src/scripts/create-test.ts",
108
107
  "publish:test": "npm publish --tag test",
109
108
  "publish:beta": "npm publish --tag beta",
@@ -147,13 +146,13 @@
147
146
  "@types/compression": "1.7.5",
148
147
  "@types/cookie-parser": "1.4.8",
149
148
  "@types/cors": "2.8.17",
150
- "@types/express": "5.0.0",
149
+ "@types/express": "4.17.25",
151
150
  "@types/html-to-text": "9.0.4",
152
151
  "@types/jest": "29.5.14",
153
152
  "@types/jsonwebtoken": "9.0.9",
154
153
  "@types/multer": "2.0.0",
155
154
  "@types/node": "22.13.13",
156
- "@types/nodemailer": "6.4.17",
155
+ "@types/nodemailer": "8.0.0",
157
156
  "@types/pluralize": "0.0.33",
158
157
  "@types/swagger-jsdoc": "6.0.4",
159
158
  "@typescript-eslint/eslint-plugin": "6.0.0",
@@ -166,11 +165,11 @@
166
165
  "openapi-types": "12.1.3",
167
166
  "prisma": "6.19.2",
168
167
  "ts-jest": "29.3.1",
168
+ "ts-node": "^10.9.2",
169
169
  "ts-prune": "0.10.3",
170
170
  "tsx": "4.20.3",
171
171
  "type-fest": "4.41.0",
172
- "typescript": "5.8.2",
173
- "vitest": "3.2.4"
172
+ "typescript": "5.8.2"
174
173
  },
175
174
  "dependencies": {
176
175
  "chokidar": "4.0.3",
@@ -179,24 +178,25 @@
179
178
  },
180
179
  "peerDependencies": {
181
180
  "@prisma/client": "6.19.2",
181
+ "@scalar/api-reference": "1.55.3",
182
182
  "@scalar/express-api-reference": "0.8.35",
183
183
  "bcryptjs": "3.0.2",
184
184
  "class-transformer": "0.5.1",
185
185
  "class-validator": "0.14.1",
186
186
  "class-validator-jsonschema": "5.0.2",
187
- "compression": "1.8.0",
187
+ "compression": "1.8.1",
188
188
  "cookie-parser": "1.4.7",
189
- "cors": "2.8.5",
190
- "dotenv": "16.4.7",
191
- "dotenv-expand": "12.0.3",
189
+ "cors": "2.8.6",
190
+ "dotenv": "17.4.2",
191
+ "dotenv-expand": "13.0.0",
192
192
  "express": "4.22.1",
193
- "express-rate-limit": "7.5.0",
193
+ "express-rate-limit": "8.4.1",
194
194
  "html-to-text": "9.0.5",
195
- "jsonwebtoken": "9.0.2",
195
+ "jsonwebtoken": "9.0.3",
196
196
  "mimetype": "0.0.8",
197
- "multer": "2.0.2",
198
- "nodemailer": "6.10.0",
199
- "sharp": "0.33.5",
197
+ "nodemailer": "8.0.7",
198
+ "sharp": "0.34.5",
199
+ "multer": "2.1.1",
200
200
  "swagger-jsdoc": "6.2.8",
201
201
  "zod": "3.24.2",
202
202
  "zod-to-json-schema": "3.24.6"
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateRouteHookTemplate = generateRouteHookTemplate;
4
- function generateRouteHookTemplate(options) {
5
- const { modelName } = options;
6
- const isAuthModule = modelName.kebab === "auth";
7
- const isFileUploadModule = modelName.kebab === "file-upload" || modelName.kebab === "fileUpload";
8
- const moduleType = isAuthModule
9
- ? `"auth"`
10
- : isFileUploadModule
11
- ? `"file-upload"`
12
- : `"${modelName.kebab}"`;
13
- const methods = isAuthModule
14
- ? ["getMe", "login", "logout", "signup", "updateMe", "updatePassword"]
15
- : isFileUploadModule
16
- ? ["findFile", "uploadFile", "updateFile", "deleteFile"]
17
- : [
18
- "createOne",
19
- "findOne",
20
- "findMany",
21
- "updateOne",
22
- "deleteOne",
23
- "createMany",
24
- "updateMany",
25
- "deleteMany",
26
- ];
27
- const methodCalls = methods
28
- .map((m) => `${modelName.camel}RouteHook.${m}({});`)
29
- .join("\n\n");
30
- return `import { ArkosRouteHook } from 'arkos';
31
-
32
- const ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});
33
-
34
- ${methodCalls}
35
-
36
- export default ${modelName.camel}RouteHook;
37
- `;
38
- }
39
- //# sourceMappingURL=route-hook.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/route-hook.template.ts"],"names":[],"mappings":";;AAEA,8DAwCC;AAxCD,SAAgB,yBAAyB,CAAC,OAAwB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC;IAChD,MAAM,kBAAkB,GACtB,SAAS,CAAC,KAAK,KAAK,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,YAAY,CAAC;IAExE,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;IAE7B,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACtE,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;YACxD,CAAC,CAAC;gBACE,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,YAAY;aACb,CAAC;IAER,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC;SACnD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,8BAA8B,UAAU;;EAE7D,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateRouteHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const isAuthModule = modelName.kebab === \"auth\";\n const isFileUploadModule =\n modelName.kebab === \"file-upload\" || modelName.kebab === \"fileUpload\";\n\n const moduleType = isAuthModule\n ? `\"auth\"`\n : isFileUploadModule\n ? `\"file-upload\"`\n : `\"${modelName.kebab}\"`;\n\n const methods = isAuthModule\n ? [\"getMe\", \"login\", \"logout\", \"signup\", \"updateMe\", \"updatePassword\"]\n : isFileUploadModule\n ? [\"findFile\", \"uploadFile\", \"updateFile\", \"deleteFile\"]\n : [\n \"createOne\",\n \"findOne\",\n \"findMany\",\n \"updateOne\",\n \"deleteOne\",\n \"createMany\",\n \"updateMany\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}RouteHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosRouteHook } from 'arkos';\n\nconst ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});\n\n${methodCalls}\n\nexport default ${modelName.camel}RouteHook;\n`;\n}\n"]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateServiceHookTemplate = generateServiceHookTemplate;
4
- function generateServiceHookTemplate(options) {
5
- const { modelName } = options;
6
- const methods = [
7
- "createOne",
8
- "createMany",
9
- "count",
10
- "findMany",
11
- "findOne",
12
- "findById",
13
- "updateOne",
14
- "updateById",
15
- "updateMany",
16
- "deleteOne",
17
- "deleteById",
18
- "deleteMany",
19
- ];
20
- const methodCalls = methods
21
- .map((m) => `${modelName.camel}ServiceHook.${m}({});`)
22
- .join("\n\n");
23
- return `import { ArkosServiceHook } from 'arkos';
24
-
25
- const ${modelName.camel}ServiceHook = ArkosServiceHook("${modelName.kebab}");
26
-
27
- ${methodCalls}
28
-
29
- export default ${modelName.camel}ServiceHook;
30
- `;
31
- }
32
- //# sourceMappingURL=service-hook.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/service-hook.template.ts"],"names":[],"mappings":";;AAEA,kEA8BC;AA9BD,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,OAAO,GAAG;QACd,WAAW;QACX,YAAY;QACZ,OAAO;QACP,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;KACb,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC;SACrD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,mCAAmC,SAAS,CAAC,KAAK;;EAEvE,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateServiceHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const methods = [\n \"createOne\",\n \"createMany\",\n \"count\",\n \"findMany\",\n \"findOne\",\n \"findById\",\n \"updateOne\",\n \"updateById\",\n \"updateMany\",\n \"deleteOne\",\n \"deleteById\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}ServiceHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosServiceHook } from 'arkos';\n\nconst ${modelName.camel}ServiceHook = ArkosServiceHook(\"${modelName.kebab}\");\n\n${methodCalls}\n\nexport default ${modelName.camel}ServiceHook;\n`;\n}\n"]}
@@ -1,36 +0,0 @@
1
- export function generateRouteHookTemplate(options) {
2
- const { modelName } = options;
3
- const isAuthModule = modelName.kebab === "auth";
4
- const isFileUploadModule = modelName.kebab === "file-upload" || modelName.kebab === "fileUpload";
5
- const moduleType = isAuthModule
6
- ? `"auth"`
7
- : isFileUploadModule
8
- ? `"file-upload"`
9
- : `"${modelName.kebab}"`;
10
- const methods = isAuthModule
11
- ? ["getMe", "login", "logout", "signup", "updateMe", "updatePassword"]
12
- : isFileUploadModule
13
- ? ["findFile", "uploadFile", "updateFile", "deleteFile"]
14
- : [
15
- "createOne",
16
- "findOne",
17
- "findMany",
18
- "updateOne",
19
- "deleteOne",
20
- "createMany",
21
- "updateMany",
22
- "deleteMany",
23
- ];
24
- const methodCalls = methods
25
- .map((m) => `${modelName.camel}RouteHook.${m}({});`)
26
- .join("\n\n");
27
- return `import { ArkosRouteHook } from 'arkos';
28
-
29
- const ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});
30
-
31
- ${methodCalls}
32
-
33
- export default ${modelName.camel}RouteHook;
34
- `;
35
- }
36
- //# sourceMappingURL=route-hook.template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-hook.template.js","sourceRoot":"","sources":["../../../../../../../src/utils/cli/utils/template-generator/templates/route-hook.template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,OAAwB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC;IAChD,MAAM,kBAAkB,GACtB,SAAS,CAAC,KAAK,KAAK,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,YAAY,CAAC;IAExE,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;IAE7B,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACtE,CAAC,CAAC,kBAAkB;YAClB,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;YACxD,CAAC,CAAC;gBACE,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,YAAY;aACb,CAAC;IAER,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC;SACnD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;QAED,SAAS,CAAC,KAAK,8BAA8B,UAAU;;EAE7D,WAAW;;iBAEI,SAAS,CAAC,KAAK;CAC/B,CAAC;AACF,CAAC","sourcesContent":["import { TemplateOptions } from \"../../template-generators\";\n\nexport function generateRouteHookTemplate(options: TemplateOptions): string {\n const { modelName } = options;\n\n const isAuthModule = modelName.kebab === \"auth\";\n const isFileUploadModule =\n modelName.kebab === \"file-upload\" || modelName.kebab === \"fileUpload\";\n\n const moduleType = isAuthModule\n ? `\"auth\"`\n : isFileUploadModule\n ? `\"file-upload\"`\n : `\"${modelName.kebab}\"`;\n\n const methods = isAuthModule\n ? [\"getMe\", \"login\", \"logout\", \"signup\", \"updateMe\", \"updatePassword\"]\n : isFileUploadModule\n ? [\"findFile\", \"uploadFile\", \"updateFile\", \"deleteFile\"]\n : [\n \"createOne\",\n \"findOne\",\n \"findMany\",\n \"updateOne\",\n \"deleteOne\",\n \"createMany\",\n \"updateMany\",\n \"deleteMany\",\n ];\n\n const methodCalls = methods\n .map((m) => `${modelName.camel}RouteHook.${m}({});`)\n .join(\"\\n\\n\");\n\n return `import { ArkosRouteHook } from 'arkos';\n\nconst ${modelName.camel}RouteHook = ArkosRouteHook(${moduleType});\n\n${methodCalls}\n\nexport default ${modelName.camel}RouteHook;\n`;\n}\n"]}