@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,19 +1,8 @@
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
  var RateLimitingRuleGuard_1;
15
3
  Object.defineProperty(exports, "__esModule", { value: true });
16
4
  exports.RateLimitingRuleGuard = void 0;
5
+ const tslib_1 = require("tslib");
17
6
  const common_1 = require("@nestjs/common");
18
7
  const core_1 = require("@nestjs/core");
19
8
  const rate_limiting_rule_decorator_1 = require("../decorators/rate-limiting-rule.decorator");
@@ -38,7 +27,7 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
38
27
  return true;
39
28
  const req = context.switchToHttp().getRequest();
40
29
  const entity = req.body;
41
- const { action, partnerPath, providerPath, productTypePath, marketPath, } = ruleMetaData;
30
+ const { action, partnerPath, providerPath, productTypePath, marketPath } = ruleMetaData;
42
31
  const partner = this._getValueFromPathOrRoot(entity, partnerPath);
43
32
  if (!partner)
44
33
  return true;
@@ -51,9 +40,9 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
51
40
  provider: provider,
52
41
  market: market,
53
42
  targetAction: action,
54
- productType,
43
+ productType: productType,
55
44
  page: 1,
56
- limit: 10
45
+ limit: 10,
57
46
  };
58
47
  const rules = await this.ruleService.findAllWithoutPagination(parameters);
59
48
  this.logger.debug(`[RATE LIMITER] ${rules?.length} rules found - ${JSON.stringify(rules)}`);
@@ -77,7 +66,7 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
77
66
  throw new common_1.HttpException(`For rate limiting validation these variables are required ${JSON.stringify(missingVars)}`, common_1.HttpStatus.TOO_MANY_REQUESTS);
78
67
  }
79
68
  }
80
- const safeContextVars = (0, object_utils_1.withDefaultNull)(contextVars);
69
+ const safeContextVars = (0, object_utils_1.withDefaultNull)(contextVars ?? {});
81
70
  const notAllowed = await this.ruleEngine.evaluate(rule.expression, safeContextVars);
82
71
  this.logger.debug(`[RATE LIMITER] rule - ${rule.name} reached the limit`);
83
72
  if (notAllowed)
@@ -93,13 +82,17 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
93
82
  }
94
83
  }
95
84
  _getValueFromPathOrRoot(obj, path) {
85
+ if (!obj)
86
+ return undefined;
96
87
  const valueFromPath = path
97
88
  .split('.')
98
- .reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);
89
+ .reduce((acc, key) => acc && typeof acc === 'object' && key in acc
90
+ ? acc[key]
91
+ : undefined, obj);
99
92
  if (valueFromPath !== undefined) {
100
93
  return valueFromPath;
101
94
  }
102
- return obj?.[path];
95
+ return obj[path];
103
96
  }
104
97
  _resolveDateExpr(expr) {
105
98
  const match = expr.match(/^date\(([-\d]+)([dMy])?\)$/);
@@ -144,35 +137,46 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
144
137
  }
145
138
  return raw;
146
139
  }
147
- if (typeof raw === 'object' && raw !== null && raw.from && raw.to) {
140
+ if (typeof raw === 'object' &&
141
+ raw !== null &&
142
+ 'from' in raw &&
143
+ 'to' in raw) {
144
+ const obj = raw;
148
145
  return {
149
- from: this._resolveValue(raw.from, context),
150
- to: this._resolveValue(raw.to, context)
146
+ from: this._resolveValue(obj.from, context),
147
+ to: this._resolveValue(obj.to, context),
151
148
  };
152
149
  }
153
150
  return raw;
154
151
  }
