@xfilecom/backend-core 1.0.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 (104) hide show
  1. package/dist/core.module.d.ts +40 -0
  2. package/dist/core.module.js +195 -0
  3. package/dist/core.module.js.map +1 -0
  4. package/dist/database/database.constants.d.ts +2 -0
  5. package/dist/database/database.constants.js +6 -0
  6. package/dist/database/database.constants.js.map +1 -0
  7. package/dist/database/database.module.d.ts +19 -0
  8. package/dist/database/database.module.js +56 -0
  9. package/dist/database/database.module.js.map +1 -0
  10. package/dist/database/database.query.d.ts +103 -0
  11. package/dist/database/database.query.js +369 -0
  12. package/dist/database/database.query.js.map +1 -0
  13. package/dist/database/database.service.d.ts +18 -0
  14. package/dist/database/database.service.js +110 -0
  15. package/dist/database/database.service.js.map +1 -0
  16. package/dist/decorators/public.decorator.d.ts +2 -0
  17. package/dist/decorators/public.decorator.js +8 -0
  18. package/dist/decorators/public.decorator.js.map +1 -0
  19. package/dist/decorators/roles.decorator.d.ts +2 -0
  20. package/dist/decorators/roles.decorator.js +8 -0
  21. package/dist/decorators/roles.decorator.js.map +1 -0
  22. package/dist/decorators/user.decorator.d.ts +7 -0
  23. package/dist/decorators/user.decorator.js +10 -0
  24. package/dist/decorators/user.decorator.js.map +1 -0
  25. package/dist/filters/exception.filter.d.ts +36 -0
  26. package/dist/filters/exception.filter.js +201 -0
  27. package/dist/filters/exception.filter.js.map +1 -0
  28. package/dist/filters/i18n-exception.filter.d.ts +18 -0
  29. package/dist/filters/i18n-exception.filter.js +227 -0
  30. package/dist/filters/i18n-exception.filter.js.map +1 -0
  31. package/dist/filters/microservice-gateway-exception.filter.d.ts +4 -0
  32. package/dist/filters/microservice-gateway-exception.filter.js +64 -0
  33. package/dist/filters/microservice-gateway-exception.filter.js.map +1 -0
  34. package/dist/filters/rpc-response-exception.filter.d.ts +6 -0
  35. package/dist/filters/rpc-response-exception.filter.js +24 -0
  36. package/dist/filters/rpc-response-exception.filter.js.map +1 -0
  37. package/dist/guards/jwt-auth.guard.d.ts +14 -0
  38. package/dist/guards/jwt-auth.guard.js +103 -0
  39. package/dist/guards/jwt-auth.guard.js.map +1 -0
  40. package/dist/guards/roles.guard.d.ts +7 -0
  41. package/dist/guards/roles.guard.js +47 -0
  42. package/dist/guards/roles.guard.js.map +1 -0
  43. package/dist/index.d.ts +35 -0
  44. package/dist/index.js +107 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/interceptors/database-check.interceptor.d.ts +12 -0
  47. package/dist/interceptors/database-check.interceptor.js +60 -0
  48. package/dist/interceptors/database-check.interceptor.js.map +1 -0
  49. package/dist/interceptors/error-handling.interceptor.d.ts +8 -0
  50. package/dist/interceptors/error-handling.interceptor.js +33 -0
  51. package/dist/interceptors/error-handling.interceptor.js.map +1 -0
  52. package/dist/interceptors/logging.interceptor.d.ts +22 -0
  53. package/dist/interceptors/logging.interceptor.js +178 -0
  54. package/dist/interceptors/logging.interceptor.js.map +1 -0
  55. package/dist/interceptors/response-transform.interceptor.d.ts +5 -0
  56. package/dist/interceptors/response-transform.interceptor.js +32 -0
  57. package/dist/interceptors/response-transform.interceptor.js.map +1 -0
  58. package/dist/tsconfig.tsbuildinfo +1 -0
  59. package/dist/utils/auth-lookup.utils.d.ts +23 -0
  60. package/dist/utils/auth-lookup.utils.js +61 -0
  61. package/dist/utils/auth-lookup.utils.js.map +1 -0
  62. package/dist/utils/auth.helpers.d.ts +19 -0
  63. package/dist/utils/auth.helpers.js +77 -0
  64. package/dist/utils/auth.helpers.js.map +1 -0
  65. package/dist/utils/config-loader.utils.d.ts +22 -0
  66. package/dist/utils/config-loader.utils.js +77 -0
  67. package/dist/utils/config-loader.utils.js.map +1 -0
  68. package/dist/utils/config-secret.utils.d.ts +9 -0
  69. package/dist/utils/config-secret.utils.js +26 -0
  70. package/dist/utils/config-secret.utils.js.map +1 -0
  71. package/dist/utils/config.validator.d.ts +13 -0
  72. package/dist/utils/config.validator.js +82 -0
  73. package/dist/utils/config.validator.js.map +1 -0
  74. package/dist/utils/controller.helpers.d.ts +59 -0
  75. package/dist/utils/controller.helpers.js +117 -0
  76. package/dist/utils/controller.helpers.js.map +1 -0
  77. package/dist/utils/crypto.utils.d.ts +12 -0
  78. package/dist/utils/crypto.utils.js +53 -0
  79. package/dist/utils/crypto.utils.js.map +1 -0
  80. package/dist/utils/env.utils.d.ts +8 -0
  81. package/dist/utils/env.utils.js +27 -0
  82. package/dist/utils/env.utils.js.map +1 -0
  83. package/dist/utils/error.utils.d.ts +7 -0
  84. package/dist/utils/error.utils.js +72 -0
  85. package/dist/utils/error.utils.js.map +1 -0
  86. package/dist/utils/hash-verification.utils.d.ts +35 -0
  87. package/dist/utils/hash-verification.utils.js +133 -0
  88. package/dist/utils/hash-verification.utils.js.map +1 -0
  89. package/dist/utils/logger.helpers.d.ts +71 -0
  90. package/dist/utils/logger.helpers.js +293 -0
  91. package/dist/utils/logger.helpers.js.map +1 -0
  92. package/dist/utils/logging.config.d.ts +6 -0
  93. package/dist/utils/logging.config.js +42 -0
  94. package/dist/utils/logging.config.js.map +1 -0
  95. package/dist/utils/rpc-exception.utils.d.ts +7 -0
  96. package/dist/utils/rpc-exception.utils.js +53 -0
  97. package/dist/utils/rpc-exception.utils.js.map +1 -0
  98. package/dist/utils/service.helpers.d.ts +22 -0
  99. package/dist/utils/service.helpers.js +73 -0
  100. package/dist/utils/service.helpers.js.map +1 -0
  101. package/dist/utils/yaml-config.loader.d.ts +15 -0
  102. package/dist/utils/yaml-config.loader.js +219 -0
  103. package/dist/utils/yaml-config.loader.js.map +1 -0
  104. package/package.json +56 -0
