@appxdigital/appx-core 0.1.68

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 (196) hide show
  1. package/dist/appx-core.module.d.ts +7 -0
  2. package/dist/appx-core.module.d.ts.map +1 -0
  3. package/dist/appx-core.module.js +46 -0
  4. package/dist/common/config/default-permissions.config.d.ts +3 -0
  5. package/dist/common/config/default-permissions.config.d.ts.map +1 -0
  6. package/dist/common/config/default-permissions.config.js +6 -0
  7. package/dist/common/config/permissions.config.provider.d.ts +8 -0
  8. package/dist/common/config/permissions.config.provider.d.ts.map +1 -0
  9. package/dist/common/config/permissions.config.provider.js +12 -0
  10. package/dist/common/config/permissions.service.d.ts +7 -0
  11. package/dist/common/config/permissions.service.d.ts.map +1 -0
  12. package/dist/common/config/permissions.service.js +31 -0
  13. package/dist/common/config/permissionsConfigTypes.d.ts +18 -0
  14. package/dist/common/config/permissionsConfigTypes.d.ts.map +1 -0
  15. package/dist/common/config/permissionsConfigTypes.js +2 -0
  16. package/dist/common/contants.d.ts +3 -0
  17. package/dist/common/contants.d.ts.map +1 -0
  18. package/dist/common/contants.js +5 -0
  19. package/dist/common/decorators/guard.decorator.d.ts +5 -0
  20. package/dist/common/decorators/guard.decorator.d.ts.map +1 -0
  21. package/dist/common/decorators/guard.decorator.js +22 -0
  22. package/dist/common/decorators/permission.decorator.d.ts +3 -0
  23. package/dist/common/decorators/permission.decorator.d.ts.map +1 -0
  24. package/dist/common/decorators/permission.decorator.js +7 -0
  25. package/dist/common/decorators/transaction.decorator.d.ts +8 -0
  26. package/dist/common/decorators/transaction.decorator.d.ts.map +1 -0
  27. package/dist/common/decorators/transaction.decorator.js +12 -0
  28. package/dist/common/enums/role.enum.d.ts +6 -0
  29. package/dist/common/enums/role.enum.d.ts.map +1 -0
  30. package/dist/common/enums/role.enum.js +9 -0
  31. package/dist/common/guards/rbac.guard.d.ts +10 -0
  32. package/dist/common/guards/rbac.guard.d.ts.map +1 -0
  33. package/dist/common/guards/rbac.guard.js +56 -0
  34. package/dist/common/guards/role.guard.d.ts +12 -0
  35. package/dist/common/guards/role.guard.d.ts.map +1 -0
  36. package/dist/common/guards/role.guard.js +44 -0
  37. package/dist/common/interceptors/file.interceptor.d.ts +9 -0
  38. package/dist/common/interceptors/file.interceptor.d.ts.map +1 -0
  39. package/dist/common/interceptors/file.interceptor.js +74 -0
  40. package/dist/common/interceptors/prisma.interceptor.d.ts +14 -0
  41. package/dist/common/interceptors/prisma.interceptor.d.ts.map +1 -0
  42. package/dist/common/interceptors/prisma.interceptor.js +82 -0
  43. package/dist/common/interfaces/file-upload.interface.d.ts +13 -0
  44. package/dist/common/interfaces/file-upload.interface.d.ts.map +1 -0
  45. package/dist/common/interfaces/file-upload.interface.js +2 -0
  46. package/dist/common/interfaces/storage-service.interface.d.ts +4 -0
  47. package/dist/common/interfaces/storage-service.interface.d.ts.map +1 -0
  48. package/dist/common/interfaces/storage-service.interface.js +2 -0
  49. package/dist/common/interfaces/user.interface.d.ts +12 -0
  50. package/dist/common/interfaces/user.interface.d.ts.map +1 -0
  51. package/dist/common/interfaces/user.interface.js +2 -0
  52. package/dist/common/providers/aws-storage.service.d.ts +10 -0
  53. package/dist/common/providers/aws-storage.service.d.ts.map +1 -0
  54. package/dist/common/providers/aws-storage.service.js +60 -0
  55. package/dist/common/providers/gcp-storage.service.d.ts +10 -0
  56. package/dist/common/providers/gcp-storage.service.d.ts.map +1 -0
  57. package/dist/common/providers/gcp-storage.service.js +87 -0
  58. package/dist/common/providers/local-storage.service.d.ts +7 -0
  59. package/dist/common/providers/local-storage.service.d.ts.map +1 -0
  60. package/dist/common/providers/local-storage.service.js +80 -0
  61. package/dist/common/types.d.ts +21 -0
  62. package/dist/common/types.d.ts.map +1 -0
  63. package/dist/common/types.js +3 -0
  64. package/dist/common/utils/context-transformer.util.d.ts +6 -0
  65. package/dist/common/utils/context-transformer.util.d.ts.map +1 -0
  66. package/dist/common/utils/context-transformer.util.js +28 -0
  67. package/dist/common/utils/error-handler.d.ts +2 -0
  68. package/dist/common/utils/error-handler.d.ts.map +1 -0
  69. package/dist/common/utils/error-handler.js +38 -0
  70. package/dist/config/admin/create.d.ts +2 -0
  71. package/dist/config/admin/create.d.ts.map +1 -0
  72. package/dist/config/admin/create.js +25 -0
  73. package/dist/config/admin/generate-admin.d.ts +2 -0
  74. package/dist/config/admin/generate-admin.d.ts.map +1 -0
  75. package/dist/config/admin/generate-admin.js +75 -0
  76. package/dist/config/admin/templates/admin.template.d.ts +2 -0
  77. package/dist/config/admin/templates/admin.template.d.ts.map +1 -0
  78. package/dist/config/admin/templates/admin.template.js +131 -0
  79. package/dist/config/admin/templates/component-loader.template.d.ts +2 -0
  80. package/dist/config/admin/templates/component-loader.template.d.ts.map +1 -0
  81. package/dist/config/admin/templates/component-loader.template.js +17 -0
  82. package/dist/config/admin/templates/dashboard.template.d.ts +2 -0
  83. package/dist/config/admin/templates/dashboard.template.d.ts.map +1 -0
  84. package/dist/config/admin/templates/dashboard.template.js +40 -0
  85. package/dist/config/admin/templates/utils.template.d.ts +2 -0
  86. package/dist/config/admin/templates/utils.template.d.ts.map +1 -0
  87. package/dist/config/admin/templates/utils.template.js +135 -0
  88. package/dist/config/generate-all.d.ts +3 -0
  89. package/dist/config/generate-all.d.ts.map +1 -0
  90. package/dist/config/generate-all.js +64 -0
  91. package/dist/config/generate-controllers.d.ts +2 -0
  92. package/dist/config/generate-controllers.d.ts.map +1 -0
  93. package/dist/config/generate-controllers.js +83 -0
  94. package/dist/config/generate-modules.d.ts +2 -0
  95. package/dist/config/generate-modules.d.ts.map +1 -0
  96. package/dist/config/generate-modules.js +158 -0
  97. package/dist/config/generate-resolvers.d.ts +2 -0
  98. package/dist/config/generate-resolvers.d.ts.map +1 -0
  99. package/dist/config/generate-resolvers.js +97 -0
  100. package/dist/config/generate-services.d.ts +2 -0
  101. package/dist/config/generate-services.d.ts.map +1 -0
  102. package/dist/config/generate-services.js +72 -0
  103. package/dist/config/generate-session-schema.d.ts +2 -0
  104. package/dist/config/generate-session-schema.d.ts.map +1 -0
  105. package/dist/config/generate-session-schema.js +78 -0
  106. package/dist/config/setup-fileupload.d.ts +3 -0
  107. package/dist/config/setup-fileupload.d.ts.map +1 -0
  108. package/dist/config/setup-fileupload.js +265 -0
  109. package/dist/config/utils.d.ts +3 -0
  110. package/dist/config/utils.d.ts.map +1 -0
  111. package/dist/config/utils.js +55 -0
  112. package/dist/graphql/batch.payload.d.ts +4 -0
  113. package/dist/graphql/batch.payload.d.ts.map +1 -0
  114. package/dist/graphql/batch.payload.js +23 -0
  115. package/dist/graphql/generic.resolver.d.ts +15 -0
  116. package/dist/graphql/generic.resolver.d.ts.map +1 -0
  117. package/dist/graphql/generic.resolver.js +107 -0
  118. package/dist/graphql/graphql.module.d.ts +3 -0
  119. package/dist/graphql/graphql.module.d.ts.map +1 -0
  120. package/dist/graphql/graphql.module.js +28 -0
  121. package/dist/index.d.ts +24 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +39 -0
  124. package/dist/modules/auth/auth-field.decorator.d.ts +10 -0
  125. package/dist/modules/auth/auth-field.decorator.d.ts.map +1 -0
  126. package/dist/modules/auth/auth-field.decorator.js +18 -0
  127. package/dist/modules/auth/auth.controller.d.ts +25 -0
  128. package/dist/modules/auth/auth.controller.d.ts.map +1 -0
  129. package/dist/modules/auth/auth.controller.js +158 -0
  130. package/dist/modules/auth/auth.module.d.ts +3 -0
  131. package/dist/modules/auth/auth.module.d.ts.map +1 -0
  132. package/dist/modules/auth/auth.module.js +28 -0
  133. package/dist/modules/auth/auth.resolver.d.ts +6 -0
  134. package/dist/modules/auth/auth.resolver.d.ts.map +1 -0
  135. package/dist/modules/auth/auth.resolver.js +24 -0
  136. package/dist/modules/auth/auth.service.d.ts +28 -0
  137. package/dist/modules/auth/auth.service.d.ts.map +1 -0
  138. package/dist/modules/auth/auth.service.js +197 -0
  139. package/dist/modules/auth/authenticated.guard.d.ts +5 -0
  140. package/dist/modules/auth/authenticated.guard.d.ts.map +1 -0
  141. package/dist/modules/auth/authenticated.guard.js +20 -0
  142. package/dist/modules/auth/dto/register.dto.d.ts +6 -0
  143. package/dist/modules/auth/dto/register.dto.d.ts.map +1 -0
  144. package/dist/modules/auth/dto/register.dto.js +21 -0
  145. package/dist/modules/auth/dto/user.dto.d.ts +5 -0
  146. package/dist/modules/auth/dto/user.dto.d.ts.map +1 -0
  147. package/dist/modules/auth/dto/user.dto.js +36 -0
  148. package/dist/modules/auth/local-auth.guard.d.ts +7 -0
  149. package/dist/modules/auth/local-auth.guard.d.ts.map +1 -0
  150. package/dist/modules/auth/local-auth.guard.js +31 -0
  151. package/dist/modules/auth/local.strategy.d.ts +15 -0
  152. package/dist/modules/auth/local.strategy.d.ts.map +1 -0
  153. package/dist/modules/auth/local.strategy.js +48 -0
  154. package/dist/modules/auth/session/session-auth.guard.d.ts +5 -0
  155. package/dist/modules/auth/session/session-auth.guard.d.ts.map +1 -0
  156. package/dist/modules/auth/session/session-auth.guard.js +30 -0
  157. package/dist/modules/auth/session/session-serializer.d.ts +9 -0
  158. package/dist/modules/auth/session/session-serializer.d.ts.map +1 -0
  159. package/dist/modules/auth/session/session-serializer.js +44 -0
  160. package/dist/modules/auth/session/session-store.d.ts +11 -0
  161. package/dist/modules/auth/session/session-store.d.ts.map +1 -0
  162. package/dist/modules/auth/session/session-store.js +97 -0
  163. package/dist/modules/common.module.d.ts +3 -0
  164. package/dist/modules/common.module.d.ts.map +1 -0
  165. package/dist/modules/common.module.js +20 -0
  166. package/dist/modules/core/core.controller.d.ts +14 -0
  167. package/dist/modules/core/core.controller.d.ts.map +1 -0
  168. package/dist/modules/core/core.controller.js +114 -0
  169. package/dist/modules/core/core.module.d.ts +3 -0
  170. package/dist/modules/core/core.module.d.ts.map +1 -0
  171. package/dist/modules/core/core.module.js +22 -0
  172. package/dist/modules/core/core.service.d.ts +44 -0
  173. package/dist/modules/core/core.service.d.ts.map +1 -0
  174. package/dist/modules/core/core.service.js +121 -0
  175. package/dist/modules/file/file-upload.controller.d.ts +11 -0
  176. package/dist/modules/file/file-upload.controller.d.ts.map +1 -0
  177. package/dist/modules/file/file-upload.controller.js +52 -0
  178. package/dist/modules/file/file-upload.module.d.ts +6 -0
  179. package/dist/modules/file/file-upload.module.d.ts.map +1 -0
  180. package/dist/modules/file/file-upload.module.js +62 -0
  181. package/dist/modules/file/file-upload.service.d.ts +27 -0
  182. package/dist/modules/file/file-upload.service.d.ts.map +1 -0
  183. package/dist/modules/file/file-upload.service.js +69 -0
  184. package/dist/modules/user/user.module.d.ts +3 -0
  185. package/dist/modules/user/user.module.d.ts.map +1 -0
  186. package/dist/modules/user/user.module.js +20 -0
  187. package/dist/modules/user/user.service.d.ts +10 -0
  188. package/dist/modules/user/user.service.d.ts.map +1 -0
  189. package/dist/modules/user/user.service.js +49 -0
  190. package/dist/prisma/prisma.service.d.ts +128 -0
  191. package/dist/prisma/prisma.service.d.ts.map +1 -0
  192. package/dist/prisma/prisma.service.js +512 -0
  193. package/dist/tasks/session-cleanup.service.d.ts +7 -0
  194. package/dist/tasks/session-cleanup.service.d.ts.map +1 -0
  195. package/dist/tasks/session-cleanup.service.js +38 -0
  196. package/package.json +66 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LocalStrategy = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const passport_1 = require("@nestjs/passport");
