@edirect/rate-limit-module 2.0.9 → 11.0.40

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 (158) hide show
  1. package/README.md +88 -172
  2. package/dist/README.md +583 -0
  3. package/dist/package.json +41 -0
  4. package/dist/src/decorators/rate-limiting-rule.decorator.d.ts +1 -0
  5. package/dist/src/decorators/rate-limiting-rule.decorator.d.ts.map +1 -0
  6. package/dist/src/decorators/rate-limiting-rule.decorator.js +0 -1
  7. package/dist/src/guards/rate-limiting.guard.d.ts +1 -0
  8. package/dist/src/guards/rate-limiting.guard.d.ts.map +1 -0
  9. package/dist/src/guards/rate-limiting.guard.js +43 -36
  10. package/dist/src/index.d.ts +1 -0
  11. package/dist/src/index.d.ts.map +1 -0
  12. package/dist/src/index.js +9 -23
  13. package/dist/src/main.d.ts +1 -0
  14. package/dist/src/main.d.ts.map +1 -0
  15. package/dist/src/main.js +0 -1
  16. package/dist/src/object.utils.d.ts +1 -0
  17. package/dist/src/object.utils.d.ts.map +1 -0
  18. package/dist/src/object.utils.js +0 -1
  19. package/dist/src/rate-limiting.module.d.ts +1 -0
  20. package/dist/src/rate-limiting.module.d.ts.map +1 -0
  21. package/dist/src/rate-limiting.module.js +2 -8
  22. package/dist/src/rules/dto/pagination.dto.d.ts +1 -0
  23. package/dist/src/rules/dto/pagination.dto.d.ts.map +1 -0
  24. package/dist/src/rules/dto/pagination.dto.js +7 -16
  25. package/dist/src/rules/dto/rule.dto.d.ts +3 -2
  26. package/dist/src/rules/dto/rule.dto.d.ts.map +1 -0
  27. package/dist/src/rules/dto/rule.dto.js +35 -44
  28. package/dist/src/rules/interface/pagination.interface.d.ts +1 -0
  29. package/dist/src/rules/interface/pagination.interface.d.ts.map +1 -0
  30. package/dist/src/rules/interface/pagination.interface.js +0 -1
  31. package/dist/src/rules/interface/rule.interface.d.ts +1 -0
  32. package/dist/src/rules/interface/rule.interface.d.ts.map +1 -0
  33. package/dist/src/rules/interface/rule.interface.js +0 -1
  34. package/dist/src/rules/rule.controller.d.ts +1 -0
  35. package/dist/src/rules/rule.controller.d.ts.map +1 -0
  36. package/dist/src/rules/rule.controller.js +29 -41
  37. package/dist/src/rules/rule.module.d.ts +1 -0
  38. package/dist/src/rules/rule.module.d.ts.map +1 -0
  39. package/dist/src/rules/rule.module.js +2 -8
  40. package/dist/src/rules/rule.repository.d.ts +1 -0
  41. package/dist/src/rules/rule.repository.d.ts.map +1 -0
  42. package/dist/src/rules/rule.repository.js +4 -16
  43. package/dist/src/rules/rule.schema.d.ts +150 -3
  44. package/dist/src/rules/rule.schema.d.ts.map +1 -0
  45. package/dist/src/rules/rule.schema.js +49 -56
  46. package/dist/src/rules/rule.service.d.ts +3 -1
  47. package/dist/src/rules/rule.service.d.ts.map +1 -0
  48. package/dist/src/rules/rule.service.js +16 -22
  49. package/dist/src/shared/cache/cache.service.d.ts +2 -1
  50. package/dist/src/shared/cache/cache.service.d.ts.map +1 -0
  51. package/dist/src/shared/cache/cache.service.js +3 -12
  52. package/dist/src/shared/dsl/dsl.interface.d.ts +1 -0
  53. package/dist/src/shared/dsl/dsl.interface.d.ts.map +1 -0
  54. package/dist/src/shared/dsl/dsl.interface.js +0 -1
  55. package/dist/src/shared/dsl/dsl.service.d.ts +2 -1
  56. package/dist/src/shared/dsl/dsl.service.d.ts.map +1 -0
  57. package/dist/src/shared/dsl/dsl.service.js +38 -28
  58. package/dist/src/shared/redis/redis.module.d.ts +1 -0
  59. package/dist/src/shared/redis/redis.module.d.ts.map +1 -0
  60. package/dist/src/shared/redis/redis.module.js +3 -9
  61. package/dist/src/shared/redis/redis.service.d.ts +2 -1
  62. package/dist/src/shared/redis/redis.service.d.ts.map +1 -0
  63. package/dist/src/shared/redis/redis.service.js +5 -17
  64. package/dist/src/shared/rule-engine/interface/rule-engine.interface.d.ts +2 -1
  65. package/dist/src/shared/rule-engine/interface/rule-engine.interface.d.ts.map +1 -0
  66. package/dist/src/shared/rule-engine/interface/rule-engine.interface.js +0 -1
  67. package/dist/src/shared/rule-engine/rule-engine.module.d.ts +4 -3
  68. package/dist/src/shared/rule-engine/rule-engine.module.d.ts.map +1 -0
  69. package/dist/src/shared/rule-engine/rule-engine.module.js +4 -11
  70. package/dist/src/shared/rule-engine/rule-engine.service.d.ts +7 -6
  71. package/dist/src/shared/rule-engine/rule-engine.service.d.ts.map +1 -0
  72. package/dist/src/shared/rule-engine/rule-engine.service.js +14 -12
  73. package/dist/src/shared/shared.module.d.ts +1 -0
  74. package/dist/src/shared/shared.module.d.ts.map +1 -0
  75. package/dist/src/shared/shared.module.js +2 -8
  76. package/dist/src/validators/rule.constraint.d.ts +3 -2
  77. package/dist/src/validators/rule.constraint.d.ts.map +1 -0
  78. package/dist/src/validators/rule.constraint.js +13 -16
  79. package/dist/src/validators/rule.validator.d.ts +2 -1
  80. package/dist/src/validators/rule.validator.d.ts.map +1 -0
  81. package/dist/src/validators/rule.validator.js +0 -1
  82. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  83. package/package.json +43 -37
  84. package/dist/src/decorators/rate-limiting-rule.decorator.js.map +0 -1
  85. package/dist/src/guards/rate-limiting.guard.js.map +0 -1
  86. package/dist/src/index.js.map +0 -1
  87. package/dist/src/main.js.map +0 -1
  88. package/dist/src/mocks-modules/rate-limiting.module.d.ts +0 -21
  89. package/dist/src/mocks-modules/rate-limiting.module.js +0 -54
  90. package/dist/src/mocks-modules/rate-limiting.module.js.map +0 -1
  91. package/dist/src/mocks-modules/rule.module.d.ts +0 -5
  92. package/dist/src/mocks-modules/rule.module.js +0 -38
  93. package/dist/src/mocks-modules/rule.module.js.map +0 -1
  94. package/dist/src/mocks-modules/shared-module.mocks.d.ts +0 -10
  95. package/dist/src/mocks-modules/shared-module.mocks.js +0 -32
  96. package/dist/src/mocks-modules/shared-module.mocks.js.map +0 -1
  97. package/dist/src/object.utils.js.map +0 -1
  98. package/dist/src/rate-limiting.module.js.map +0 -1
  99. package/dist/src/rules/dto/pagination.dto.js.map +0 -1
  100. package/dist/src/rules/dto/rule.dto.js.map +0 -1
  101. package/dist/src/rules/interface/pagination.interface.js.map +0 -1
  102. package/dist/src/rules/interface/rule.interface.js.map +0 -1
  103. package/dist/src/rules/rule.controller.js.map +0 -1
  104. package/dist/src/rules/rule.module.js.map +0 -1
  105. package/dist/src/rules/rule.repository.js.map +0 -1
  106. package/dist/src/rules/rule.schema.js.map +0 -1
  107. package/dist/src/rules/rule.service.js.map +0 -1
  108. package/dist/src/shared/cache/cache.service.js.map +0 -1
  109. package/dist/src/shared/dls/dsl.interface.d.ts +0 -42
  110. package/dist/src/shared/dls/dsl.interface.js +0 -10
  111. package/dist/src/shared/dls/dsl.interface.js.map +0 -1
  112. package/dist/src/shared/dls/dsl.utils.d.ts +0 -3
  113. package/dist/src/shared/dls/dsl.utils.js +0 -73
  114. package/dist/src/shared/dls/dsl.utils.js.map +0 -1
  115. package/dist/src/shared/dsl/dsl.interface.js.map +0 -1
  116. package/dist/src/shared/dsl/dsl.service.js.map +0 -1
  117. package/dist/src/shared/dsl/dsl.utils.d.ts +0 -3
  118. package/dist/src/shared/dsl/dsl.utils.js +0 -73
  119. package/dist/src/shared/dsl/dsl.utils.js.map +0 -1
  120. package/dist/src/shared/redis/redis.module.js.map +0 -1
  121. package/dist/src/shared/redis/redis.service.js.map +0 -1
  122. package/dist/src/shared/rule-engine/interface/rule-engine.interface.js.map +0 -1
  123. package/dist/src/shared/rule-engine/rule-engine.module.js.map +0 -1
  124. package/dist/src/shared/rule-engine/rule-engine.service.js.map +0 -1
  125. package/dist/src/shared/shared.module.js.map +0 -1
  126. package/dist/src/validators/rule.constraint.js.map +0 -1
  127. package/dist/src/validators/rule.validator.js.map +0 -1
  128. package/dist/test/guards/rate-limiting.guard.spec.d.ts +0 -1
  129. package/dist/test/guards/rate-limiting.guard.spec.js +0 -93
  130. package/dist/test/guards/rate-limiting.guard.spec.js.map +0 -1
  131. package/dist/test/mocks/rate-limiting-module.mocks.d.ts +0 -2
  132. package/dist/test/mocks/rate-limiting-module.mocks.js +0 -60
  133. package/dist/test/mocks/rate-limiting-module.mocks.js.map +0 -1
  134. package/dist/test/mocks/rate-limiting.mocks.d.ts +0 -17
  135. package/dist/test/mocks/rate-limiting.mocks.js +0 -21
  136. package/dist/test/mocks/rate-limiting.mocks.js.map +0 -1
  137. package/dist/test/mocks/rule-engine.mocks.d.ts +0 -7
  138. package/dist/test/mocks/rule-engine.mocks.js +0 -11
  139. package/dist/test/mocks/rule-engine.mocks.js.map +0 -1
  140. package/dist/test/mocks/rule.mocks.d.ts +0 -32
  141. package/dist/test/mocks/rule.mocks.js +0 -58
  142. package/dist/test/mocks/rule.mocks.js.map +0 -1
  143. package/dist/test/mocks/shared-module.mocks.d.ts +0 -10
  144. package/dist/test/mocks/shared-module.mocks.js +0 -32
  145. package/dist/test/mocks/shared-module.mocks.js.map +0 -1
  146. package/dist/test/mocks/shared.mocks.d.ts +0 -19
  147. package/dist/test/mocks/shared.mocks.js +0 -29
  148. package/dist/test/mocks/shared.mocks.js.map +0 -1
  149. package/dist/test/modules/rate-limiting.module.d.ts +0 -4
  150. package/dist/test/modules/rate-limiting.module.js +0 -38
  151. package/dist/test/modules/rate-limiting.module.js.map +0 -1
  152. package/dist/test/modules/rule.module.d.ts +0 -5
  153. package/dist/test/modules/rule.module.js +0 -38
  154. package/dist/test/modules/rule.module.js.map +0 -1
  155. package/dist/test/rules/rules.service.spec.d.ts +0 -1
  156. package/dist/test/rules/rules.service.spec.js +0 -115
  157. package/dist/test/rules/rules.service.spec.js.map +0 -1
  158. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,15 +1,7 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.RuleService = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const logger_1 = require("@edirect/logger");
