arkos 1.2.13-beta → 1.2.13-test.1

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 (222) hide show
  1. package/dist/cjs/app.js +138 -1
  2. package/dist/cjs/app.js.map +1 -1
  3. package/dist/cjs/index.js +22 -0
  4. package/dist/cjs/modules/base/base.middlewares.js +4 -4
  5. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  6. package/dist/cjs/modules/swagger/swagger.router.js +62 -43
  7. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  8. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +82 -62
  9. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
  10. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +23 -16
  11. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
  12. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -1
  13. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -1
  14. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +40 -11
  15. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -1
  16. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +419 -9
  17. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -1
  18. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +253 -0
  19. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  20. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +31 -20
  21. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  22. package/dist/cjs/paths.js +9 -1
  23. package/dist/cjs/server.js +85 -5
  24. package/dist/cjs/server.js.map +1 -1
  25. package/dist/cjs/types/arkos-config.js.map +1 -1
  26. package/dist/cjs/utils/cli/dev.js +7 -7
  27. package/dist/cjs/utils/cli/dev.js.map +1 -1
  28. package/dist/cjs/utils/cli/start.js +4 -3
  29. package/dist/cjs/utils/cli/start.js.map +1 -1
  30. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +1 -1
  31. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +1 -1
  32. package/dist/cjs/utils/features/api.features.js +1 -1
  33. package/dist/cjs/utils/features/api.features.js.map +1 -1
  34. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  35. package/dist/cjs/utils/helpers/models.helpers.js +43 -21
  36. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  37. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +451 -0
  38. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  39. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +88 -0
  40. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  41. package/dist/cjs/utils/prisma/prisma-schema-parser.js +158 -0
  42. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
  43. package/dist/cjs/utils/prisma/types.js +3 -0
  44. package/dist/cjs/utils/prisma/types.js.map +1 -0
  45. package/dist/esm/index.d.mts +280 -0
  46. package/dist/esm/index.mjs +22 -0
  47. package/dist/exports/index.js +1 -0
  48. package/dist/types/arkos-config.js +1 -0
  49. package/dist/types/auth.js +1 -0
  50. package/dist/types/index.js +1 -0
  51. package/dist/types/modules/base/base.middlewares.d.ts +4 -4
  52. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -1
  53. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -1
  54. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +2 -1
  55. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +2 -1
  56. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
  57. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +2 -2
  58. package/dist/types/router-config.js +1 -0
  59. package/dist/types/types/arkos-config.d.ts +3 -1
  60. package/dist/types/utils/helpers/models.helpers.d.ts +18 -4
  61. package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
  62. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
  63. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
  64. package/dist/types/utils/prisma/types.d.ts +48 -0
  65. package/dist/utils/arkos-env.js +1 -0
  66. package/dist/utils/dotenv.helpers.js +1 -0
  67. package/dist/utils/sheu.js +1 -0
  68. package/dist/utils/validate-dto.js +1 -0
  69. package/dist/utils/validate-schema.js +1 -0
  70. package/package.json +11 -6
  71. package/dist/esm/app.js +0 -1
  72. package/dist/esm/app.js.map +0 -1
  73. package/dist/esm/exports/auth/index.js +0 -2
  74. package/dist/esm/exports/auth/index.js.map +0 -1
  75. package/dist/esm/exports/controllers/index.js +0 -4
  76. package/dist/esm/exports/controllers/index.js.map +0 -1
  77. package/dist/esm/exports/error-handler/index.js +0 -4
  78. package/dist/esm/exports/error-handler/index.js.map +0 -1
  79. package/dist/esm/exports/index.js +0 -8
  80. package/dist/esm/exports/index.js.map +0 -1
  81. package/dist/esm/exports/middlewares/index.js +0 -2
  82. package/dist/esm/exports/middlewares/index.js.map +0 -1
  83. package/dist/esm/exports/prisma/index.js +0 -3
  84. package/dist/esm/exports/prisma/index.js.map +0 -1
  85. package/dist/esm/exports/services/index.js +0 -9
  86. package/dist/esm/exports/services/index.js.map +0 -1
  87. package/dist/esm/exports/utils/index.js +0 -4
  88. package/dist/esm/exports/utils/index.js.map +0 -1
  89. package/dist/esm/exports/validation/index.js +0 -4
  90. package/dist/esm/exports/validation/index.js.map +0 -1
  91. package/dist/esm/modules/auth/auth.controller.js +0 -187
  92. package/dist/esm/modules/auth/auth.controller.js.map +0 -1
  93. package/dist/esm/modules/auth/auth.router.js +0 -44
  94. package/dist/esm/modules/auth/auth.router.js.map +0 -1
  95. package/dist/esm/modules/auth/auth.service.js +0 -178
  96. package/dist/esm/modules/auth/auth.service.js.map +0 -1
  97. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
  98. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  99. package/dist/esm/modules/base/base.controller.js +0 -150
  100. package/dist/esm/modules/base/base.controller.js.map +0 -1
  101. package/dist/esm/modules/base/base.middlewares.js +0 -81
  102. package/dist/esm/modules/base/base.middlewares.js.map +0 -1
  103. package/dist/esm/modules/base/base.router.js +0 -17
  104. package/dist/esm/modules/base/base.router.js.map +0 -1
  105. package/dist/esm/modules/base/base.service.js +0 -120
  106. package/dist/esm/modules/base/base.service.js.map +0 -1
  107. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +0 -77
  108. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js.map +0 -1
  109. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
  110. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  111. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -89
  112. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  113. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +0 -165
  114. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  115. package/dist/esm/modules/email/email.service.js +0 -97
  116. package/dist/esm/modules/email/email.service.js.map +0 -1
  117. package/dist/esm/modules/error-handler/error-handler.controller.js +0 -107
  118. package/dist/esm/modules/error-handler/error-handler.controller.js.map +0 -1
  119. package/dist/esm/modules/error-handler/utils/app-error.js +0 -15
  120. package/dist/esm/modules/error-handler/utils/app-error.js.map +0 -1
  121. package/dist/esm/modules/error-handler/utils/catch-async.js +0 -10
  122. package/dist/esm/modules/error-handler/utils/catch-async.js.map +0 -1
  123. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +0 -160
  124. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  125. package/dist/esm/modules/file-upload/file-upload.controller.js +0 -266
  126. package/dist/esm/modules/file-upload/file-upload.controller.js.map +0 -1
  127. package/dist/esm/modules/file-upload/file-upload.router.js +0 -38
  128. package/dist/esm/modules/file-upload/file-upload.router.js.map +0 -1
  129. package/dist/esm/modules/file-upload/file-upload.service.js +0 -314
  130. package/dist/esm/modules/file-upload/file-upload.service.js.map +0 -1
  131. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -87
  132. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  133. package/dist/esm/modules/swagger/swagger.router.js +0 -94
  134. package/dist/esm/modules/swagger/swagger.router.js.map +0 -1
  135. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -247
  136. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
  137. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -63
  138. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
  139. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -38
  140. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
  141. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -19
  142. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
  143. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +0 -24
  144. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +0 -1
  145. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +0 -436
  146. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +0 -1
  147. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +0 -159
  148. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +0 -1
  149. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -84
  150. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
  151. package/dist/esm/paths.js +0 -1
  152. package/dist/esm/paths.js.map +0 -1
  153. package/dist/esm/server.js +0 -5
  154. package/dist/esm/server.js.map +0 -1
  155. package/dist/esm/types/arkos-config.js +0 -2
  156. package/dist/esm/types/arkos-config.js.map +0 -1
  157. package/dist/esm/types/auth.js +0 -2
  158. package/dist/esm/types/auth.js.map +0 -1
  159. package/dist/esm/types/index.js +0 -8
  160. package/dist/esm/types/index.js.map +0 -1
  161. package/dist/esm/types/router-config.js +0 -2
  162. package/dist/esm/types/router-config.js.map +0 -1
  163. package/dist/esm/utils/arkos-env.js +0 -7
  164. package/dist/esm/utils/arkos-env.js.map +0 -1
  165. package/dist/esm/utils/cli/build.js +0 -206
  166. package/dist/esm/utils/cli/build.js.map +0 -1
  167. package/dist/esm/utils/cli/dev.js +0 -249
  168. package/dist/esm/utils/cli/dev.js.map +0 -1
  169. package/dist/esm/utils/cli/generate.js +0 -183
  170. package/dist/esm/utils/cli/generate.js.map +0 -1
  171. package/dist/esm/utils/cli/index.js +0 -74
  172. package/dist/esm/utils/cli/index.js.map +0 -1
  173. package/dist/esm/utils/cli/start.js +0 -86
  174. package/dist/esm/utils/cli/start.js.map +0 -1
  175. package/dist/esm/utils/cli/utils/cli.helpers.js +0 -16
  176. package/dist/esm/utils/cli/utils/cli.helpers.js.map +0 -1
  177. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
  178. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  179. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
  180. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -232
  182. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
  183. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -61
  184. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  185. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -37
  186. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  187. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
  188. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  189. package/dist/esm/utils/cli/utils/template-generators.js +0 -25
  190. package/dist/esm/utils/cli/utils/template-generators.js.map +0 -1
  191. package/dist/esm/utils/dotenv.helpers.js +0 -37
  192. package/dist/esm/utils/dotenv.helpers.js.map +0 -1
  193. package/dist/esm/utils/features/api.features.js +0 -160
  194. package/dist/esm/utils/features/api.features.js.map +0 -1
  195. package/dist/esm/utils/features/change-case.features.js +0 -31
  196. package/dist/esm/utils/features/change-case.features.js.map +0 -1
  197. package/dist/esm/utils/helpers/api.features.helpers.js +0 -103
  198. package/dist/esm/utils/helpers/api.features.helpers.js.map +0 -1
  199. package/dist/esm/utils/helpers/change-case.helpers.js +0 -161
  200. package/dist/esm/utils/helpers/change-case.helpers.js.map +0 -1
  201. package/dist/esm/utils/helpers/deepmerge.helper.js +0 -113
  202. package/dist/esm/utils/helpers/deepmerge.helper.js.map +0 -1
  203. package/dist/esm/utils/helpers/fs.helpers.js +0 -52
  204. package/dist/esm/utils/helpers/fs.helpers.js.map +0 -1
  205. package/dist/esm/utils/helpers/global.helpers.js +0 -47
  206. package/dist/esm/utils/helpers/global.helpers.js.map +0 -1
  207. package/dist/esm/utils/helpers/models.helpers.js +0 -300
  208. package/dist/esm/utils/helpers/models.helpers.js.map +0 -1
  209. package/dist/esm/utils/helpers/prisma.helpers.js +0 -44
  210. package/dist/esm/utils/helpers/prisma.helpers.js.map +0 -1
  211. package/dist/esm/utils/helpers/query-parser.helpers.js +0 -40
  212. package/dist/esm/utils/helpers/query-parser.helpers.js.map +0 -1
  213. package/dist/esm/utils/helpers/routers.helpers.js +0 -16
  214. package/dist/esm/utils/helpers/routers.helpers.js.map +0 -1
  215. package/dist/esm/utils/helpers/text.helpers.js +0 -22
  216. package/dist/esm/utils/helpers/text.helpers.js.map +0 -1
  217. package/dist/esm/utils/sheu.js +0 -117
  218. package/dist/esm/utils/sheu.js.map +0 -1
  219. package/dist/esm/utils/validate-dto.js +0 -11
  220. package/dist/esm/utils/validate-dto.js.map +0 -1
  221. package/dist/esm/utils/validate-schema.js +0 -9
  222. package/dist/esm/utils/validate-schema.js.map +0 -1
