@lenne.tech/nest-server 11.17.0 → 11.18.0

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 (91) hide show
  1. package/dist/config.env.js +2 -2
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/decorators/response-model.decorator.d.ts +3 -0
  4. package/dist/core/common/decorators/response-model.decorator.js +8 -0
  5. package/dist/core/common/decorators/response-model.decorator.js.map +1 -0
  6. package/dist/core/common/helpers/db.helper.js +2 -2
  7. package/dist/core/common/helpers/db.helper.js.map +1 -1
  8. package/dist/core/common/helpers/filter.helper.js +3 -3
  9. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  10. package/dist/core/common/helpers/input.helper.js +2 -2
  11. package/dist/core/common/helpers/input.helper.js.map +1 -1
  12. package/dist/core/common/helpers/interceptor.helper.d.ts +3 -0
  13. package/dist/core/common/helpers/interceptor.helper.js +84 -0
  14. package/dist/core/common/helpers/interceptor.helper.js.map +1 -0
  15. package/dist/core/common/helpers/service.helper.d.ts +1 -0
  16. package/dist/core/common/helpers/service.helper.js +1 -0
  17. package/dist/core/common/helpers/service.helper.js.map +1 -1
  18. package/dist/core/common/interceptors/check-security.interceptor.d.ts +2 -0
  19. package/dist/core/common/interceptors/check-security.interceptor.js +43 -1
  20. package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
  21. package/dist/core/common/interceptors/response-model.interceptor.d.ts +13 -0
  22. package/dist/core/common/interceptors/response-model.interceptor.js +107 -0
  23. package/dist/core/common/interceptors/response-model.interceptor.js.map +1 -0
  24. package/dist/core/common/interceptors/translate-response.interceptor.d.ts +8 -0
  25. package/dist/core/common/interceptors/translate-response.interceptor.js +85 -0
  26. package/dist/core/common/interceptors/translate-response.interceptor.js.map +1 -0
  27. package/dist/core/common/interfaces/server-options.interface.d.ts +14 -0
  28. package/dist/core/common/middleware/request-context.middleware.d.ts +5 -0
  29. package/dist/core/common/middleware/request-context.middleware.js +29 -0
  30. package/dist/core/common/middleware/request-context.middleware.js.map +1 -0
  31. package/dist/core/common/pipes/map-and-validate.pipe.js +2 -2
  32. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  33. package/dist/core/common/plugins/complexity.plugin.d.ts +2 -2
  34. package/dist/core/common/plugins/mongoose-audit-fields.plugin.d.ts +1 -0
  35. package/dist/core/common/plugins/mongoose-audit-fields.plugin.js +51 -0
  36. package/dist/core/common/plugins/mongoose-audit-fields.plugin.js.map +1 -0
  37. package/dist/core/common/plugins/mongoose-password.plugin.d.ts +4 -0
  38. package/dist/core/common/plugins/mongoose-password.plugin.js +69 -0
  39. package/dist/core/common/plugins/mongoose-password.plugin.js.map +1 -0
  40. package/dist/core/common/plugins/mongoose-role-guard.plugin.d.ts +1 -0
  41. package/dist/core/common/plugins/mongoose-role-guard.plugin.js +80 -0
  42. package/dist/core/common/plugins/mongoose-role-guard.plugin.js.map +1 -0
  43. package/dist/core/common/services/config.service.js +2 -2
  44. package/dist/core/common/services/config.service.js.map +1 -1
  45. package/dist/core/common/services/model-registry.service.d.ts +8 -0
  46. package/dist/core/common/services/model-registry.service.js +20 -0
  47. package/dist/core/common/services/model-registry.service.js.map +1 -0
  48. package/dist/core/common/services/module.service.d.ts +2 -0
  49. package/dist/core/common/services/module.service.js +36 -1
  50. package/dist/core/common/services/module.service.js.map +1 -1
  51. package/dist/core/common/services/request-context.service.d.ts +18 -0
  52. package/dist/core/common/services/request-context.service.js +32 -0
  53. package/dist/core/common/services/request-context.service.js.map +1 -0
  54. package/dist/core/modules/auth/guards/auth.guard.js +2 -2
  55. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  56. package/dist/core/modules/better-auth/core-better-auth.resolver.js +2 -2
  57. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
  58. package/dist/core.module.js +36 -0
  59. package/dist/core.module.js.map +1 -1
  60. package/dist/index.d.ts +10 -0
  61. package/dist/index.js +10 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/server/modules/file/file-info.model.d.ts +12 -12
  64. package/dist/server/modules/user/user.model.d.ts +33 -33
  65. package/dist/tsconfig.build.tsbuildinfo +1 -1
  66. package/package.json +35 -30
  67. package/src/config.env.ts +2 -2
  68. package/src/core/common/decorators/response-model.decorator.ts +31 -0
  69. package/src/core/common/helpers/db.helper.ts +2 -2
  70. package/src/core/common/helpers/filter.helper.ts +3 -3
  71. package/src/core/common/helpers/input.helper.ts +2 -2
  72. package/src/core/common/helpers/interceptor.helper.ts +132 -0
  73. package/src/core/common/helpers/service.helper.ts +1 -1
  74. package/src/core/common/interceptors/check-security.interceptor.ts +44 -1
  75. package/src/core/common/interceptors/response-model.interceptor.ts +135 -0
  76. package/src/core/common/interceptors/translate-response.interceptor.ts +104 -0
  77. package/src/core/common/interfaces/server-options.interface.ts +160 -0
  78. package/src/core/common/middleware/request-context.middleware.ts +25 -0
  79. package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
  80. package/src/core/common/plugins/complexity.plugin.ts +2 -2
  81. package/src/core/common/plugins/mongoose-audit-fields.plugin.ts +74 -0
  82. package/src/core/common/plugins/mongoose-password.plugin.ts +100 -0
  83. package/src/core/common/plugins/mongoose-role-guard.plugin.ts +150 -0
  84. package/src/core/common/services/config.service.ts +2 -2
  85. package/src/core/common/services/model-registry.service.ts +25 -0
  86. package/src/core/common/services/module.service.ts +91 -1
  87. package/src/core/common/services/request-context.service.ts +69 -0
  88. package/src/core/modules/auth/guards/auth.guard.ts +2 -2
  89. package/src/core/modules/better-auth/core-better-auth.resolver.ts +2 -2
  90. package/src/core.module.ts +55 -4
  91. package/src/index.ts +10 -0