@@ -0,0 +1,178 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LoggingInterceptor = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const operators_1 = require("rxjs/operators");
18
+ const logger_helpers_1 = require("../utils/logger.helpers");
19
+ let LoggingInterceptor = class LoggingInterceptor {
20
+ constructor(logger, options) {
21
+ this.logger = logger || new logger_helpers_1.LoggerHelpers('Request');
22
+ this.options = {
23
+ logLevel: options?.logLevel ?? 'log',
24
+ logRequestBody: options?.logRequestBody ?? false,
25
+ logResponseBody: options?.logResponseBody ?? false,
26
+ logRpcResponseBody: options?.logRpcResponseBody ?? false,
27
+ excludeFields: options?.excludeFields ?? ['password', 'passwordConfirm', 'token', 'secret', 'authorization'],
28
+ maxBodyLength: options?.maxBodyLength ?? 1000,
29
+ };
30
+ }
31
+ shouldLog(level) {
32
+ if (this.options.logLevel === 'none')
33
+ return false;
34
+ return (0, logger_helpers_1.isLevelEnabled)(level, this.options.logLevel);
35
+ }
36
+ intercept(context, next) {
37
+ const contextType = context.getType();
38
+ const now = Date.now();
39
+ if (contextType === 'http') {
40
+ return this.logHttpRequest(context, next, now);
41
+ }
42
+ if (contextType === 'rpc') {
43
+ return this.logRpcRequest(context, next, now);
44
+ }
45
+ return next.handle().pipe((0, operators_1.tap)({
46
+ next: () => {
47
+ if (this.shouldLog('log')) {
48
+ const delay = Date.now() - now;
49
+ this.logger.log(`Request completed in ${delay}ms`);
50
+ }
51
+ },
52
+ error: (error) => {
53
+ if (this.shouldLog('error')) {
54
+ const delay = Date.now() - now;
55
+ this.logger.error(`Request failed in ${delay}ms - ${error.message}`, error);
56
+ }
57
+ },
58
+ }));
59
+ }
60
+ sanitizeData(data) {
61
+ if (!data || typeof data !== 'object') {
62
+ return data;
63
+ }
64
+ if (Array.isArray(data)) {
65
+ return data.map(item => this.sanitizeData(item));
66
+ }
67
+ const sanitized = { ...data };
68
+ this.options.excludeFields.forEach(field => {
69
+ if (sanitized[field] !== undefined) {
70
+ sanitized[field] = '***REDACTED***';
71
+ }
72
+ });
73
+ return sanitized;
74
+ }
75
+ formatBody(body) {
76
+ if (!body) {
77
+ return '';
78
+ }
79
+ try {
80
+ const sanitized = this.sanitizeData(body);
81
+ const bodyStr = JSON.stringify(sanitized);
82
+ if (bodyStr.length > this.options.maxBodyLength) {
83
+ return bodyStr.substring(0, this.options.maxBodyLength) + '... (truncated)';
84
+ }
85
+ return bodyStr;
86
+ }
87
+ catch (error) {
88
+ return '[Unable to stringify body]';
89
+ }
90
+ }
91
+ logHttpRequest(context, next, startTime) {
92
+ const request = context.switchToHttp().getRequest();
93
+ const { method, url, ip, body, query, params } = request;
94
+ const userAgent = request.headers?.['user-agent'] || 'unknown';
95
+ let requestLog = `${method} ${url} - ${ip} - ${userAgent}`;
96
+ if (this.options.logRequestBody && body && Object.keys(body).length > 0) {
97
+ const bodyStr = this.formatBody(body);
98
+ requestLog += `\n Request Body: ${bodyStr}`;
99
+ }
100
+ if (query && Object.keys(query).length > 0) {
101
+ const sanitizedQuery = this.sanitizeData(query);
102
+ requestLog += `\n Query: ${JSON.stringify(sanitizedQuery)}`;
103
+ }
104
+ if (params && Object.keys(params).length > 0) {
105
+ requestLog += `\n Params: ${JSON.stringify(params)}`;
106
+ }
107
+ if (this.shouldLog('log')) {
108
+ this.logger.log(requestLog);
109
+ }
110
+ return next.handle().pipe((0, operators_1.map)((data) => {
111
+ if (this.shouldLog('log')) {
112
+ if (this.options.logResponseBody && data !== undefined) {
113
+ const response = context.switchToHttp().getResponse();
114
+ const { statusCode } = response;
115
+ const delay = Date.now() - startTime;
116
+ const bodyStr = this.formatBody(data);
117
+ this.logger.log(`${method} ${url} ${statusCode} - ${delay}ms\n Response Body: ${bodyStr}`);
118
+ }
119
+ else {
120
+ const response = context.switchToHttp().getResponse();
121
+ const { statusCode } = response;
122
+ const delay = Date.now() - startTime;
123
+ this.logger.log(`${method} ${url} ${statusCode} - ${delay}ms`);
124
+ }
125
+ }
126
+ return data;
127
+ }), (0, operators_1.tap)({
128
+ error: (error) => {
129
+ if (!this.shouldLog('error'))
130
+ return;
131
+ const delay = Date.now() - startTime;
132
+ const statusCode = error.status || 500;
133
+ const errorBody = this.options.logResponseBody && error.response
134
+ ? `\n Error Response: ${this.formatBody(error.response)}`
135
+ : '';
136
+ this.logger.error(`${method} ${url} ${statusCode} - ${delay}ms - ${error.message}${errorBody}`, error);
137
+ },
138
+ }));
139
+ }
140
+ logRpcRequest(context, next, startTime) {
141
+ const data = context.switchToRpc().getData();
142
+ const ctx = context.switchToRpc().getContext();
143
+ const pattern = (typeof ctx?.getPattern === 'function' ? ctx.getPattern() : ctx?.pattern) ?? 'unknown';
144
+ if (this.shouldLog('log')) {
145
+ this.logger.log(`RPC ${pattern} - ${JSON.stringify(data)}`);
146
+ }
147
+ return next.handle().pipe((0, operators_1.tap)({
148
+ next: (data) => {
149
+ if (this.shouldLog('log')) {
150
+ const delay = Date.now() - startTime;
151
+ if (this.options.logRpcResponseBody && data !== undefined) {
152
+ const bodyStr = this.formatBody(data);
153
+ this.logger.log(`RPC ${pattern} - completed in ${delay}ms\n Response Body: ${bodyStr}`);
154
+ }
155
+ else {
156
+ this.logger.log(`RPC ${pattern} - completed in ${delay}ms`);
157
+ }
158
+ }
159
+ },
160
+ error: (error) => {
161
+ if (this.shouldLog('error')) {
162
+ const delay = Date.now() - startTime;
163
+ const errorBody = this.options.logRpcResponseBody && error?.response
164
+ ? `\n Error Response: ${this.formatBody(error.response)}`
165
+ : '';
166
+ this.logger.error(`RPC ${pattern} - failed in ${delay}ms - ${error?.message ?? error}${errorBody}`, error);
167
+ }
168
+ },
169
+ }));
170
+ }
171
+ };
172
+ exports.LoggingInterceptor = LoggingInterceptor;
173
+ exports.LoggingInterceptor = LoggingInterceptor = __decorate([
174
+ (0, common_1.Injectable)(),
175
+ __param(0, (0, common_1.Optional)()),
176
+ __metadata("design:paramtypes", [logger_helpers_1.LoggerHelpers, Object])
177
+ ], LoggingInterceptor);
178
+ //# sourceMappingURL=logging.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/logging.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAMwB;AAExB,8CAA0C;AAC1C,4DAAsF;AAiD/E,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAM7B,YACc,MAAsB,EAClC,OAAmC;QAGnC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK;YACpC,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,KAAK;YAChD,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK;YAClD,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,KAAK;YACxD,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;YAC5G,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;SAC9C,CAAC;IACJ,CAAC;IAGO,SAAS,CAAC,KAAmB;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,OAAO,IAAA,+BAAc,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAwB,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAGvB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QAGD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAGD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC;YACF,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qBAAqB,KAAK,QAAQ,KAAK,CAAC,OAAO,EAAE,EACjD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAKO,YAAY,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,SAAS,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAKO,UAAU,CAAC,IAAS;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE1C,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAChD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;YAC9E,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,4BAA4B,CAAC;QACtC,CAAC;IACH,CAAC;IAKO,cAAc,CACpB,OAAyB,EACzB,IAAiB,EACjB,SAAiB;QAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACzD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QAG/D,IAAI,UAAU,GAAG,GAAG,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC;QAG3D,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,UAAU,IAAI,qBAAqB,OAAO,EAAE,CAAC;QAC/C,CAAC;QAGD,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/D,CAAC;QAGD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YACX,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;oBACtD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,GAAG,MAAM,IAAI,GAAG,IAAI,UAAU,MAAM,KAAK,wBAAwB,OAAO,EAAE,CAC3E,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;oBACtD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,GAAG,MAAM,IAAI,GAAG,IAAI,UAAU,MAAM,KAAK,IAAI,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,IAAA,eAAG,EAAC;YACF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,OAAO;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACrC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;gBACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ;oBAC9D,CAAC,CAAC,uBAAuB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;oBAC1D,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,MAAM,IAAI,GAAG,IAAI,UAAU,MAAM,KAAK,QAAQ,KAAK,CAAC,OAAO,GAAG,SAAS,EAAE,EAC5E,KAAK,CACN,CAAC;YACJ,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAKO,aAAa,CACnB,OAAyB,EACzB,IAAiB,EACjB,SAAiB;QAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC;QAEvG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC;YACF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACrC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,OAAO,mBAAmB,KAAK,wBAAwB,OAAO,EAAE,CAAC,CAAC;oBAC3F,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,OAAO,mBAAmB,KAAK,IAAI,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,KAAK,EAAE,QAAQ;wBAClE,CAAC,CAAC,uBAAuB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;wBAC1D,CAAC,CAAC,EAAE,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,OAAO,OAAO,gBAAgB,KAAK,QAAQ,KAAK,EAAE,OAAO,IAAI,KAAK,GAAG,SAAS,EAAE,EAChF,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AArOY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,iBAAQ,GAAE,CAAA;qCAAU,8BAAa;GAPzB,kBAAkB,CAqO9B"}
@@ -0,0 +1,5 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export declare class ResponseTransformInterceptor implements NestInterceptor {
4
+ intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
5
+ }
@@ -0,0 +1,32 @@
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.ResponseTransformInterceptor = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const operators_1 = require("rxjs/operators");
12
+ const controller_helpers_1 = require("../utils/controller.helpers");
13
+ let ResponseTransformInterceptor = class ResponseTransformInterceptor {
14
+ intercept(context, next) {
15
+ return next.handle().pipe((0, operators_1.map)((data) => {
16
+ if (data && typeof data === 'object' && 'code' in data && 'data' in data && 'error' in data) {
17
+ return data;
18
+ }
19
+ if (data !== null && data !== undefined) {
20
+ const arr = Array.isArray(data) ? data : [data];
21
+ const responseData = arr.length <= 1 ? (arr[0] ?? {}) : arr;
22
+ return new controller_helpers_1.CommonResponseDto(responseData);
23
+ }
24
+ return new controller_helpers_1.CommonResponseDto({});
25
+ }));
26
+ }
27
+ };
28
+ exports.ResponseTransformInterceptor = ResponseTransformInterceptor;
29
+ exports.ResponseTransformInterceptor = ResponseTransformInterceptor = __decorate([
30
+ (0, common_1.Injectable)()
31
+ ], ResponseTransformInterceptor);
32
+ //# sourceMappingURL=response-transform.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-transform.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/response-transform.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAExB,8CAAqC;AACrC,oEAAgE;AAGzD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YAEX,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC5F,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5D,OAAO,IAAI,sCAAiB,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,sCAAiB,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,mBAAU,GAAE;GACA,4BAA4B,CAkBxC"}