@@ -1,44 +0,0 @@
1
- import fs from "fs";
2
- import catchAsync from "../../modules/error-handler/utils/catch-async.js";
3
- import AppError from "../../modules/error-handler/utils/app-error.js";
4
- import { crd, getUserFileExtension as ext } from "./fs.helpers.js";
5
- import { importModule } from "./global.helpers.js";
6
- export let prismaInstance = null;
7
- export async function loadPrismaModule() {
8
- if (!prismaInstance) {
9
- try {
10
- let prismaPath = `${crd()}/src/utils/prisma.${ext()}`;
11
- if (!fs.existsSync(prismaPath))
12
- prismaPath = `${crd()}/src/utils/prisma/index.${ext()}`;
13
- if (!fs.existsSync(prismaPath))
14
- throw new Error("Could not found exported prisma insteance");
15
- const prismaModule = await importModule(prismaPath, {
16
- fixExtension: false,
17
- });
18
- prismaInstance = prismaModule.default || prismaModule.prisma;
19
- if (!prismaInstance)
20
- throw new Error("Prisma not found");
21
- }
22
- catch (error) {
23
- if (error.message === "Prisma not found")
24
- throw new AppError(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${ext()} or src/utils/prisma/index.${ext()}, read more about Arkos' Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`, 500, {}, "PrismaInstanceNotFound");
25
- throw error;
26
- }
27
- }
28
- return prismaInstance;
29
- }
30
- export function getPrismaInstance() {
31
- return prismaInstance;
32
- }
33
- export const checkDatabaseConnection = catchAsync(async (req, res, next) => {
34
- const prisma = await loadPrismaModule();
35
- try {
36
- await prisma.$connect();
37
- next();
38
- }
39
- catch (error) {
40
- console.error("Database connection error", error.message);
41
- next(new AppError(error.message, 503));
42
- }
43
- });
44
- //# sourceMappingURL=prisma.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prisma.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/prisma.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,UAAU,MAAM,+CAA+C,CAAC;AACvE,OAAO,QAAQ,MAAM,6CAA6C,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,oBAAoB,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,IAAI,cAAc,GAAQ,IAAI,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,GAAG,GAAG,EAAE,qBAAqB,GAAG,EAAE,EAAE,CAAC;YAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC5B,UAAU,GAAG,GAAG,GAAG,EAAE,2BAA2B,GAAG,EAAE,EAAE,CAAC;YAE1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAE/D,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE;gBAClD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,cAAc,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;YAE7D,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB;gBACtC,MAAM,IAAI,QAAQ,CAChB,yGAAyG,GAAG,EAAE,8BAA8B,GAAG,EAAE,gHAAgH,EACjQ,GAAG,EACH,EAAE,EACF,wBAAwB,CACzB,CAAC;YACJ,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAC/C,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CACF,CAAC","sourcesContent":["import fs from \"fs\";\nimport { Request, Response, NextFunction } from \"express\";\nimport catchAsync from \"../../modules/error-handler/utils/catch-async\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\nimport { crd, getUserFileExtension as ext } from \"./fs.helpers\";\nimport { importModule } from \"./global.helpers\";\n\nexport let prismaInstance: any = null;\n\nexport async function loadPrismaModule() {\n if (!prismaInstance) {\n try {\n let prismaPath = `${crd()}/src/utils/prisma.${ext()}`;\n\n if (!fs.existsSync(prismaPath))\n prismaPath = `${crd()}/src/utils/prisma/index.${ext()}`;\n\n if (!fs.existsSync(prismaPath))\n throw new Error(\"Could not found exported prisma insteance\");\n\n const prismaModule = await importModule(prismaPath, {\n fixExtension: false,\n });\n prismaInstance = prismaModule.default || prismaModule.prisma;\n\n if (!prismaInstance) throw new Error(\"Prisma not found\");\n } catch (error: any) {\n if (error.message === \"Prisma not found\")\n throw new AppError(\n `Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${ext()} or src/utils/prisma/index.${ext()}, read more about Arkos' Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,\n 500,\n {},\n \"PrismaInstanceNotFound\"\n );\n throw error;\n }\n }\n return prismaInstance;\n}\n\nexport function getPrismaInstance() {\n return prismaInstance;\n}\n\nexport const checkDatabaseConnection = catchAsync(\n async (req: Request, res: Response, next: NextFunction) => {\n const prisma = await loadPrismaModule();\n try {\n await prisma.$connect();\n next();\n } catch (error: any) {\n console.error(\"Database connection error\", error.message);\n next(new AppError(error.message, 503));\n }\n }\n);\n"]}
@@ -1,40 +0,0 @@
1
- export const parse = (target, options) => {
2
- switch (typeof target) {
3
- case "string":
4
- if (target === "") {
5
- return "";
6
- }
7
- else if (options.parseNull && target === "null") {
8
- return null;
9
- }
10
- else if (options.parseUndefined && target === "undefined") {
11
- return undefined;
12
- }
13
- else if (options.parseBoolean &&
14
- (target === "true" || target === "false")) {
15
- return target === "true";
16
- }
17
- else if (options.parseNumber && !isNaN(Number(target))) {
18
- return Number(target);
19
- }
20
- else {
21
- return target;
22
- }
23
- case "object":
24
- if (Array.isArray(target)) {
25
- return target.map((x) => parse(x, options));
26
- }
27
- else {
28
- const obj = target;
29
- Object.keys(obj).map((key) => (obj[key] = parse(target[key], options)));
30
- return obj;
31
- }
32
- default:
33
- return target;
34
- }
35
- };
36
- export const queryParser = (options) => (req, res, next) => {
37
- req.query = parse(req.query, options);
38
- next();
39
- };
40
- //# sourceMappingURL=query-parser.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-parser.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/query-parser.helpers.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAmB,EAAE,OAAgB,EAAe,EAAE;IAC1E,QAAQ,OAAO,MAAM,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,OAAO,CAAC,cAAc,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC5D,OAAO,SAAS,CAAC;YACnB,CAAC;iBAAM,IACL,OAAO,CAAC,YAAY;gBACpB,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,EACzC,CAAC;gBACD,OAAO,MAAM,KAAK,MAAM,CAAC;YAC3B,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxE,OAAO,GAAG,CAAC;YACb,CAAC;QACH;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,OAAgB,EAAE,EAAE,CACrB,CAAC,GAAiB,EAAE,GAAkB,EAAE,IAAuB,EAAE,EAAE;IACjE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC;AACT,CAAC,CAAC","sourcesContent":["import { ArkosNextFunction, ArkosRequest, ArkosResponse } from \"../../types\";\n\ntype ParsedQuery = any;\n\nexport interface Options {\n parseNull?: boolean;\n parseUndefined?: boolean;\n parseBoolean?: boolean;\n parseNumber?: boolean;\n}\n\nexport const parse = (target: ParsedQuery, options: Options): ParsedQuery => {\n switch (typeof target) {\n case \"string\":\n if (target === \"\") {\n return \"\";\n } else if (options.parseNull && target === \"null\") {\n return null;\n } else if (options.parseUndefined && target === \"undefined\") {\n return undefined;\n } else if (\n options.parseBoolean &&\n (target === \"true\" || target === \"false\")\n ) {\n return target === \"true\";\n } else if (options.parseNumber && !isNaN(Number(target))) {\n return Number(target);\n } else {\n return target;\n }\n case \"object\":\n if (Array.isArray(target)) {\n return target.map((x) => parse(x, options));\n } else {\n const obj = target;\n Object.keys(obj).map((key) => (obj[key] = parse(target[key], options)));\n return obj;\n }\n default:\n return target;\n }\n};\n\nexport const queryParser =\n (options: Options) =>\n (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => {\n req.query = parse(req.query, options);\n next();\n };\n"]}
@@ -1,16 +0,0 @@
1
- import { catchAsync } from "../../exports/error-handler/index.js";
2
- export const safeCatchAsync = (middleware) => {
3
- return middleware ? catchAsync(middleware) : undefined;
4
- };
5
- export const processMiddleware = (middleware) => {
6
- if (!middleware)
7
- return [];
8
- if (Array.isArray(middleware)) {
9
- return middleware
10
- .filter((mw) => !!mw)
11
- .map((mw) => safeCatchAsync(mw));
12
- }
13
- else
14
- return [safeCatchAsync(middleware)];
15
- };
16
- //# sourceMappingURL=routers.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routers.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/routers.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAe,EAAE,EAAE;IAChD,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAe,EAAE,EAAE;IACnD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU;aACd,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAA2B,CAAC;IAC/D,CAAC;;QAAM,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAA2B,CAAC;AACvE,CAAC,CAAC","sourcesContent":["import { catchAsync } from \"../../exports/error-handler\";\nimport { CatchAsyncReturnType } from \"../../modules/error-handler/utils/catch-async\";\n\nexport const safeCatchAsync = (middleware: any) => {\n return middleware ? catchAsync(middleware) : undefined;\n};\n\n// Helper function to handle middleware arrays or single functions\nexport const processMiddleware = (middleware: any) => {\n if (!middleware) return [];\n\n if (Array.isArray(middleware)) {\n return middleware\n .filter((mw) => !!mw)\n .map((mw) => safeCatchAsync(mw)) as CatchAsyncReturnType[];\n } else return [safeCatchAsync(middleware)] as CatchAsyncReturnType[];\n};\n"]}
@@ -1,22 +0,0 @@
1
- export function capitalize(text) {
2
- if (!text)
3
- return "";
4
- return text
5
- .split(" ")
6
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
7
- .join(" ");
8
- }
9
- export function removeBeginningSlash(str) {
10
- if (str.startsWith("/"))
11
- return str.substring(1);
12
- return str;
13
- }
14
- export function removeEndingSlash(str) {
15
- if (str.endsWith("/"))
16
- return str.substring(0, str.length - 1);
17
- return str;
18
- }
19
- export function removeBothSlashes(str) {
20
- return removeEndingSlash(removeBeginningSlash(str));
21
- }
22
- //# sourceMappingURL=text.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/text.helpers.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAGD,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/D,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC","sourcesContent":["/**\n * Capitalizes the first letter of each word in the input text.\n * The function splits the text by spaces, capitalizes the first letter of each word,\n * and ensures the rest of each word is in lowercase.\n *\n * @param {string} text - The input string to capitalize.\n * @returns {string} The input string with each word capitalized.\n */\nexport function capitalize(text: string): string {\n if (!text) return \"\";\n return text\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \");\n}\n\n// Function to remove the beginning slash\nexport function removeBeginningSlash(str: string) {\n if (str.startsWith(\"/\")) return str.substring(1);\n\n return str;\n}\n\n// Function to remove the ending slash\nexport function removeEndingSlash(str: string) {\n if (str.endsWith(\"/\")) return str.substring(0, str.length - 1);\n\n return str;\n}\n\n// Function to remove both beginning and ending slashes\nexport function removeBothSlashes(str: string) {\n return removeEndingSlash(removeBeginningSlash(str));\n}\n"]}
@@ -1,117 +0,0 @@
1
- class Sheu {
2
- getTimestamp() {
3
- return new Date().toTimeString().split(" ")[0];
4
- }
5
- formatText(text = "", options = {}) {
6
- const label = options?.label
7
- ? text
8
- ? options?.label + " "
9
- : options?.label
10
- : "";
11
- let result = `${label}${text}`;
12
- if (options.timestamp) {
13
- const timestamp = this.getTimestamp();
14
- if (options.timestamp === true)
15
- result = `${label}\x1b[90m${timestamp}\x1b[0m ${text}`;
16
- else if (typeof options.timestamp === "string") {
17
- const colorCode = this.getColorCode(options.timestamp);
18
- result = `${label}${colorCode}${timestamp}\x1b[0m ${text}`;
19
- }
20
- }
21
- if (options.bold)
22
- result = `\x1b[1m${result}\x1b[0m`;
23
- return result;
24
- }
25
- getColorCode(color) {
26
- const colorMap = {
27
- red: "\x1b[31m",
28
- blue: "\x1b[34m",
29
- green: "\x1b[32m",
30
- yellow: "\x1b[33m",
31
- cyan: "\x1b[36m",
32
- magenta: "\x1b[35m",
33
- white: "\x1b[37m",
34
- black: "\x1b[30m",
35
- gray: "\x1b[90m",
36
- orange: "\x1b[91m",
37
- };
38
- return colorMap[color] || "\x1b[90m";
39
- }
40
- red(text, options) {
41
- const coloredText = `\x1b[31m${text}\x1b[0m`;
42
- return this.formatText(coloredText, options || {});
43
- }
44
- blue(text, options) {
45
- const coloredText = `\x1b[34m${text}\x1b[0m`;
46
- return this.formatText(coloredText, options || {});
47
- }
48
- green(text, options) {
49
- const coloredText = `\x1b[32m${text}\x1b[0m`;
50
- return this.formatText(coloredText, options || {});
51
- }
52
- yellow(text, options) {
53
- const coloredText = `\x1b[33m${text}\x1b[0m`;
54
- return this.formatText(coloredText, options || {});
55
- }
56
- cyan(text, options) {
57
- const coloredText = `\x1b[36m${text}\x1b[0m`;
58
- return this.formatText(coloredText, options || {});
59
- }
60
- magenta(text, options) {
61
- const coloredText = `\x1b[35m${text}\x1b[0m`;
62
- return this.formatText(coloredText, options || {});
63
- }
64
- white(text, options) {
65
- const coloredText = `\x1b[37m${text}\x1b[0m`;
66
- return this.formatText(coloredText, options || {});
67
- }
68
- black(text, options) {
69
- const coloredText = `\x1b[30m${text}\x1b[0m`;
70
- return this.formatText(coloredText, options || {});
71
- }
72
- gray(text, options) {
73
- const coloredText = `\x1b[90m${text}\x1b[0m`;
74
- return this.formatText(coloredText, options || {});
75
- }
76
- orange(text, options) {
77
- const coloredText = `\x1b[91m${text}\x1b[0m`;
78
- return this.formatText(coloredText, options || {});
79
- }
80
- bold(text, options) {
81
- const boldText = `\x1b[1m${text}\x1b[0m`;
82
- return this.formatText(boldText, { ...options, bold: false });
83
- }
84
- info(message, options) {
85
- const label = `[\x1b[36mINFO\x1b[0m]`;
86
- const result = this.formatText(message, { ...options, label });
87
- console.info(result);
88
- return result;
89
- }
90
- error(message, options) {
91
- const label = `[\x1b[31mERROR\x1b[0m]`;
92
- const result = this.formatText(message, { ...options, label });
93
- console.error(result);
94
- return result;
95
- }
96
- ready(message, options) {
97
- const label = `[\x1b[32mREADY\x1b[0m]`;
98
- const result = this.formatText(message, { ...options, label });
99
- console.info(result);
100
- return result;
101
- }
102
- done(message, options) {
103
- const label = `[\x1b[32mDONE\x1b[0m]`;
104
- const result = this.formatText(message, { ...options, label });
105
- console.info(result);
106
- return result;
107
- }
108
- warn(message, options) {
109
- const label = `[\x1b[33mWARN\x1b[0m]`;
110
- const result = this.formatText(message, { ...options, label });
111
- console.warn(result);
112
- return result;
113
- }
114
- }
115
- const sheu = new Sheu();
116
- export default sheu;
117
- //# sourceMappingURL=sheu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheu.js","sourceRoot":"","sources":["../../../src/utils/sheu.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sheu - Simplified terminal color utility for styling console output\n */\nclass Sheu {\n /**\n * Get current timestamp in HH:MM:SS format\n */\n private getTimestamp(): string {\n return new Date().toTimeString().split(\" \")[0];\n }\n\n /**\n * Apply timestamp and bold formatting if requested\n */\n private formatText(\n text: string = \"\",\n options: {\n timestamp?: boolean | string;\n bold?: boolean;\n label?: string;\n } = {}\n ): string {\n const label = options?.label\n ? text\n ? options?.label + \" \"\n : options?.label\n : \"\";\n let result = `${label}${text}`;\n\n // Apply timestamp if requested\n if (options.timestamp) {\n const timestamp = this.getTimestamp();\n if (options.timestamp === true)\n result = `${label}\\x1b[90m${timestamp}\\x1b[0m ${text}`;\n else if (typeof options.timestamp === \"string\") {\n const colorCode = this.getColorCode(options.timestamp);\n result = `${label}${colorCode}${timestamp}\\x1b[0m ${text}`;\n }\n }\n\n if (options.bold) result = `\\x1b[1m${result}\\x1b[0m`;\n\n return result;\n }\n\n /**\n * Get ANSI color code for color name\n */\n private getColorCode(color: string): string {\n const colorMap: { [key: string]: string } = {\n red: \"\\x1b[31m\",\n blue: \"\\x1b[34m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n cyan: \"\\x1b[36m\",\n magenta: \"\\x1b[35m\",\n white: \"\\x1b[37m\",\n black: \"\\x1b[30m\",\n gray: \"\\x1b[90m\",\n orange: \"\\x1b[91m\",\n };\n return colorMap[color] || \"\\x1b[90m\"; // Default to gray if color not found\n }\n\n /**\n * Red color\n */\n red(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[31m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Blue color\n */\n blue(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[34m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Green color\n */\n green(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[32m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Yellow color\n */\n yellow(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[33m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Cyan color\n */\n cyan(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[36m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Magenta color\n */\n magenta(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[35m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * White color\n */\n white(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[37m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Black color\n */\n black(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[30m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Gray color\n */\n gray(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[90m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Orange color\n */\n orange(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[91m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Bold text formatting\n */\n bold(text: string, options?: { timestamp?: boolean | string }): string {\n const boldText = `\\x1b[1m${text}\\x1b[0m`;\n return this.formatText(boldText, { ...options, bold: false }); // Don't double-bold\n }\n\n /**\n * Info label with cyan color [INFO]\n */\n info(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[36mINFO\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Error label with red color [ERROR]\n */\n error(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[31mERROR\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.error(result);\n return result;\n }\n\n /**\n * Ready label with green color [READY]\n */\n ready(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mREADY\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Done label with green color [DONE]\n */\n done(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mDONE\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Warning label with yellow color [WARN]\n */\n warn(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[33mWARN\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.warn(result);\n return result;\n }\n}\n\nconst sheu = new Sheu();\n\nexport default sheu;\n"]}
@@ -1,11 +0,0 @@
1
- import { plainToInstance } from "class-transformer";
2
- import { validate } from "class-validator";
3
- import AppError from "../modules/error-handler/utils/app-error.js";
4
- export default async function validateDto(DtoClass, data, validationOptions) {
5
- const dataDto = plainToInstance(DtoClass, data);
6
- const errors = await validate(dataDto, validationOptions);
7
- if (errors.length > 0)
8
- throw new AppError("Invalid request body", 400, errors, "invalid_request_body");
9
- return dataDto;
10
- }
11
- //# sourceMappingURL=validate-dto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-dto.js","sourceRoot":"","sources":["../../../src/utils/validate-dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAoB,MAAM,iBAAiB,CAAC;AAC7D,OAAO,QAAQ,MAAM,0CAA0C,CAAC;AAiChE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,QAA6B,EAC7B,IAAyB,EACzB,iBAAoC;IAEpC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,sBAAsB,EACtB,GAAG,EACH,MAAM,EACN,sBAAsB,CACvB,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { ClassConstructor, plainToInstance } from \"class-transformer\";\nimport { validate, ValidatorOptions } from \"class-validator\";\nimport AppError from \"../modules/error-handler/utils/app-error\";\n\n/**\n * Used to easy validate your data with class validator by passing the validator class and the data to validate, and if whished some validation options\n *\n * @param {ClassConstructor<T>} DtoClass - The DTO class you want to use to validate the data\n * @param {Record<string, any>} data - The data to validated\n * @param {ValidatorOptions} validationOptions - class-validator validation options, default {whitelist: true}\n * @returns {Promise<T> | AppError} - returns the validated data or the encountered errors.\n *\n *\n * @example\n * ```ts\n * class CreateUserDto {\n * @IsString()\n * name: string;\n *\n * @IsEmail()\n * email: string;\n * }\n *\n * async function main() {\n * const data = { name: \"Uanela Como\", email: \"invalid-email\" };\n * try {\n * const validatedUser = await validateDto(CreateUserDto, data);\n * // do something\n * } catch (error) {\n * console.error(error.message);\n * }\n * }\n * ```\n */\n\nexport default async function validateDto<T extends object>(\n DtoClass: ClassConstructor<T>,\n data: Record<string, any>,\n validationOptions?: ValidatorOptions\n): Promise<T> {\n const dataDto = plainToInstance(DtoClass, data);\n const errors = await validate(dataDto, validationOptions);\n\n if (errors.length > 0)\n throw new AppError(\n \"Invalid request body\",\n 400,\n errors,\n \"invalid_request_body\"\n );\n\n return dataDto;\n}\n"]}
@@ -1,9 +0,0 @@
1
- import AppError from "../modules/error-handler/utils/app-error.js";
2
- export default async function validateSchema(schema, data) {
3
- const result = schema.safeParse(data);
4
- if (!result.success) {
5
- throw new AppError("Invalid request body", 400, result.error.format(), "invalid_request_body");
6
- }
7
- return result.data;
8
- }
9
- //# sourceMappingURL=validate-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-schema.js","sourceRoot":"","sources":["../../../src/utils/validate-schema.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,0CAA0C,CAAC;AA2BhE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,MAAoB,EACpB,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAChB,sBAAsB,EACtB,GAAG,EACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EACrB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC","sourcesContent":["import { ZodSchema } from \"zod\";\nimport AppError from \"../modules/error-handler/utils/app-error\";\n\n/**\n * Validates data using a Zod schema and throws an AppError if validation fails.\n *\n * @param {ZodSchema} schema - The Zod schema to validate against.\n * @param {unknown} data - The data to validate.\n * @returns {Promise<any>} - The validated data or throws an AppError on failure.\n *\n * @example\n * ```typescript\n * const userSchema = z.object({\n * name: z.string(),\n * email: z.string().email()\n * });\n *\n * async function main() {\n * const data = { name: \"Uanela Como\", email: \"invalid-email\" };\n * try {\n * const validatedUser = await validateSchema(userSchema, data);\n * // do something\n * } catch (error) {\n * console.error(error.message);\n * }\n * }\n * ```\n */\nexport default async function validateSchema<T>(\n schema: ZodSchema<T>,\n data: unknown\n): Promise<T> {\n const result = schema.safeParse(data);\n if (!result.success) {\n throw new AppError(\n \"Invalid request body\",\n 400,\n result.error.format(),\n \"invalid_request_body\"\n );\n }\n return result.data;\n}\n"]}