14
6
  const common_1 = require("@nestjs/common");
15
7
  const object_utils_1 = require("../object.utils");
@@ -61,7 +53,7 @@ let RuleService = class RuleService {
61
53
  return this.repository.save(input);
62
54
  }
63
55
  catch (error) {
64
- this.logger.error(`[ERROR] error to create rate limiting `, error);
56
+ this.logError(`[ERROR] error to create rate limiting `, error);
65
57
  throw error;
66
58
  }
67
59
  }
@@ -70,7 +62,7 @@ let RuleService = class RuleService {
70
62
  return this.repository.findAll(queryParameters);
71
63
  }
72
64
  catch (error) {
73
- this.logger.error('[ERROR] error to find rate limiting', error);
65
+ this.logError('[ERROR] error to find rate limiting', error);
74
66
  throw new common_1.InternalServerErrorException();
75
67
  }
76
68
  }
@@ -92,7 +84,7 @@ let RuleService = class RuleService {
92
84
  return data;
93
85
  }
94
86
  catch (error) {
95
- this.logger.error('[ERROR] error to fnd rate limiting', error);
87
+ this.logError('[ERROR] error to fnd rate limiting', error);
96
88
  throw new common_1.InternalServerErrorException();
97
89
  }
98
90
  }
@@ -104,7 +96,7 @@ let RuleService = class RuleService {
104
96
  return rate;
105
97
  }