15
+ const passport_local_1 = require("passport-local");
16
+ const auth_service_1 = require("./auth.service");
17
+ require("reflect-metadata");
18
+ const user_dto_1 = require("./dto/user.dto");
19
+ function getAuthFieldNames(dtoClass) {
20
+ const authFields = Reflect.getMetadata('authFields', dtoClass);
21
+ if (!authFields || !authFields.username || !authFields.password) {
22
+ throw new Error(`Fields decorated with @AuthField('username') and @AuthField('password') not found in ${dtoClass.name}`);
23
+ }
24
+ return {
25
+ usernameField: authFields.username,
26
+ passwordField: authFields.password,
27
+ };
28
+ }
29
+ let LocalStrategy = class LocalStrategy extends (0, passport_1.PassportStrategy)(passport_local_1.Strategy) {
30
+ constructor(authService) {
31
+ const { usernameField, passwordField } = getAuthFieldNames(user_dto_1.UserDto);
32
+ super({
33
+ usernameField,
34
+ passwordField,
35
+ });
36
+ this.authService = authService;
37
+ this.usernameField = usernameField;
38
+ this.passwordField = passwordField;
39
+ }
40
+ async validate(username, password) {
41
+ return this.authService.validateUser(username, password, this.usernameField);
42
+ }
43
+ };
44
+ exports.LocalStrategy = LocalStrategy;
45
+ exports.LocalStrategy = LocalStrategy = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [auth_service_1.AuthService])
48
+ ], LocalStrategy);
@@ -0,0 +1,5 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class SessionAuthGuard implements CanActivate {
3
+ canActivate(context: ExecutionContext): Promise<boolean>;
4
+ }
5
+ //# sourceMappingURL=session-auth.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-auth.guard.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/session/session-auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,gBAAgB,EAInB,MAAM,gBAAgB,CAAC;AAExB,qBACa,gBAAiB,YAAW,WAAW;IAC1C,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAgBjE"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SessionAuthGuard = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let SessionAuthGuard = class SessionAuthGuard {
12
+ async canActivate(context) {
13
+ const request = context.switchToHttp().getRequest();
14
+ if (!request.session) {
15
+ throw new common_1.UnauthorizedException('Session not found');
16
+ }
17
+ if (!request.user) {
18
+ throw new common_1.UnauthorizedException('User not authenticated');
19
+ }
20
+ if (request.session.expiresAt &&
21
+ new Date() > new Date(request.session.expiresAt)) {
22
+ throw new common_1.ForbiddenException('Session has expired');
23
+ }
24
+ return true;
25
+ }
26
+ };
27
+ exports.SessionAuthGuard = SessionAuthGuard;
28
+ exports.SessionAuthGuard = SessionAuthGuard = __decorate([
29
+ (0, common_1.Injectable)()
30
+ ], SessionAuthGuard);
@@ -0,0 +1,9 @@
1
+ import { PassportSerializer } from '@nestjs/passport';
2
+ import { PrismaService } from '../../../prisma/prisma.service';
3
+ export declare class SessionSerializer extends PassportSerializer {
4
+ private prisma;
5
+ constructor(prisma: PrismaService);
6
+ serializeUser(user: any, done: Function): void;
7
+ deserializeUser(userId: string, done: Function): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=session-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-serializer.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAE7D,qBACa,iBAAkB,SAAQ,kBAAkB;IACzC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAIzC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ;IAIjC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;CAcvD"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SessionSerializer = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const passport_1 = require("@nestjs/passport");
15
+ const prisma_service_1 = require("../../../prisma/prisma.service");
16
+ let SessionSerializer = class SessionSerializer extends passport_1.PassportSerializer {
17
+ constructor(prisma) {
18
+ super();
19
+ this.prisma = prisma;
20
+ }
21
+ serializeUser(user, done) {
22
+ done(null, user.id);
23
+ }
24
+ async deserializeUser(userId, done) {
25
+ try {
26
+ const user = await this.prisma.user.findUniqueOrThrow({
27
+ where: { id: Number(userId) },
28
+ select: {
29
+ id: true,
30
+ role: true,
31
+ },
32
+ });
33
+ done(null, user);
34
+ }
35
+ catch (error) {
36
+ done(new Error('User not found'), null);
37
+ }
38
+ }
39
+ };
40
+ exports.SessionSerializer = SessionSerializer;
41
+ exports.SessionSerializer = SessionSerializer = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __metadata("design:paramtypes", [prisma_service_1.PrismaService])
44
+ ], SessionSerializer);
@@ -0,0 +1,11 @@
1
+ import { Store } from 'express-session';
2
+ import { PrismaService } from '../../../prisma/prisma.service';
3
+ export declare class CorePrismaSessionStore extends Store {
4
+ private prisma;
5
+ constructor(prismaService: PrismaService);
6
+ get: (sid: string, callback: (err: any, session?: any | null) => void) => Promise<void>;
7
+ set: (sid: string, session: any, callback?: (err?: any) => void) => Promise<void>;
8
+ destroy: (sid: string, callback?: (err?: any) => void) => Promise<void>;
9
+ touch: (sid: string, session: any, callback?: (err?: any) => void) => Promise<void>;
10
+ }
11
+ //# sourceMappingURL=session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/session/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAI7D,qBAAa,sBAAuB,SAAQ,KAAK;IAC7C,OAAO,CAAC,MAAM,CAAe;gBAEjB,aAAa,EAAE,aAAa;IAKjC,GAAG,GACN,KAAK,MAAM,EACX,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,KAAK,IAAI,mBAgBpD;IAEK,GAAG,GACN,KAAK,MAAM,EACX,SAAS,GAAG,EACZ,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBAmChC;IAEK,OAAO,GAAU,KAAK,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBAcjE;IAEK,KAAK,GACR,KAAK,MAAM,EACX,SAAS,GAAG,EACZ,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBAehC;CACL"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CorePrismaSessionStore = void 0;
4
+ const express_session_1 = require("express-session");
5
+ const library_1 = require("@prisma/client/runtime/library");
6
+ const cuid2_1 = require("@paralleldrive/cuid2");
7
+ class CorePrismaSessionStore extends express_session_1.Store {
8
+ constructor(prismaService) {
9
+ super();
10
+ this.get = async (sid, callback) => {
11
+ try {
12
+ const record = await this.prisma.session.findUnique({ where: { sid } }, { BYPASS_FILTERING: true });
13
+ if (!record) {
14
+ return callback(null, null);
15
+ }
16
+ if (record.expiresAt && record.expiresAt <= new Date()) {
17
+ await this.prisma.session.delete({ where: { sid } }, { BYPASS_FILTERING: true });
18
+ return callback(null, null);
19
+ }
20
+ const session = JSON.parse(record.data);
21
+ return callback(null, session);
22
+ }
23
+ catch (err) {
24
+ return callback(err);
25
+ }
26
+ };
27
+ this.set = async (sid, session, callback) => {
28
+ try {
29
+ let userId = null;
30
+ if (session.passport && session.passport.user) {
31
+ userId = session.passport.user;
32
+ }
33
+ const data = JSON.stringify(session);
34
+ const expiresAt = session.cookie && session.cookie.expires
35
+ ? new Date(session.cookie.expires)
36
+ : null;
37
+ await this.prisma.session.upsert({
38
+ where: { sid },
39
+ create: {
40
+ id: (0, cuid2_1.createId)(),
41
+ sid,
42
+ data,
43
+ expiresAt,
44
+ userId,
45
+ },
46
+ update: {
47
+ data,
48
+ expiresAt,
49
+ userId,
50
+ },
51
+ }, {
52
+ BYPASS_FILTERING: true
53
+ });
54
+ callback?.();
55
+ }
56
+ catch (err) {
57
+ console.error('Error while setting session:', err);
58
+ callback?.(err);
59
+ }
60
+ };
61
+ this.destroy = async (sid, callback) => {
62
+ try {
63
+ await this.prisma.session.delete({ where: { sid } }, { BYPASS_FILTERING: true });
64
+ callback?.();
65
+ }
66
+ catch (err) {
67
+ if (err instanceof library_1.PrismaClientKnownRequestError &&
68
+ err.code === 'P2025') {
69
+ callback?.();
70
+ }
71
+ else {
72
+ callback?.(new Error('Failed to destroy session.'));
73
+ }
74
+ }
75
+ };
76
+ this.touch = async (sid, session, callback) => {
77
+ try {
78
+ let expiresAt = null;
79
+ if (session.cookie && session.cookie.maxAge) {
80
+ expiresAt = new Date(Date.now() + session.cookie.maxAge);
81
+ }
82
+ await this.prisma.session.update({
83
+ where: { sid },
84
+ data: { expiresAt },
85
+ }, { BYPASS_FILTERING: true });
86
+ if (callback)
87
+ callback();
88
+ }
89
+ catch (err) {
90
+ if (callback)
91
+ callback(err);
92
+ }
93
+ };
94
+ this.prisma = prismaService.prismaClient;
95
+ }
96
+ }
97
+ exports.CorePrismaSessionStore = CorePrismaSessionStore;
@@ -0,0 +1,3 @@
1
+ export declare class CommonModule {
2
+ }
3
+ //# sourceMappingURL=common.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.module.d.ts","sourceRoot":"","sources":["../../src/modules/common.module.ts"],"names":[],"mappings":"AAGA,qBAIa,YAAY;CAAG"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CommonModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const rbac_guard_1 = require("../common/guards/rbac.guard");
12
+ let CommonModule = class CommonModule {
13
+ };
14
+ exports.CommonModule = CommonModule;
15
+ exports.CommonModule = CommonModule = __decorate([
16
+ (0, common_1.Module)({
17
+ providers: [rbac_guard_1.RbacGuard],
18
+ exports: [rbac_guard_1.RbacGuard],
19
+ })
20
+ ], CommonModule);
@@ -0,0 +1,14 @@
1
+ import { CoreService } from './core.service';
2
+ import { PermissionsService } from "../../common/config/permissions.service";
3
+ export declare abstract class CoreController<T> {
4
+ protected readonly service: CoreService<T>;
5
+ static get entityName(): string;
6
+ protected constructor(service: CoreService<T>);
7
+ protected readonly permissionsService: PermissionsService;
8
+ findAll(): Promise<T[]>;
9
+ findOne(id: string): Promise<T | null>;
10
+ create(data: any): Promise<T>;
11
+ update(id: string, data: any): Promise<T>;
12
+ delete(id: string): Promise<T>;
13
+ }
14
+ //# sourceMappingURL=core.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.controller.d.ts","sourceRoot":"","sources":["../../../src/modules/core/core.controller.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAE3E,8BACsB,cAAc,CAAC,CAAC;IAM9B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAL9C,MAAM,KAAK,UAAU,IAAI,MAAM,CAE9B;IAED,SAAS,aACc,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAK9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAG,kBAAkB,CAAC;IAIrD,OAAO;IAMP,OAAO,CAAc,EAAE,EAAE,MAAM;IAM/B,MAAM,CAAS,IAAI,EAAE,GAAG;IAmBxB,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,GAAG;IAmBjD,MAAM,CAAc,EAAE,EAAE,MAAM;CAGvC"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var CoreController_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CoreController = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const core_service_1 = require("./core.service");
19
+ const permission_decorator_1 = require("../../common/decorators/permission.decorator");
20
+ const rbac_guard_1 = require("../../common/guards/rbac.guard");
21
+ const nestjs_request_context_1 = require("nestjs-request-context");
22
+ const permissions_service_1 = require("../../common/config/permissions.service");
23
+ let CoreController = CoreController_1 = class CoreController {
24
+ static get entityName() {
25
+ return '';
26
+ }
27
+ constructor(service) {
28
+ this.service = service;
29
+ }
30
+ async findAll() {
31
+ return this.service.findAll({});
32
+ }
33
+ async findOne(id) {
34
+ return this.service.findById(id);
35
+ }
36
+ async create(data) {
37
+ const user = nestjs_request_context_1.RequestContext.currentContext.req.user;
38
+ const model = this.constructor.entityName;
39
+ const rolePermissions = this.permissionsService.getPermissionsConfig()[model]?.[user.role];
40
+ const actionPermission = rolePermissions?.['create'];
41
+ if (typeof actionPermission !== 'string' &&
42
+ actionPermission?.setUserIdField) {
43
+ const userIdField = actionPermission.setUserIdField;
44
+ data[userIdField] = user.id;
45
+ }
46
+ return this.service.create(data);
47
+ }
48
+ async update(id, data) {
49
+ const user = nestjs_request_context_1.RequestContext.currentContext.req.user;
50
+ const model = this.constructor.entityName;
51
+ const rolePermissions = this.permissionsService.getPermissionsConfig()[model]?.[user.role];
52
+ const actionPermission = rolePermissions?.['update'];
53
+ let restrictedFields = [];
54
+ if (typeof actionPermission !== 'string' && actionPermission?.restrictedFields) {
55
+ restrictedFields = actionPermission.restrictedFields;
56
+ }
57
+ for (const field of restrictedFields) {
58
+ delete data[field];
59
+ }
60
+ return this.service.updateById(id, data);
61
+ }
62
+ async delete(id) {
63
+ return this.service.deleteById(id);
64
+ }
65
+ };
66
+ exports.CoreController = CoreController;
67
+ __decorate([
68
+ (0, common_1.Inject)(permissions_service_1.PermissionsService),
69
+ __metadata("design:type", permissions_service_1.PermissionsService)
70
+ ], CoreController.prototype, "permissionsService", void 0);
71
+ __decorate([
72
+ (0, common_1.Get)(),
73
+ (0, permission_decorator_1.Permission)('findMany'),
74
+ __metadata("design:type", Function),
75
+ __metadata("design:paramtypes", []),
76
+ __metadata("design:returntype", Promise)
77
+ ], CoreController.prototype, "findAll", null);
78
+ __decorate([
79
+ (0, common_1.Get)(':id'),
80
+ (0, permission_decorator_1.Permission)('findUnique'),
81
+ __param(0, (0, common_1.Param)('id')),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [String]),
84
+ __metadata("design:returntype", Promise)
85
+ ], CoreController.prototype, "findOne", null);
86
+ __decorate([
87
+ (0, common_1.Post)(),
88
+ (0, permission_decorator_1.Permission)('create'),
89
+ __param(0, (0, common_1.Body)()),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Object]),
92
+ __metadata("design:returntype", Promise)
93
+ ], CoreController.prototype, "create", null);
94
+ __decorate([
95
+ (0, common_1.Put)(':id'),
96
+ (0, permission_decorator_1.Permission)('update'),
97
+ __param(0, (0, common_1.Param)('id')),
98
+ __param(1, (0, common_1.Body)()),
99
+ __metadata("design:type", Function),
100
+ __metadata("design:paramtypes", [String, Object]),
101
+ __metadata("design:returntype", Promise)
102
+ ], CoreController.prototype, "update", null);
103
+ __decorate([
104
+ (0, common_1.Delete)(':id'),
105
+ (0, permission_decorator_1.Permission)('delete'),
106
+ __param(0, (0, common_1.Param)('id')),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [String]),
109
+ __metadata("design:returntype", Promise)
110
+ ], CoreController.prototype, "delete", null);
111
+ exports.CoreController = CoreController = CoreController_1 = __decorate([
112
+ (0, common_1.UseGuards)(rbac_guard_1.RbacGuard),
113
+ __metadata("design:paramtypes", [core_service_1.CoreService])
114
+ ], CoreController);
@@ -0,0 +1,3 @@
1
+ export declare class CoreModule {
2
+ }
3
+ //# sourceMappingURL=core.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../src/modules/core/core.module.ts"],"names":[],"mappings":"AASA,qBAKa,UAAU;CACtB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CoreModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const rbac_guard_1 = require("../../common/guards/rbac.guard");
12
+ const permissions_config_provider_1 = require("../../common/config/permissions.config.provider");
13
+ let CoreModule = class CoreModule {
14
+ };
15
+ exports.CoreModule = CoreModule;
16
+ exports.CoreModule = CoreModule = __decorate([
17
+ (0, common_1.Global)(),
18
+ (0, common_1.Module)({
19
+ providers: [permissions_config_provider_1.PermissionsConfigProvider, rbac_guard_1.RbacGuard],
20
+ exports: [permissions_config_provider_1.PermissionsConfigProvider, rbac_guard_1.RbacGuard],
21
+ })
22
+ ], CoreModule);
@@ -0,0 +1,44 @@
1
+ import type { PrismaClient } from '.prisma/client';
2
+ export declare class CoreService<T> {
3
+ protected readonly modelDelegate: PrismaClient[keyof PrismaClient];
4
+ constructor(modelDelegate: PrismaClient[keyof PrismaClient]);
5
+ /**
6
+ * Find all records with optional parameters and permission conditions.
7
+ * @param params - Additional query parameters (e.g., filters, order, etc.)
8
+ * @returns A promise of an array of records
9
+ */
10
+ findAll(params?: any): Promise<T[]>;
11
+ /**
12
+ * Find a single record by unique identifier.
13
+ * @param where - Unique identifier for the record (e.g., { id: 1 })
14
+ * @returns A promise of the record
15
+ */
16
+ findOne(where: any): Promise<T | null>;
17
+ /**
18
+ * Find a single record by unique identifier.
19
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
20
+ * @returns A promise of the record
21
+ */
22
+ findById(id: string): Promise<T | null>;
23
+ /**
24
+ * Create a new record.
25
+ * @param data - Data for the new record.
26
+ * @returns A promise of the created record.
27
+ */
28
+ create(data: any): Promise<T>;
29
+ /**
30
+ * Update an existing record with permission conditions.
31
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
32
+ * @param data - Data to update.
33
+ * @returns A promise of the updated record.
34
+ */
35
+ updateById(id: string, data: any): Promise<T>;
36
+ /**
37
+ * Delete a record by identifier.
38
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
39
+ * @returns A promise of the deleted record
40
+ */
41
+ deleteById(id: string): Promise<T>;
42
+ private _generateWhereFromIdField;
43
+ }
44
+ //# sourceMappingURL=core.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.service.d.ts","sourceRoot":"","sources":["../../../src/modules/core/core.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAGjD,qBACa,WAAW,CAAC,CAAC;IAElB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,MAAM,YAAY,CAAC;gBAA/C,aAAa,EAAE,YAAY,CAAC,MAAM,YAAY,CAAC;IAItE;;;;OAIG;IACG,OAAO,CAAC,MAAM,GAAE,GAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAQ7C;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAQ5C;;;;OAIG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAW7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnC;;;;;OAKG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAWnD;;;;OAIG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAaxC,OAAO,CAAC,yBAAyB;CAUpC"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CoreService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const error_handler_1 = require("../../common/utils/error-handler");
15
+ let CoreService = class CoreService {
16
+ constructor(modelDelegate) {
17
+ this.modelDelegate = modelDelegate;
18
+ }
19
+ /**
20
+ * Find all records with optional parameters and permission conditions.
21
+ * @param params - Additional query parameters (e.g., filters, order, etc.)
22
+ * @returns A promise of an array of records
23
+ */
24
+ async findAll(params = {}) {
25
+ try {
26
+ return await this.modelDelegate.findMany(params);
27
+ }
28
+ catch (error) {
29
+ (0, error_handler_1.handleError)(error);
30
+ }
31
+ }
32
+ /**
33
+ * Find a single record by unique identifier.
34
+ * @param where - Unique identifier for the record (e.g., { id: 1 })
35
+ * @returns A promise of the record
36
+ */
37
+ async findOne(where) {
38
+ const record = this.modelDelegate.findUnique({ where });
39
+ if (!record) {
40
+ throw new common_1.NotFoundException(`Record with the given criteria not found`);
41
+ }
42
+ return record;
43
+ }
44
+ /**
45
+ * Find a single record by unique identifier.
46
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
47
+ * @returns A promise of the record
48
+ */
49
+ async findById(id) {
50
+ const record = await this.modelDelegate.findUnique({
51
+ where: this._generateWhereFromIdField(id)
52
+ });
53
+ if (!record) {
54
+ throw new common_1.NotFoundException(`Record with the given criteria not found`);
55
+ }
56
+ return record;
57
+ }
58
+ /**
59
+ * Create a new record.
60
+ * @param data - Data for the new record.
61
+ * @returns A promise of the created record.
62
+ */
63
+ async create(data) {
64
+ try {
65
+ return await this.modelDelegate.create({ data });
66
+ }
67
+ catch (error) {
68
+ (0, error_handler_1.handleError)(error);
69
+ }
70
+ }
71
+ /**
72
+ * Update an existing record with permission conditions.
73
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
74
+ * @param data - Data to update.
75
+ * @returns A promise of the updated record.
76
+ */
77
+ async updateById(id, data) {
78
+ try {
79
+ return await this.modelDelegate.update({
80
+ where: this._generateWhereFromIdField(id),
81
+ data,
82
+ });
83
+ }
84
+ catch (error) {
85
+ (0, error_handler_1.handleError)(error);
86
+ }
87
+ }
88
+ /**
89
+ * Delete a record by identifier.
90
+ * @param id - Unique identifier for the record (e.g., 1, 'abc123').
91
+ * @returns A promise of the deleted record
92
+ */
93
+ async deleteById(id) {
94
+ try {
95
+ return await this.modelDelegate.delete({
96
+ where: this._generateWhereFromIdField(id)
97
+ });
98
+ }
99
+ catch (error) {
100
+ (0, error_handler_1.handleError)(error);
101
+ }
102
+ }
103
+ /*
104
+ * Generates a 'where' clause based on the model's ID field. Depending on the type of the ID field, it may convert the ID to a number.
105
+ */
106
+ _generateWhereFromIdField(id) {
107
+ let idField = this.modelDelegate.fields.id;
108
+ if (!idField) {
109
+ throw new common_1.BadRequestException(`Model does not have an 'id' field`);
110
+ }
111
+ if (idField.typeName != "String") {
112
+ id = Number(id);
113
+ }
114
+ return { id: id };
115
+ }
116
+ };
117
+ exports.CoreService = CoreService;
118
+ exports.CoreService = CoreService = __decorate([
119
+ (0, common_1.Injectable)(),
120
+ __metadata("design:paramtypes", [Object])
121
+ ], CoreService);
@@ -0,0 +1,11 @@
1
+ import { FileUploadService } from './file-upload.service';
2
+ import { Request as ExpressRequest } from 'express';
3
+ export declare class FileUploadController {
4
+ private fileUploadService;
5
+ constructor(fileUploadService: FileUploadService);
6
+ upload(req: ExpressRequest): Promise<{
7
+ message: string;
8
+ data: any[];
9
+ }>;
10
+ }
11
+ //# sourceMappingURL=file-upload.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.controller.d.ts","sourceRoot":"","sources":["../../../src/modules/file/file-upload.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,SAAS,CAAC;AAElD,qBACa,oBAAoB;IACjB,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAIlD,MAAM,CAAQ,GAAG,EAAE,cAAc;;;;CAkB1C"}