@edirect/rate-limit-module 0.1.5 → 0.1.7

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.
@@ -81,7 +81,7 @@ let RateLimitingRuleGuard = class RateLimitingRuleGuard {
81
81
  return true;
82
82
  }
83
83
  catch (err) {
84
- return false;
84
+ throw err;
85
85
  }
86
86
  }
87
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiting.guard.js","sourceRoot":"","sources":["../../../src/guards/rate-limiting.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,uCAAyC;AACzC,6FAGoD;AACpD,kDAAkD;AAElD,wDAAoD;AACpD,mFAA8E;AAGvE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEb;IACA;IAEA;IAJnB,YACmB,SAAoB,EACpB,WAAwB,EAExB,UAA6B;QAH7B,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAa;QAExB,eAAU,GAAV,UAAU,CAAmB;IAC7C,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAErC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACrC,4CAAa,EACb,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;YAExB,MAAM,EACJ,MAAM,EACN,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,GAAG,YAAY,CAAC;YAEjB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAE5D,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAE1B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAEpE,MAAM,UAAU,GAAc;gBAC5B,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,QAAQ;gBAClB,YAAY,EAAE,MAAM;gBACpB,WAAW;gBACX,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAE1E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG;oBAClB,GAAG,MAAM;oBACT,GAAG,IAAI,CAAC,SAAS;iBAClB,CAAC;gBAEF,MAAM,wBAAwB,GAC5B,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE3D,IAAI,wBAAwB,IAAI,wBAAwB,CAAC,MAAM,EAAE,CAAC;oBAChE,MAAM,IAAI,2BAAkB,CAAC,wBAAwB,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEpF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAChD,MAAM,IAAI,2BAAkB,CAAC,mCAAmC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjG,CAAC;gBAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,2BAA2B,CACnE,IAAI,CAAC,UAAU,EACf,WAAW,CACZ,CAAC;oBAEF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;wBACtC,MAAM,IAAI,2BAAkB,CAC1B,6DAA6D,IAAI,CAAC,SAAS,CACzE,WAAW,CACZ,EAAE,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,eAAe,GAAG,IAAA,8BAAe,EAAC,WAAW,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC/C,IAAI,CAAC,UAAU,EACf,eAAe,CAChB,CAAC;gBAEF,IAAI,UAAU;oBACZ,MAAM,IAAI,2BAAkB,CAC1B,IAAI,CAAC,YAAY,IAAI,kCAAkC,CACxD,CAAC;YACN,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAM,GAAG,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AArGY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,sBAAsB,CAAC,CAAA;qCAFH,gBAAS;QACP,0BAAW;QAEZ,uCAAiB;GALrC,qBAAqB,CAqGjC;AAED,SAAS,sBAAsB,CAAC,GAAQ,EAAE,IAAY;IACpD,MAAM,aAAa,GAAG,IAAI;SACvB,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAErF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"rate-limiting.guard.js","sourceRoot":"","sources":["../../../src/guards/rate-limiting.guard.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const withDefaultNull: <T extends object>(context: T) => T;
2
- export declare const calculateDepth: (expression: string) => number;
2
+ export declare const calculateDepth: (expression: string) => number | undefined;
@@ -20,6 +20,8 @@ const withDefaultNull = (context) => {
20
20
  };
21
21
  exports.withDefaultNull = withDefaultNull;
22
22
  const calculateDepth = (expression) => {
23
+ if (!expression)
24
+ return;
23
25
  let depth = 0;
24
26
  let maxDepth = 0;
25
27
  for (const char of expression) {
@@ -31,7 +33,7 @@ const calculateDepth = (expression) => {
31
33
  depth--;
32
34
  }
33
35
  }
34
- return maxDepth;
36
+ return depth;
35
37
  };
36
38
  exports.calculateDepth = calculateDepth;
37
39
  //# sourceMappingURL=object.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.utils.js","sourceRoot":"","sources":["../../src/object.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAmB,OAAU,EAAK,EAAE;IACjE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IACE,KAAK,KAAK,IAAI;gBACd,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrB,KAAK,CAAC,WAAW,KAAK,MAAM,EAC5B,CAAC;gBACD,OAAO,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAM,CAAC;AACV,CAAC,CAAC;AArBW,QAAA,eAAe,mBAqB1B;AAEK,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC3D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,EAAE,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
1
+ {"version":3,"file":"object.utils.js","sourceRoot":"","sources":["../../src/object.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAmB,OAAU,EAAK,EAAE;IACjE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IACE,KAAK,KAAK,IAAI;gBACd,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrB,KAAK,CAAC,WAAW,KAAK,MAAM,EAC5B,CAAC;gBACD,OAAO,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAM,CAAC;AACV,CAAC,CAAC;AArBW,QAAA,eAAe,mBAqB1B;AAEK,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAsB,EAAE;IACvE,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,EAAE,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
@@ -21,4 +21,5 @@ export declare class RuleService {
21
21
  validateRuleExpression(expression: string): string | null;
22
22
  private getFromCache;
23
23
  private generateRateLimitingCountCacheKey;
24
+ private wrapWithForce;
24
25
  }
@@ -85,7 +85,7 @@ let RuleService = class RuleService {
85
85
  productType: queryParameters?.productType
86
86
  });
87
87
  if (data && data.length) {
88
- await this.cacheService.set(cacheKey, JSON.stringify(data), 3600);
88
+ await this.cacheService.set(cacheKey, data, 3600);
89
89
  }
90
90
  return data;
91
91
  }
@@ -152,7 +152,7 @@ let RuleService = class RuleService {
152
152
  }
153
153
  }