155
152
  _resolveVariables(vars, context) {
156
- if (!vars.queries || !vars.queries.length)
153
+ if (!vars ||
154
+ !vars.queries ||
155
+ !Array.isArray(vars.queries) ||
156
+ !vars.queries.length)
157
157
  return vars;
158
158
  return {
159
- queries: vars.queries.map(q => ({
159
+ queries: vars.queries.map((q) => ({
160
160
  ...q,
161
- query: q.query.map(entry => ({
162
- ...entry,
163
- value: this._resolveValue(entry.value, context, entry?.defaultValue)
164
- }))
165
- }))
161
+ query: Array.isArray(q.query)
162
+ ? q.query.map(entry => ({
163
+ ...entry,
164
+ value: this._resolveValue(entry.value, context ?? {}, entry?.defaultValue),
165
+ }))
166
+ : [],
167
+ })),
166
168
  };
167
169
  }
168
170
  _resolveParams(vars, context) {
169
- if (!vars.variables || !vars.variables.queries || !vars.variables.queries.length)
170
- return vars;
171
+ if (!vars.variables ||
172
+ !vars.variables.queries ||
173
+ !vars.variables.queries.length)
174
+ return {};
171
175
  return {
172
176
  ...vars.variables,
173
177
  queries: vars.variables.queries.map(q => ({
174
178
  ...q,
175
- value: this._resolveValue(q.value, context, q?.defaultValue)
179
+ value: this._resolveValue(q.value, context, q?.defaultValue),
176
180
  })),
177
181
  };
178
182
  }
@@ -198,7 +202,11 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
198
202
  }
199
203
  }
