arkos 0.0.12 → 0.0.13

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 (113) hide show
  1. package/dist/src/app.d.ts +11 -0
  2. package/dist/src/app.d.ts.map +1 -0
  3. package/dist/src/app.js +124 -0
  4. package/dist/src/app.js.map +1 -0
  5. package/dist/src/modules/auth/auth.controller.d.ts +23 -0
  6. package/dist/src/modules/auth/auth.controller.d.ts.map +1 -0
  7. package/dist/src/modules/auth/auth.controller.js +310 -0
  8. package/dist/src/modules/auth/auth.controller.js.map +1 -0
  9. package/dist/src/modules/auth/auth.router.d.ts +4 -0
  10. package/dist/src/modules/auth/auth.router.d.ts.map +1 -0
  11. package/dist/src/modules/auth/auth.router.js +64 -0
  12. package/dist/src/modules/auth/auth.router.js.map +1 -0
  13. package/dist/src/modules/auth/auth.service.d.ts +16 -0
  14. package/dist/src/modules/auth/auth.service.d.ts.map +1 -0
  15. package/dist/src/modules/auth/auth.service.js +120 -0
  16. package/dist/src/modules/auth/auth.service.js.map +1 -0
  17. package/dist/src/modules/base/base.controller.d.ts +17 -0
  18. package/dist/src/modules/base/base.controller.d.ts.map +1 -0
  19. package/dist/src/modules/base/base.controller.js +296 -0
  20. package/dist/src/modules/base/base.controller.js.map +1 -0
  21. package/dist/src/modules/base/base.middlewares.d.ts +20 -0
  22. package/dist/src/modules/base/base.middlewares.d.ts.map +1 -0
  23. package/dist/src/modules/base/base.middlewares.js +86 -0
  24. package/dist/src/modules/base/base.middlewares.js.map +1 -0
  25. package/dist/src/modules/base/base.router.d.ts +4 -0
  26. package/dist/src/modules/base/base.router.d.ts.map +1 -0
  27. package/dist/src/modules/base/base.router.js +75 -0
  28. package/dist/src/modules/base/base.router.js.map +1 -0
  29. package/dist/src/modules/base/base.service.d.ts +32 -0
  30. package/dist/src/modules/base/base.service.d.ts.map +1 -0
  31. package/dist/src/modules/base/base.service.js +149 -0
  32. package/dist/src/modules/base/base.service.js.map +1 -0
  33. package/dist/src/modules/base/utils/base.helpers.d.ts +29 -0
  34. package/dist/src/modules/base/utils/base.helpers.d.ts.map +1 -0
  35. package/dist/src/modules/base/utils/base.helpers.js +106 -0
  36. package/dist/src/modules/base/utils/base.helpers.js.map +1 -0
  37. package/dist/src/modules/email/email.service.d.ts +22 -0
  38. package/dist/src/modules/email/email.service.d.ts.map +1 -0
  39. package/dist/src/modules/email/email.service.js +45 -0
  40. package/dist/src/modules/email/email.service.js.map +1 -0
  41. package/dist/src/modules/email/utils/helpers/email.helpers.d.ts +9 -0
  42. package/dist/src/modules/email/utils/helpers/email.helpers.d.ts.map +1 -0
  43. package/dist/src/modules/email/utils/helpers/email.helpers.js +25 -0
  44. package/dist/src/modules/email/utils/helpers/email.helpers.js.map +1 -0
  45. package/dist/src/modules/error-handler/error-handler.controller.d.ts +4 -0
  46. package/dist/src/modules/error-handler/error-handler.controller.d.ts.map +1 -0
  47. package/dist/src/modules/error-handler/error-handler.controller.js +182 -0
  48. package/dist/src/modules/error-handler/error-handler.controller.js.map +1 -0
  49. package/dist/src/modules/error-handler/utils/app-error.d.ts +11 -0
  50. package/dist/src/modules/error-handler/utils/app-error.d.ts.map +1 -0
  51. package/dist/src/modules/error-handler/utils/app-error.js +23 -0
  52. package/dist/src/modules/error-handler/utils/app-error.js.map +1 -0
  53. package/dist/src/modules/error-handler/utils/catch-async.d.ts +4 -0
  54. package/dist/src/modules/error-handler/utils/catch-async.d.ts.map +1 -0
  55. package/dist/src/modules/error-handler/utils/catch-async.js +9 -0
  56. package/dist/src/modules/error-handler/utils/catch-async.js.map +1 -0
  57. package/dist/src/modules/error-handler/utils/error-handler.helpers.d.ts +43 -0
  58. package/dist/src/modules/error-handler/utils/error-handler.helpers.d.ts.map +1 -0
  59. package/dist/src/modules/error-handler/utils/error-handler.helpers.js +209 -0
  60. package/dist/src/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
  61. package/dist/src/modules/file-uploader/file-uploader.service.d.ts +20 -0
  62. package/dist/src/modules/file-uploader/file-uploader.service.d.ts.map +1 -0
  63. package/dist/src/modules/file-uploader/file-uploader.service.js +114 -0
  64. package/dist/src/modules/file-uploader/file-uploader.service.js.map +1 -0
  65. package/dist/src/paths.d.ts +2 -0
  66. package/dist/src/paths.d.ts.map +1 -0
  67. package/dist/src/paths.js +9 -0
  68. package/dist/src/paths.js.map +1 -0
  69. package/dist/src/server.d.ts +21 -0
  70. package/dist/src/server.d.ts.map +1 -0
  71. package/dist/src/server.js +50 -0
  72. package/dist/src/server.js.map +1 -0
  73. package/dist/src/utils/features/api.features.d.ts +20 -0
  74. package/dist/src/utils/features/api.features.d.ts.map +1 -0
  75. package/dist/src/utils/features/api.features.js +175 -0
  76. package/dist/src/utils/features/api.features.js.map +1 -0
  77. package/dist/src/utils/features/prisma.helpers.d.ts +4 -0
  78. package/dist/src/utils/features/prisma.helpers.d.ts.map +1 -0
  79. package/dist/src/utils/features/prisma.helpers.js +68 -0
  80. package/dist/src/utils/features/prisma.helpers.js.map +1 -0
  81. package/dist/src/utils/helpers/api.features.helpers.d.ts +41 -0
  82. package/dist/src/utils/helpers/api.features.helpers.d.ts.map +1 -0
  83. package/dist/src/utils/helpers/api.features.helpers.js +161 -0
  84. package/dist/src/utils/helpers/api.features.helpers.js.map +1 -0
  85. package/dist/src/utils/helpers/models.helpers.d.ts +21 -0
  86. package/dist/src/utils/helpers/models.helpers.d.ts.map +1 -0
  87. package/dist/src/utils/helpers/models.helpers.js +192 -0
  88. package/dist/src/utils/helpers/models.helpers.js.map +1 -0
  89. package/dist/src/utils/helpers/text.helpers.d.ts +2 -0
  90. package/dist/src/utils/helpers/text.helpers.d.ts.map +1 -0
  91. package/dist/src/utils/helpers/text.helpers.js +12 -0
  92. package/dist/src/utils/helpers/text.helpers.js.map +1 -0
  93. package/dist/src/utils/permissions/index.d.ts +3 -0
  94. package/dist/src/utils/permissions/index.d.ts.map +1 -0
  95. package/dist/src/utils/permissions/index.js +17 -0
  96. package/dist/src/utils/permissions/index.js.map +1 -0
  97. package/dist/src/utils/scripts/export-prisma-types.d.ts +2 -0
  98. package/dist/src/utils/scripts/export-prisma-types.d.ts.map +1 -0
  99. package/dist/src/utils/scripts/export-prisma-types.js +152 -0
  100. package/dist/src/utils/scripts/export-prisma-types.js.map +1 -0
  101. package/dist/src/utils/scripts/generate-zod-schemas.d.ts +2 -0
  102. package/dist/src/utils/scripts/generate-zod-schemas.d.ts.map +1 -0
  103. package/dist/src/utils/scripts/generate-zod-schemas.js +121 -0
  104. package/dist/src/utils/scripts/generate-zod-schemas.js.map +1 -0
  105. package/dist/src/utils/scripts/prisma-db-push.d.ts +2 -0
  106. package/dist/src/utils/scripts/prisma-db-push.d.ts.map +1 -0
  107. package/dist/src/utils/scripts/prisma-db-push.js +24 -0
  108. package/dist/src/utils/scripts/prisma-db-push.js.map +1 -0
  109. package/dist/src/utils/validate-dto.d.ts +3 -0
  110. package/dist/src/utils/validate-dto.d.ts.map +1 -0
  111. package/dist/src/utils/validate-dto.js +17 -0
  112. package/dist/src/utils/validate-dto.js.map +1 -0
  113. package/package.json +1 -1
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const change_case_all_1 = require("change-case-all");
7
+ const express_1 = require("express");
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const base_controller_1 = require("./base.controller");
10
+ const models_helpers_1 = require("../../utils/helpers/models.helpers");
11
+ const base_middlewares_1 = require("./base.middlewares");
12
+ const permissions_1 = require("../../utils/permissions");
13
+ const auth_service_1 = __importDefault(require("../auth/auth.service"));
14
+ const router = (0, express_1.Router)();
15
+ console.log("models from base.router", models_helpers_1.models);
16
+ models_helpers_1.models.forEach(async (model) => {
17
+ const modelNameInKebab = (0, change_case_all_1.kebabCase)(model);
18
+ const { middlewares, authConfigs, prismaQueryOptions } = await (0, models_helpers_1.importPrismaModelModules)(modelNameInKebab);
19
+ const routeName = pluralize_1.default.plural(modelNameInKebab);
20
+ const { createOne, findMany, findOne, updateOne, deleteOne, createMany, updateMany, deleteMany, } = await (0, base_controller_1.handlerFactory)(model, middlewares);
21
+ // const ModelType =
22
+ // typeof PrismaClient[pascalCase(model) as keyof typeof PrismaClient]
23
+ router
24
+ .route(`/${routeName}`)
25
+ .post(auth_service_1.default.handleAuthenticationControl(authConfigs, "create", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "create", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "createOne"), middlewares?.beforeCreateOne ?? createOne, middlewares?.beforeCreateOne
26
+ ? createOne
27
+ : middlewares?.afterCreateOne ?? base_middlewares_1.sendResponse, middlewares?.beforeCreateOne && middlewares?.afterCreateOne
28
+ ? middlewares?.afterCreateOne
29
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse)
30
+ .get(auth_service_1.default.handleAuthenticationControl(authConfigs, "view", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "view", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "findMany"), middlewares?.beforeFindMany ?? findMany, middlewares?.beforeFindMany
31
+ ? findMany
32
+ : middlewares?.afterFindMany ?? base_middlewares_1.sendResponse, middlewares?.beforeFindMany && middlewares?.afterFindMany
33
+ ? middlewares?.afterFindMany
34
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
35
+ router
36
+ .route(`/${routeName}/many`)
37
+ .post(auth_service_1.default.handleAuthenticationControl(authConfigs, "create", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "create", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "createMany"), middlewares?.beforeCreateMany ?? createMany, middlewares?.beforeCreateMany
38
+ ? createMany
39
+ : middlewares?.afterCreateMany ?? base_middlewares_1.sendResponse, middlewares?.beforeCreateMany && middlewares?.afterCreateMany
40
+ ? middlewares?.afterCreateMany
41
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse)
42
+ .patch(auth_service_1.default.handleAuthenticationControl(authConfigs, "update", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "update", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "updateMany"), middlewares?.beforeUpdateMany ?? updateMany, middlewares?.beforeUpdateMany
43
+ ? updateMany
44
+ : middlewares?.afterUpdateMany ?? base_middlewares_1.sendResponse, middlewares?.beforeUpdateMany && middlewares?.afterUpdateMany
45
+ ? middlewares?.afterUpdateMany
46
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse)
47
+ .delete(auth_service_1.default.handleAuthenticationControl(authConfigs, "delete", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "delete", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "deleteMany"), middlewares?.beforeDeleteMany ?? deleteMany, middlewares?.beforeDeleteMany
48
+ ? deleteMany
49
+ : middlewares?.afterDeleteMany ?? base_middlewares_1.sendResponse, middlewares?.beforeDeleteMany && middlewares?.afterDeleteMany
50
+ ? middlewares?.afterDeleteMany
51
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
52
+ router
53
+ .route(`/${routeName}/:id`)
54
+ .get(auth_service_1.default.handleAuthenticationControl(authConfigs, "view", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "view", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "findOne"), middlewares?.beforeFindOne ?? findOne, middlewares?.beforeFindOne
55
+ ? findOne
56
+ : middlewares?.afterFindOne ?? base_middlewares_1.sendResponse, middlewares?.beforeFindOne && middlewares?.afterFindOne
57
+ ? middlewares?.afterFindOne
58
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse)
59
+ .patch(auth_service_1.default.handleAuthenticationControl(authConfigs, "update", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "update", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "updateOne"), middlewares?.beforeUpdateOne ?? updateOne, middlewares?.beforeUpdateOne
60
+ ? updateOne
61
+ : middlewares?.afterUpdateOne ?? base_middlewares_1.sendResponse, middlewares?.beforeUpdateOne && middlewares?.afterUpdateOne
62
+ ? middlewares?.afterUpdateOne
63
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse)
64
+ .delete(auth_service_1.default.handleAuthenticationControl(authConfigs, "delete", modelNameInKebab), auth_service_1.default.handleActionAccessControl(authConfigs, "delete", modelNameInKebab), (0, base_middlewares_1.addPrismaQueryOptionsToRequestQuery)(prismaQueryOptions, "deleteOne"), middlewares?.beforeDeleteOne ?? deleteOne, middlewares?.beforeDeleteOne
65
+ ? deleteOne
66
+ : middlewares?.afterDeleteOne ?? base_middlewares_1.sendResponse, middlewares?.beforeDeleteOne && middlewares?.afterDeleteOne
67
+ ? middlewares?.afterDeleteOne
68
+ : base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
69
+ });
70
+ router.get("/available-routes", base_controller_1.getAvalibleRoutes);
71
+ router.get("/database-models", auth_service_1.default.authenticate, base_controller_1.getDatabaseModels);
72
+ router.post("/uploads/:fileType", auth_service_1.default.handleAuthenticationControl(permissions_1.permissions.uploads, "create", "file-upload"), auth_service_1.default.handleActionAccessControl(permissions_1.permissions.uploads, "create", "file-upload"), base_controller_1.uploadFile);
73
+ router.delete("/uploads/:fileType/:fileName", auth_service_1.default.handleAuthenticationControl(permissions_1.permissions.uploads, "create", "file-upload"), auth_service_1.default.handleActionAccessControl(permissions_1.permissions.uploads, "create", "file-upload"), base_controller_1.deleteFile);
74
+ exports.default = router;
75
+ //# sourceMappingURL=base.router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.router.js","sourceRoot":"","sources":["../../../../src/modules/base/base.router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { RelationFields } from "../../utils/helpers/models.helpers";
2
+ declare const baseServices: Record<string, BaseService>;
3
+ export declare class BaseService {
4
+ modelName: string;
5
+ relationFields: RelationFields;
6
+ singularRelationFieldToInclude: Record<string, boolean>;
7
+ listRelationFieldToInclude: Record<string, boolean>;
8
+ prisma: any;
9
+ constructor(modelName: string);
10
+ createOne(body: Record<string, any>, queryOptions?: string): Promise<any>;
11
+ createMany(body: Record<string, any>[]): Promise<{
12
+ total: number;
13
+ data: any;
14
+ }>;
15
+ findMany(filters: Record<string, any>): Promise<{
16
+ total: number;
17
+ data: any;
18
+ }>;
19
+ findOne(params: Record<string, any>, queryOptions?: string): Promise<any>;
20
+ updateOne(params: Record<string, any>, body: Record<string, any>, queryOptions?: string): Promise<any>;
21
+ updateMany(filter: Record<string, any>, body: Record<string, any>): Promise<{
22
+ total: number;
23
+ data: any;
24
+ }>;
25
+ deleteOne(params: Record<string, any>): Promise<any>;
26
+ deleteMany(filter: Record<string, any>): Promise<{
27
+ total: number;
28
+ data: any;
29
+ }>;
30
+ }
31
+ export default baseServices;
32
+ //# sourceMappingURL=base.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/base/base.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAQ5C,QAAA,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,CAAC;AAErD,qBAAa,WAAW;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpD,MAAM,EAAE,GAAG,CAAC;gBAEA,SAAS,EAAE,MAAM;IAoBvB,SAAS,CACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IAsBT,UAAU,CACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAC1B,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IAelC,QAAQ,CACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IAwBlC,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IAiCT,SAAS,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IA6BT,UAAU,CACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IAqBlC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IASpD,UAAU,CACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;CAczC;AAMD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseService = void 0;
7
+ const change_case_all_1 = require("change-case-all");
8
+ const models_helpers_1 = require("../../utils/helpers/models.helpers");
9
+ const deepmerge_1 = __importDefault(require("deepmerge"));
10
+ // import { prisma } from "../../../../../src/utils/prisma";
11
+ const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
12
+ const pluralize_1 = __importDefault(require("pluralize"));
13
+ const base_helpers_1 = require("./utils/base.helpers");
14
+ const app_1 = require("../../app");
15
+ const baseServices = {};
16
+ class BaseService {
17
+ modelName;
18
+ relationFields;
19
+ singularRelationFieldToInclude;
20
+ listRelationFieldToInclude;
21
+ // private static instance: Singleton
22
+ prisma;
23
+ constructor(modelName) {
24
+ this.modelName = (0, change_case_all_1.camelCase)(modelName);
25
+ this.relationFields = (0, models_helpers_1.getPrismaModelRelations)((0, change_case_all_1.pascalCase)(modelName));
26
+ this.singularRelationFieldToInclude = this.relationFields?.singular?.reduce((acc, curr) => {
27
+ acc[curr.name] = true;
28
+ return acc;
29
+ }, {});
30
+ this.listRelationFieldToInclude = this.relationFields?.list?.reduce((acc, curr) => {
31
+ acc[curr.name] = true;
32
+ return acc;
33
+ }, {});
34
+ this.prisma = app_1.prisma;
35
+ }
36
+ async createOne(body, queryOptions) {
37
+ const bodyWithRelationFieldsHandled = (0, base_helpers_1.handleRelationFieldsInBody)(body, {
38
+ ...this.relationFields,
39
+ }, ["delete", "disconnect", "update"]);
40
+ return await this.prisma[this.modelName].create((0, deepmerge_1.default)({
41
+ data: bodyWithRelationFieldsHandled,
42
+ include: {
43
+ ...this.singularRelationFieldToInclude,
44
+ ...this.singularRelationFieldToInclude,
45
+ },
46
+ }, JSON.parse(queryOptions || "{}")));
47
+ }
48
+ async createMany(body) {
49
+ if (!Array.isArray(body) || body.length === 0) {
50
+ throw new app_error_1.default("Invalid or empty data array provided for creation.", 400);
51
+ }
52
+ const data = await this.prisma[this.modelName].createMany({
53
+ data: body,
54
+ });
55
+ const total = await this.prisma[this.modelName].count();
56
+ return { total, data };
57
+ }
58
+ async findMany(filters) {
59
+ const data = await this.prisma[this.modelName].findMany("select" in filters
60
+ ? (0, deepmerge_1.default)({ ...filters }, {
61
+ select: this.singularRelationFieldToInclude,
62
+ })
63
+ : (0, deepmerge_1.default)({ ...filters }, {
64
+ include: this.singularRelationFieldToInclude,
65
+ }));
66
+ const total = await this.prisma[this.modelName].count({
67
+ where: filters.where,
68
+ });
69
+ return { total, data };
70
+ }
71
+ async findOne(params, queryOptions) {
72
+ const data = await this.prisma[this.modelName].findUnique((0, deepmerge_1.default)({
73
+ where: { ...params, id: String(params.id) },
74
+ ...(JSON.parse(queryOptions || "{}").hasOwnProperty("select")
75
+ ? {
76
+ select: {
77
+ ...this.singularRelationFieldToInclude,
78
+ ...this.singularRelationFieldToInclude,
79
+ },
80
+ }
81
+ : {
82
+ include: {
83
+ ...this.singularRelationFieldToInclude,
84
+ ...this.singularRelationFieldToInclude,
85
+ },
86
+ }),
87
+ }, JSON.parse(queryOptions || "{}")));
88
+ if (!data) {
89
+ throw new app_error_1.default(`${(0, change_case_all_1.pascalCase)(String(this.modelName))} with ID ${params.id} not found`, 404);
90
+ }
91
+ return data;
92
+ }
93
+ async updateOne(params, body, queryOptions) {
94
+ const bodyWithRelationFieldsHandled = (0, base_helpers_1.handleRelationFieldsInBody)(body, {
95
+ ...this.relationFields,
96
+ });
97
+ const data = await this.prisma[this.modelName].update((0, deepmerge_1.default)({
98
+ where: { ...params, id: String(params.id) },
99
+ data: bodyWithRelationFieldsHandled,
100
+ include: {
101
+ ...this.singularRelationFieldToInclude,
102
+ ...this.singularRelationFieldToInclude,
103
+ },
104
+ }, JSON.parse(queryOptions || "{}")));
105
+ if (!data) {
106
+ throw new app_error_1.default(`${(0, change_case_all_1.pascalCase)(String(this.modelName))} with ID ${params.id} not found`, 404);
107
+ }
108
+ return data;
109
+ }
110
+ async updateMany(filter, body) {
111
+ if (!filter || typeof filter !== "object") {
112
+ throw new app_error_1.default("Invalid filter provided for udpate many.", 400);
113
+ }
114
+ const data = await this.prisma[this.modelName].updateMany({
115
+ ...filter,
116
+ data: body,
117
+ });
118
+ if (!data || data.count === 0) {
119
+ throw new app_error_1.default(`${(0, pluralize_1.default)((0, change_case_all_1.pascalCase)(String(this.modelName)))} not found`, 404);
120
+ }
121
+ const total = await this.prisma[this.modelName].count();
122
+ return { total, data };
123
+ }
124
+ async deleteOne(params) {
125
+ return await this.prisma[this.modelName].delete({
126
+ where: {
127
+ ...params,
128
+ id: String(params.id),
129
+ },
130
+ });
131
+ }
132
+ async deleteMany(filter) {
133
+ if (!filter || typeof filter !== "object") {
134
+ throw new app_error_1.default("Invalid filter provided for deletion.", 400);
135
+ }
136
+ const data = await this.prisma[this.modelName].deleteMany(filter);
137
+ if (!data || data.count === 0) {
138
+ throw new app_error_1.default(`No records found to delete`, 404);
139
+ }
140
+ const total = await this.prisma[this.modelName].count();
141
+ return { total, data };
142
+ }
143
+ }
144
+ exports.BaseService = BaseService;
145
+ models_helpers_1.models.forEach((model) => {
146
+ baseServices[`${(0, change_case_all_1.camelCase)(model)}`] = new BaseService(model);
147
+ });
148
+ exports.default = baseServices;
149
+ //# sourceMappingURL=base.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../../../src/modules/base/base.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { RelationFields } from "../../../utils/helpers/models.helpers";
2
+ /**
3
+ * Determines the appropriate Prisma operation (`create`, `connect`, `update`, `delete`, or `disconnect`)
4
+ * for each relation field in the provided body based on its nested data and recursively does the same for each relation field.
5
+ *
6
+ * This function handles the following types of relations:
7
+ * - **One-to-one**
8
+ * - **One-to-many**
9
+ *
10
+ *
11
+ * ### Operation Rules:
12
+ *
13
+ *
14
+ * - **Create**: Used when the nested relation data is provided **without an `id`**.
15
+ * - **Connect**: Used when the nested relation data contains **only an `id`**.
16
+ * - **Update**: Used when the nested relation data contains **both an `id` and additional fields**.
17
+ * - **Delete**: Used when the nested relation data includes **`apiAction: "delete"`**.
18
+ * - **Disconnect**: Used when the nested relation data includes **`apiAction: "disconnect"`**.
19
+ *
20
+ * @param {Record<string, any>} body - The object containing relation fields to be processed.
21
+ * @param {Object} relationFields - Defines relation field types.
22
+ * @param {RelationFields[]} relationFields.singular - List of one-side relation field names (one-to-one).
23
+ * @param {RelationFields[]} relationFields.list - List of many-side relation field names (one-to-many).
24
+ * @returns {T} The transformed data with appropriate Prisma operations applied.
25
+ */
26
+ export declare function handleRelationFieldsInBody(body: Record<string, any>, relationFields: RelationFields, ignoreActions?: string[]): {
27
+ [x: string]: any;
28
+ };
29
+ //# sourceMappingURL=base.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.helpers.d.ts","sourceRoot":"","sources":["../../../../../src/modules/base/utils/base.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACf,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,cAAc,EAAE,cAAc,EAC9B,aAAa,GAAE,MAAM,EAAO;;EA0F7B"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleRelationFieldsInBody = handleRelationFieldsInBody;
4
+ const models_helpers_1 = require("../../../utils/helpers/models.helpers");
5
+ /**
6
+ * Determines the appropriate Prisma operation (`create`, `connect`, `update`, `delete`, or `disconnect`)
7
+ * for each relation field in the provided body based on its nested data and recursively does the same for each relation field.
8
+ *
9
+ * This function handles the following types of relations:
10
+ * - **One-to-one**
11
+ * - **One-to-many**
12
+ *
13
+ *
14
+ * ### Operation Rules:
15
+ *
16
+ *
17
+ * - **Create**: Used when the nested relation data is provided **without an `id`**.
18
+ * - **Connect**: Used when the nested relation data contains **only an `id`**.
19
+ * - **Update**: Used when the nested relation data contains **both an `id` and additional fields**.
20
+ * - **Delete**: Used when the nested relation data includes **`apiAction: "delete"`**.
21
+ * - **Disconnect**: Used when the nested relation data includes **`apiAction: "disconnect"`**.
22
+ *
23
+ * @param {Record<string, any>} body - The object containing relation fields to be processed.
24
+ * @param {Object} relationFields - Defines relation field types.
25
+ * @param {RelationFields[]} relationFields.singular - List of one-side relation field names (one-to-one).
26
+ * @param {RelationFields[]} relationFields.list - List of many-side relation field names (one-to-many).
27
+ * @returns {T} The transformed data with appropriate Prisma operations applied.
28
+ */
29
+ function handleRelationFieldsInBody(body, relationFields, ignoreActions = []) {
30
+ let mutableBody = { ...body };
31
+ relationFields.list.forEach((field) => {
32
+ if (!body[field.name])
33
+ return;
34
+ const createData = [];
35
+ const connectData = [];
36
+ const updateData = [];
37
+ const disconnectData = [];
38
+ const deleteManyIds = [];
39
+ body[field.name].forEach((bodyField) => {
40
+ if (ignoreActions.includes(bodyField?.apiAction))
41
+ return;
42
+ if (bodyField?.apiAction === "delete") {
43
+ deleteManyIds.push(bodyField.id);
44
+ }
45
+ else if (bodyField?.apiAction === "disconnect") {
46
+ disconnectData.push({ id: bodyField.id });
47
+ }
48
+ else if (!bodyField?.id) {
49
+ let nestedRelations = (0, models_helpers_1.getPrismaModelRelations)(field.type);
50
+ const dataToPush = nestedRelations
51
+ ? handleRelationFieldsInBody(bodyField, nestedRelations, ignoreActions)
52
+ : bodyField;
53
+ createData.push(dataToPush);
54
+ }
55
+ else if (Object.keys(bodyField).length === 1) {
56
+ connectData.push(bodyField);
57
+ }
58
+ else {
59
+ const { id, ...data } = bodyField;
60
+ let nestedRelations = (0, models_helpers_1.getPrismaModelRelations)(field.type);
61
+ const dataToPush = nestedRelations
62
+ ? handleRelationFieldsInBody(data, nestedRelations, ignoreActions)
63
+ : bodyField;
64
+ updateData.push({
65
+ where: { id },
66
+ data: dataToPush,
67
+ });
68
+ }
69
+ });
70
+ mutableBody[field.name] = {
71
+ ...(createData.length ? { create: createData } : {}),
72
+ ...(connectData.length ? { connect: connectData } : {}),
73
+ ...(updateData.length ? { update: updateData } : {}),
74
+ ...(disconnectData.length ? { disconnect: disconnectData } : {}),
75
+ ...(deleteManyIds.length
76
+ ? { deleteMany: { id: { in: deleteManyIds } } }
77
+ : {}),
78
+ };
79
+ });
80
+ relationFields.singular.forEach((field) => {
81
+ if (!body[field.name])
82
+ return;
83
+ if (ignoreActions.includes(body[field.name]?.apiAction))
84
+ return;
85
+ let nestedRelations = (0, models_helpers_1.getPrismaModelRelations)(field.type);
86
+ if (!body[field.name]?.id) {
87
+ mutableBody[field.name] = {
88
+ create: handleRelationFieldsInBody(body[field.name], nestedRelations, ignoreActions),
89
+ };
90
+ }
91
+ else if (Object.keys(body[field.name]).length === 1) {
92
+ mutableBody[field.name] = { connect: body[field.name] };
93
+ }
94
+ else {
95
+ const { id, ...data } = body[field.name];
96
+ mutableBody[field.name] = {
97
+ update: {
98
+ where: { id },
99
+ data: handleRelationFieldsInBody(data, nestedRelations, ignoreActions),
100
+ },
101
+ };
102
+ }
103
+ });
104
+ return mutableBody;
105
+ }
106
+ //# sourceMappingURL=base.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.helpers.js","sourceRoot":"","sources":["../../../../../src/modules/base/utils/base.helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { BaseService } from '../base/base.service';
2
+ export type EmailOptions = {
3
+ from?: string;
4
+ to: string | string[];
5
+ subject: string;
6
+ text?: string;
7
+ html?: string;
8
+ };
9
+ export declare class EmailService extends BaseService {
10
+ private transporter;
11
+ constructor(host?: string, auth?: {
12
+ user: string | undefined;
13
+ pass: string | undefined;
14
+ }, port?: number);
15
+ private verifyConnection;
16
+ send(options: EmailOptions): Promise<{
17
+ success: boolean;
18
+ messageId?: string;
19
+ error?: any;
20
+ }>;
21
+ }
22
+ //# sourceMappingURL=email.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/email/email.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,qBAAa,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAC,WAAW,CAAa;gBAG9B,IAAI,GAAE,MAAgC,EACtC,IAAI;;;KAAqE,EACzE,IAAI,SAA4C;IAWlD,OAAO,CAAC,gBAAgB;IAUX,IAAI,CACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CAclE"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EmailService = void 0;
7
+ const nodemailer_1 = __importDefault(require("nodemailer"));
8
+ const base_service_1 = require("../base/base.service");
9
+ class EmailService extends base_service_1.BaseService {
10
+ transporter;
11
+ constructor(host = process.env.EMAIL_HOST, auth = { user: process.env.EMAIL_FROM, pass: process.env.EMAIL_PASSWORD }, port = parseInt(process.env.EMAIL_PORT || '465')) {
12
+ super('email');
13
+ this.transporter = nodemailer_1.default.createTransport({
14
+ host,
15
+ port,
16
+ secure: true,
17
+ auth,
18
+ });
19
+ }
20
+ verifyConnection() {
21
+ this.transporter.verify((error) => {
22
+ if (error) {
23
+ console.error('Email server connection error:', error);
24
+ }
25
+ else {
26
+ console.info('Email server connection successful');
27
+ }
28
+ });
29
+ }
30
+ async send(options) {
31
+ try {
32
+ this.verifyConnection();
33
+ const info = await this.transporter.sendMail({
34
+ ...options,
35
+ from: options?.from || process.env.EMAIL_FROM,
36
+ });
37
+ return { success: true, messageId: info.messageId };
38
+ }
39
+ catch (error) {
40
+ throw error;
41
+ }
42
+ }
43
+ }
44
+ exports.EmailService = EmailService;
45
+ //# sourceMappingURL=email.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../../src/modules/email/email.service.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoD;AACpD,uDAAkD;AAUlD,MAAa,YAAa,SAAQ,0BAAW;IACnC,WAAW,CAAa;IAEhC,YACE,OAAe,OAAO,CAAC,GAAG,CAAC,UAAW,EACtC,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EACzE,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC;QAEhD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC;YAC5C,IAAI;YACJ,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAAqB;QAErB,IAAI,CAAC;YACH,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAEvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAC3C,GAAG,OAAO;gBACV,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;aAC9C,CAAC,CAAA;YAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAA;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF;AA3CD,oCA2CC"}
@@ -0,0 +1,9 @@
1
+ interface TokenPayload {
2
+ email: string;
3
+ action: "verify" | "reset" | string;
4
+ [key: string]: any;
5
+ }
6
+ export declare const generateToken: (payload: TokenPayload) => string;
7
+ export declare const verifyToken: (token: string) => TokenPayload | null;
8
+ export {};
9
+ //# sourceMappingURL=email.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/email/utils/helpers/email.helpers.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,YAAY,KAAG,MAKrD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,YAAY,GAAG,IAQ1D,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.verifyToken = exports.generateToken = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const generateToken = (payload) => {
9
+ const secret = process.env.JWT_SECRET || "your-default-secret";
10
+ const expiresIn = process.env.TOKEN_EXPIRY || "24h";
11
+ return jsonwebtoken_1.default.sign(payload, secret, { expiresIn: expiresIn });
12
+ };
13
+ exports.generateToken = generateToken;
14
+ const verifyToken = (token) => {
15
+ try {
16
+ const secret = process.env.JWT_SECRET || "your-default-secret";
17
+ return jsonwebtoken_1.default.verify(token, secret);
18
+ }
19
+ catch (error) {
20
+ console.error("Token verification failed:", error);
21
+ return null;
22
+ }
23
+ };
24
+ exports.verifyToken = verifyToken;
25
+ //# sourceMappingURL=email.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.helpers.js","sourceRoot":"","sources":["../../../../../../src/modules/email/utils/helpers/email.helpers.ts"],"names":[],"mappings":";;;;;;AAAA,gEAA+B;AAQxB,MAAM,aAAa,GAAG,CAAC,OAAqB,EAAU,EAAE;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,qBAAqB,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;IAEpD,OAAO,sBAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAa,EAAE,EAAE,SAAS,EAAE,SAAgB,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAa,EAAuB,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,qBAAqB,CAAC;QAC/D,OAAO,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAiB,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB"}
@@ -0,0 +1,4 @@
1
+ import { NextFunction, Request, Response } from "express";
2
+ import AppError from "./utils/app-error";
3
+ export default function errorHandler(err: AppError, req: Request, res: Response, next: NextFunction): void;
4
+ //# sourceMappingURL=error-handler.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.controller.d.ts","sourceRoot":"","sources":["../../../../src/modules/error-handler/error-handler.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AA0EzC,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,QA0FnB"}