154
154
  validateRuleExpression(expression) {
155
- if (expression.length > this.MAX_EXPRESSION_LENGTH) {
155
+ if (expression && expression.length > this.MAX_EXPRESSION_LENGTH) {
156
156
  return `Expression too long: ${expression.length} chars`;
157
157
  }
158
158
  for (const pattern of this.FORBIDDEN_PATTERNS) {
@@ -160,7 +160,8 @@ let RuleService = class RuleService {
160
160
  return `Expression contains forbidden pattern: ${pattern}`;
161
161
  }
162
162
  }
163
- if ((0, object_utils_1.calculateDepth)(expression) > this.MAX_EXPRESSION_DEPTH) {
163
+ const depth = (0, object_utils_1.calculateDepth)(expression);
164
+ if (depth && depth > this.MAX_EXPRESSION_DEPTH) {
164
165
  return `Expression too complex`;
165
166
  }
166
167
  return null;
@@ -173,7 +174,7 @@ let RuleService = class RuleService {
173
174
  });
174
175
  const cachedData = await this.cacheService.get(cacheKey);
175
176
  if (cachedData && cachedData.length) {
176
- this.logger.info(`[INFO] Cache hit for: ${cachedData}`);
177
+ this.logger.info(`[INFO] Cache hit for: ${JSON.stringify(cachedData)}`);
177
178
  return cachedData;
178
179
  }
179
180
  return [];
@@ -194,6 +195,11 @@ let RuleService = class RuleService {
194
195
  return `rate-limit-config:${JSON.stringify(orderedParams)}`;
195
196
  }
196
197
  ;
198
+ wrapWithForce(fn) {
199
+ return async (...args) => {
200
+ return await fn(...args);
201
+ };
202
+ }
197
203
  };
198
204
  exports.RuleService = RuleService;
199
205
  exports.RuleService = RuleService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"rule.service.js","sourceRoot":"","sources":["../../../src/rules/rule.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.service.js","sourceRoot":"","sources":["../../../src/rules/rule.service.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,10 @@ let CacheService = class CacheService {
18
18
  this.redis = redis;
19
19
  }
20
20
  async get(key) {
21
- return this.redis.get(key);
21
+ return await this.redis.get(key);
22
22
  }
23
23
  set(key, value, ttl) {
24
- return this.redis.set(key, JSON.stringify(value), ttl);
24
+ return this.redis.set(key, value, ttl);
25
25
  }
26
26
  delete(keys) {
27
27
  return this.redis.delKeys(keys);
@@ -1 +1 @@
1
- {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../src/shared/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAAsD;AAG/C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACM;IAA7B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAY;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAlBY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,YAAY,CAkBxB"}
1
+ {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../src/shared/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAAsD;AAG/C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACM;IAA7B,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAY;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAlBY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,YAAY,CAkBxB"}
@@ -27,10 +27,10 @@ let RedisService = class RedisService {
27
27
  async set(key, value, ttlSeconds) {
28
28
  const str = JSON.stringify(value);
29
29
  if (ttlSeconds) {
30
- await this.client.set(key, JSON.stringify(str), 'EX', ttlSeconds);
30
+ await this.client.set(key, str, 'EX', ttlSeconds);
31
31
  }
32
32
  else {
33
- await this.client.set(key, JSON.stringify(str));
33
+ await this.client.set(key, str);
34
34
  }
35
35
  }
36
36
  async delKeys(keys) {
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../src/shared/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,qCAA4B;AAGrB,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGJ;IAFnB,YAEmB,MAAa;QAAb,WAAM,GAAN,MAAM,CAAO;IAC7B,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,UAAmB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAK,GAAG,GAAG;QACrC,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,GAAG,CAAC;YACF,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5F,MAAM,GAAG,UAAU,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;QAEzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF,CAAA;AA9CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,cAAc,CAAC,CAAA;qCACE,iBAAK;GAHrB,YAAY,CA8CxB"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../src/shared/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,qCAA4B;AAGrB,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGJ;IAFnB,YAEmB,MAAa;QAAb,WAAM,GAAN,MAAM,CAAO;IAC7B,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,UAAmB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAK,GAAG,GAAG;QACrC,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,GAAG,CAAC;YACF,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5F,MAAM,GAAG,UAAU,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;QAEzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF,CAAA;AA9CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,cAAc,CAAC,CAAA;qCACE,iBAAK;GAHrB,YAAY,CA8CxB"}
@@ -2,8 +2,9 @@ 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[]> | IRuleFunction[];
5
+ useFactory: (...args: any[]) => Promise<IRuleFunction[]>;
6
6
  inject?: any[];
7
+ imports?: any[];
7
8
  }): DynamicModule;
8
9
  static forFeature(functions: IRuleFunction[]): DynamicModule;
9
10
  }
@@ -16,23 +16,19 @@ let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
16
16
  static forFeatureAsync(options) {
17
17
  const functionsProvider = {
18
18
  provide: index_1.CUSTOM_RULE_FUNCTIONS,
19
- useValue: options?.inject || [],
19
+ useFactory: options.useFactory,
20
+ inject: options?.inject || [],
20
21
  };
21
22
  const ruleEngineProvider = {
22
23
  provide: index_1.RULE_ENGINE_INSTANCE,
23
24
  useFactory: (fns) => {
24
- const jexl = new jexl_1.Jexl();
25
- const fnsNames = [];
26
- for (const { name, fn } of fns) {
27
- jexl.addFunction(name, fn);
28
- fnsNames.push(name);
29
- }
30
- return new rule_engine_service_1.RuleEngineService(jexl, fnsNames);
25
+ return new rule_engine_service_1.RuleEngineService(new jexl_1.Jexl(), fns);
31
26
  },
32
27
  inject: [index_1.CUSTOM_RULE_FUNCTIONS],
33
28
  };
34
29
  return {
35
30
  module: RuleEngineModule_1,
31
+ imports: options.imports || [],
36
32
  providers: [functionsProvider, ruleEngineProvider],
37
33
  exports: [index_1.RULE_ENGINE_INSTANCE],
38
34
  };
@@ -44,15 +40,7 @@ let RuleEngineModule = RuleEngineModule_1 = class RuleEngineModule {
44
40
  };
45
41
  const ruleEngineProvider = {
46
42
  provide: index_1.RULE_ENGINE_INSTANCE,
47
- useFactory: (fns) => {
48
- const jexl = new jexl_1.Jexl();
49
- const fnsNames = [];
50
- for (const { name, fn } of fns) {
51
- jexl.addFunction(name, fn);
52
- fnsNames.push(name);
53
- }
54
- return new rule_engine_service_1.RuleEngineService(jexl, fnsNames);
55
- },
43
+ useFactory: (fns) => new rule_engine_service_1.RuleEngineService(new jexl_1.Jexl(), fns),
56
44
  inject: [index_1.CUSTOM_RULE_FUNCTIONS],
57
45
  };
58
46
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.module.js","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,+BAA4B;AAC5B,uCAA0E;AAE1E,+DAA0D;AAInD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,eAAe,CAAC,OAGtB;QACC,MAAM,iBAAiB,GAAa;YAClC,OAAO,EAAE,6BAAqB;YAC9B,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;SAChC,CAAC;QAEF,MAAM,kBAAkB,GAAa;YACnC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAE9B,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;oBAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAED,OAAO,IAAI,uCAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,EAAE,CAAC,6BAAqB,CAAC;SAChC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAClD,OAAO,EAAE,CAAC,4BAAoB,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAA0B;QAC1C,MAAM,iBAAiB,GAAa;YAClC,OAAO,EAAE,6BAAqB;YAC9B,QAAQ,EAAE,SAAS;SACpB,CAAC;QAEF,MAAM,kBAAkB,GAAa;YACnC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAE9B,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;oBAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAED,OAAO,IAAI,uCAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,EAAE,CAAC,6BAAqB,CAAC;SAChC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAClD,OAAO,EAAE,CAAC,4BAAoB,CAAC;SAChC,CAAC;IACJ,CAAC;CACF,CAAA;AA7DY,4CAAgB;2BAAhB,gBAAgB;IAF5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CA6D5B"}
1
+ {"version":3,"file":"rule-engine.module.js","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,+BAA4B;AAC5B,uCAA0E;AAE1E,+DAA0D;AAInD,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,eAAe,CAAC,OAItB;QACC,MAAM,iBAAiB,GAAa;YAClC,OAAO,EAAE,6BAAqB;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE;SAC9B,CAAC;QAEF,MAAM,kBAAkB,GAAa;YACnC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE;gBACnC,OAAO,IAAI,uCAAiB,CAAC,IAAI,WAAI,EAAE,EAAE,GAAG,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,EAAE,CAAC,6BAAqB,CAAC;SAChC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAClD,OAAO,EAAE,CAAC,4BAAoB,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAA0B;QAC1C,MAAM,iBAAiB,GAAa;YAClC,OAAO,EAAE,6BAAqB;YAC9B,QAAQ,EAAE,SAAS;SACpB,CAAC;QAEF,MAAM,kBAAkB,GAAa;YACnC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,IAAI,uCAAiB,CAAC,IAAI,WAAI,EAAE,EAAE,GAAG,CAAC;YAC5E,MAAM,EAAE,CAAC,6BAAqB,CAAC;SAChC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAClD,OAAO,EAAE,CAAC,4BAAoB,CAAC;SAChC,CAAC;IACJ,CAAC;CACF,CAAA;AA9CY,4CAAgB;2BAAhB,gBAAgB;IAF5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CA8C5B"}
@@ -1,13 +1,16 @@
1
1
  import { IRuleFunction } from "./interface/rule-engine.interface";
2
2
  export declare class RuleEngineService {
3
3
  private readonly jexl;
4
+ private readonly fns;
4
5
  private readonly allowedFns;
5
- constructor(jexl: any, allowedFns: String[]);
6
- registerCustomFunctions(customFunctions: IRuleFunction[]): Promise<void>;
6
+ constructor(jexl: any, fns?: IRuleFunction[]);
7
7
  evaluate<T>(expression: string, context: T): Promise<boolean>;
8
8
  validateExpressionVariables<T>(expression: string, context: T): Promise<string[]>;
9
9
  validateFunctionsAreValid(expression: any): String[];
10
10
  getAllowedFunctions(): String[];
11
+ injectCustomFns(): void;
11
12
  private _extractVariables;
12
13
  private _validateVariablesInContext;
14
+ private extractFunctionCalls;
15
+ private resolveValue;
13
16
  }
@@ -1,20 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RuleEngineService = void 0;
4
+ const common_1 = require("@nestjs/common");
4
5
  class RuleEngineService {
5
6
  jexl;
6
- allowedFns;
7
- constructor(jexl, allowedFns) {
7
+ fns;
8
+ allowedFns = [];
9
+ constructor(jexl, fns = []) {
8
10
  this.jexl = jexl;
9
- this.allowedFns = allowedFns;
11
+ this.fns = fns;
12
+ this.injectCustomFns();
10
13
  }
11
- async registerCustomFunctions(customFunctions) {
12
- for (const { name, fn } of customFunctions) {
13
- this.jexl.addFunction(name, fn);
14
+ async evaluate(expression, context) {
15
+ const functionCalls = this.extractFunctionCalls(expression);
16
+ const values = {};
17
+ for (const call of functionCalls) {
18
+ const { name, rawArgs, fullText } = call;
19
+ if (this.fns && this.fns.length) {
20
+ const rule = this.fns.find((fn) => fn.name === name);
21
+ if (!rule || !rule.fn)
22
+ throw new common_1.BadRequestException(`Not known'${name}' function`);
23
+ const args = rawArgs.map(arg => this.resolveValue(arg, context));
24
+ const result = await rule.fn(...args) || 0;
25
+ expression = expression.replace(fullText, JSON.stringify(result));
26
+ }
14
27
  }
15
- }
16
- evaluate(expression, context) {
17
- return this.jexl.eval(expression, context);
28
+ return this.jexl.eval(expression, values);
18
29
  }
19
30
  async validateExpressionVariables(expression, context) {
20
31
  const variables = this._extractVariables(expression);
@@ -22,6 +33,8 @@ class RuleEngineService {
22
33
  return missingVariables;
23
34
  }
24
35
  validateFunctionsAreValid(expression) {
36
+ if (!expression)
37
+ return [];
25
38
  if (!this.allowedFns || !this.allowedFns?.length)
26
39
  return [];
27
40
  const usedFunctions = [
@@ -33,6 +46,12 @@ class RuleEngineService {
33
46
  getAllowedFunctions() {
34
47
  return this.allowedFns;
35
48
  }
49
+ injectCustomFns() {
50
+ for (const { name, fn } of this.fns) {
51
+ this.jexl.addFunction(name, fn);
52
+ this.allowedFns.push(name);
53
+ }
54
+ }
36
55
  _extractVariables(expression) {
37
56
  const regex = /[a-zA-Z_$][a-zA-Z0-9_$]*(?:\.[a-zA-Z_$][a-zA-Z0-9_$]*|\[\d+\](?:\.[a-zA-Z_$][a-zA-Z0-9_$]*)*)+|\b[a-zA-Z_$][a-zA-Z0-9_$]*\b/g;
38
57
  const functionRegex = /\b[a-zA-Z_$][a-zA-Z0-9_$]*\s*\(/g;
@@ -82,6 +101,21 @@ class RuleEngineService {
82
101
  }
83
102
  return missingVariables;
84
103
  }
104
+ extractFunctionCalls(expression) {
105
+ const regex = /([a-zA-Z0-9_]+)\(([^)]*)\)/g;
106
+ const calls = [];
107
+ let match;
108
+ while ((match = regex.exec(expression)) !== null) {
109
+ const name = match[1];
110
+ const raw = match[2].split(',').map(s => s.trim());
111
+ calls.push({ name, rawArgs: raw, fullText: match[0] });
112
+ }
113
+ return calls;
114
+ }
115
+ resolveValue(path, context) {
116
+ const parts = path.split('.');
117
+ return parts.reduce((obj, part) => obj?.[part], context);
118
+ }
85
119
  }
86
120
  exports.RuleEngineService = RuleEngineService;
87
121
  //# sourceMappingURL=rule-engine.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.service.js","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-engine.service.js","sourceRoot":"","sources":["../../../../src/shared/rule-engine/rule-engine.service.ts"],"names":[],"mappings":"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"}