arkos 1.2.13-test → 1.2.13-test.2

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 (411) hide show
  1. package/README.md +22 -14
  2. package/cli.js +2 -11
  3. package/dist/cjs/app.js +1 -1
  4. package/dist/cjs/app.js.map +1 -1
  5. package/dist/cjs/exports/auth/index.js +1 -6
  6. package/dist/cjs/exports/controllers/index.js +1 -11
  7. package/dist/cjs/exports/error-handler/index.js +1 -11
  8. package/dist/cjs/exports/index.js +1 -12
  9. package/dist/cjs/exports/middlewares/index.js +1 -7
  10. package/dist/cjs/exports/prisma/index.js +1 -6
  11. package/dist/cjs/exports/services/index.js +1 -49
  12. package/dist/cjs/exports/utils/index.js +1 -44
  13. package/dist/cjs/exports/validation/index.js +1 -11
  14. package/dist/cjs/modules/auth/auth.controller.js +1 -194
  15. package/dist/cjs/modules/auth/auth.router.js +1 -124
  16. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  17. package/dist/cjs/modules/auth/auth.service.js +1 -192
  18. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  19. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
  20. package/dist/cjs/modules/base/base.controller.js +1 -159
  21. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  22. package/dist/cjs/modules/base/base.middlewares.js +1 -92
  23. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  24. package/dist/cjs/modules/base/base.router.js +1 -24
  25. package/dist/cjs/modules/base/base.router.js.map +1 -1
  26. package/dist/cjs/modules/base/base.service.js +1 -128
  27. package/dist/cjs/modules/base/base.service.js.map +1 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
  29. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
  30. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -167
  31. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  32. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -171
  33. package/dist/cjs/modules/email/email.service.js +1 -104
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -144
  35. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  36. package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
  37. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
  38. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  39. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -195
  40. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  41. package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
  42. package/dist/cjs/modules/file-upload/file-upload.router.js +1 -56
  43. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  44. package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
  45. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -90
  46. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  47. package/dist/cjs/modules/swagger/swagger.router.js +1 -141
  48. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
  50. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  51. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
  52. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  53. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
  54. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  55. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
  56. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  57. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
  58. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  59. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
  60. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  61. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
  62. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  63. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  64. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  65. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
  66. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  67. package/dist/cjs/server.js +4 -2
  68. package/dist/cjs/server.js.map +1 -1
  69. package/dist/cjs/types/arkos-config.js +1 -3
  70. package/dist/cjs/types/arkos-config.js.map +1 -1
  71. package/dist/cjs/types/auth.js +1 -3
  72. package/dist/cjs/types/index.js +1 -11
  73. package/dist/cjs/types/router-config.js +1 -3
  74. package/dist/cjs/utils/arkos-env.js +1 -9
  75. package/dist/cjs/utils/cli/build.js +6 -229
  76. package/dist/cjs/utils/cli/build.js.map +1 -1
  77. package/dist/cjs/utils/cli/dev.js +5 -268
  78. package/dist/cjs/utils/cli/dev.js.map +1 -1
  79. package/dist/cjs/utils/cli/generate.js +12 -189
  80. package/dist/cjs/utils/cli/generate.js.map +1 -1
  81. package/dist/cjs/utils/cli/index.js +1 -81
  82. package/dist/cjs/utils/cli/start.js +5 -93
  83. package/dist/cjs/utils/cli/start.js.map +1 -1
  84. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -26
  85. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +1 -1
  86. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
  87. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -15
  88. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +71 -133
  89. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  90. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +24 -46
  91. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
  92. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +12 -32
  93. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  94. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -27
  95. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  96. package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
  97. package/dist/cjs/utils/dotenv.helpers.js +1 -43
  98. package/dist/cjs/utils/features/api.features.js +1 -161
  99. package/dist/cjs/utils/features/api.features.js.map +1 -1
  100. package/dist/cjs/utils/features/change-case.features.js +1 -67
  101. package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
  102. package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
  103. package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
  104. package/dist/cjs/utils/helpers/fs.helpers.js +1 -54
  105. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  106. package/dist/cjs/utils/helpers/global.helpers.js +1 -40
  107. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  108. package/dist/cjs/utils/helpers/models.helpers.js +11 -325
  109. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  110. package/dist/cjs/utils/helpers/prisma.helpers.js +1 -49
  111. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  112. package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
  113. package/dist/cjs/utils/helpers/routers.helpers.js +1 -0
  114. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
  115. package/dist/cjs/utils/helpers/text.helpers.js +1 -28
  116. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
  117. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  118. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
  119. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  120. package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
  121. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
  122. package/dist/cjs/utils/prisma/types.js +1 -0
  123. package/dist/cjs/utils/prisma/types.js.map +1 -0
  124. package/dist/cjs/utils/sheu.js +1 -0
  125. package/dist/cjs/utils/sheu.js.map +1 -0
  126. package/dist/cjs/utils/validate-dto.js +1 -17
  127. package/dist/cjs/utils/validate-schema.js +1 -15
  128. package/dist/esm/app.js +1 -0
  129. package/dist/esm/app.js.map +1 -0
  130. package/dist/esm/exports/auth/index.js +1 -0
  131. package/dist/esm/exports/controllers/index.js +1 -0
  132. package/dist/esm/exports/error-handler/index.js +1 -0
  133. package/dist/esm/exports/index.js +1 -0
  134. package/dist/esm/exports/middlewares/index.js +1 -0
  135. package/dist/esm/exports/prisma/index.js +1 -0
  136. package/dist/esm/exports/services/index.js +1 -0
  137. package/dist/esm/exports/utils/index.js +1 -0
  138. package/dist/esm/exports/validation/index.js +1 -0
  139. package/dist/esm/modules/auth/auth.controller.js +1 -0
  140. package/dist/esm/modules/auth/auth.router.js +1 -0
  141. package/dist/esm/modules/auth/auth.router.js.map +1 -0
  142. package/dist/esm/modules/auth/auth.service.js +1 -0
  143. package/dist/esm/modules/auth/auth.service.js.map +1 -0
  144. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
  145. package/dist/esm/modules/base/base.controller.js +1 -0
  146. package/dist/esm/modules/base/base.controller.js.map +1 -0
  147. package/dist/esm/modules/base/base.middlewares.js +1 -0
  148. package/dist/esm/modules/base/base.middlewares.js.map +1 -0
  149. package/dist/esm/modules/base/base.router.js +1 -0
  150. package/dist/esm/modules/base/base.router.js.map +1 -0
  151. package/dist/esm/modules/base/base.service.js +1 -0
  152. package/dist/{es2020 → esm}/modules/base/base.service.js.map +1 -1
  153. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -0
  154. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -0
  155. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -0
  156. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -0
  157. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -0
  158. package/dist/esm/modules/email/email.service.js +1 -0
  159. package/dist/esm/modules/error-handler/error-handler.controller.js +4 -0
  160. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -0
  161. package/dist/esm/modules/error-handler/utils/app-error.js +1 -0
  162. package/dist/esm/modules/error-handler/utils/catch-async.js +1 -0
  163. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -0
  164. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -0
  165. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
  166. package/dist/esm/modules/file-upload/file-upload.controller.js +1 -0
  167. package/dist/esm/modules/file-upload/file-upload.router.js +1 -0
  168. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -0
  169. package/dist/esm/modules/file-upload/file-upload.service.js +1 -0
  170. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -0
  171. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -0
  172. package/dist/esm/modules/swagger/swagger.router.js +1 -0
  173. package/dist/esm/modules/swagger/swagger.router.js.map +1 -0
  174. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
  175. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  176. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
  177. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  178. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
  179. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  180. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
  181. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  182. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
  183. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  184. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
  185. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  186. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
  187. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  188. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
  189. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  190. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
  191. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  192. package/dist/esm/server.js +5 -0
  193. package/dist/esm/server.js.map +1 -0
  194. package/dist/esm/types/arkos-config.js +1 -0
  195. package/dist/esm/types/arkos-config.js.map +1 -0
  196. package/dist/esm/types/auth.js +1 -0
  197. package/dist/esm/types/index.js +1 -0
  198. package/dist/esm/types/router-config.js +1 -0
  199. package/dist/esm/utils/arkos-env.js +1 -0
  200. package/dist/esm/utils/cli/build.js +6 -0
  201. package/dist/esm/utils/cli/build.js.map +1 -0
  202. package/dist/esm/utils/cli/dev.js +5 -0
  203. package/dist/esm/utils/cli/dev.js.map +1 -0
  204. package/dist/esm/utils/cli/generate.js +12 -0
  205. package/dist/{es2020 → esm}/utils/cli/generate.js.map +1 -1
  206. package/dist/esm/utils/cli/index.js +1 -0
  207. package/dist/esm/utils/cli/start.js +5 -0
  208. package/dist/esm/utils/cli/start.js.map +1 -0
  209. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -0
  210. package/dist/esm/utils/cli/utils/cli.helpers.js.map +1 -0
  211. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +21 -0
  212. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +12 -0
  213. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +206 -0
  214. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -0
  215. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +36 -0
  216. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -0
  217. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +18 -0
  218. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -0
  219. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +15 -0
  220. package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  221. package/dist/esm/utils/cli/utils/template-generators.js +2 -0
  222. package/dist/esm/utils/dotenv.helpers.js +1 -0
  223. package/dist/esm/utils/features/api.features.js +1 -0
  224. package/dist/esm/utils/features/api.features.js.map +1 -0
  225. package/dist/esm/utils/features/change-case.features.js +1 -0
  226. package/dist/esm/utils/helpers/api.features.helpers.js +1 -0
  227. package/dist/esm/utils/helpers/change-case.helpers.js +1 -0
  228. package/dist/esm/utils/helpers/deepmerge.helper.js +1 -0
  229. package/dist/esm/utils/helpers/fs.helpers.js +1 -0
  230. package/dist/esm/utils/helpers/fs.helpers.js.map +1 -0
  231. package/dist/esm/utils/helpers/global.helpers.js +1 -0
  232. package/dist/esm/utils/helpers/global.helpers.js.map +1 -0
  233. package/dist/esm/utils/helpers/models.helpers.js +11 -0
  234. package/dist/esm/utils/helpers/models.helpers.js.map +1 -0
  235. package/dist/esm/utils/helpers/prisma.helpers.js +1 -0
  236. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -0
  237. package/dist/esm/utils/helpers/query-parser.helpers.js +1 -0
  238. package/dist/esm/utils/helpers/routers.helpers.js +1 -0
  239. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -0
  240. package/dist/esm/utils/helpers/text.helpers.js +1 -0
  241. package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
  242. package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  243. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
  244. package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  245. package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
  246. package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
  247. package/dist/esm/utils/prisma/types.js +1 -0
  248. package/dist/esm/utils/prisma/types.js.map +1 -0
  249. package/dist/esm/utils/sheu.js +1 -0
  250. package/dist/esm/utils/sheu.js.map +1 -0
  251. package/dist/esm/utils/validate-dto.js +1 -0
  252. package/dist/esm/utils/validate-schema.js +1 -0
  253. package/dist/types/modules/base/base.middlewares.d.ts +4 -4
  254. package/dist/types/modules/base/base.service.d.ts +1 -1
  255. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
  256. package/dist/types/modules/error-handler/utils/catch-async.d.ts +1 -0
  257. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
  258. package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
  259. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  260. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  261. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -0
  262. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
  263. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
  264. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -0
  265. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
  266. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +3 -0
  267. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +3 -0
  268. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
  269. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
  270. package/dist/types/server.d.ts +3 -0
  271. package/dist/types/types/arkos-config.d.ts +10 -5
  272. package/dist/types/utils/cli/utils/cli.helpers.d.ts +1 -1
  273. package/dist/types/utils/features/api.features.d.ts +1 -0
  274. package/dist/types/utils/helpers/global.helpers.d.ts +6 -1
  275. package/dist/types/utils/helpers/models.helpers.d.ts +31 -5
  276. package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
  277. package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
  278. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
  279. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
  280. package/dist/types/utils/prisma/types.d.ts +48 -0
  281. package/dist/types/utils/sheu.d.ts +70 -0
  282. package/package.json +34 -34
  283. package/dist/es2020/app.js +0 -1
  284. package/dist/es2020/app.js.map +0 -1
  285. package/dist/es2020/exports/auth/index.js +0 -2
  286. package/dist/es2020/exports/controllers/index.js +0 -4
  287. package/dist/es2020/exports/error-handler/index.js +0 -4
  288. package/dist/es2020/exports/index.js +0 -8
  289. package/dist/es2020/exports/middlewares/index.js +0 -2
  290. package/dist/es2020/exports/prisma/index.js +0 -3
  291. package/dist/es2020/exports/services/index.js +0 -9
  292. package/dist/es2020/exports/utils/index.js +0 -4
  293. package/dist/es2020/exports/validation/index.js +0 -4
  294. package/dist/es2020/modules/auth/auth.controller.js +0 -187
  295. package/dist/es2020/modules/auth/auth.router.js +0 -118
  296. package/dist/es2020/modules/auth/auth.router.js.map +0 -1
  297. package/dist/es2020/modules/auth/auth.service.js +0 -185
  298. package/dist/es2020/modules/auth/auth.service.js.map +0 -1
  299. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
  300. package/dist/es2020/modules/base/base.controller.js +0 -151
  301. package/dist/es2020/modules/base/base.controller.js.map +0 -1
  302. package/dist/es2020/modules/base/base.middlewares.js +0 -81
  303. package/dist/es2020/modules/base/base.middlewares.js.map +0 -1
  304. package/dist/es2020/modules/base/base.router.js +0 -17
  305. package/dist/es2020/modules/base/base.router.js.map +0 -1
  306. package/dist/es2020/modules/base/base.service.js +0 -120
  307. package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js +0 -77
  308. package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
  309. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +0 -161
  310. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  311. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +0 -165
  312. package/dist/es2020/modules/email/email.service.js +0 -97
  313. package/dist/es2020/modules/error-handler/error-handler.controller.js +0 -105
  314. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +0 -1
  315. package/dist/es2020/modules/error-handler/utils/app-error.js +0 -15
  316. package/dist/es2020/modules/error-handler/utils/catch-async.js +0 -10
  317. package/dist/es2020/modules/error-handler/utils/catch-async.js.map +0 -1
  318. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +0 -155
  319. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  320. package/dist/es2020/modules/file-upload/file-upload.controller.js +0 -266
  321. package/dist/es2020/modules/file-upload/file-upload.router.js +0 -50
  322. package/dist/es2020/modules/file-upload/file-upload.router.js.map +0 -1
  323. package/dist/es2020/modules/file-upload/file-upload.service.js +0 -314
  324. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -81
  325. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  326. package/dist/es2020/modules/swagger/swagger.router.js +0 -135
  327. package/dist/es2020/modules/swagger/swagger.router.js.map +0 -1
  328. package/dist/es2020/server.js +0 -3
  329. package/dist/es2020/server.js.map +0 -1
  330. package/dist/es2020/types/arkos-config.js +0 -2
  331. package/dist/es2020/types/arkos-config.js.map +0 -1
  332. package/dist/es2020/types/auth.js +0 -2
  333. package/dist/es2020/types/index.js +0 -8
  334. package/dist/es2020/types/router-config.js +0 -2
  335. package/dist/es2020/utils/arkos-env.js +0 -7
  336. package/dist/es2020/utils/cli/build.js +0 -223
  337. package/dist/es2020/utils/cli/build.js.map +0 -1
  338. package/dist/es2020/utils/cli/dev.js +0 -261
  339. package/dist/es2020/utils/cli/dev.js.map +0 -1
  340. package/dist/es2020/utils/cli/generate.js +0 -183
  341. package/dist/es2020/utils/cli/index.js +0 -74
  342. package/dist/es2020/utils/cli/start.js +0 -86
  343. package/dist/es2020/utils/cli/start.js.map +0 -1
  344. package/dist/es2020/utils/cli/utils/cli.helpers.js +0 -18
  345. package/dist/es2020/utils/cli/utils/cli.helpers.js.map +0 -1
  346. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
  347. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
  348. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -265
  349. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
  350. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -55
  351. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  352. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -32
  353. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  354. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
  355. package/dist/es2020/utils/cli/utils/template-generators.js +0 -25
  356. package/dist/es2020/utils/dotenv.helpers.js +0 -37
  357. package/dist/es2020/utils/features/api.features.js +0 -154
  358. package/dist/es2020/utils/features/api.features.js.map +0 -1
  359. package/dist/es2020/utils/features/change-case.features.js +0 -31
  360. package/dist/es2020/utils/helpers/api.features.helpers.js +0 -103
  361. package/dist/es2020/utils/helpers/change-case.helpers.js +0 -161
  362. package/dist/es2020/utils/helpers/deepmerge.helper.js +0 -113
  363. package/dist/es2020/utils/helpers/fs.helpers.js +0 -45
  364. package/dist/es2020/utils/helpers/fs.helpers.js.map +0 -1
  365. package/dist/es2020/utils/helpers/global.helpers.js +0 -4
  366. package/dist/es2020/utils/helpers/global.helpers.js.map +0 -1
  367. package/dist/es2020/utils/helpers/models.helpers.js +0 -276
  368. package/dist/es2020/utils/helpers/models.helpers.js.map +0 -1
  369. package/dist/es2020/utils/helpers/prisma.helpers.js +0 -41
  370. package/dist/es2020/utils/helpers/prisma.helpers.js.map +0 -1
  371. package/dist/es2020/utils/helpers/query-parser.helpers.js +0 -40
  372. package/dist/es2020/utils/helpers/text.helpers.js +0 -22
  373. package/dist/es2020/utils/validate-dto.js +0 -11
  374. package/dist/es2020/utils/validate-schema.js +0 -9
  375. /package/dist/{es2020 → esm}/exports/auth/index.js.map +0 -0
  376. /package/dist/{es2020 → esm}/exports/controllers/index.js.map +0 -0
  377. /package/dist/{es2020 → esm}/exports/error-handler/index.js.map +0 -0
  378. /package/dist/{es2020 → esm}/exports/index.js.map +0 -0
  379. /package/dist/{es2020 → esm}/exports/middlewares/index.js.map +0 -0
  380. /package/dist/{es2020 → esm}/exports/prisma/index.js.map +0 -0
  381. /package/dist/{es2020 → esm}/exports/services/index.js.map +0 -0
  382. /package/dist/{es2020 → esm}/exports/utils/index.js.map +0 -0
  383. /package/dist/{es2020 → esm}/exports/validation/index.js.map +0 -0
  384. /package/dist/{es2020 → esm}/modules/auth/auth.controller.js.map +0 -0
  385. /package/dist/{es2020 → esm}/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -0
  386. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.controller.helpers.js.map +0 -0
  387. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -0
  388. /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.service.helpers.js.map +0 -0
  389. /package/dist/{es2020 → esm}/modules/email/email.service.js.map +0 -0
  390. /package/dist/{es2020 → esm}/modules/error-handler/utils/app-error.js.map +0 -0
  391. /package/dist/{es2020 → esm}/modules/file-upload/file-upload.controller.js.map +0 -0
  392. /package/dist/{es2020 → esm}/modules/file-upload/file-upload.service.js.map +0 -0
  393. /package/dist/{es2020 → esm}/paths.js +0 -0
  394. /package/dist/{es2020 → esm}/paths.js.map +0 -0
  395. /package/dist/{es2020 → esm}/types/auth.js.map +0 -0
  396. /package/dist/{es2020 → esm}/types/index.js.map +0 -0
  397. /package/dist/{es2020 → esm}/types/router-config.js.map +0 -0
  398. /package/dist/{es2020 → esm}/utils/arkos-env.js.map +0 -0
  399. /package/dist/{es2020 → esm}/utils/cli/index.js.map +0 -0
  400. /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -0
  401. /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -0
  402. /package/dist/{es2020 → esm}/utils/cli/utils/template-generators.js.map +0 -0
  403. /package/dist/{es2020 → esm}/utils/dotenv.helpers.js.map +0 -0
  404. /package/dist/{es2020 → esm}/utils/features/change-case.features.js.map +0 -0
  405. /package/dist/{es2020 → esm}/utils/helpers/api.features.helpers.js.map +0 -0
  406. /package/dist/{es2020 → esm}/utils/helpers/change-case.helpers.js.map +0 -0
  407. /package/dist/{es2020 → esm}/utils/helpers/deepmerge.helper.js.map +0 -0
  408. /package/dist/{es2020 → esm}/utils/helpers/query-parser.helpers.js.map +0 -0
  409. /package/dist/{es2020 → esm}/utils/helpers/text.helpers.js.map +0 -0
  410. /package/dist/{es2020 → esm}/utils/validate-dto.js.map +0 -0
  411. /package/dist/{es2020 → esm}/utils/validate-schema.js.map +0 -0