106
98
  catch (error) {
107
- this.logger.error('[ERROR] error to find quote by ID', error);
99
+ this.logError('[ERROR] error to find quote by ID', error);
108
100
  throw error;
109
101
  }
110
102
  }
@@ -122,7 +114,7 @@ let RuleService = class RuleService {
122
114
  partner: current?.partner || '',
123
115
  provider: current?.provider || '',
124
116
  productType: current?.productType || '',
125
- market: current?.market || ''
117
+ market: current?.market || '',
126
118
  });
127
119
  if (cacheKey || cacheKey === '') {
128
120
  const isDeleted = await this.cacheService.delete([cacheKey]);
@@ -133,7 +125,7 @@ let RuleService = class RuleService {
133
125
  return this.repository.update(id, fieldsToUpdate);
134
126
  }
135
127
  catch (error) {
136
- this.logger.error(`[ERROR] error to update ${id}`, error);
128
+ this.logError(`[ERROR] error to update ${id}`, error);
137
129
  throw error;
138
130
  }
139
131
  }
@@ -150,10 +142,13 @@ let RuleService = class RuleService {
150
142
  });
151
143
  }
152
144
  catch (error) {
153
- this.logger.error(`[ERROR] Error to delete rule`, error);
145
+ this.logError(`[ERROR] Error to delete rule`, error);
154
146
  throw error;
155
147
  }