200
204
  _updateFnsResults(vars, fnName, value) {
201
- vars.queries.forEach(q => {
205
+ if (!vars.queries || !Array.isArray(vars.queries))
206
+ return;
207
+ vars.queries.forEach((q) => {
208
+ if (!Array.isArray(q.query))
209
+ return;
202
210
  q.query.forEach(cond => {
203
211
  if (/^\s*fn:/.test(cond.value) || typeof cond.value === 'object') {
204
212
  if (typeof cond.value === 'object') {
@@ -231,11 +239,10 @@ let RateLimitingRuleGuard = RateLimitingRuleGuard_1 = class RateLimitingRuleGuar
231
239
  }
232
240
  };
233
241
  exports.RateLimitingRuleGuard = RateLimitingRuleGuard;
234
- exports.RateLimitingRuleGuard = RateLimitingRuleGuard = RateLimitingRuleGuard_1 = __decorate([
242
+ exports.RateLimitingRuleGuard = RateLimitingRuleGuard = RateLimitingRuleGuard_1 = tslib_1.__decorate([
235
243
  (0, common_1.Injectable)(),
236
- __param(2, (0, common_1.Inject)('RULE_ENGINE_INSTANCE')),
237
- __metadata("design:paramtypes", [core_1.Reflector,
244
+ tslib_1.__param(2, (0, common_1.Inject)('RULE_ENGINE_INSTANCE')),
245
+ tslib_1.__metadata("design:paramtypes", [core_1.Reflector,
238
246
  rule_service_1.RuleService,
239
247
  rule_engine_service_1.RuleEngineService])
240
248
  ], RateLimitingRuleGuard);
241
- //# sourceMappingURL=rate-limiting.guard.js.map
@@ -8,3 +8,4 @@ export * from './shared/rule-engine/rule-engine.module';
8
8
  export * from './validators/rule.constraint';
9
9
  export declare const RULE_ENGINE_INSTANCE = "RULE_ENGINE_INSTANCE";
10
10
  export declare const CUSTOM_RULE_FUNCTIONS = "CUSTOM_RULE_FUNCTIONS";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,8BAA8B,CAAC;AAE7C,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,0BAA0B,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,28 +1,14 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
3
  exports.CUSTOM_RULE_FUNCTIONS = exports.RULE_ENGINE_INSTANCE = void 0;
18
- __exportStar(require("./decorators/rate-limiting-rule.decorator"), exports);
19
- __exportStar(require("./guards/rate-limiting.guard"), exports);
20
- __exportStar(require("./rate-limiting.module"), exports);
21
- __exportStar(require("./rules/rule.service"), exports);
22
- __exportStar(require("./shared/dsl/dsl.interface"), exports);
23
- __exportStar(require("./shared/dsl/dsl.service"), exports);
24
- __exportStar(require("./shared/rule-engine/rule-engine.module"), exports);
25
- __exportStar(require("./validators/rule.constraint"), exports);
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./decorators/rate-limiting-rule.decorator"), exports);
6
+ tslib_1.__exportStar(require("./guards/rate-limiting.guard"), exports);
7
+ tslib_1.__exportStar(require("./rate-limiting.module"), exports);
8
+ tslib_1.__exportStar(require("./rules/rule.service"), exports);
9
+ tslib_1.__exportStar(require("./shared/dsl/dsl.interface"), exports);
10
+ tslib_1.__exportStar(require("./shared/dsl/dsl.service"), exports);
11
+ tslib_1.__exportStar(require("./shared/rule-engine/rule-engine.module"), exports);
12
+ tslib_1.__exportStar(require("./validators/rule.constraint"), exports);
26
13
  exports.RULE_ENGINE_INSTANCE = 'RULE_ENGINE_INSTANCE';
27
14
  exports.CUSTOM_RULE_FUNCTIONS = 'CUSTOM_RULE_FUNCTIONS';
28
- //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":""}
package/dist/src/main.js CHANGED
@@ -7,4 +7,3 @@ async function bootstrap() {
7
7
  await app.listen(process.env.PORT ?? 3040);
8
8
  }
9
9
  bootstrap();
10
- //# sourceMappingURL=main.js.map
@@ -1,2 +1,3 @@
1
1
  export declare const withDefaultNull: <T extends object>(context: T) => T;
2
2
  export declare const calculateDepth: (expression: string) => number | undefined;
3
+ //# sourceMappingURL=object.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.utils.d.ts","sourceRoot":"","sources":["../../src/object.utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,KAAG,CAqB9D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,SAgB5D,CAAC"}
@@ -36,4 +36,3 @@ const calculateDepth = (expression) => {
36
36
  return depth;
37
37
  };
38
38
  exports.calculateDepth = calculateDepth;
39
- //# sourceMappingURL=object.utils.js.map
@@ -1,2 +1,3 @@
1
1
  export declare class RateLimitingModule {
2
2
  }
3
+ //# sourceMappingURL=rate-limiting.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limiting.module.d.ts","sourceRoot":"","sources":["../../src/rate-limiting.module.ts"],"names":[],"mappings":"AAMA,qBAiBa,kBAAkB;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.RateLimitingModule = 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
7
  const mongoose_1 = require("@nestjs/mongoose");
@@ -15,7 +10,7 @@ const rule_constraint_1 = require("./validators/rule.constraint");
15
10
  let RateLimitingModule = class RateLimitingModule {
16
11
  };
17
12
  exports.RateLimitingModule = RateLimitingModule;
18
- exports.RateLimitingModule = RateLimitingModule = __decorate([
13
+ exports.RateLimitingModule = RateLimitingModule = tslib_1.__decorate([
19
14
  (0, common_1.Module)({
20
15
  imports: [
21
16
  rule_module_1.RuleModule.register(),
@@ -34,4 +29,3 @@ exports.RateLimitingModule = RateLimitingModule = __decorate([
34
29
  exports: [rule_module_1.RuleModule]
35
30
  })
36
31
  ], RateLimitingModule);
37
- //# sourceMappingURL=rate-limiting.module.js.map
@@ -3,3 +3,4 @@ export declare class PaginationDTO {
3
3
  order?: number | undefined;
4
4
  limit: number;
5
5
  }
6
+ //# sourceMappingURL=pagination.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.dto.d.ts","sourceRoot":"","sources":["../../../../src/rules/dto/pagination.dto.ts"],"names":[],"mappings":"AAKA,qBAAa,aAAa;IAWxB,IAAI,SAAK;IAUT,KAAK,CAAC,qBAAM;IAIZ,KAAK,SAAM;CACZ"}
@@ -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.PaginationDTO = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const common_1 = require("@nestjs/common");
14
6
  const swagger_1 = require("@nestjs/swagger");
15
7
  const class_transformer_1 = require("class-transformer");
@@ -20,7 +12,7 @@ class PaginationDTO {
20
12
  limit = 10;
21
13
  }
22
14
  exports.PaginationDTO = PaginationDTO;
23
- __decorate([
15
+ tslib_1.__decorate([
24
16
  (0, swagger_1.ApiProperty)({ type: Number, required: false }),
25
17
  (0, class_validator_1.IsNotEmpty)(),
26
18
  (0, class_validator_1.IsInt)(),
@@ -31,9 +23,9 @@ __decorate([
31
23
  throw new common_1.BadRequestException('Page needs to be bigger than 0');
32
24
  return parsed;
33
25
  }),
34
- __metadata("design:type", Object)
26
+ tslib_1.__metadata("design:type", Object)
35
27
  ], PaginationDTO.prototype, "page", void 0);
36
- __decorate([
28
+ tslib_1.__decorate([
37
29
  (0, swagger_1.ApiProperty)({
38
30
  type: Number,
39
31
  required: false,
@@ -41,11 +33,10 @@ __decorate([
41
33
  description: 'You can add more than one field by using trailing commas ex: 1,-1',
42
34
  }),
43
35
  (0, class_validator_1.IsOptional)(),
44
- __metadata("design:type", Object)
36
+ tslib_1.__metadata("design:type", Object)
45
37
  ], PaginationDTO.prototype, "order", void 0);
46
- __decorate([
38
+ tslib_1.__decorate([
47
39
  (0, swagger_1.ApiProperty)({ type: Number, required: false, default: 10 }),
48
40
  (0, class_validator_1.IsOptional)(),
49
- __metadata("design:type", Object)
41
+ tslib_1.__metadata("design:type", Object)
50
42
  ], PaginationDTO.prototype, "limit", void 0);
51
- //# sourceMappingURL=pagination.dto.js.map
@@ -1,5 +1,5 @@
1
- import { IFindRule, IRule } from "../interface/rule.interface";
2
- import { PaginationDTO } from "./pagination.dto";
1
+ import { IFindRule, IRule } from '../interface/rule.interface';
2
+ import { PaginationDTO } from './pagination.dto';
3
3
  export declare class CreateRuleDTO implements IRule {
4
4
  name: string;
5
5
  expression: string;
@@ -21,3 +21,4 @@ export declare class FindRuleDTO extends PaginationDTO implements IFindRule {
21
21
  provider?: string;
22
22
  market?: string;
23
23
  }
24
+ //# sourceMappingURL=rule.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.dto.d.ts","sourceRoot":"","sources":["../../../../src/rules/dto/rule.dto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,aAAc,YAAW,KAAK;IAOzC,IAAI,EAAG,MAAM,CAAC;IASd,UAAU,EAAG,MAAM,CAAC;IAQpB,YAAY,EAAG,MAAM,CAAC;IAStB,YAAY,CAAC,EAAE,MAAM,CAAC;IAStB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IASpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAS5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAQrB,OAAO,CAAC,EAAE,MAAM,CAAC;IASjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAY,SAAQ,aAAc,YAAW,SAAS;IAQjE,IAAI,CAAC,EAAE,MAAM,CAAC;IASd,YAAY,CAAC,EAAE,MAAM,CAAC;IAStB,OAAO,CAAC,EAAE,MAAM,CAAC;IASjB,WAAW,CAAC,EAAE,MAAM,CAAC;IASrB,SAAS,CAAC,EAAE,OAAO,CAAC;IASpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IASlB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -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.FindRuleDTO = exports.CreateRuleDTO = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const swagger_1 = require("@nestjs/swagger");
14
6
  const class_validator_1 = require("class-validator");
15
7
  const rule_validator_1 = require("../../validators/rule.validator");
@@ -27,16 +19,16 @@ class CreateRuleDTO {
27
19
  provider;
28
20
  }
29
21
  exports.CreateRuleDTO = CreateRuleDTO;
30
- __decorate([
22
+ tslib_1.__decorate([
31
23
  (0, swagger_1.ApiProperty)({
32
24
  type: String,
33
25
  required: true,
34
26
  }),
35
27
  (0, class_validator_1.IsNotEmpty)(),
36
28
  (0, class_validator_1.IsString)(),
37
- __metadata("design:type", String)
29
+ tslib_1.__metadata("design:type", String)
38
30
  ], CreateRuleDTO.prototype, "name", void 0);
39
- __decorate([
31
+ tslib_1.__decorate([
40
32
  (0, swagger_1.ApiProperty)({
41
33
  type: String,
42
34
  required: true,
@@ -44,18 +36,18 @@ __decorate([
44
36
  (0, class_validator_1.IsNotEmpty)(),
45
37
  (0, class_validator_1.IsString)(),
46
38
  (0, rule_validator_1.IsValidExpression)(),
47
- __metadata("design:type", String)
39
+ tslib_1.__metadata("design:type", String)
48
40
  ], CreateRuleDTO.prototype, "expression", void 0);
49
- __decorate([
41
+ tslib_1.__decorate([
50
42
  (0, swagger_1.ApiProperty)({
51
43
  type: String,
52
44
  required: true,
53
45
  }),
54
46
  (0, class_validator_1.IsNotEmpty)(),
55
47
  (0, class_validator_1.IsString)(),
56
- __metadata("design:type", String)
48
+ tslib_1.__metadata("design:type", String)
57
49
  ], CreateRuleDTO.prototype, "targetAction", void 0);
58
- __decorate([
50
+ tslib_1.__decorate([
59
51
  (0, swagger_1.ApiProperty)({
60
52
  type: String,
61
53
  required: false,
@@ -63,9 +55,9 @@ __decorate([
63
55
  (0, class_validator_1.IsNotEmpty)(),
64
56
  (0, class_validator_1.IsString)(),
65
57
  (0, class_validator_1.IsOptional)(),
66
- __metadata("design:type", String)
58
+ tslib_1.__metadata("design:type", String)
67
59
  ], CreateRuleDTO.prototype, "errorMessage", void 0);
68
- __decorate([
60
+ tslib_1.__decorate([
69
61
  (0, swagger_1.ApiProperty)({
70
62
  type: Object,
71
63
  required: false,
@@ -73,9 +65,9 @@ __decorate([
73
65
  (0, class_validator_1.IsNotEmpty)(),
74
66
  (0, class_validator_1.IsObject)(),
75
67
  (0, class_validator_1.IsOptional)(),
76
- __metadata("design:type", Object)
68
+ tslib_1.__metadata("design:type", Object)
77
69
  ], CreateRuleDTO.prototype, "variables", void 0);
78
- __decorate([
70
+ tslib_1.__decorate([
79
71
  (0, swagger_1.ApiProperty)({
80
72
  type: Boolean,
81
73
  required: false,
@@ -83,9 +75,9 @@ __decorate([
83
75
  (0, class_validator_1.IsNotEmpty)(),
84
76
  (0, class_validator_1.IsBoolean)(),
85
77
  (0, class_validator_1.IsOptional)(),
86
- __metadata("design:type", Boolean)
78
+ tslib_1.__metadata("design:type", Boolean)
87
79
  ], CreateRuleDTO.prototype, "variablesRequired", void 0);
88
- __decorate([
80
+ tslib_1.__decorate([
89
81
  (0, swagger_1.ApiProperty)({
90
82
  type: String,
91
83
  required: false,
@@ -93,18 +85,18 @@ __decorate([
93
85
  (0, class_validator_1.IsNotEmpty)(),
94
86
  (0, class_validator_1.IsString)(),
95
87
  (0, class_validator_1.IsOptional)(),
96
- __metadata("design:type", String)
88
+ tslib_1.__metadata("design:type", String)
97
89
  ], CreateRuleDTO.prototype, "productType", void 0);
98
- __decorate([
90
+ tslib_1.__decorate([
99
91
  (0, swagger_1.ApiProperty)({
100
92
  type: String,
101
93
  required: true,
102
94
  }),
103
95
  (0, class_validator_1.IsNotEmpty)(),
104
96
  (0, class_validator_1.IsString)(),
105
- __metadata("design:type", String)
97
+ tslib_1.__metadata("design:type", String)
106
98
  ], CreateRuleDTO.prototype, "partner", void 0);
107
- __decorate([
99
+ tslib_1.__decorate([
108
100
  (0, swagger_1.ApiProperty)({
109
101
  type: String,
110
102
  required: true,
@@ -112,9 +104,9 @@ __decorate([
112
104
  (0, class_validator_1.IsNotEmpty)(),
113
105
  (0, class_validator_1.IsString)(),
114
106
  (0, class_validator_1.IsOptional)(),
115
- __metadata("design:type", String)
107
+ tslib_1.__metadata("design:type", String)
116
108
  ], CreateRuleDTO.prototype, "market", void 0);
117
- __decorate([
109
+ tslib_1.__decorate([
118
110
  (0, swagger_1.ApiProperty)({
119
111
  type: String,
120
112
  required: false,
@@ -122,7 +114,7 @@ __decorate([
122
114
  (0, class_validator_1.IsNotEmpty)(),
123
115
  (0, class_validator_1.IsString)(),
124
116
  (0, class_validator_1.IsOptional)(),
125
- __metadata("design:type", String)
117
+ tslib_1.__metadata("design:type", String)
126
118
  ], CreateRuleDTO.prototype, "provider", void 0);
127
119
  class FindRuleDTO extends pagination_dto_1.PaginationDTO {
128
120
  name;
@@ -134,7 +126,7 @@ class FindRuleDTO extends pagination_dto_1.PaginationDTO {
134
126
  market;
135
127
  }
136
128
  exports.FindRuleDTO = FindRuleDTO;
137
- __decorate([
129
+ tslib_1.__decorate([
138
130
  (0, swagger_1.ApiProperty)({
139
131
  type: String,
140
132
  required: false,
@@ -142,9 +134,9 @@ __decorate([
142
134
  (0, class_validator_1.IsNotEmpty)(),
143
135
  (0, class_validator_1.IsString)(),
144
136
  (0, class_validator_1.IsOptional)(),
145
- __metadata("design:type", String)
137
+ tslib_1.__metadata("design:type", String)
146
138
  ], FindRuleDTO.prototype, "name", void 0);
147
- __decorate([
139
+ tslib_1.__decorate([
148
140
  (0, swagger_1.ApiProperty)({
149
141
  type: String,
150
142
  required: false,
@@ -152,9 +144,9 @@ __decorate([
152
144
  (0, class_validator_1.IsNotEmpty)(),
153
145
  (0, class_validator_1.IsString)(),
154
146
  (0, class_validator_1.IsOptional)(),
155
- __metadata("design:type", String)
147
+ tslib_1.__metadata("design:type", String)
156
148
  ], FindRuleDTO.prototype, "targetAction", void 0);
157
- __decorate([
149
+ tslib_1.__decorate([
158
150
  (0, swagger_1.ApiProperty)({
159
151
  type: String,
160
152
  required: true,
@@ -162,9 +154,9 @@ __decorate([
162
154
  (0, class_validator_1.IsNotEmpty)(),
163
155
  (0, class_validator_1.IsString)(),
164
156
  (0, class_validator_1.IsOptional)(),
165
- __metadata("design:type", String)
157
+ tslib_1.__metadata("design:type", String)
166
158
  ], FindRuleDTO.prototype, "partner", void 0);
167
- __decorate([
159
+ tslib_1.__decorate([
168
160
  (0, swagger_1.ApiProperty)({
169
161
  type: String,
170
162
  required: true,
@@ -172,9 +164,9 @@ __decorate([
172
164
  (0, class_validator_1.IsNotEmpty)(),
173
165
  (0, class_validator_1.IsString)(),
174
166
  (0, class_validator_1.IsOptional)(),
175
- __metadata("design:type", String)
167
+ tslib_1.__metadata("design:type", String)
176
168
  ], FindRuleDTO.prototype, "productType", void 0);
177
- __decorate([
169
+ tslib_1.__decorate([
178
170
  (0, swagger_1.ApiProperty)({
179
171
  type: String,
180
172
  required: false,
@@ -182,9 +174,9 @@ __decorate([
182
174
  (0, class_validator_1.IsNotEmpty)(),
183
175
  (0, class_validator_1.IsBoolean)(),
184
176
  (0, class_validator_1.IsOptional)(),
185
- __metadata("design:type", Boolean)
177
+ tslib_1.__metadata("design:type", Boolean)
186
178
  ], FindRuleDTO.prototype, "isEnabled", void 0);
187
- __decorate([
179
+ tslib_1.__decorate([
188
180
  (0, swagger_1.ApiProperty)({
189
181
  type: String,
190
182
  required: false,
@@ -192,9 +184,9 @@ __decorate([
192
184
  (0, class_validator_1.IsNotEmpty)(),
193
185
  (0, class_validator_1.IsString)(),
194
186
  (0, class_validator_1.IsOptional)(),
195
- __metadata("design:type", String)
187
+ tslib_1.__metadata("design:type", String)
196
188
  ], FindRuleDTO.prototype, "provider", void 0);
197
- __decorate([
189
+ tslib_1.__decorate([
198
190
  (0, swagger_1.ApiProperty)({
199
191
  type: String,
200
192
  required: false,
@@ -202,6 +194,5 @@ __decorate([
202
194
  (0, class_validator_1.IsNotEmpty)(),
203
195
  (0, class_validator_1.IsString)(),
204
196
  (0, class_validator_1.IsOptional)(),
205
- __metadata("design:type", String)
197
+ tslib_1.__metadata("design:type", String)
206
198
  ], FindRuleDTO.prototype, "market", void 0);
207
- //# sourceMappingURL=rule.dto.js.map
@@ -4,3 +4,4 @@ export interface IPagination<T> {
4
4
  total: number;
5
5
  totalPages: number;
6
6
  }
7
+ //# sourceMappingURL=pagination.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/rules/interface/pagination.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=pagination.interface.js.map
@@ -26,3 +26,4 @@ export interface IFindRule {
26
26
  page: number;
27
27
  limit: number;
28
28
  }
29
+ //# sourceMappingURL=rule.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.interface.d.ts","sourceRoot":"","sources":["../../../../src/rules/interface/rule.interface.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,KAAK;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=rule.interface.js.map
@@ -11,3 +11,4 @@ export declare class RuleController {
11
11
  updateSale(id: string, patchData: Partial<IRule>): Promise<IRule | null>;
12
12
  delete(id: string): Promise<void>;
13
13
  }
14
+ //# sourceMappingURL=rule.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.controller.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.controller.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,qBAEa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAO3C,MAAM,CAAS,GAAG,EAAE,aAAa;IAOjC,OAAO,CACI,KAAK,EAAE,WAAW,GAC1B,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAOhC,OAAO,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAOhD,UAAU,CACK,EAAE,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;IAQnC,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}