@@ -0,0 +1,107 @@
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 ResponseModelInterceptor_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ResponseModelInterceptor = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const operators_1 = require("rxjs/operators");
16
+ const interceptor_helper_1 = require("../helpers/interceptor.helper");
17
+ const config_service_1 = require("../services/config.service");
18
+ const model_registry_service_1 = require("../services/model-registry.service");
19
+ let ResponseModelInterceptor = ResponseModelInterceptor_1 = class ResponseModelInterceptor {
20
+ configService;
21
+ logger = new common_1.Logger(ResponseModelInterceptor_1.name);
22
+ config = {
23
+ debug: false,
24
+ };
25
+ constructor(configService) {
26
+ this.configService = configService;
27
+ const configuration = this.configService.getFastButReadOnly('security.responseModelInterceptor');
28
+ if (typeof configuration === 'object') {
29
+ this.config = { ...this.config, ...configuration };
30
+ }
31
+ }
32
+ intercept(context, next) {
33
+ const modelClass = (0, interceptor_helper_1.resolveResponseModelClass)(context);
34
+ return next.handle().pipe((0, operators_1.map)((data) => {
35
+ if (!modelClass || data === null || data === undefined || typeof data !== 'object') {
36
+ return data;
37
+ }
38
+ if (data instanceof modelClass) {
39
+ return data;
40
+ }
41
+ if (data._objectAlreadyCheckedForRestrictions) {
42
+ return data;
43
+ }
44
+ return this.convertToModel(data, modelClass, context);
45
+ }));
46
+ }
47
+ convertToModel(data, modelClass, context) {
48
+ if (typeof data !== 'object' || data === null) {
49
+ return data;
50
+ }
51
+ if (Array.isArray(data)) {
52
+ return data.map((item) => this.convertSingleItem(item, modelClass, context));
53
+ }
54
+ if (Array.isArray(data.items) && ('totalCount' in data || 'pagination' in data)) {
55
+ data.items = data.items.map((item) => this.convertSingleItem(item, modelClass, context));
56
+ return data;
57
+ }
58
+ return this.convertSingleItem(data, modelClass, context);
59
+ }
60
+ convertSingleItem(item, modelClass, context) {
61
+ if (item === null || item === undefined || typeof item !== 'object') {
62
+ return item;
63
+ }
64
+ if (item instanceof modelClass) {
65
+ return item;
66
+ }
67
+ if (item._objectAlreadyCheckedForRestrictions) {
68
+ return item;
69
+ }
70
+ const plain = typeof item.toObject === 'function' ? item.toObject() : item;
71
+ try {
72
+ const mapped = modelClass.map(plain);
73
+ if (this.config.debug) {
74
+ const className = context.getClass()?.name;
75
+ const methodName = context.getHandler()?.name;
76
+ this.logger.warn(`Auto-converted plain object to ${modelClass.name} in ${className}.${methodName}. Consider using CrudService methods.`);
77
+ }
78
+ return mapped;
79
+ }
80
+ catch {
81
+ return this.tryRegistryFallback(plain) || item;
82
+ }
83
+ }
84
+ tryRegistryFallback(item) {
85
+ const modelName = item?.constructor?.modelName || item?.collection?.modelName;
86
+ if (!modelName) {
87
+ return null;
88
+ }
89
+ const registeredClass = model_registry_service_1.ModelRegistry.getModelClass(modelName);
90
+ if (!registeredClass) {
91
+ return null;
92
+ }
93
+ try {
94
+ const plain = typeof item.toObject === 'function' ? item.toObject() : item;
95
+ return registeredClass.map(plain);
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }
101
+ };
102
+ exports.ResponseModelInterceptor = ResponseModelInterceptor;
103
+ exports.ResponseModelInterceptor = ResponseModelInterceptor = ResponseModelInterceptor_1 = __decorate([
104
+ (0, common_1.Injectable)(),
105
+ __metadata("design:paramtypes", [config_service_1.ConfigService])
106
+ ], ResponseModelInterceptor);
107
+ //# sourceMappingURL=response-model.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-model.interceptor.js","sourceRoot":"","sources":["../../../../src/core/common/interceptors/response-model.interceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export declare class TranslateResponseInterceptor implements NestInterceptor {
4
+ intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
5
+ private applyTranslations;
6
+ private hasTranslations;
7
+ private getLanguage;
8
+ }
@@ -0,0 +1,85 @@
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.TranslateResponseInterceptor = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const graphql_1 = require("@nestjs/graphql");
12
+ const operators_1 = require("rxjs/operators");
13
+ const service_helper_1 = require("../helpers/service.helper");
14
+ let TranslateResponseInterceptor = class TranslateResponseInterceptor {
15
+ intercept(context, next) {
16
+ const language = this.getLanguage(context);
17
+ if (!language) {
18
+ return next.handle();
19
+ }
20
+ return next.handle().pipe((0, operators_1.map)((data) => {
21
+ if (!data || typeof data !== 'object') {
22
+ return data;
23
+ }
24
+ this.applyTranslations(data, language);
25
+ return data;
26
+ }));
27
+ }
28
+ applyTranslations(data, language) {
29
+ if (!this.hasTranslations(data)) {
30
+ return;
31
+ }
32
+ if (Array.isArray(data)) {
33
+ for (const item of data) {
34
+ if (item && typeof item === 'object') {
35
+ (0, service_helper_1.applyTranslationsRecursively)(item, language);
36
+ }
37
+ }
38
+ }
39
+ else if (data.items && Array.isArray(data.items)) {
40
+ for (const item of data.items) {
41
+ if (item && typeof item === 'object') {
42
+ (0, service_helper_1.applyTranslationsRecursively)(item, language);
43
+ }
44
+ }
45
+ }
46
+ else {
47
+ (0, service_helper_1.applyTranslationsRecursively)(data, language);
48
+ }
49
+ }
50
+ hasTranslations(data) {
51
+ if (!data || typeof data !== 'object') {
52
+ return false;
53
+ }
54
+ if (Array.isArray(data)) {
55
+ return data.length > 0 && data[0] && typeof data[0] === 'object' && '_translations' in data[0];
56
+ }
57
+ if (data.items && Array.isArray(data.items)) {
58
+ return (data.items.length > 0 && data.items[0] && typeof data.items[0] === 'object' && '_translations' in data.items[0]);
59
+ }
60
+ return '_translations' in data;
61
+ }
62
+ getLanguage(context) {
63
+ try {
64
+ if (context.getType() === 'graphql') {
65
+ const gqlContext = graphql_1.GqlExecutionContext.create(context);
66
+ const req = gqlContext.getContext()?.req;
67
+ return req?.headers?.['accept-language'] || null;
68
+ }
69
+ }
70
+ catch {
71
+ }
72
+ try {
73
+ const req = context.switchToHttp()?.getRequest();
74
+ return req?.headers?.['accept-language'] || null;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ };
81
+ exports.TranslateResponseInterceptor = TranslateResponseInterceptor;
82
+ exports.TranslateResponseInterceptor = TranslateResponseInterceptor = __decorate([
83
+ (0, common_1.Injectable)()
84
+ ], TranslateResponseInterceptor);
85
+ //# sourceMappingURL=translate-response.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate-response.interceptor.js","sourceRoot":"","sources":["../../../../src/core/common/interceptors/translate-response.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4F;AAC5F,6CAAsE;AAEtE,8CAAqC;AAErC,8DAAyE;AAgBlE,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YACX,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,IAAS,EAAE,QAAgB;QAEnD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAA,6CAA4B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAEnD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAA,6CAA4B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAA,6CAA4B,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAMO,eAAe,CAAC,IAAS;QAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAChH,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,IAAI,IAAI,CAAC;IACjC,CAAC;IAEO,WAAW,CAAC,OAAyB;QAE3C,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,EAAkB,KAAK,SAAS,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC;gBACzC,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC;YACjD,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAlFY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;GACA,4BAA4B,CAkFxC"}
@@ -204,10 +204,24 @@ export interface IServerOptions {
204
204
  checkSecurityInterceptor?: boolean | {
205
205
  debug?: boolean | number;
206
206
  noteCheckedObjects?: boolean;
207
+ removeSecretFields?: boolean;
208
+ secretFields?: string[];
207
209
  };
208
210
  mapAndValidatePipe?: boolean | {
209
211
  nonWhitelistedFields?: 'strip' | 'error' | false;
210
212
  };
213
+ mongoosePasswordPlugin?: boolean | {
214
+ skipPatterns?: (string | RegExp)[];
215
+ };
216
+ mongooseAuditFieldsPlugin?: boolean;
217
+ mongooseRoleGuardPlugin?: boolean | {
218
+ allowedRoles?: string[];
219
+ };
220
+ responseModelInterceptor?: boolean | {
221
+ debug?: boolean;
222
+ };
223
+ translateResponseInterceptor?: boolean;
224
+ secretFields?: string[];
211
225
  };
212
226
  sha256?: boolean;
213
227
  staticAssets?: {
@@ -0,0 +1,5 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { NextFunction, Request, Response } from 'express';
3
+ export declare class RequestContextMiddleware implements NestMiddleware {
4
+ use(req: Request, _res: Response, next: NextFunction): void;
5
+ }
@@ -0,0 +1,29 @@
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.RequestContextMiddleware = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const request_context_service_1 = require("../services/request-context.service");
12
+ let RequestContextMiddleware = class RequestContextMiddleware {
13
+ use(req, _res, next) {
14
+ const context = {
15
+ get currentUser() {
16
+ return req.user || undefined;
17
+ },
18
+ get language() {
19
+ return req.headers?.['accept-language'] || undefined;
20
+ },
21
+ };
22
+ request_context_service_1.RequestContext.run(context, () => next());
23
+ }
24
+ };
25
+ exports.RequestContextMiddleware = RequestContextMiddleware;
26
+ exports.RequestContextMiddleware = RequestContextMiddleware = __decorate([
27
+ (0, common_1.Injectable)()
28
+ ], RequestContextMiddleware);
29
+ //# sourceMappingURL=request-context.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../../../src/core/common/middleware/request-context.middleware.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4D;AAG5D,iFAAsF;AAS/E,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,GAAG,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB;QAClD,MAAM,OAAO,GAAoB;YAC/B,IAAI,WAAW;gBACb,OAAQ,GAAW,CAAC,IAAI,IAAI,SAAS,CAAC;YACxC,CAAC;YACD,IAAI,QAAQ;gBACV,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC;YACvD,CAAC;SACF,CAAC;QACF,wCAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AAZY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CAYpC"}
@@ -148,8 +148,8 @@ async function validateWithInheritance(object, originalPlainValue) {
148
148
  value: propertyValue,
149
149
  };
150
150
  const isArrayValue = Array.isArray(propertyValue);
151
- const shouldValidateEach = metadata.each === true || metadata.validationOptions?.each === true;
152
- if (isArrayValue && shouldValidateEach) {
151
+ const shouldValidateEachItem = metadata.each === true || metadata.validationOptions?.each === true;
152
+ if (isArrayValue && shouldValidateEachItem) {
153
153
  const results = [];
154
154
  for (const item of propertyValue) {
155
155
  const itemArgs = {
@@ -1 +1 @@
1
- {"version":3,"file":"map-and-validate.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/map-and-validate.pipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-and-validate.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/map-and-validate.pipe.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { GraphQLSchemaHost } from '@nestjs/graphql';
2
- import { ApolloServerPlugin, GraphQLRequestListener } from 'apollo-server-plugin-base';
2
+ import type { ApolloServerPlugin, BaseContext, GraphQLRequestListener } from '@apollo/server';
3
3
  import { ConfigService } from '../services/config.service';
4
4
  export declare class ComplexityPlugin implements ApolloServerPlugin {
5
5
  private gqlSchemaHost;
6
6
  private configService;
7
7
  constructor(gqlSchemaHost: GraphQLSchemaHost, configService: ConfigService);
8
- requestDidStart(): Promise<GraphQLRequestListener>;
8
+ requestDidStart(): Promise<GraphQLRequestListener<BaseContext>>;
9
9
  }
@@ -0,0 +1 @@
1
+ export declare function mongooseAuditFieldsPlugin(schema: any): void;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mongooseAuditFieldsPlugin = mongooseAuditFieldsPlugin;
4
+ const request_context_service_1 = require("../services/request-context.service");
5
+ function mongooseAuditFieldsPlugin(schema) {
6
+ const hasCreatedBy = !!schema.path('createdBy');
7
+ const hasUpdatedBy = !!schema.path('updatedBy');
8
+ if (!hasCreatedBy && !hasUpdatedBy) {
9
+ return;
10
+ }
11
+ schema.pre('save', function () {
12
+ const currentUser = request_context_service_1.RequestContext.getCurrentUser();
13
+ if (!currentUser?.id) {
14
+ return;
15
+ }
16
+ if (hasCreatedBy && this.isNew && !this['createdBy']) {
17
+ this['createdBy'] = currentUser.id;
18
+ }
19
+ if (hasUpdatedBy) {
20
+ this['updatedBy'] = currentUser.id;
21
+ }
22
+ });
23
+ if (hasUpdatedBy) {
24
+ const updateHook = function () {
25
+ const currentUser = request_context_service_1.RequestContext.getCurrentUser();
26
+ if (!currentUser?.id) {
27
+ return;
28
+ }
29
+ const update = this.getUpdate();
30
+ if (!update) {
31
+ return;
32
+ }
33
+ update['updatedBy'] = currentUser.id;
34
+ if (update.$set) {
35
+ update.$set['updatedBy'] = currentUser.id;
36
+ }
37
+ if (hasCreatedBy && !update['createdBy'] && !update.$set?.['createdBy']) {
38
+ if (!update.$setOnInsert) {
39
+ update.$setOnInsert = {};
40
+ }
41
+ if (!update.$setOnInsert['createdBy']) {
42
+ update.$setOnInsert['createdBy'] = currentUser.id;
43
+ }
44
+ }
45
+ };
46
+ schema.pre('findOneAndUpdate', updateHook);
47
+ schema.pre('updateOne', updateHook);
48
+ schema.pre('updateMany', updateHook);
49
+ }
50
+ }
51
+ //# sourceMappingURL=mongoose-audit-fields.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoose-audit-fields.plugin.js","sourceRoot":"","sources":["../../../../src/core/common/plugins/mongoose-audit-fields.plugin.ts"],"names":[],"mappings":";;AAcA,8DA2DC;AAzED,iFAAqE;AAcrE,SAAgB,yBAAyB,CAAC,MAAM;IAC9C,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAGhD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAGD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;QACjB,MAAM,WAAW,GAAG,wCAAc,CAAC,cAAc,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAGH,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG;YACjB,MAAM,WAAW,GAAG,wCAAc,CAAC,cAAc,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAGD,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;YAC5C,CAAC;YAID,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function mongoosePasswordPlugin(schema: any): void;
2
+ export declare function hashUpdatePassword(update: any): Promise<void>;
3
+ export declare function resetSkipPatternsCache(): void;
4
+ export declare function hashPassword(password: string): Promise<string>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mongoosePasswordPlugin = mongoosePasswordPlugin;
4
+ exports.hashUpdatePassword = hashUpdatePassword;
5
+ exports.resetSkipPatternsCache = resetSkipPatternsCache;
6
+ exports.hashPassword = hashPassword;
7
+ const bcrypt = require("bcrypt");
8
+ const js_sha256_1 = require("js-sha256");
9
+ const config_service_1 = require("../services/config.service");
10
+ function mongoosePasswordPlugin(schema) {
11
+ schema.pre('save', async function () {
12
+ if (!this.isModified('password') || !this['password']) {
13
+ return;
14
+ }
15
+ this['password'] = await hashPassword(this['password']);
16
+ });
17
+ schema.pre('findOneAndUpdate', async function () {
18
+ await hashUpdatePassword(this.getUpdate());
19
+ });
20
+ schema.pre('updateOne', async function () {
21
+ await hashUpdatePassword(this.getUpdate());
22
+ });
23
+ schema.pre('updateMany', async function () {
24
+ await hashUpdatePassword(this.getUpdate());
25
+ });
26
+ }
27
+ async function hashUpdatePassword(update) {
28
+ if (!update) {
29
+ return;
30
+ }
31
+ if (update.password) {
32
+ update.password = await hashPassword(update.password);
33
+ }
34
+ if (update.$set?.password) {
35
+ update.$set.password = await hashPassword(update.$set.password);
36
+ }
37
+ }
38
+ let compiledSkipPatterns = null;
39
+ function resetSkipPatternsCache() {
40
+ compiledSkipPatterns = null;
41
+ }
42
+ function getSkipPatterns() {
43
+ if (compiledSkipPatterns !== null) {
44
+ return compiledSkipPatterns;
45
+ }
46
+ const pluginConfig = config_service_1.ConfigService.configFastButReadOnly?.security?.mongoosePasswordPlugin;
47
+ if (pluginConfig && typeof pluginConfig === 'object' && 'skipPatterns' in pluginConfig && pluginConfig.skipPatterns) {
48
+ compiledSkipPatterns = pluginConfig.skipPatterns.map((p) => p instanceof RegExp ? p : new RegExp(p));
49
+ }
50
+ else {
51
+ compiledSkipPatterns = [];
52
+ }
53
+ return compiledSkipPatterns;
54
+ }
55
+ async function hashPassword(password) {
56
+ if (/^\$2[aby]\$\d+\$/.test(password)) {
57
+ return password;
58
+ }
59
+ const skipPatterns = getSkipPatterns();
60
+ if (skipPatterns.some((pattern) => pattern.test(password))) {
61
+ return password;
62
+ }
63
+ const sha256Enabled = config_service_1.ConfigService.configFastButReadOnly?.sha256;
64
+ if (sha256Enabled && !/^[a-f0-9]{64}$/i.test(password)) {
65
+ password = (0, js_sha256_1.sha256)(password);
66
+ }
67
+ return bcrypt.hash(password, 10);
68
+ }
69
+ //# sourceMappingURL=mongoose-password.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoose-password.plugin.js","sourceRoot":"","sources":["../../../../src/core/common/plugins/mongoose-password.plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function mongooseRoleGuardPlugin(schema: any): void;