@@ -1,37 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import dotenv from "dotenv";
4
- export function loadEnvironmentVariables() {
5
- const ENV = process.env.NODE_ENV;
6
- const cwd = process.cwd();
7
- let loadedEnvs = [];
8
- const envFiles = [
9
- path.resolve(cwd, `.env.defaults`),
10
- path.resolve(cwd, `.env.${ENV}`),
11
- path.resolve(cwd, `.env.${ENV}.local`),
12
- path.resolve(cwd, ".env.local"),
13
- path.resolve(cwd, ".env"),
14
- ];
15
- envFiles.forEach((filePath) => {
16
- if (fs.existsSync(filePath)) {
17
- if (ENV === "production" && filePath.endsWith(".local"))
18
- console.info(`Skipping the local ${filePath.replace(cwd, "")} files in production`);
19
- else {
20
- const result = dotenv.config({ path: filePath, override: true });
21
- if (result.error) {
22
- console.warn(`Warning: Error loading ${filePath}`, result.error);
23
- }
24
- else
25
- loadedEnvs.push(filePath);
26
- }
27
- }
28
- });
29
- const requiredVars = ["DATABASE_URL"];
30
- const missingVars = requiredVars.filter((varName) => !process.env[varName]);
31
- if (missingVars.length > 0) {
32
- console.error("Missing required environment variables:", missingVars.join(", "));
33
- }
34
- if (loadedEnvs)
35
- return loadedEnvs;
36
- }
37
- //# sourceMappingURL=dotenv.helpers.js.map
@@ -1,154 +0,0 @@
1
- import deepmerge from "../helpers/deepmerge.helper";
2
- import { parseQueryParamsWithModifiers } from "../helpers/api.features.helpers";
3
- import AppError from "../../modules/error-handler/utils/app-error";
4
- import { getPrismaInstance } from "../helpers/prisma.helpers";
5
- export default class APIFeatures {
6
- constructor(req, modelName) {
7
- this.filters = {};
8
- this.excludedFields = [
9
- "page",
10
- "sort",
11
- "limit",
12
- "fields",
13
- "addFields",
14
- "removeFields",
15
- "search",
16
- "include",
17
- "filterMode",
18
- "where",
19
- "prismaQueryOptions",
20
- "ignoredFields",
21
- ];
22
- if (req) {
23
- this.req = req;
24
- this.searchParams = parseQueryParamsWithModifiers(req.query);
25
- }
26
- if (modelName)
27
- this.modelName = modelName;
28
- this.filters = { ...this.filters };
29
- }
30
- setup(req, modelName) {
31
- this.req = req;
32
- this.searchParams = parseQueryParamsWithModifiers(req.query);
33
- if (modelName)
34
- this.modelName = modelName;
35
- this.filters = { ...this.filters };
36
- return this;
37
- }
38
- filter() {
39
- if (!this.req)
40
- throw new Error("Trying to use APIFeatures.filter() without passing request on class constructor or APIFeatures.setup() method. read more about at www.arkosjs.com/docs/advanced-guide/api-features-class");
41
- const searchableFields = [];
42
- const queryObj = { ...this.searchParams };
43
- this.excludedFields.forEach((el) => delete queryObj[el]);
44
- const whereObj = { ...this.req.params, ...queryObj };
45
- const whereLogicalOperatorFilters = Object.keys(whereObj).map((key) => ({
46
- [key]: whereObj[key],
47
- }));
48
- let whereOptions = whereLogicalOperatorFilters.length > 0
49
- ? {
50
- [this.req.query?.filterMode ?? "OR"]: whereLogicalOperatorFilters,
51
- }
52
- : {};
53
- if (!!this.searchParams.search) {
54
- const prisma = getPrismaInstance();
55
- if (this.modelName)
56
- Object.keys(prisma[this.modelName].fields).forEach((key) => {
57
- const field = prisma[this.modelName].fields[key];
58
- if (field.typeName === "String" &&
59
- key !== "id" &&
60
- key !== "password" &&
61
- !field.isList &&
62
- !key?.includes?.("Id") &&
63
- !key?.includes?.("ID")) {
64
- searchableFields.push({
65
- [`${key}`]: {
66
- contains: this.searchParams.search,
67
- mode: "insensitive",
68
- },
69
- });
70
- }
71
- });
72
- whereOptions = deepmerge({
73
- OR: searchableFields,
74
- }, whereOptions);
75
- }
76
- const firstMerge = deepmerge({
77
- where: whereOptions,
78
- }, this.req.prismaQueryOptions || {});
79
- this.filters = deepmerge(firstMerge, this.filters);
80
- return this;
81
- }
82
- search() {
83
- if (this.searchParams?.search) {
84
- this.filters = deepmerge(this.filters, {
85
- where: {
86
- OR: [],
87
- },
88
- });
89
- }
90
- }
91
- sort() {
92
- if (this.searchParams.sort) {
93
- const sortBy = this.searchParams?.sort
94
- ?.split(",")
95
- ?.map((field) => ({
96
- [field.startsWith("-") ? field.substring(1) : field]: field.startsWith("-") ? "desc" : "asc",
97
- }));
98
- this.filters = deepmerge(this.filters, { orderBy: sortBy });
99
- }
100
- return this;
101
- }
102
- limitFields() {
103
- if (this.searchParams?.fields) {
104
- const fields = this.searchParams.fields.split(",");
105
- const regularFields = fields.filter((field) => !field.startsWith("+") && !field.startsWith("-"));
106
- const includeFields = fields
107
- .filter((field) => field.startsWith("+"))
108
- .map((field) => field.substring(1));
109
- const excludeFields = fields
110
- .filter((field) => field.startsWith("-"))
111
- .map((field) => field.substring(1));
112
- let selection = {};
113
- if (regularFields.length > 0) {
114
- selection = regularFields.reduce((acc, field) => {
115
- acc[field] = true;
116
- return acc;
117
- }, {});
118
- }
119
- else {
120
- selection = this.filters.include || {};
121
- includeFields.forEach((field) => {
122
- selection[field] = true;
123
- });
124
- excludeFields.forEach((field) => {
125
- selection[field] = false;
126
- });
127
- }
128
- this.filters = {
129
- ...this.filters,
130
- select: selection,
131
- };
132
- if (this.filters.include) {
133
- delete this.filters.include;
134
- }
135
- }
136
- if (this.searchParams?.addFields || this.searchParams?.removeFields) {
137
- throw new AppError("The addFields and removeFields parameters are deprecated. Please use fields with + and - prefixes instead.", 400);
138
- }
139
- return this;
140
- }
141
- paginate() {
142
- const page = parseInt(this.searchParams.page, 10) || 1;
143
- const limit = parseInt(this.searchParams.limit, 10) || 30;
144
- const skip = (page - 1) * limit;
145
- this.filters = {
146
- ...this.filters,
147
- skip,
148
- take: limit,
149
- };
150
- return this;
151
- }
152
- }
153
- export const apiFeatures = new APIFeatures();
154
- //# sourceMappingURL=api.features.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.features.js","sourceRoot":"","sources":["../../../../src/utils/features/api.features.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request } from \"express\";\nimport deepmerge from \"../helpers/deepmerge.helper\";\nimport { parseQueryParamsWithModifiers } from \"../helpers/api.features.helpers\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\nimport { getPrismaInstance } from \"../helpers/prisma.helpers\";\nimport { ArkosRequest } from \"../../types\";\n\ntype ModelName = string;\n\nexport default class APIFeatures {\n req?: ArkosRequest;\n searchParams: any; // The query string parameters from the request\n searchParamsWithModifiers: any; // The query string parameters from the request\n filters: any = {};\n modelName?: ModelName;\n excludedFields = [\n \"page\",\n \"sort\",\n \"limit\",\n \"fields\",\n \"addFields\",\n \"removeFields\",\n \"search\",\n \"include\",\n \"filterMode\",\n \"where\",\n \"prismaQueryOptions\",\n \"ignoredFields\",\n ];\n\n constructor(req?: Request, modelName?: ModelName) {\n if (req) {\n this.req = req;\n this.searchParams = parseQueryParamsWithModifiers(req.query);\n }\n if (modelName) this.modelName = modelName;\n this.filters = { ...this.filters };\n }\n\n setup(req: Request, modelName?: ModelName) {\n this.req = req;\n this.searchParams = parseQueryParamsWithModifiers(req.query);\n if (modelName) this.modelName = modelName;\n this.filters = { ...this.filters };\n\n return this;\n }\n\n filter() {\n if (!this.req)\n throw new Error(\n \"Trying to use APIFeatures.filter() without passing request on class constructor or APIFeatures.setup() method. read more about at www.arkosjs.com/docs/advanced-guide/api-features-class\"\n );\n const searchableFields: Record<string, any>[] = [];\n\n const queryObj = { ...this.searchParams };\n\n this.excludedFields.forEach((el) => delete queryObj[el]);\n\n const whereObj = { ...this.req.params, ...queryObj };\n const whereLogicalOperatorFilters = Object.keys(whereObj).map((key) => ({\n [key]: whereObj[key],\n }));\n\n let whereOptions =\n whereLogicalOperatorFilters.length > 0\n ? {\n [(this.req.query?.filterMode as string) ?? \"OR\"]:\n whereLogicalOperatorFilters,\n }\n : {};\n\n if (!!this.searchParams.search) {\n const prisma = getPrismaInstance();\n\n if (this.modelName)\n Object.keys((prisma as any)[this.modelName].fields).forEach((key) => {\n const field = ((prisma as any)[this.modelName!].fields as any)[key];\n if (\n field.typeName === \"String\" &&\n key !== \"id\" &&\n key !== \"password\" &&\n !field.isList &&\n !key?.includes?.(\"Id\") &&\n !key?.includes?.(\"ID\")\n ) {\n searchableFields.push({\n [`${key}`]: {\n contains: this.searchParams.search,\n mode: \"insensitive\",\n },\n });\n }\n });\n\n whereOptions = deepmerge(\n {\n OR: searchableFields,\n },\n whereOptions\n );\n }\n\n const firstMerge = deepmerge(\n {\n where: whereOptions,\n },\n this.req.prismaQueryOptions || {}\n );\n\n this.filters = deepmerge(firstMerge, this.filters);\n return this;\n }\n\n search() {\n if (this.searchParams?.search) {\n this.filters = deepmerge(this.filters, {\n where: {\n OR: [],\n },\n });\n }\n }\n\n sort() {\n if (this.searchParams.sort) {\n const sortBy = this.searchParams?.sort\n ?.split(\",\")\n ?.map((field: string) => ({\n [field.startsWith(\"-\") ? field.substring(1) : field]:\n field.startsWith(\"-\") ? \"desc\" : \"asc\",\n }));\n this.filters = deepmerge(this.filters, { orderBy: sortBy });\n }\n\n return this;\n }\n\n limitFields() {\n if (this.searchParams?.fields) {\n const fields = this.searchParams.fields.split(\",\");\n\n // Separate fields into includes, excludes, and regular fields\n const regularFields = fields.filter(\n (field: string) => !field.startsWith(\"+\") && !field.startsWith(\"-\")\n );\n const includeFields = fields\n .filter((field: string) => field.startsWith(\"+\"))\n .map((field: string) => field.substring(1));\n const excludeFields = fields\n .filter((field: string) => field.startsWith(\"-\"))\n .map((field: string) => field.substring(1));\n\n // Create selection object based on field type\n let selection: Record<string, any> = {};\n\n // If regular fields exist, use them as the base selection\n if (regularFields.length > 0) {\n selection = regularFields.reduce(\n (acc: Record<string, any>, field: string) => {\n acc[field] = true;\n return acc;\n },\n {} as Record<string, any>\n );\n }\n // Otherwise, use include fields as additions to any existing included fields\n else {\n // Start with current include fields if they exist\n selection = this.filters.include || {};\n\n // Add any explicitly included fields\n includeFields.forEach((field: string) => {\n selection[field] = true;\n });\n\n // Add any explicitly excluded fields\n excludeFields.forEach((field: string) => {\n selection[field] = false;\n });\n }\n\n // Apply the selection to filters\n this.filters = {\n ...this.filters,\n select: selection,\n };\n\n // Remove the include filter as it's now part of select\n if (this.filters.include) {\n delete this.filters.include;\n }\n }\n\n // Remove any references to the now-unused parameters\n if (this.searchParams?.addFields || this.searchParams?.removeFields) {\n throw new AppError(\n \"The addFields and removeFields parameters are deprecated. Please use fields with + and - prefixes instead.\",\n 400\n );\n }\n\n return this;\n }\n\n paginate() {\n const page = parseInt(this.searchParams.page, 10) || 1;\n const limit = parseInt(this.searchParams.limit, 10) || 30;\n const skip = (page - 1) * limit;\n\n this.filters = {\n ...this.filters,\n skip,\n take: limit,\n };\n return this;\n }\n}\n\nexport const apiFeatures = new APIFeatures();\n"]}
@@ -1,31 +0,0 @@
1
- import * as changeCase from "../helpers/change-case.helpers";
2
- const isObject = (object) => object !== null && typeof object === "object";
3
- function changeKeysFactory(changeCase) {
4
- return function changeKeys(object, depth = 1, options) {
5
- if (depth === 0 || !isObject(object))
6
- return object;
7
- if (Array.isArray(object)) {
8
- return object.map((item) => changeKeys(item, depth - 1, options));
9
- }
10
- const result = Object.create(Object.getPrototypeOf(object));
11
- Object.keys(object).forEach((key) => {
12
- const value = object[key];
13
- const changedKey = changeCase(key, options);
14
- const changedValue = changeKeys(value, depth - 1, options);
15
- result[changedKey] = changedValue;
16
- });
17
- return result;
18
- };
19
- }
20
- export const camelCase = changeKeysFactory(changeCase.camelCase);
21
- export const capitalCase = changeKeysFactory(changeCase.capitalCase);
22
- export const constantCase = changeKeysFactory(changeCase.constantCase);
23
- export const dotCase = changeKeysFactory(changeCase.dotCase);
24
- export const trainCase = changeKeysFactory(changeCase.trainCase);
25
- export const noCase = changeKeysFactory(changeCase.noCase);
26
- export const kebabCase = changeKeysFactory(changeCase.kebabCase);
27
- export const pascalCase = changeKeysFactory(changeCase.pascalCase);
28
- export const pathCase = changeKeysFactory(changeCase.pathCase);
29
- export const sentenceCase = changeKeysFactory(changeCase.sentenceCase);
30
- export const snakeCase = changeKeysFactory(changeCase.snakeCase);
31
- //# sourceMappingURL=change-case.features.js.map
@@ -1,103 +0,0 @@
1
- const DEFAULT_FIELD_CONFIG = {
2
- dateFields: ["createdAt", "updatedAt", "deletedAt", "date"],
3
- booleanFields: ["isActive", "isDeleted", "isPublished", "isArchived"],
4
- numericFields: ["age", "price", "quantity", "amount", "rating"],
5
- };
6
- export function parseQueryParamsWithModifiers(query, fieldConfig = DEFAULT_FIELD_CONFIG) {
7
- return Object.entries(JSON.parse(JSON.stringify(query))).reduce((acc, [key, value]) => {
8
- const parts = key.split("__");
9
- if (!value && value !== false && value !== "false" && parts.length < 2)
10
- return acc;
11
- const stringValue = Array.isArray(value) ? value[0]?.toString() : value;
12
- if (parts.length < 2) {
13
- acc[key] =
14
- typeof value === "string" && !Number.isNaN(value)
15
- ? convertValue(stringValue, parts[0], fieldConfig)
16
- : value;
17
- return acc;
18
- }
19
- const fieldName = parts[0];
20
- if (fieldName === "orderBy" && parts.length === 2) {
21
- if (!acc.orderBy)
22
- acc.orderBy = {};
23
- acc.orderBy[parts[1]] = stringValue;
24
- return acc;
25
- }
26
- if (parts.length === 1) {
27
- acc[fieldName] = {
28
- equals: convertValue(stringValue, fieldName, fieldConfig),
29
- };
30
- return acc;
31
- }
32
- let currentLevel = acc;
33
- let currentKey = fieldName;
34
- for (let i = 1; i < parts.length - 1; i++) {
35
- if (!currentLevel[currentKey]) {
36
- currentLevel[currentKey] = {};
37
- }
38
- currentLevel = currentLevel[currentKey];
39
- currentKey = parts[i];
40
- }
41
- const lastOperator = parts[parts.length - 1];
42
- switch (lastOperator) {
43
- case "icontains":
44
- currentLevel[currentKey] = {
45
- contains: stringValue,
46
- mode: "insensitive",
47
- };
48
- break;
49
- case "contains":
50
- currentLevel[currentKey] = {
51
- contains: stringValue,
52
- mode: "sensitive",
53
- };
54
- break;
55
- case "in":
56
- case "notIn":
57
- currentLevel[currentKey] = {
58
- [lastOperator]: stringValue
59
- .split(",")
60
- .map((v) => convertValue(v.trim(), fieldName, fieldConfig)),
61
- };
62
- break;
63
- case "or":
64
- const values = stringValue.split(",");
65
- if (!acc.OR)
66
- acc.OR = [];
67
- acc.OR.push(...values.map((val) => ({
68
- [fieldName]: {
69
- equals: convertValue(val.trim(), fieldName, fieldConfig),
70
- },
71
- })));
72
- break;
73
- case "isNull":
74
- currentLevel[currentKey] = {
75
- equals: stringValue.toLowerCase() === "true" ? null : undefined,
76
- };
77
- break;
78
- case "isEmpty":
79
- currentLevel[currentKey] = {
80
- equals: stringValue.toLowerCase() === "true" ? "" : undefined,
81
- };
82
- break;
83
- default:
84
- currentLevel[currentKey] = {
85
- [lastOperator]: convertValue(stringValue, fieldName, fieldConfig),
86
- };
87
- }
88
- return acc;
89
- }, {});
90
- }
91
- function convertValue(value, fieldName, config) {
92
- if (config.dateFields?.includes?.(fieldName) && value) {
93
- return new Date(value);
94
- }
95
- if (config.booleanFields?.includes?.(fieldName) && value) {
96
- return value.toLowerCase() === "true";
97
- }
98
- if (config.numericFields?.includes?.(fieldName) && value) {
99
- return Number(value);
100
- }
101
- return value;
102
- }
103
- //# sourceMappingURL=api.features.helpers.js.map
@@ -1,161 +0,0 @@
1
- const SPLIT_LOWER_UPPER_RE = /([\p{Ll}\d])(\p{Lu})/gu;
2
- const SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
3
- const SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
4
- const DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
5
- const SPLIT_REPLACE_VALUE = "$1\0$2";
6
- const DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
7
- export function split(value) {
8
- let result = value.trim();
9
- result = result
10
- .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)
11
- .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
12
- result = result.replace(DEFAULT_STRIP_REGEXP, "\0");
13
- let start = 0;
14
- let end = result.length;
15
- while (result.charAt(start) === "\0")
16
- start++;
17
- if (start === end)
18
- return [];
19
- while (result.charAt(end - 1) === "\0")
20
- end--;
21
- return result.slice(start, end).split(/\0/g);
22
- }
23
- export function splitSeparateNumbers(value) {
24
- const words = split(value);
25
- for (let i = 0; i < words.length; i++) {
26
- const word = words[i];
27
- const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
28
- if (match) {
29
- const offset = match.index + (match[1] ?? match[2]).length;
30
- words.splice(i, 1, word.slice(0, offset), word.slice(offset));
31
- }
32
- }
33
- return words;
34
- }
35
- export function noCase(input, options) {
36
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
37
- return (prefix +
38
- words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") +
39
- suffix);
40
- }
41
- export function camelCase(input, options) {
42
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
43
- const lower = lowerFactory(options?.locale);
44
- const upper = upperFactory(options?.locale);
45
- const transform = options?.mergeAmbiguousCharacters
46
- ? capitalCaseTransformFactory(lower, upper)
47
- : pascalCaseTransformFactory(lower, upper);
48
- return (prefix +
49
- words
50
- .map((word, index) => {
51
- if (index === 0)
52
- return lower(word);
53
- return transform(word, index);
54
- })
55
- .join(options?.delimiter ?? "") +
56
- suffix);
57
- }
58
- export function pascalCase(input, options) {
59
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
60
- const lower = lowerFactory(options?.locale);
61
- const upper = upperFactory(options?.locale);
62
- const transform = options?.mergeAmbiguousCharacters
63
- ? capitalCaseTransformFactory(lower, upper)
64
- : pascalCaseTransformFactory(lower, upper);
65
- return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
66
- }
67
- export function pascalSnakeCase(input, options) {
68
- return capitalCase(input, { delimiter: "_", ...options });
69
- }
70
- export function capitalCase(input, options) {
71
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
72
- const lower = lowerFactory(options?.locale);
73
- const upper = upperFactory(options?.locale);
74
- return (prefix +
75
- words
76
- .map(capitalCaseTransformFactory(lower, upper))
77
- .join(options?.delimiter ?? " ") +
78
- suffix);
79
- }
80
- export function constantCase(input, options) {
81
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
82
- return (prefix +
83
- words.map(upperFactory(options?.locale)).join(options?.delimiter ?? "_") +
84
- suffix);
85
- }
86
- export function dotCase(input, options) {
87
- return noCase(input, { delimiter: ".", ...options });
88
- }
89
- export function kebabCase(input, options) {
90
- return noCase(input, { delimiter: "-", ...options });
91
- }
92
- export function pathCase(input, options) {
93
- return noCase(input, { delimiter: "/", ...options });
94
- }
95
- export function sentenceCase(input, options) {
96
- const [prefix, words, suffix] = splitPrefixSuffix(input, options);
97
- const lower = lowerFactory(options?.locale);
98
- const upper = upperFactory(options?.locale);
99
- const transform = capitalCaseTransformFactory(lower, upper);
100
- return (prefix +
101
- words
102
- .map((word, index) => {
103
- if (index === 0)
104
- return transform(word);
105
- return lower(word);
106
- })
107
- .join(options?.delimiter ?? " ") +
108
- suffix);
109
- }
110
- export function snakeCase(input, options) {
111
- return noCase(input, { delimiter: "_", ...options });
112
- }
113
- export function trainCase(input, options) {
114
- return capitalCase(input, { delimiter: "-", ...options });
115
- }
116
- function lowerFactory(locale) {
117
- return locale === false
118
- ? (input) => input.toLowerCase()
119
- : (input) => input.toLocaleLowerCase(locale);
120
- }
121
- function upperFactory(locale) {
122
- return locale === false
123
- ? (input) => input.toUpperCase()
124
- : (input) => input.toLocaleUpperCase(locale);
125
- }
126
- function capitalCaseTransformFactory(lower, upper) {
127
- return (word) => `${upper(word[0])}${lower(word.slice(1))}`;
128
- }
129
- function pascalCaseTransformFactory(lower, upper) {
130
- return (word, index) => {
131
- const char0 = word[0];
132
- const initial = index > 0 && char0 >= "0" && char0 <= "9" ? "_" + char0 : upper(char0);
133
- return initial + lower(word.slice(1));
134
- };
135
- }
136
- function splitPrefixSuffix(input, options = {}) {
137
- const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
138
- const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
139
- const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
140
- let prefixIndex = 0;
141
- let suffixIndex = input.length;
142
- while (prefixIndex < input.length) {
143
- const char = input.charAt(prefixIndex);
144
- if (!prefixCharacters?.includes?.(char))
145
- break;
146
- prefixIndex++;
147
- }
148
- while (suffixIndex > prefixIndex) {
149
- const index = suffixIndex - 1;
150
- const char = input.charAt(index);
151
- if (!suffixCharacters?.includes?.(char))
152
- break;
153
- suffixIndex = index;
154
- }
155
- return [
156
- input.slice(0, prefixIndex),
157
- splitFn(input.slice(prefixIndex, suffixIndex)),
158
- input.slice(suffixIndex),
159
- ];
160
- }
161
- //# sourceMappingURL=change-case.helpers.js.map
@@ -1,113 +0,0 @@
1
- function isMergeableObject(value) {
2
- return isNonNullObject(value) && !isSpecial(value);
3
- }
4
- function isNonNullObject(value) {
5
- return !!value && typeof value === "object";
6
- }
7
- function isSpecial(value) {
8
- const stringValue = Object.prototype.toString.call(value);
9
- return stringValue === "[object RegExp]" || stringValue === "[object Date]";
10
- }
11
- function emptyTarget(val) {
12
- return Array.isArray(val) ? [] : {};
13
- }
14
- function getKeys(target) {
15
- const objectKeys = Object.keys(target);
16
- const symbolKeys = getEnumerableOwnPropertySymbols(target);
17
- return [...objectKeys, ...symbolKeys];
18
- }
19
- function getEnumerableOwnPropertySymbols(target) {
20
- return Object.getOwnPropertySymbols
21
- ? Object.getOwnPropertySymbols(target).filter(function (symbol) {
22
- return Object.propertyIsEnumerable.call(target, symbol);
23
- })
24
- : [];
25
- }
26
- function cloneUnlessOtherwiseSpecified(value, options) {
27
- return options.clone !== false && options.isMergeableObject?.(value)
28
- ? deepmerge(emptyTarget(value), value, options)
29
- : value;
30
- }
31
- function defaultArrayMerge(target, source, options) {
32
- return target.concat(source).map(function (element) {
33
- return options.cloneUnlessOtherwiseSpecified(element, options);
34
- });
35
- }
36
- function getMergeFunction(key, options) {
37
- if (!options.customMerge) {
38
- return deepmerge;
39
- }
40
- const customMerge = options.customMerge(key);
41
- return typeof customMerge === "function" ? customMerge : deepmerge;
42
- }
43
- function propertyIsOnObject(object, property) {
44
- try {
45
- return property in object;
46
- }
47
- catch (_) {
48
- return false;
49
- }
50
- }
51
- function propertyIsUnsafe(target, key) {
52
- return (propertyIsOnObject(target, key) &&
53
- !(Object.hasOwnProperty.call(target, key) &&
54
- Object.propertyIsEnumerable.call(target, key)));
55
- }
56
- function mergeObject(target, source, options) {
57
- const destination = {};
58
- if (options.isMergeableObject?.(target)) {
59
- getKeys(target).forEach(function (key) {
60
- destination[key] = options.cloneUnlessOtherwiseSpecified
61
- ? options.cloneUnlessOtherwiseSpecified(target[key], options)
62
- : target[key];
63
- });
64
- }
65
- getKeys(source).forEach(function (key) {
66
- if (propertyIsUnsafe(target, key)) {
67
- return;
68
- }
69
- if (propertyIsOnObject(target, key) &&
70
- options.isMergeableObject?.(source[key])) {
71
- destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
72
- }
73
- else {
74
- destination[key] = options.cloneUnlessOtherwiseSpecified
75
- ? options.cloneUnlessOtherwiseSpecified(source[key], options)
76
- : source[key];
77
- }
78
- });
79
- return destination;
80
- }
81
- function deepmerge(target, source, options) {
82
- options = options || {};
83
- const mergeOptions = {
84
- arrayMerge: options.arrayMerge || defaultArrayMerge,
85
- isMergeableObject: options.isMergeableObject || isMergeableObject,
86
- cloneUnlessOtherwiseSpecified: options.cloneUnlessOtherwiseSpecified || cloneUnlessOtherwiseSpecified,
87
- clone: options.clone,
88
- customMerge: options.customMerge,
89
- };
90
- const sourceIsArray = Array.isArray(source);
91
- const targetIsArray = Array.isArray(target);
92
- const sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
93
- if (!sourceAndTargetTypesMatch) {
94
- return mergeOptions.cloneUnlessOtherwiseSpecified(source, mergeOptions);
95
- }
96
- else if (sourceIsArray) {
97
- return mergeOptions.arrayMerge?.(target, source, mergeOptions);
98
- }
99
- else {
100
- return mergeObject(target, source, mergeOptions);
101
- }
102
- }
103
- function deepmergeAll(array, options) {
104
- if (!Array.isArray(array)) {
105
- throw new Error("first argument should be an array");
106
- }
107
- return array.reduce((prev, next) => {
108
- return deepmerge(prev, next, options);
109
- }, {});
110
- }
111
- deepmerge.all = deepmergeAll;
112
- export default deepmerge;
113
- //# sourceMappingURL=deepmerge.helper.js.map
@@ -1,45 +0,0 @@
1
- import { promisify } from "util";
2
- import fs from "fs";
3
- import path from "path";
4
- export const statAsync = promisify(fs.stat);
5
- export const accessAsync = promisify(fs.access);
6
- export const mkdirAsync = promisify(fs.mkdir);
7
- export const crd = () => process.env.ARKOS_BUILD === "true"
8
- ? process.cwd() + "/.build/"
9
- : process.cwd();
10
- export function fullCleanCwd(path) {
11
- if (typeof path !== "string")
12
- throw new Error("Path must be a string");
13
- const cwd = process.cwd().replace(/\/+$/, "");
14
- return path.replace(new RegExp(`${cwd}/?`, "g"), "");
15
- }
16
- export let userFileExtension;
17
- export const getUserFileExtension = () => {
18
- if (userFileExtension)
19
- return userFileExtension;
20
- try {
21
- const currentDir = process.cwd();
22
- const hasTsConfig = fs.existsSync(path.join(currentDir, "tsconfig.json"));
23
- const isBuildMode = process.env.ARKOS_BUILD === "true";
24
- if (hasTsConfig && !isBuildMode) {
25
- userFileExtension = "ts";
26
- }
27
- else {
28
- userFileExtension = "js";
29
- }
30
- return userFileExtension;
31
- }
32
- catch (e) {
33
- userFileExtension = "js";
34
- return userFileExtension;
35
- }
36
- };
37
- export function checkFileExists(filePath) {
38
- try {
39
- return fs.existsSync(path.resolve(filePath));
40
- }
41
- catch (error) {
42
- return false;
43
- }
44
- }
45
- //# sourceMappingURL=fs.helpers.js.map