156
148
  }
149
+ logError(message, error) {
150
+ this.logger.error(message, error instanceof Error ? error.stack || error.message : String(error));
151
+ }
157
152
  validateRuleExpression(expression) {
158
153
  if (expression && expression.length > this.MAX_EXPRESSION_LENGTH) {
159
154
  return `Expression too long: ${expression.length} chars`;
@@ -174,7 +169,7 @@ let RuleService = class RuleService {
174
169
  partner: queryParameters?.partner || '',
175
170
  provider: queryParameters?.provider || '',
176
171
  productType: queryParameters?.productType || '',
177
- market: queryParameters?.market || ''
172
+ market: queryParameters?.market || '',
178
173
  });
179
174
  const cachedData = await this.cacheService.get(cacheKey);
180
175
  if (cachedData && cachedData.length) {
@@ -193,18 +188,17 @@ let RuleService = class RuleService {
193
188
  const orderedParams = Object.keys(parameters)
194
189
  .sort()
195
190
  .reduce((obj, key) => {
196
- obj[key] = params[key];
191
+ // Ensure all values are stringified for cache key
192
+ obj[key] = String(parameters[key]);
197
193
  return obj;
198
194
  }, {});
199
195
  return `rate-limit-config:${JSON.stringify(orderedParams)}`;
200
196
  }
201
- ;
202
197
  };
203
198
  exports.RuleService = RuleService;
204
- exports.RuleService = RuleService = __decorate([
199
+ exports.RuleService = RuleService = tslib_1.__decorate([
205
200
  (0, common_1.Injectable)(),
206
- __metadata("design:paramtypes", [logger_1.LoggerService,
201
+ tslib_1.__metadata("design:paramtypes", [logger_1.LoggerService,
207
202
  rule_repository_1.RuleRepository,
208
203
  cache_service_1.CacheService])
209
204
  ], RuleService);
210
- //# sourceMappingURL=rule.service.js.map
@@ -3,7 +3,8 @@ export declare class CacheService {
3
3
  private readonly redis;
4
4
  constructor(redis: RedisService);
5
5
  get<T>(key: string): Promise<T | null>;
6
- set(key: string, value: any, ttl?: number): Promise<void>;
6
+ set<T>(key: string, value: T, ttl?: number): Promise<void>;
7
7
  delete(keys: string[]): Promise<number>;
8
8
  deleteByPattern(pattern: string): Promise<number>;
9
9
  }
10
+ //# sourceMappingURL=cache.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/cache/cache.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,qBACa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI5C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGlD"}
@@ -1,15 +1,7 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.CacheService = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const common_1 = require("@nestjs/common");
14
6
  const redis_service_1 = require("../redis/redis.service");
15
7
  let CacheService = class CacheService {
@@ -31,8 +23,7 @@ let CacheService = class CacheService {
31
23
  }
32
24
  };
33
25
  exports.CacheService = CacheService;
34
- exports.CacheService = CacheService = __decorate([
26
+ exports.CacheService = CacheService = tslib_1.__decorate([
35
27
  (0, common_1.Injectable)(),
36
- __metadata("design:paramtypes", [redis_service_1.RedisService])
28
+ tslib_1.__metadata("design:paramtypes", [redis_service_1.RedisService])
37
29
  ], CacheService);
38
- //# sourceMappingURL=cache.service.js.map
@@ -40,3 +40,4 @@ export declare enum OperationDslEnum {
40
40
  GTE = "gte"
41
41
  }
42
42
  export {};
43
+ //# sourceMappingURL=dsl.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsl.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared/dsl/dsl.interface.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAElD,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS;IAC9B,EAAE,EAAE,CAAC,CAAC;CACP;AAED,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS;IAC9B,EAAE,EAAE,CAAC,EAAE,CAAC;CACT;AAED,UAAU,WAAW,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM;IACrC,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,EAAE,CAAC,EAAE,CAAC,CAAC;KACR,CAAC;CACH;AAED,UAAU,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM;IACnC,GAAG,EAAE,CAAC,CAAA;CACP;AAED,UAAU,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM;IACnC,GAAG,EAAE,CAAC,CAAA;CACP;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,KAAK,WAAW,GACZ,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,eAAe,GACf,SAAS,GACT,SAAS,CAAC;AAGd,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IACjB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,gBAAgB,CAAC;CACtB;AAED,oBAAY,gBAAgB;IAC1B,EAAE,OAAO;IACT,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ"}
@@ -7,4 +7,3 @@ var OperationDslEnum;
7
7
  OperationDslEnum["RANGE"] = "range";
8
8
  OperationDslEnum["GTE"] = "gte";
9
9
  })(OperationDslEnum || (exports.OperationDslEnum = OperationDslEnum = {}));
10
- //# sourceMappingURL=dsl.interface.js.map
@@ -2,5 +2,6 @@ import { FilterDsl, IDslQueryItem } from './dsl.interface';
2
2
  export declare class DslService {
3
3
  #private;
4
4
  static buildFilter: (query: IDslQueryItem[]) => FilterDsl;
5
- static toMongoQuery: (filter: Record<string, any>) => Record<string, any>;
5
+ static toMongoQuery: (filter: Record<string, Record<string, unknown> | Array<Record<string, Record<string, unknown>>>>) => Record<string, unknown>;
6
6
  }
7
+ //# sourceMappingURL=dsl.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsl.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/dsl/dsl.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,UAAU;;IACrB,MAAM,CAAC,WAAW,GAAI,OAAO,aAAa,EAAE,KAAG,SAAS,CAWtD;IAEF,MAAM,CAAC,YAAY,GACjB,QAAQ,MAAM,CACZ,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CACzE,KACA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuDxB;CAuBH"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DslService = void 0;
4
- const dayjs_1 = require("dayjs");
4
+ const tslib_1 = require("tslib");
5
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
5
6
  class DslService {
6
7
  static buildFilter = (query) => {
7
8
  return query.reduce((acc, cur) => {
@@ -19,33 +20,42 @@ class DslService {
19
20
  for (const key in filter) {
20
21
  const condition = filter[key];
21
22
  if (key === 'or') {
22
- query['$or'] = condition.map((subCond) => this.toMongoQuery(subCond));
23
+ query['$or'] = condition.map(subCond => this.toMongoQuery(subCond));
23
24
  continue;
24
25
  }
25
- if (condition.eq !== undefined) {
26
+ if ('eq' in condition && condition.eq !== undefined) {
26
27
  query[key] = condition.eq;
27
28
  }
28
- if (condition.in) {
29
+ if ('in' in condition && condition.in !== undefined) {
29
30
  query[key] = { $in: condition.in };
30
31
  }
31
- if (condition.range) {
32
- query[key] = {};
33
- if (condition.range.from)
34
- query[key]['$gte'] = condition.range.from;
35
- if (condition.range.to)
36
- query[key]['$lte'] = condition.range.to;
32
+ if ('range' in condition && condition.range !== undefined) {
33
+ const rangeQuery = {};
34
+ const conditionRange = condition.range;
35
+ if (conditionRange.from)
36
+ rangeQuery['$gte'] = conditionRange.from;
37
+ if (conditionRange.to)
38
+ rangeQuery['$lte'] = conditionRange.to;
39
+ query[key] = rangeQuery;
37
40
  }
38
- if (condition.gte) {
39
- query[key] = {};
40
- query[key]['$gte'] = condition.gte;
41
+ if ('gte' in condition) {
42
+ const gteQuery = {};
43
+ if (condition.gte !== undefined)
44
+ gteQuery['$gte'] = condition.gte;
45
+ query[key] = gteQuery;
41
46
  }
42
- if (condition.lte) {
43
- query[key]['$lte'] = condition.lte;
47
+ if ('lte' in condition) {
48
+ const lteQuery = {};
49
+ if (condition.lte !== undefined)
50
+ lteQuery['$lte'] = condition.lte;
51
+ query[key] = lteQuery;
44
52
  }
45
- if (condition.elemMatch) {
46
- query[key] = {
47
- $elemMatch: this.toMongoQuery(condition.elemMatch),
48
- };
53
+ if ('elemMatch' in condition) {
54
+ const elemMatchQuery = {};
55
+ if (condition.elemMatch) {
56
+ elemMatchQuery['$elemMatch'] = this.toMongoQuery(condition.elemMatch);
57
+ query[key] = elemMatchQuery;
58
+ }
49
59
  }
50
60
  }
51
61
  return query;
@@ -53,23 +63,23 @@ class DslService {
53
63
  static #buildOp = (op, value) => {
54
64
  if (op === 'rangeDate') {
55
65
  const data = value;
56
- return { range: {
57
- from: data.from ||
58
- (0, dayjs_1.default)().subtract(1, 'month').toDate(),
59
- to: data.to || new Date(),
60
- } };
66
+ return {
67
+ range: {
68
+ from: data?.from || (0, dayjs_1.default)().subtract(1, 'month').toDate(),
69
+ to: data?.to || new Date(),
70
+ },
71
+ };
61
72
  }
62
73
  if (op === 'range') {
63
74
  const data = value;
64
75
  return {
65
76
  range: {
66
- from: data.from,
67
- to: data.to,
68
- }
77
+ from: data?.from,
78
+ to: data?.to,
79
+ },
69
80
  };
70
81
  }
71
82
  return { [op || 'eq']: value };
72
83
  };
73
84
  }
74
85
  exports.DslService = DslService;
75
- //# sourceMappingURL=dsl.service.js.map
@@ -1,2 +1,3 @@
1
1
  export declare class RedisModule {
2
2
  }
3
+ //# sourceMappingURL=redis.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.d.ts","sourceRoot":"","sources":["../../../../src/shared/redis/redis.module.ts"],"names":[],"mappings":"AAKA,qBAoBa,WAAW;CAAG"}
@@ -1,20 +1,15 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  exports.RedisModule = void 0;
4
+ const tslib_1 = require("tslib");
10
5
  const common_1 = require("@nestjs/common");
11
6
  const config_1 = require("@nestjs/config");
12
- const ioredis_1 = require("ioredis");
7
+ const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
13
8
  const redis_service_1 = require("./redis.service");
14
9
  let RedisModule = class RedisModule {
15
10
  };
16
11
  exports.RedisModule = RedisModule;
17
- exports.RedisModule = RedisModule = __decorate([
12
+ exports.RedisModule = RedisModule = tslib_1.__decorate([
18
13
  (0, common_1.Global)(),
19
14
  (0, common_1.Module)({
20
15
  imports: [config_1.ConfigModule],
@@ -35,4 +30,3 @@ exports.RedisModule = RedisModule = __decorate([
35
30
  exports: ['REDIS_CLIENT', redis_service_1.RedisService],
36
31
  })
37
32
  ], RedisModule);
38
- //# sourceMappingURL=redis.module.js.map
@@ -4,9 +4,10 @@ export declare class RedisService implements OnModuleDestroy {
4
4
  private readonly client;
5
5
  constructor(client: Redis);
6
6
  get<T>(key: string): Promise<T | null>;
7
- set(key: string, value: any, ttlSeconds?: number): Promise<void>;
7
+ set<T>(key: string, value: T, ttlSeconds?: number): Promise<void>;
8
8
  delKeys(keys: string[]): Promise<number>;
9
9
  scan(pattern: string, count?: number): Promise<string[]>;
10
10
  deleteByPattern(pattern: string): Promise<number>;
11
11
  onModuleDestroy(): void;
12
12
  }
13
+ //# sourceMappingURL=redis.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,qBACa,YAAa,YAAW,eAAe;IAGhD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,KAAK;IAG1B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBrD,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvD,eAAe;CAGhB"}
@@ -1,20 +1,9 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.RedisService = void 0;
4
+ const tslib_1 = require("tslib");
16
5
  const common_1 = require("@nestjs/common");
17
- const ioredis_1 = require("ioredis");
6
+ const ioredis_1 = tslib_1.__importDefault(require("ioredis"));
18
7
  let RedisService = class RedisService {
19
8
  client;
20
9
  constructor(client) {
@@ -57,9 +46,8 @@ let RedisService = class RedisService {
57
46
  }
58
47
  };
59
48
  exports.RedisService = RedisService;
60
- exports.RedisService = RedisService = __decorate([
49
+ exports.RedisService = RedisService = tslib_1.__decorate([
61
50
  (0, common_1.Injectable)(),
62
- __param(0, (0, common_1.Inject)('REDIS_CLIENT')),
63
- __metadata("design:paramtypes", [ioredis_1.default])
51
+ tslib_1.__param(0, (0, common_1.Inject)('REDIS_CLIENT')),
52
+ tslib_1.__metadata("design:paramtypes", [ioredis_1.default])
64
53
  ], RedisService);
65
- //# sourceMappingURL=redis.service.js.map
@@ -1,5 +1,5 @@
1
1
  export interface IRuleFunction {
2
- fn: (...args: any[]) => Promise<any>;
2
+ fn: (...args: unknown[]) => Promise<unknown>;
3
3
  params: string[];
4
4
  description: string;
5
5
  name: string;
@@ -11,3 +11,4 @@ export interface RuleEngineInterface {
11
11
  registerCustomFunctions(customFunctions: IRuleFunction[]): void;
12
12
  validateExpressionVariables<T>(expression: string, context: T): Promise<string[]>;
13
13
  }
14
+ //# sourceMappingURL=rule-engine.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-engine.interface.d.ts","sourceRoot":"","sources":["../../../../../src/shared/rule-engine/interface/rule-engine.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,uBAAuB,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAChE,2BAA2B,CAAC,CAAC,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtB"}
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=rule-engine.interface.js.map
@@ -2,9 +2,10 @@ import { DynamicModule } from '@nestjs/common';
2
2
  import { IRuleFunction } from './interface/rule-engine.interface';
3
3
  export declare class RuleEngineModule {
4
4
  static forFeatureAsync(options: {
5
- useFactory: (...args: any[]) => Promise<IRuleFunction[]>;
6
- inject?: any[];
7
- imports?: any[];
5
+ useFactory: (...args: never[]) => Promise<IRuleFunction[]>;
6
+ inject?: never[];
7
+ imports?: never[];
8
8
  }): DynamicModule;
9
9
  static forFeature(functions: IRuleFunction[]): DynamicModule;
10
10
  }
11
+ //# sourceMappingURL=rule-engine.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-engine.module.d.ts","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGlE,qBAEa,gBAAgB;IAC3B,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;QAC9B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;KACnB,GAAG,aAAa;IAuBjB,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa;CAkB7D"}
@@ -1,15 +1,9 @@
1
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
2
  var RuleEngineModule_1;
9
3
  Object.defineProperty(exports, "__esModule", { value: true });
10
4
  exports.RuleEngineModule = void 0;
5
+ const tslib_1 = require("tslib");
11
6
  const common_1 = require("@nestjs/common");
12
- const jexl_1 = require("jexl");
13
7
  const index_1 = require("../../index");
14
8
  const rule_engine_service_1 = require("./rule-engine.service");
15
9
  let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
@@ -22,7 +16,7 @@ let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
22
16
  const ruleEngineProvider = {
23
17
  provide: index_1.RULE_ENGINE_INSTANCE,
24
18
  useFactory: (fns) => {
25
- return new rule_engine_service_1.RuleEngineService(new jexl_1.Jexl(), fns);
19
+ return new rule_engine_service_1.RuleEngineService(fns);
26
20
  },
27
21
  inject: [index_1.CUSTOM_RULE_FUNCTIONS],
28
22
  };
@@ -40,7 +34,7 @@ let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
40
34
  };
41
35
  const ruleEngineProvider = {
42
36
  provide: index_1.RULE_ENGINE_INSTANCE,
43
- useFactory: (fns) => new rule_engine_service_1.RuleEngineService(new jexl_1.Jexl(), fns),
37
+ useFactory: (fns) => new rule_engine_service_1.RuleEngineService(fns),
44
38
  inject: [index_1.CUSTOM_RULE_FUNCTIONS],
45
39
  };
46
40
  return {
@@ -51,8 +45,7 @@ let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
51
45
  }
52
46
  };
53
47
  exports.RuleEngineModule = RuleEngineModule;
54
- exports.RuleEngineModule = RuleEngineModule = RuleEngineModule_1 = __decorate([
48
+ exports.RuleEngineModule = RuleEngineModule = RuleEngineModule_1 = tslib_1.__decorate([
55
49
  (0, common_1.Global)(),
56
50
  (0, common_1.Module)({})
57
51
  ], RuleEngineModule);
58
- //# sourceMappingURL=rule-engine.module.js.map
@@ -1,17 +1,18 @@
1
- import { IRuleFunction } from "./interface/rule-engine.interface";
1
+ import { IRuleFunction } from './interface/rule-engine.interface';
2
2
  export declare class RuleEngineService {
3
- private readonly jexl;
4
3
  private readonly fns;
4
+ private readonly jexl;
5
5
  private readonly allowedFns;
6
- constructor(jexl: any, fns?: IRuleFunction[]);
6
+ constructor(fns?: IRuleFunction[]);
7
7
  evaluate<T>(expression: string, context: T): Promise<boolean>;
8
- getResultCustomFunction(fnName: any, context: any): Promise<any>;
8
+ getResultCustomFunction(fnName: string, context: Record<string, unknown>): Promise<unknown>;
9
9
  validateExpressionVariables<T>(expression: string, context: T): Promise<string[]>;
10
- validateFunctionsAreValid(expression: any): String[];
11
- getAllowedFunctions(): String[];
10
+ validateFunctionsAreValid(expression: string): string[];
11
+ getAllowedFunctions(): string[];
12
12
  injectCustomFns(): void;
13
13
  private _extractVariables;
14
14
  private _validateVariablesInContext;
15
15
  private _extractFunctionCalls;
16
16
  private _resolveValue;
17
17
  }
18
+ //# sourceMappingURL=rule-engine.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-engine.service.d.ts","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,qBAAa,iBAAiB;IAIhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAEd,GAAG,GAAE,aAAa,EAAO;IAKhD,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB7D,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC;IAWb,2BAA2B,CAAC,CAAC,EACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,MAAM,EAAE,CAAC;IASpB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBvD,mBAAmB,IAAI,MAAM,EAAE;IAI/B,eAAe,IAAI,IAAI;IAOvB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,2BAA2B;IAqCnC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,aAAa;CAatB"}
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RuleEngineService = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const jexl_1 = require("jexl");
5
6
  class RuleEngineService {
6
- jexl;
7
7
  fns;
8
+ jexl;
8
9
  allowedFns = [];
9
- constructor(jexl, fns = []) {
10
- this.jexl = jexl;
10
+ constructor(fns = []) {
11
11
  this.fns = fns;
12
+ this.jexl = new jexl_1.Jexl();
12
13
  this.injectCustomFns();
13
14
  }
14
15
  async evaluate(expression, context) {
@@ -17,11 +18,11 @@ class RuleEngineService {
17
18
  for (const call of functionCalls) {
18
19
  const { name, rawArgs, fullText } = call;
19
20
  if (this.fns && this.fns.length) {
20
- const rule = this.fns.find((fn) => fn.name === name);
21
+ const rule = this.fns.find(fn => fn.name === name);
21
22
  if (!rule || !rule.fn)
22
23
  throw new common_1.BadRequestException(`Not known'${name}' function`);
23
24
  const args = rawArgs.map(arg => this._resolveValue(arg, context));
24
- const result = await rule.fn(...args) || 0;
25
+ const result = (await rule.fn(...args)) || 0;
25
26
  expression = expression.replace(fullText, JSON.stringify(result));
26
27
  }
27
28
  }
@@ -29,11 +30,11 @@ class RuleEngineService {
29
30
  }
30
31
  async getResultCustomFunction(fnName, context) {
31
32
  const fns = this._extractFunctionCalls(fnName);
32
- if (!fns && !fns.length)
33
+ if (!fns || !fns.length)
33
34
  return;
34
35
  const { name, rawArgs } = fns[0];
35
36
  const args = rawArgs.map(arg => this._resolveValue(arg, context));
36
- const func = this.fns.find((fn) => fn.name === name);
37
+ const func = this.fns.find(fn => fn.name === name);
37
38
  if (!func)
38
39
  return;
39
40
  return func.fn(...args) || 0;
@@ -50,8 +51,8 @@ class RuleEngineService {
50
51
  return [];
51
52
  const usedFunctions = [
52
53
  ...expression.matchAll(/([a-zA-Z_][a-zA-Z0-9_]*)\s*\(/g),
53
- ].map((match) => match[1]);
54
- const invalidFunctions = usedFunctions.filter((fn) => !this.allowedFns.includes(fn));
54
+ ].map(match => match[1]);
55
+ const invalidFunctions = usedFunctions.filter(fn => !this.allowedFns.includes(fn));
55
56
  return invalidFunctions;
56
57
  }
57
58
  getAllowedFunctions() {
@@ -72,7 +73,7 @@ class RuleEngineService {
72
73
  functionNames.push(match[0].replace('(', '').trim());
73
74
  }
74
75
  const allMatches = expression.match(regex) || [];
75
- const variables = allMatches.filter((variable) => {
76
+ const variables = allMatches.filter(variable => {
76
77
  if (functionNames.includes(variable))
77
78
  return false;
78
79
  return true;
@@ -125,8 +126,9 @@ class RuleEngineService {
125
126
  }
126
127
  _resolveValue(path, context) {
127
128
  const parts = path.match(/[^.[\]]+/g);
128
- return parts?.reduce((obj, key) => obj?.[key], context);
129
+ return parts?.reduce((obj, key) => obj && typeof obj === 'object'
130
+ ? obj[key]
131
+ : undefined, context);
129
132
  }
130
133
  }
131
134
  exports.RuleEngineService = RuleEngineService;
132
- //# sourceMappingURL=rule-engine.service.js.map
@@ -1,2 +1,3 @@
1
1
  export declare class SharedModule {
2
2
  }
3
+ //# sourceMappingURL=shared.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.module.d.ts","sourceRoot":"","sources":["../../../src/shared/shared.module.ts"],"names":[],"mappings":"AAOA,qBAca,YAAY;CAAG"}
@@ -1,12 +1,7 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  exports.SharedModule = void 0;
4
+ const tslib_1 = require("tslib");
10
5
  const cache_manager_1 = require("@nestjs/cache-manager");
11
6
  const common_1 = require("@nestjs/common");
12
7
  const cache_manager_redis_store_1 = require("cache-manager-redis-store");
@@ -16,7 +11,7 @@ const rule_engine_service_1 = require("./rule-engine/rule-engine.service");
16
11
  let SharedModule = class SharedModule {
17
12
  };
18
13
  exports.SharedModule = SharedModule;
19
- exports.SharedModule = SharedModule = __decorate([
14
+ exports.SharedModule = SharedModule = tslib_1.__decorate([
20
15
  (0, common_1.Module)({
21
16
  imports: [
22
17
  cache_manager_1.CacheModule.registerAsync({
@@ -32,4 +27,3 @@ exports.SharedModule = SharedModule = __decorate([
32
27
  exports: [cache_service_1.CacheService, rule_engine_service_1.RuleEngineService]
33
28
  })
34
29
  ], SharedModule);
35
- //# sourceMappingURL=shared.module.js.map
@@ -4,6 +4,7 @@ export declare class IsValidExpressionConstraint implements ValidatorConstraintI
4
4
  private readonly ruleService;
5
5
  private errorMessage;
6
6
  constructor(ruleService: RuleService);
7
- validate(value: string, args: ValidationArguments): boolean;
8
- defaultMessage(args: ValidationArguments): string;
7
+ validate(value: string, _args: ValidationArguments): boolean;
8
+ defaultMessage(_args: ValidationArguments): string;
9
9
  }
10
+ //# sourceMappingURL=rule.constraint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.constraint.d.ts","sourceRoot":"","sources":["../../../src/validators/rule.constraint.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAEnB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBAEa,2BAA4B,YAAW,4BAA4B;IAElE,OAAO,CAAC,QAAQ,CAAC,WAAW;IADxC,OAAO,CAAC,YAAY,CAAwB;gBACf,WAAW,EAAE,WAAW;IAErD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO;IA6B5D,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;CAGnD"}