@convertcom/js-sdk-rules 1.0.0 → 1.0.1

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 (156) hide show
  1. package/README.md +11 -0
  2. package/lib/{legacy/rules/src/rule-manager.d.ts → index.d.ts} +21 -4
  3. package/lib/index.js +24 -11
  4. package/lib/index.js.map +1 -1
  5. package/lib/index.min.js +1 -1
  6. package/lib/index.min.mjs +1 -1
  7. package/lib/index.mjs +24 -11
  8. package/lib/index.mjs.map +1 -1
  9. package/lib/legacy/index.js +30 -17
  10. package/lib/legacy/index.js.map +1 -1
  11. package/lib/legacy/index.min.js +1 -1
  12. package/lib/package.json +1 -1
  13. package/package.json +2 -7
  14. package/lib/enums/index.d.ts +0 -29
  15. package/lib/enums/src/audience-type.d.ts +0 -11
  16. package/lib/enums/src/data-enitites.d.ts +0 -7
  17. package/lib/enums/src/dictionary.d.ts +0 -60
  18. package/lib/enums/src/do-not-track.d.ts +0 -12
  19. package/lib/enums/src/event-type.d.ts +0 -10
  20. package/lib/enums/src/experience-type.d.ts +0 -16
  21. package/lib/enums/src/feature-status.d.ts +0 -10
  22. package/lib/enums/src/ga-type.d.ts +0 -10
  23. package/lib/enums/src/goal-data-key.d.ts +0 -11
  24. package/lib/enums/src/goal-type.d.ts +0 -22
  25. package/lib/enums/src/integration-provider.d.ts +0 -27
  26. package/lib/enums/src/log-level.d.ts +0 -14
  27. package/lib/enums/src/log-method.d.ts +0 -14
  28. package/lib/enums/src/project-type.d.ts +0 -10
  29. package/lib/enums/src/rule-error.d.ts +0 -10
  30. package/lib/enums/src/segments/browser-type.d.ts +0 -17
  31. package/lib/enums/src/segments/device-type.d.ts +0 -16
  32. package/lib/enums/src/segments/segments-keys.d.ts +0 -15
  33. package/lib/enums/src/segments/source-type.d.ts +0 -12
  34. package/lib/enums/src/segments/visitor-type.d.ts +0 -10
  35. package/lib/enums/src/system-events.d.ts +0 -22
  36. package/lib/enums/src/variable-types.d.ts +0 -7
  37. package/lib/enums/src/variation-change-type.d.ts +0 -14
  38. package/lib/legacy/enums/index.d.ts +0 -29
  39. package/lib/legacy/enums/src/audience-type.d.ts +0 -11
  40. package/lib/legacy/enums/src/data-enitites.d.ts +0 -7
  41. package/lib/legacy/enums/src/dictionary.d.ts +0 -60
  42. package/lib/legacy/enums/src/do-not-track.d.ts +0 -12
  43. package/lib/legacy/enums/src/event-type.d.ts +0 -10
  44. package/lib/legacy/enums/src/experience-type.d.ts +0 -16
  45. package/lib/legacy/enums/src/feature-status.d.ts +0 -10
  46. package/lib/legacy/enums/src/ga-type.d.ts +0 -10
  47. package/lib/legacy/enums/src/goal-data-key.d.ts +0 -11
  48. package/lib/legacy/enums/src/goal-type.d.ts +0 -22
  49. package/lib/legacy/enums/src/integration-provider.d.ts +0 -27
  50. package/lib/legacy/enums/src/log-level.d.ts +0 -14
  51. package/lib/legacy/enums/src/log-method.d.ts +0 -14
  52. package/lib/legacy/enums/src/project-type.d.ts +0 -10
  53. package/lib/legacy/enums/src/rule-error.d.ts +0 -10
  54. package/lib/legacy/enums/src/segments/browser-type.d.ts +0 -17
  55. package/lib/legacy/enums/src/segments/device-type.d.ts +0 -16
  56. package/lib/legacy/enums/src/segments/segments-keys.d.ts +0 -15
  57. package/lib/legacy/enums/src/segments/source-type.d.ts +0 -12
  58. package/lib/legacy/enums/src/segments/visitor-type.d.ts +0 -10
  59. package/lib/legacy/enums/src/system-events.d.ts +0 -22
  60. package/lib/legacy/enums/src/variable-types.d.ts +0 -7
  61. package/lib/legacy/enums/src/variation-change-type.d.ts +0 -14
  62. package/lib/legacy/logger/index.d.ts +0 -8
  63. package/lib/legacy/logger/src/interfaces/log-client.d.ts +0 -13
  64. package/lib/legacy/logger/src/interfaces/log-manager.d.ts +0 -18
  65. package/lib/legacy/logger/src/interfaces/log-method-map.d.ts +0 -15
  66. package/lib/legacy/logger/src/log-manager.d.ts +0 -64
  67. package/lib/legacy/rules/index.d.ts +0 -8
  68. package/lib/legacy/rules/src/interfaces/rule-manager.d.ts +0 -14
  69. package/lib/legacy/types/index.d.ts +0 -36
  70. package/lib/legacy/types/src/Audience.d.ts +0 -16
  71. package/lib/legacy/types/src/BucketedFeature.d.ts +0 -30
  72. package/lib/legacy/types/src/BucketedVariation.d.ts +0 -13
  73. package/lib/legacy/types/src/BucketingAttributes.d.ts +0 -13
  74. package/lib/legacy/types/src/Config.d.ts +0 -62
  75. package/lib/legacy/types/src/ConversionAttributes.d.ts +0 -11
  76. package/lib/legacy/types/src/Entity.d.ts +0 -13
  77. package/lib/legacy/types/src/Experience.d.ts +0 -37
  78. package/lib/legacy/types/src/Feature.d.ts +0 -18
  79. package/lib/legacy/types/src/Goal.d.ts +0 -30
  80. package/lib/legacy/types/src/Id.d.ts +0 -10
  81. package/lib/legacy/types/src/IndentityField.d.ts +0 -7
  82. package/lib/legacy/types/src/Integration.d.ts +0 -16
  83. package/lib/legacy/types/src/Location.d.ts +0 -14
  84. package/lib/legacy/types/src/Path.d.ts +0 -10
  85. package/lib/legacy/types/src/Project.d.ts +0 -37
  86. package/lib/legacy/types/src/RequireAtLeastOne.d.ts +0 -3
  87. package/lib/legacy/types/src/Rule.d.ts +0 -24
  88. package/lib/legacy/types/src/Segments.d.ts +0 -14
  89. package/lib/legacy/types/src/SegmentsAttributes.d.ts +0 -9
  90. package/lib/legacy/types/src/SegmentsData.d.ts +0 -16
  91. package/lib/legacy/types/src/StoreData.d.ts +0 -14
  92. package/lib/legacy/types/src/TrackingEvent.d.ts +0 -14
  93. package/lib/legacy/types/src/VariableType.d.ts +0 -8
  94. package/lib/legacy/types/src/Variation.d.ts +0 -49
  95. package/lib/legacy/types/src/VisitorsQueue.d.ts +0 -16
  96. package/lib/legacy/types/src/tracking/BucketingEvent.d.ts +0 -11
  97. package/lib/legacy/types/src/tracking/ConversionEvent.d.ts +0 -16
  98. package/lib/legacy/types/src/tracking/Visitor.d.ts +0 -14
  99. package/lib/legacy/types/src/tracking/VisitorEvent.d.ts +0 -13
  100. package/lib/legacy/utils/index.d.ts +0 -14
  101. package/lib/legacy/utils/src/array-utils.d.ts +0 -11
  102. package/lib/legacy/utils/src/comparisons.d.ts +0 -22
  103. package/lib/legacy/utils/src/data-store.d.ts +0 -39
  104. package/lib/legacy/utils/src/file-logger.d.ts +0 -40
  105. package/lib/legacy/utils/src/http-client.d.ts +0 -102
  106. package/lib/legacy/utils/src/object-utils.d.ts +0 -28
  107. package/lib/legacy/utils/src/string-utils.d.ts +0 -20
  108. package/lib/legacy/utils/src/types-utils.d.ts +0 -12
  109. package/lib/logger/index.d.ts +0 -8
  110. package/lib/logger/src/interfaces/log-client.d.ts +0 -13
  111. package/lib/logger/src/interfaces/log-manager.d.ts +0 -18
  112. package/lib/logger/src/interfaces/log-method-map.d.ts +0 -15
  113. package/lib/logger/src/log-manager.d.ts +0 -64
  114. package/lib/rules/index.d.ts +0 -8
  115. package/lib/rules/src/interfaces/rule-manager.d.ts +0 -14
  116. package/lib/rules/src/rule-manager.d.ts +0 -75
  117. package/lib/types/index.d.ts +0 -36
  118. package/lib/types/src/Audience.d.ts +0 -16
  119. package/lib/types/src/BucketedFeature.d.ts +0 -30
  120. package/lib/types/src/BucketedVariation.d.ts +0 -13
  121. package/lib/types/src/BucketingAttributes.d.ts +0 -13
  122. package/lib/types/src/Config.d.ts +0 -62
  123. package/lib/types/src/ConversionAttributes.d.ts +0 -11
  124. package/lib/types/src/Entity.d.ts +0 -13
  125. package/lib/types/src/Experience.d.ts +0 -37
  126. package/lib/types/src/Feature.d.ts +0 -18
  127. package/lib/types/src/Goal.d.ts +0 -30
  128. package/lib/types/src/Id.d.ts +0 -10
  129. package/lib/types/src/IndentityField.d.ts +0 -7
  130. package/lib/types/src/Integration.d.ts +0 -16
  131. package/lib/types/src/Location.d.ts +0 -14
  132. package/lib/types/src/Path.d.ts +0 -10
  133. package/lib/types/src/Project.d.ts +0 -37
  134. package/lib/types/src/RequireAtLeastOne.d.ts +0 -3
  135. package/lib/types/src/Rule.d.ts +0 -24
  136. package/lib/types/src/Segments.d.ts +0 -14
  137. package/lib/types/src/SegmentsAttributes.d.ts +0 -9
  138. package/lib/types/src/SegmentsData.d.ts +0 -16
  139. package/lib/types/src/StoreData.d.ts +0 -14
  140. package/lib/types/src/TrackingEvent.d.ts +0 -14
  141. package/lib/types/src/VariableType.d.ts +0 -8
  142. package/lib/types/src/Variation.d.ts +0 -49
  143. package/lib/types/src/VisitorsQueue.d.ts +0 -16
  144. package/lib/types/src/tracking/BucketingEvent.d.ts +0 -11
  145. package/lib/types/src/tracking/ConversionEvent.d.ts +0 -16
  146. package/lib/types/src/tracking/Visitor.d.ts +0 -14
  147. package/lib/types/src/tracking/VisitorEvent.d.ts +0 -13
  148. package/lib/utils/index.d.ts +0 -14
  149. package/lib/utils/src/array-utils.d.ts +0 -11
  150. package/lib/utils/src/comparisons.d.ts +0 -22
  151. package/lib/utils/src/data-store.d.ts +0 -39
  152. package/lib/utils/src/file-logger.d.ts +0 -40
  153. package/lib/utils/src/http-client.d.ts +0 -102
  154. package/lib/utils/src/object-utils.d.ts +0 -28
  155. package/lib/utils/src/string-utils.d.ts +0 -20
  156. package/lib/utils/src/types-utils.d.ts +0 -12
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # Convert Insights, Inc JavaScript SDK - Rules Manager
2
+
3
+ [![license](https://img.shields.io/badge/license-Apache--2.0-green)](https://choosealicense.com/licenses/apache-2.0/)
4
+
5
+ ## About
6
+
7
+ This repository contains the **Rules Manager** dependency for **JavaScript SDK** needed to integrate Convert.com's **Fullstack Product (feature tests, feature flags, feature rollouts)** inside third-party apps. This is maintained by the Convert.com team.
8
+
9
+ ## Credits
10
+
11
+ Copyright(c) 2023 Convert Insights, Inc.
@@ -1,18 +1,33 @@
1
- import { RuleManagerInterface } from './interfaces/rule-manager';
2
- import { Config, Rule, RuleSet } from '@convertcom/js-sdk-types';
3
- import { LogManagerInterface } from '@convertcom/js-sdk-logger';
1
+ import { RuleSet, Rule, Config } from '@convertcom/js-sdk-types';
4
2
  import { RuleError } from '@convertcom/js-sdk-enums';
3
+ import { LogManagerInterface } from '@convertcom/js-sdk-logger';
4
+
5
+ /*!
6
+ * Convert JS SDK
7
+ * Version 1.0.0
8
+ * Copyright(c) 2020 Convert Insights, Inc
9
+ * License Apache-2.0
10
+ */
11
+
12
+ interface RuleManagerInterface {
13
+ comparisonProcessor: Record<string, any>;
14
+ getComparisonProcessorMethods(): Array<string>;
15
+ isRuleMatched(data: Record<string, any>, ruleSet: RuleSet, logEntry?: string): boolean | RuleError;
16
+ isValidRule(rule: Rule): boolean;
17
+ }
18
+
5
19
  /**
6
20
  * Provides rule processing calculations with corresponding comparisons methods
7
21
  * @category Modules
8
22
  * @constructor
9
23
  * @implements {RuleManagerInterface}
10
24
  */
11
- export declare class RuleManager implements RuleManagerInterface {
25
+ declare class RuleManager implements RuleManagerInterface {
12
26
  private _comparisonProcessor;
13
27
  private readonly _negation;
14
28
  private readonly _keys_case_sensitive;
15
29
  private _loggerManager;
30
+ private _mapper;
16
31
  /**
17
32
  * @param {Config=} config
18
33
  * @param {Object=} dependencies
@@ -73,3 +88,5 @@ export declare class RuleManager implements RuleManagerInterface {
73
88
  */
74
89
  private _processRuleItem;
75
90
  }
91
+
92
+ export { RuleManager, type RuleManagerInterface };
package/lib/index.js CHANGED
@@ -32,6 +32,7 @@ class RuleManager {
32
32
  this._comparisonProcessor = jsSdkUtils.objectDeepValue(config, 'rules.comparisonProcessor', jsSdkUtils.Comparisons);
33
33
  this._negation = String(jsSdkUtils.objectDeepValue(config, 'rules.negation', DEFAULT_NEGATION)).valueOf();
34
34
  this._keys_case_sensitive = jsSdkUtils.objectDeepValue(config, 'rules.keys_case_sensitive', DEFAULT_KEYS_CASE_SENSITIVE, true);
35
+ this._mapper = (config === null || config === void 0 ? void 0 : config.mapper) || ((value) => value);
35
36
  (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager()', jsSdkEnums.MESSAGES.RULE_CONSTRUCTOR, this);
36
37
  }
37
38
  /**
@@ -62,10 +63,10 @@ class RuleManager {
62
63
  */
63
64
  isRuleMatched(data, ruleSet, logEntry) {
64
65
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
65
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', {
66
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', this._mapper({
66
67
  data: data,
67
68
  ruleSet: ruleSet
68
- });
69
+ }));
69
70
  if (logEntry) {
70
71
  (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.info) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager.isRuleMatched()', jsSdkEnums.MESSAGES.PROCESSING_ENTITY.replace('#', logEntry));
71
72
  }
@@ -100,9 +101,9 @@ class RuleManager {
100
101
  */
101
102
  isValidRule(rule) {
102
103
  var _a, _b;
103
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', {
104
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', this._mapper({
104
105
  rule: rule
105
- });
106
+ }));
106
107
  return (Object.prototype.hasOwnProperty.call(rule, 'matching') &&
107
108
  typeof rule.matching === 'object' &&
108
109
  Object.prototype.hasOwnProperty.call(rule.matching, 'match_type') &&
@@ -173,13 +174,13 @@ class RuleManager {
173
174
  * @private
174
175
  */
175
176
  _processRuleItem(data, rule) {
176
- var _a, _b, _c, _d, _e, _f, _g, _h;
177
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
177
178
  if (this.isValidRule(rule)) {
178
179
  try {
179
180
  const negation = rule.matching.negated || false;
180
181
  const matching = rule.matching.match_type;
181
182
  if (this.getComparisonProcessorMethods().indexOf(matching) !== -1) {
182
- if (typeof data === 'object') {
183
+ if (data && typeof data === 'object' && (data === null || data === void 0 ? void 0 : data.constructor)) {
183
184
  // Validate data key-value set.
184
185
  if (data.constructor === Object) {
185
186
  // Rule object has to have `key` field
@@ -200,7 +201,8 @@ class RuleManager {
200
201
  if (method === 'constructor')
201
202
  continue;
202
203
  const rule_method = jsSdkUtils.camelCase(`get ${rule.rule_type.replace(/_/g, ' ')}`);
203
- if (method === rule_method) {
204
+ if (method === rule_method ||
205
+ ((_c = data === null || data === void 0 ? void 0 : data.mapper) === null || _c === void 0 ? void 0 : _c.call(data, method)) === rule_method) {
204
206
  const dataValue = data[method](rule);
205
207
  if (Object.values(jsSdkEnums.RuleError).includes(dataValue))
206
208
  return dataValue;
@@ -210,22 +212,33 @@ class RuleManager {
210
212
  }
211
213
  }
212
214
  }
215
+ else {
216
+ (_e = (_d = this._loggerManager) === null || _d === void 0 ? void 0 : _d.trace) === null || _e === void 0 ? void 0 : _e.call(_d, 'RuleManager._processRuleItem()', {
217
+ warn: jsSdkEnums.ERROR_MESSAGES.RULE_DATA_NOT_VALID,
218
+ data
219
+ });
220
+ }
213
221
  }
214
222
  else {
215
- (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.warn) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager._processRuleItem()', {
216
- warn: jsSdkEnums.ERROR_MESSAGES.RULE_DATA_NOT_VALID
223
+ (_g = (_f = this._loggerManager) === null || _f === void 0 ? void 0 : _f.trace) === null || _g === void 0 ? void 0 : _g.call(_f, 'RuleManager._processRuleItem()', {
224
+ warn: jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID,
225
+ data,
226
+ rule
217
227
  });
218
228
  }
219
229
  }
230
+ else {
231
+ (_j = (_h = this._loggerManager) === null || _h === void 0 ? void 0 : _h.warn) === null || _j === void 0 ? void 0 : _j.call(_h, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_MATCH_TYPE_NOT_SUPPORTED.replace('#', matching));
232
+ }
220
233
  }
221
234
  catch (error) {
222
- (_f = (_e = this._loggerManager) === null || _e === void 0 ? void 0 : _e.error) === null || _f === void 0 ? void 0 : _f.call(_e, 'RuleManager._processRuleItem()', {
235
+ (_l = (_k = this._loggerManager) === null || _k === void 0 ? void 0 : _k.error) === null || _l === void 0 ? void 0 : _l.call(_k, 'RuleManager._processRuleItem()', {
223
236
  error: error.message
224
237
  });
225
238
  }
226
239
  }
227
240
  else {
228
- (_h = (_g = this._loggerManager) === null || _g === void 0 ? void 0 : _g.warn) === null || _h === void 0 ? void 0 : _h.call(_g, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
241
+ (_o = (_m = this._loggerManager) === null || _m === void 0 ? void 0 : _m.warn) === null || _o === void 0 ? void 0 : _o.call(_m, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
229
242
  }
230
243
  return false;
231
244
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/index.min.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * Copyright(c) 2020-2022 Convert Insights, Inc
5
5
  * License Apache-2.0
6
6
  */
7
- "use strict";var e=require("@convertcom/js-sdk-utils"),r=require("@convertcom/js-sdk-enums");exports.RuleManager=class{constructor(o,{loggerManager:l}={}){var t,s;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=e.objectDeepValue(o,"rules.comparisonProcessor",e.Comparisons),this._negation=String(e.objectDeepValue(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=e.objectDeepValue(o,"rules.keys_case_sensitive",true,!0),null===(s=null===(t=this._loggerManager)||void 0===t?void 0:t.trace)||void 0===s||s.call(t,"RuleManager()",r.MESSAGES.RULE_CONSTRUCTOR,this)}set comparisonProcessor(e){this._comparisonProcessor=e}get comparisonProcessor(){return this._comparisonProcessor}getComparisonProcessorMethods(){return Object.getOwnPropertyNames(this._comparisonProcessor).filter((e=>"function"==typeof this._comparisonProcessor[e]))}isRuleMatched(o,l,t){var s,a,i,n,c,u,_,g,R,p;let d;if(null===(a=null===(s=this._loggerManager)||void 0===s?void 0:s.trace)||void 0===a||a.call(s,"RuleManager.isRuleMatched()",{data:o,ruleSet:l}),t&&(null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===n||n.call(i,"RuleManager.isRuleMatched()",r.MESSAGES.PROCESSING_ENTITY.replace("#",t))),Object.prototype.hasOwnProperty.call(l,"OR")&&e.arrayNotEmpty(null==l?void 0:l.OR)){for(let e=0,s=l.OR.length;e<s;e++)if(d=this._processAND(o,l.OR[e]),Object.values(r.RuleError).includes(d)?null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",t||"",r.ERROR_MESSAGES.RULE_ERROR):null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.info)||void 0===g||g.call(_,"RuleManager.isRuleMatched()",t||"",!1===d?r.MESSAGES.RULE_NOT_MATCH:r.MESSAGES.RULE_MATCH.replace("#",String(e))),!1!==d)return d}else null===(p=null===(R=this._loggerManager)||void 0===R?void 0:R.warn)||void 0===p||p.call(R,"RuleManager.isRuleMatched()",t||"",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}isValidRule(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",{rule:e}),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")}_processAND(o,l){var t,s,a,i;let n;if(Object.prototype.hasOwnProperty.call(l,"AND")&&e.arrayNotEmpty(null==l?void 0:l.AND)){for(let e=0,r=l.AND.length;e<r;e++)if(n=this._processORWHEN(o,l.AND[e]),!1===n)return!1;return!1!==n&&(null===(s=null===(t=this._loggerManager)||void 0===t?void 0:t.info)||void 0===s||s.call(t,"RuleManager._processAND()",r.MESSAGES.RULE_MATCH_AND)),n}return null===(i=null===(a=this._loggerManager)||void 0===a?void 0:a.warn)||void 0===i||i.call(a,"RuleManager._processAND()",r.ERROR_MESSAGES.RULE_NOT_VALID),!1}_processORWHEN(o,l){var t,s;let a;if(Object.prototype.hasOwnProperty.call(l,"OR_WHEN")&&e.arrayNotEmpty(null==l?void 0:l.OR_WHEN)){for(let e=0,r=l.OR_WHEN.length;e<r;e++)if(a=this._processRuleItem(o,l.OR_WHEN[e]),!1!==a)return a}else null===(s=null===(t=this._loggerManager)||void 0===t?void 0:t.warn)||void 0===s||s.call(t,"RuleManager._processORWHEN()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}_processRuleItem(o,l){var t,s,a,i,n,c,u,_;if(this.isValidRule(l))try{const n=l.matching.negated||!1,c=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(c))if("object"==typeof o){if(o.constructor===Object)for(const e of Object.keys(o)){const r=this._keys_case_sensitive?e:e.toLowerCase();if(r===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[c](o[e],l.value,n)}else if(null==l?void 0:l.rule_type){null===(s=null===(t=this._loggerManager)||void 0===t?void 0:t.info)||void 0===s||s.call(t,"RuleManager._processRuleItem()",r.MESSAGES.RULE_MATCH_START.replace("#",l.rule_type));for(const t of Object.getOwnPropertyNames(o.constructor.prototype)){if("constructor"===t)continue;if(t===e.camelCase(`get ${l.rule_type.replace(/_/g," ")}`)){const e=o[t](l);return Object.values(r.RuleError).includes(e)||"js_condition"===l.rule_type?e:this._comparisonProcessor[c](e,l.value,n)}}}}else null===(i=null===(a=this._loggerManager)||void 0===a?void 0:a.warn)||void 0===i||i.call(a,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_DATA_NOT_VALID})}catch(e){null===(c=null===(n=this._loggerManager)||void 0===n?void 0:n.error)||void 0===c||c.call(n,"RuleManager._processRuleItem()",{error:e.message})}else null===(_=null===(u=this._loggerManager)||void 0===u?void 0:u.warn)||void 0===_||_.call(u,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}};
7
+ "use strict";var e=require("@convertcom/js-sdk-utils"),r=require("@convertcom/js-sdk-enums");exports.RuleManager=class{constructor(o,{loggerManager:l}={}){var t,a;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=e.objectDeepValue(o,"rules.comparisonProcessor",e.Comparisons),this._negation=String(e.objectDeepValue(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=e.objectDeepValue(o,"rules.keys_case_sensitive",true,!0),this._mapper=(null==o?void 0:o.mapper)||(e=>e),null===(a=null===(t=this._loggerManager)||void 0===t?void 0:t.trace)||void 0===a||a.call(t,"RuleManager()",r.MESSAGES.RULE_CONSTRUCTOR,this)}set comparisonProcessor(e){this._comparisonProcessor=e}get comparisonProcessor(){return this._comparisonProcessor}getComparisonProcessorMethods(){return Object.getOwnPropertyNames(this._comparisonProcessor).filter((e=>"function"==typeof this._comparisonProcessor[e]))}isRuleMatched(o,l,t){var a,s,i,n,c,u,_,g,R,p;let d;if(null===(s=null===(a=this._loggerManager)||void 0===a?void 0:a.trace)||void 0===s||s.call(a,"RuleManager.isRuleMatched()",this._mapper({data:o,ruleSet:l})),t&&(null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===n||n.call(i,"RuleManager.isRuleMatched()",r.MESSAGES.PROCESSING_ENTITY.replace("#",t))),Object.prototype.hasOwnProperty.call(l,"OR")&&e.arrayNotEmpty(null==l?void 0:l.OR)){for(let e=0,a=l.OR.length;e<a;e++)if(d=this._processAND(o,l.OR[e]),Object.values(r.RuleError).includes(d)?null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",t||"",r.ERROR_MESSAGES.RULE_ERROR):null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.info)||void 0===g||g.call(_,"RuleManager.isRuleMatched()",t||"",!1===d?r.MESSAGES.RULE_NOT_MATCH:r.MESSAGES.RULE_MATCH.replace("#",String(e))),!1!==d)return d}else null===(p=null===(R=this._loggerManager)||void 0===R?void 0:R.warn)||void 0===p||p.call(R,"RuleManager.isRuleMatched()",t||"",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}isValidRule(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",this._mapper({rule:e})),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")}_processAND(o,l){var t,a,s,i;let n;if(Object.prototype.hasOwnProperty.call(l,"AND")&&e.arrayNotEmpty(null==l?void 0:l.AND)){for(let e=0,r=l.AND.length;e<r;e++)if(n=this._processORWHEN(o,l.AND[e]),!1===n)return!1;return!1!==n&&(null===(a=null===(t=this._loggerManager)||void 0===t?void 0:t.info)||void 0===a||a.call(t,"RuleManager._processAND()",r.MESSAGES.RULE_MATCH_AND)),n}return null===(i=null===(s=this._loggerManager)||void 0===s?void 0:s.warn)||void 0===i||i.call(s,"RuleManager._processAND()",r.ERROR_MESSAGES.RULE_NOT_VALID),!1}_processORWHEN(o,l){var t,a;let s;if(Object.prototype.hasOwnProperty.call(l,"OR_WHEN")&&e.arrayNotEmpty(null==l?void 0:l.OR_WHEN)){for(let e=0,r=l.OR_WHEN.length;e<r;e++)if(s=this._processRuleItem(o,l.OR_WHEN[e]),!1!==s)return s}else null===(a=null===(t=this._loggerManager)||void 0===t?void 0:t.warn)||void 0===a||a.call(t,"RuleManager._processORWHEN()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}_processRuleItem(o,l){var t,a,s,i,n,c,u,_,g,R,p,d,v;if(this.isValidRule(l))try{const R=l.matching.negated||!1,p=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(p))if(o&&"object"==typeof o&&(null==o?void 0:o.constructor))if(o.constructor===Object)for(const e of Object.keys(o)){const r=this._keys_case_sensitive?e:e.toLowerCase();if(r===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[p](o[e],l.value,R)}else if(null==l?void 0:l.rule_type){null===(a=null===(t=this._loggerManager)||void 0===t?void 0:t.info)||void 0===a||a.call(t,"RuleManager._processRuleItem()",r.MESSAGES.RULE_MATCH_START.replace("#",l.rule_type));for(const t of Object.getOwnPropertyNames(o.constructor.prototype)){if("constructor"===t)continue;const a=e.camelCase(`get ${l.rule_type.replace(/_/g," ")}`);if(t===a||(null===(s=null==o?void 0:o.mapper)||void 0===s?void 0:s.call(o,t))===a){const e=o[t](l);return Object.values(r.RuleError).includes(e)||"js_condition"===l.rule_type?e:this._comparisonProcessor[p](e,l.value,R)}}}else null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_DATA_NOT_VALID,data:o});else null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.trace)||void 0===u||u.call(c,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_NOT_VALID,data:o,rule:l});else null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.warn)||void 0===g||g.call(_,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_MATCH_TYPE_NOT_SUPPORTED.replace("#",p))}catch(e){null===(p=null===(R=this._loggerManager)||void 0===R?void 0:R.error)||void 0===p||p.call(R,"RuleManager._processRuleItem()",{error:e.message})}else null===(v=null===(d=this._loggerManager)||void 0===d?void 0:d.warn)||void 0===v||v.call(d,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1}};
8
8
  //# sourceMappingURL=index.min.js.map
package/lib/index.min.mjs CHANGED
@@ -4,5 +4,5 @@
4
4
  * Copyright(c) 2020-2022 Convert Insights, Inc
5
5
  * License Apache-2.0
6
6
  */
7
- import{Comparisons as e,objectDeepValue as r,arrayNotEmpty as o,camelCase as l}from"@convertcom/js-sdk-utils";import{MESSAGES as t,RuleError as s,ERROR_MESSAGES as a}from"@convertcom/js-sdk-enums";class i{constructor(o,{loggerManager:l}={}){var s,a;this._comparisonProcessor=e,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=r(o,"rules.comparisonProcessor",e),this._negation=String(r(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=r(o,"rules.keys_case_sensitive",true,!0),null===(a=null===(s=this._loggerManager)||void 0===s?void 0:s.trace)||void 0===a||a.call(s,"RuleManager()",t.RULE_CONSTRUCTOR,this)}set comparisonProcessor(e){this._comparisonProcessor=e}get comparisonProcessor(){return this._comparisonProcessor}getComparisonProcessorMethods(){return Object.getOwnPropertyNames(this._comparisonProcessor).filter((e=>"function"==typeof this._comparisonProcessor[e]))}isRuleMatched(e,r,l){var i,n,c,u,g,_,p,d,h,v;let R;if(null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"RuleManager.isRuleMatched()",{data:e,ruleSet:r}),l&&(null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",t.PROCESSING_ENTITY.replace("#",l))),Object.prototype.hasOwnProperty.call(r,"OR")&&o(null==r?void 0:r.OR)){for(let o=0,i=r.OR.length;o<i;o++)if(R=this._processAND(e,r.OR[o]),Object.values(s).includes(R)?null===(_=null===(g=this._loggerManager)||void 0===g?void 0:g.info)||void 0===_||_.call(g,"RuleManager.isRuleMatched()",l||"",a.RULE_ERROR):null===(d=null===(p=this._loggerManager)||void 0===p?void 0:p.info)||void 0===d||d.call(p,"RuleManager.isRuleMatched()",l||"",!1===R?t.RULE_NOT_MATCH:t.RULE_MATCH.replace("#",String(o))),!1!==R)return R}else null===(v=null===(h=this._loggerManager)||void 0===h?void 0:h.warn)||void 0===v||v.call(h,"RuleManager.isRuleMatched()",l||"",a.RULE_NOT_VALID);return!1}isValidRule(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",{rule:e}),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")}_processAND(e,r){var l,s,i,n;let c;if(Object.prototype.hasOwnProperty.call(r,"AND")&&o(null==r?void 0:r.AND)){for(let o=0,l=r.AND.length;o<l;o++)if(c=this._processORWHEN(e,r.AND[o]),!1===c)return!1;return!1!==c&&(null===(s=null===(l=this._loggerManager)||void 0===l?void 0:l.info)||void 0===s||s.call(l,"RuleManager._processAND()",t.RULE_MATCH_AND)),c}return null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.warn)||void 0===n||n.call(i,"RuleManager._processAND()",a.RULE_NOT_VALID),!1}_processORWHEN(e,r){var l,t;let s;if(Object.prototype.hasOwnProperty.call(r,"OR_WHEN")&&o(null==r?void 0:r.OR_WHEN)){for(let o=0,l=r.OR_WHEN.length;o<l;o++)if(s=this._processRuleItem(e,r.OR_WHEN[o]),!1!==s)return s}else null===(t=null===(l=this._loggerManager)||void 0===l?void 0:l.warn)||void 0===t||t.call(l,"RuleManager._processORWHEN()",a.RULE_NOT_VALID);return!1}_processRuleItem(e,r){var o,i,n,c,u,g,_,p;if(this.isValidRule(r))try{const u=r.matching.negated||!1,g=r.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(g))if("object"==typeof e){if(e.constructor===Object)for(const o of Object.keys(e)){const l=this._keys_case_sensitive?o:o.toLowerCase();if(l===(this._keys_case_sensitive?r.key:r.key.toLowerCase()))return this._comparisonProcessor[g](e[o],r.value,u)}else if(null==r?void 0:r.rule_type){null===(i=null===(o=this._loggerManager)||void 0===o?void 0:o.info)||void 0===i||i.call(o,"RuleManager._processRuleItem()",t.RULE_MATCH_START.replace("#",r.rule_type));for(const o of Object.getOwnPropertyNames(e.constructor.prototype)){if("constructor"===o)continue;if(o===l(`get ${r.rule_type.replace(/_/g," ")}`)){const l=e[o](r);return Object.values(s).includes(l)||"js_condition"===r.rule_type?l:this._comparisonProcessor[g](l,r.value,u)}}}}else null===(c=null===(n=this._loggerManager)||void 0===n?void 0:n.warn)||void 0===c||c.call(n,"RuleManager._processRuleItem()",{warn:a.RULE_DATA_NOT_VALID})}catch(e){null===(g=null===(u=this._loggerManager)||void 0===u?void 0:u.error)||void 0===g||g.call(u,"RuleManager._processRuleItem()",{error:e.message})}else null===(p=null===(_=this._loggerManager)||void 0===_?void 0:_.warn)||void 0===p||p.call(_,"RuleManager._processRuleItem()",a.RULE_NOT_VALID);return!1}}export{i as RuleManager};
7
+ import{Comparisons as e,objectDeepValue as r,arrayNotEmpty as o,camelCase as l}from"@convertcom/js-sdk-utils";import{MESSAGES as t,RuleError as a,ERROR_MESSAGES as s}from"@convertcom/js-sdk-enums";class i{constructor(o,{loggerManager:l}={}){var a,s;this._comparisonProcessor=e,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=r(o,"rules.comparisonProcessor",e),this._negation=String(r(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=r(o,"rules.keys_case_sensitive",true,!0),this._mapper=(null==o?void 0:o.mapper)||(e=>e),null===(s=null===(a=this._loggerManager)||void 0===a?void 0:a.trace)||void 0===s||s.call(a,"RuleManager()",t.RULE_CONSTRUCTOR,this)}set comparisonProcessor(e){this._comparisonProcessor=e}get comparisonProcessor(){return this._comparisonProcessor}getComparisonProcessorMethods(){return Object.getOwnPropertyNames(this._comparisonProcessor).filter((e=>"function"==typeof this._comparisonProcessor[e]))}isRuleMatched(e,r,l){var i,n,c,u,_,g,p,d,v,h;let R;if(null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"RuleManager.isRuleMatched()",this._mapper({data:e,ruleSet:r})),l&&(null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",t.PROCESSING_ENTITY.replace("#",l))),Object.prototype.hasOwnProperty.call(r,"OR")&&o(null==r?void 0:r.OR)){for(let o=0,i=r.OR.length;o<i;o++)if(R=this._processAND(e,r.OR[o]),Object.values(a).includes(R)?null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.info)||void 0===g||g.call(_,"RuleManager.isRuleMatched()",l||"",s.RULE_ERROR):null===(d=null===(p=this._loggerManager)||void 0===p?void 0:p.info)||void 0===d||d.call(p,"RuleManager.isRuleMatched()",l||"",!1===R?t.RULE_NOT_MATCH:t.RULE_MATCH.replace("#",String(o))),!1!==R)return R}else null===(h=null===(v=this._loggerManager)||void 0===v?void 0:v.warn)||void 0===h||h.call(v,"RuleManager.isRuleMatched()",l||"",s.RULE_NOT_VALID);return!1}isValidRule(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",this._mapper({rule:e})),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")}_processAND(e,r){var l,a,i,n;let c;if(Object.prototype.hasOwnProperty.call(r,"AND")&&o(null==r?void 0:r.AND)){for(let o=0,l=r.AND.length;o<l;o++)if(c=this._processORWHEN(e,r.AND[o]),!1===c)return!1;return!1!==c&&(null===(a=null===(l=this._loggerManager)||void 0===l?void 0:l.info)||void 0===a||a.call(l,"RuleManager._processAND()",t.RULE_MATCH_AND)),c}return null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.warn)||void 0===n||n.call(i,"RuleManager._processAND()",s.RULE_NOT_VALID),!1}_processORWHEN(e,r){var l,t;let a;if(Object.prototype.hasOwnProperty.call(r,"OR_WHEN")&&o(null==r?void 0:r.OR_WHEN)){for(let o=0,l=r.OR_WHEN.length;o<l;o++)if(a=this._processRuleItem(e,r.OR_WHEN[o]),!1!==a)return a}else null===(t=null===(l=this._loggerManager)||void 0===l?void 0:l.warn)||void 0===t||t.call(l,"RuleManager._processORWHEN()",s.RULE_NOT_VALID);return!1}_processRuleItem(e,r){var o,i,n,c,u,_,g,p,d,v,h,R,O;if(this.isValidRule(r))try{const v=r.matching.negated||!1,h=r.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(h))if(e&&"object"==typeof e&&(null==e?void 0:e.constructor))if(e.constructor===Object)for(const o of Object.keys(e)){const l=this._keys_case_sensitive?o:o.toLowerCase();if(l===(this._keys_case_sensitive?r.key:r.key.toLowerCase()))return this._comparisonProcessor[h](e[o],r.value,v)}else if(null==r?void 0:r.rule_type){null===(i=null===(o=this._loggerManager)||void 0===o?void 0:o.info)||void 0===i||i.call(o,"RuleManager._processRuleItem()",t.RULE_MATCH_START.replace("#",r.rule_type));for(const o of Object.getOwnPropertyNames(e.constructor.prototype)){if("constructor"===o)continue;const t=l(`get ${r.rule_type.replace(/_/g," ")}`);if(o===t||(null===(n=null==e?void 0:e.mapper)||void 0===n?void 0:n.call(e,o))===t){const l=e[o](r);return Object.values(a).includes(l)||"js_condition"===r.rule_type?l:this._comparisonProcessor[h](l,r.value,v)}}}else null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.trace)||void 0===u||u.call(c,"RuleManager._processRuleItem()",{warn:s.RULE_DATA_NOT_VALID,data:e});else null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.trace)||void 0===g||g.call(_,"RuleManager._processRuleItem()",{warn:s.RULE_NOT_VALID,data:e,rule:r});else null===(d=null===(p=this._loggerManager)||void 0===p?void 0:p.warn)||void 0===d||d.call(p,"RuleManager._processRuleItem()",s.RULE_MATCH_TYPE_NOT_SUPPORTED.replace("#",h))}catch(e){null===(h=null===(v=this._loggerManager)||void 0===v?void 0:v.error)||void 0===h||h.call(v,"RuleManager._processRuleItem()",{error:e.message})}else null===(O=null===(R=this._loggerManager)||void 0===R?void 0:R.warn)||void 0===O||O.call(R,"RuleManager._processRuleItem()",s.RULE_NOT_VALID);return!1}}export{i as RuleManager};
8
8
  //# sourceMappingURL=index.min.mjs.map
package/lib/index.mjs CHANGED
@@ -30,6 +30,7 @@ class RuleManager {
30
30
  this._comparisonProcessor = objectDeepValue(config, 'rules.comparisonProcessor', Comparisons);
31
31
  this._negation = String(objectDeepValue(config, 'rules.negation', DEFAULT_NEGATION)).valueOf();
32
32
  this._keys_case_sensitive = objectDeepValue(config, 'rules.keys_case_sensitive', DEFAULT_KEYS_CASE_SENSITIVE, true);
33
+ this._mapper = (config === null || config === void 0 ? void 0 : config.mapper) || ((value) => value);
33
34
  (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager()', MESSAGES.RULE_CONSTRUCTOR, this);
34
35
  }
35
36
  /**
@@ -60,10 +61,10 @@ class RuleManager {
60
61
  */
61
62
  isRuleMatched(data, ruleSet, logEntry) {
62
63
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
63
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', {
64
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', this._mapper({
64
65
  data: data,
65
66
  ruleSet: ruleSet
66
- });
67
+ }));
67
68
  if (logEntry) {
68
69
  (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.info) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager.isRuleMatched()', MESSAGES.PROCESSING_ENTITY.replace('#', logEntry));
69
70
  }
@@ -98,9 +99,9 @@ class RuleManager {
98
99
  */
99
100
  isValidRule(rule) {
100
101
  var _a, _b;
101
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', {
102
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', this._mapper({
102
103
  rule: rule
103
- });
104
+ }));
104
105
  return (Object.prototype.hasOwnProperty.call(rule, 'matching') &&
105
106
  typeof rule.matching === 'object' &&
106
107
  Object.prototype.hasOwnProperty.call(rule.matching, 'match_type') &&
@@ -171,13 +172,13 @@ class RuleManager {
171
172
  * @private
172
173
  */
173
174
  _processRuleItem(data, rule) {
174
- var _a, _b, _c, _d, _e, _f, _g, _h;
175
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
175
176
  if (this.isValidRule(rule)) {
176
177
  try {
177
178
  const negation = rule.matching.negated || false;
178
179
  const matching = rule.matching.match_type;
179
180
  if (this.getComparisonProcessorMethods().indexOf(matching) !== -1) {
180
- if (typeof data === 'object') {
181
+ if (data && typeof data === 'object' && (data === null || data === void 0 ? void 0 : data.constructor)) {
181
182
  // Validate data key-value set.
182
183
  if (data.constructor === Object) {
183
184
  // Rule object has to have `key` field
@@ -198,7 +199,8 @@ class RuleManager {
198
199
  if (method === 'constructor')
199
200
  continue;
200
201
  const rule_method = camelCase(`get ${rule.rule_type.replace(/_/g, ' ')}`);
201
- if (method === rule_method) {
202
+ if (method === rule_method ||
203
+ ((_c = data === null || data === void 0 ? void 0 : data.mapper) === null || _c === void 0 ? void 0 : _c.call(data, method)) === rule_method) {
202
204
  const dataValue = data[method](rule);
203
205
  if (Object.values(RuleError).includes(dataValue))
204
206
  return dataValue;
@@ -208,22 +210,33 @@ class RuleManager {
208
210
  }
209
211
  }
210
212
  }
213
+ else {
214
+ (_e = (_d = this._loggerManager) === null || _d === void 0 ? void 0 : _d.trace) === null || _e === void 0 ? void 0 : _e.call(_d, 'RuleManager._processRuleItem()', {
215
+ warn: ERROR_MESSAGES.RULE_DATA_NOT_VALID,
216
+ data
217
+ });
218
+ }
211
219
  }
212
220
  else {
213
- (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.warn) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager._processRuleItem()', {
214
- warn: ERROR_MESSAGES.RULE_DATA_NOT_VALID
221
+ (_g = (_f = this._loggerManager) === null || _f === void 0 ? void 0 : _f.trace) === null || _g === void 0 ? void 0 : _g.call(_f, 'RuleManager._processRuleItem()', {
222
+ warn: ERROR_MESSAGES.RULE_NOT_VALID,
223
+ data,
224
+ rule
215
225
  });
216
226
  }
217
227
  }
228
+ else {
229
+ (_j = (_h = this._loggerManager) === null || _h === void 0 ? void 0 : _h.warn) === null || _j === void 0 ? void 0 : _j.call(_h, 'RuleManager._processRuleItem()', ERROR_MESSAGES.RULE_MATCH_TYPE_NOT_SUPPORTED.replace('#', matching));
230
+ }
218
231
  }
219
232
  catch (error) {
220
- (_f = (_e = this._loggerManager) === null || _e === void 0 ? void 0 : _e.error) === null || _f === void 0 ? void 0 : _f.call(_e, 'RuleManager._processRuleItem()', {
233
+ (_l = (_k = this._loggerManager) === null || _k === void 0 ? void 0 : _k.error) === null || _l === void 0 ? void 0 : _l.call(_k, 'RuleManager._processRuleItem()', {
221
234
  error: error.message
222
235
  });
223
236
  }
224
237
  }
225
238
  else {
226
- (_h = (_g = this._loggerManager) === null || _g === void 0 ? void 0 : _g.warn) === null || _h === void 0 ? void 0 : _h.call(_g, 'RuleManager._processRuleItem()', ERROR_MESSAGES.RULE_NOT_VALID);
239
+ (_o = (_m = this._loggerManager) === null || _m === void 0 ? void 0 : _m.warn) === null || _o === void 0 ? void 0 : _o.call(_m, 'RuleManager._processRuleItem()', ERROR_MESSAGES.RULE_NOT_VALID);
227
240
  }
228
241
  return false;
229
242
  }
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -61,6 +61,7 @@ var RuleManager = /** @class */ (function () {
61
61
  this._comparisonProcessor = jsSdkUtils.objectDeepValue(config, 'rules.comparisonProcessor', jsSdkUtils.Comparisons);
62
62
  this._negation = String(jsSdkUtils.objectDeepValue(config, 'rules.negation', DEFAULT_NEGATION)).valueOf();
63
63
  this._keys_case_sensitive = jsSdkUtils.objectDeepValue(config, 'rules.keys_case_sensitive', DEFAULT_KEYS_CASE_SENSITIVE, true);
64
+ this._mapper = (config === null || config === void 0 ? void 0 : config.mapper) || (function (value) { return value; });
64
65
  (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.trace) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager()', jsSdkEnums.MESSAGES.RULE_CONSTRUCTOR, this);
65
66
  }
66
67
  Object.defineProperty(RuleManager.prototype, "comparisonProcessor", {
@@ -96,10 +97,10 @@ var RuleManager = /** @class */ (function () {
96
97
  */
97
98
  RuleManager.prototype.isRuleMatched = function (data, ruleSet, logEntry) {
98
99
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
99
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', {
100
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isRuleMatched()', this._mapper({
100
101
  data: data,
101
102
  ruleSet: ruleSet
102
- });
103
+ }));
103
104
  if (logEntry) {
104
105
  (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.info) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager.isRuleMatched()', jsSdkEnums.MESSAGES.PROCESSING_ENTITY.replace('#', logEntry));
105
106
  }
@@ -134,9 +135,9 @@ var RuleManager = /** @class */ (function () {
134
135
  */
135
136
  RuleManager.prototype.isValidRule = function (rule) {
136
137
  var _a, _b;
137
- (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', {
138
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.trace) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager.isValidRule()', this._mapper({
138
139
  rule: rule
139
- });
140
+ }));
140
141
  return (Object.prototype.hasOwnProperty.call(rule, 'matching') &&
141
142
  typeof rule.matching === 'object' &&
142
143
  Object.prototype.hasOwnProperty.call(rule.matching, 'match_type') &&
@@ -208,19 +209,19 @@ var RuleManager = /** @class */ (function () {
208
209
  */
209
210
  RuleManager.prototype._processRuleItem = function (data, rule) {
210
211
  var e_1, _a, e_2, _b;
211
- var _c, _d, _e, _f, _g, _h, _j, _k;
212
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
212
213
  if (this.isValidRule(rule)) {
213
214
  try {
214
215
  var negation = rule.matching.negated || false;
215
216
  var matching = rule.matching.match_type;
216
217
  if (this.getComparisonProcessorMethods().indexOf(matching) !== -1) {
217
- if (typeof data === 'object') {
218
+ if (data && typeof data === 'object' && (data === null || data === void 0 ? void 0 : data.constructor)) {
218
219
  // Validate data key-value set.
219
220
  if (data.constructor === Object) {
220
221
  try {
221
222
  // Rule object has to have `key` field
222
- for (var _l = __values(Object.keys(data)), _m = _l.next(); !_m.done; _m = _l.next()) {
223
- var key = _m.value;
223
+ for (var _r = __values(Object.keys(data)), _s = _r.next(); !_s.done; _s = _r.next()) {
224
+ var key = _s.value;
224
225
  var k = this._keys_case_sensitive ? key : key.toLowerCase();
225
226
  var rule_k = this._keys_case_sensitive
226
227
  ? rule.key
@@ -233,7 +234,7 @@ var RuleManager = /** @class */ (function () {
233
234
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
234
235
  finally {
235
236
  try {
236
- if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
237
+ if (_s && !_s.done && (_a = _r.return)) _a.call(_r);
237
238
  }
238
239
  finally { if (e_1) throw e_1.error; }
239
240
  }
@@ -242,12 +243,13 @@ var RuleManager = /** @class */ (function () {
242
243
  // Rule object has to have `rule_type` field
243
244
  (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.info) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager._processRuleItem()', jsSdkEnums.MESSAGES.RULE_MATCH_START.replace('#', rule.rule_type));
244
245
  try {
245
- for (var _o = __values(Object.getOwnPropertyNames(data.constructor.prototype)), _p = _o.next(); !_p.done; _p = _o.next()) {
246
- var method = _p.value;
246
+ for (var _t = __values(Object.getOwnPropertyNames(data.constructor.prototype)), _u = _t.next(); !_u.done; _u = _t.next()) {
247
+ var method = _u.value;
247
248
  if (method === 'constructor')
248
249
  continue;
249
250
  var rule_method = jsSdkUtils.camelCase("get ".concat(rule.rule_type.replace(/_/g, ' ')));
250
- if (method === rule_method) {
251
+ if (method === rule_method ||
252
+ ((_e = data === null || data === void 0 ? void 0 : data.mapper) === null || _e === void 0 ? void 0 : _e.call(data, method)) === rule_method) {
251
253
  var dataValue = data[method](rule);
252
254
  if (Object.values(jsSdkEnums.RuleError).includes(dataValue))
253
255
  return dataValue;
@@ -260,27 +262,38 @@ var RuleManager = /** @class */ (function () {
260
262
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
261
263
  finally {
262
264
  try {
263
- if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
265
+ if (_u && !_u.done && (_b = _t.return)) _b.call(_t);
264
266
  }
265
267
  finally { if (e_2) throw e_2.error; }
266
268
  }
267
269
  }
270
+ else {
271
+ (_g = (_f = this._loggerManager) === null || _f === void 0 ? void 0 : _f.trace) === null || _g === void 0 ? void 0 : _g.call(_f, 'RuleManager._processRuleItem()', {
272
+ warn: jsSdkEnums.ERROR_MESSAGES.RULE_DATA_NOT_VALID,
273
+ data: data
274
+ });
275
+ }
268
276
  }
269
277
  else {
270
- (_f = (_e = this._loggerManager) === null || _e === void 0 ? void 0 : _e.warn) === null || _f === void 0 ? void 0 : _f.call(_e, 'RuleManager._processRuleItem()', {
271
- warn: jsSdkEnums.ERROR_MESSAGES.RULE_DATA_NOT_VALID
278
+ (_j = (_h = this._loggerManager) === null || _h === void 0 ? void 0 : _h.trace) === null || _j === void 0 ? void 0 : _j.call(_h, 'RuleManager._processRuleItem()', {
279
+ warn: jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID,
280
+ data: data,
281
+ rule: rule
272
282
  });
273
283
  }
274
284
  }
285
+ else {
286
+ (_l = (_k = this._loggerManager) === null || _k === void 0 ? void 0 : _k.warn) === null || _l === void 0 ? void 0 : _l.call(_k, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_MATCH_TYPE_NOT_SUPPORTED.replace('#', matching));
287
+ }
275
288
  }
276
289
  catch (error) {
277
- (_h = (_g = this._loggerManager) === null || _g === void 0 ? void 0 : _g.error) === null || _h === void 0 ? void 0 : _h.call(_g, 'RuleManager._processRuleItem()', {
290
+ (_o = (_m = this._loggerManager) === null || _m === void 0 ? void 0 : _m.error) === null || _o === void 0 ? void 0 : _o.call(_m, 'RuleManager._processRuleItem()', {
278
291
  error: error.message
279
292
  });
280
293
  }
281
294
  }
282
295
  else {
283
- (_k = (_j = this._loggerManager) === null || _j === void 0 ? void 0 : _j.warn) === null || _k === void 0 ? void 0 : _k.call(_j, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
296
+ (_q = (_p = this._loggerManager) === null || _p === void 0 ? void 0 : _p.warn) === null || _q === void 0 ? void 0 : _q.call(_p, 'RuleManager._processRuleItem()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
284
297
  }
285
298
  return false;
286
299
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,5 +4,5 @@
4
4
  * Copyright(c) 2020-2022 Convert Insights, Inc
5
5
  * License Apache-2.0
6
6
  */
7
- "use strict";var e=require("@convertcom/js-sdk-utils"),r=require("@convertcom/js-sdk-enums");function o(e){var r="function"==typeof Symbol&&Symbol.iterator,o=r&&e[r],t=0;if(o)return o.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}"function"==typeof SuppressedError&&SuppressedError;var t=function(){function t(o,t){var l,n,a=(void 0===t?{}:t).loggerManager;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=a,this._comparisonProcessor=e.objectDeepValue(o,"rules.comparisonProcessor",e.Comparisons),this._negation=String(e.objectDeepValue(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=e.objectDeepValue(o,"rules.keys_case_sensitive",true,!0),null===(n=null===(l=this._loggerManager)||void 0===l?void 0:l.trace)||void 0===n||n.call(l,"RuleManager()",r.MESSAGES.RULE_CONSTRUCTOR,this)}return Object.defineProperty(t.prototype,"comparisonProcessor",{get:function(){return this._comparisonProcessor},set:function(e){this._comparisonProcessor=e},enumerable:!1,configurable:!0}),t.prototype.getComparisonProcessorMethods=function(){var e=this;return Object.getOwnPropertyNames(this._comparisonProcessor).filter((function(r){return"function"==typeof e._comparisonProcessor[r]}))},t.prototype.isRuleMatched=function(o,t,l){var n,a,i,s,c,u,p,g,_,v,d;if(null===(a=null===(n=this._loggerManager)||void 0===n?void 0:n.trace)||void 0===a||a.call(n,"RuleManager.isRuleMatched()",{data:o,ruleSet:t}),l&&(null===(s=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===s||s.call(i,"RuleManager.isRuleMatched()",r.MESSAGES.PROCESSING_ENTITY.replace("#",l))),Object.prototype.hasOwnProperty.call(t,"OR")&&e.arrayNotEmpty(null==t?void 0:t.OR)){for(var R=0,h=t.OR.length;R<h;R++)if(d=this._processAND(o,t.OR[R]),Object.values(r.RuleError).includes(d)?null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",l||"",r.ERROR_MESSAGES.RULE_ERROR):null===(g=null===(p=this._loggerManager)||void 0===p?void 0:p.info)||void 0===g||g.call(p,"RuleManager.isRuleMatched()",l||"",!1===d?r.MESSAGES.RULE_NOT_MATCH:r.MESSAGES.RULE_MATCH.replace("#",String(R))),!1!==d)return d}else null===(v=null===(_=this._loggerManager)||void 0===_?void 0:_.warn)||void 0===v||v.call(_,"RuleManager.isRuleMatched()",l||"",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t.prototype.isValidRule=function(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",{rule:e}),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")},t.prototype._processAND=function(o,t){var l,n,a,i,s;if(Object.prototype.hasOwnProperty.call(t,"AND")&&e.arrayNotEmpty(null==t?void 0:t.AND)){for(var c=0,u=t.AND.length;c<u;c++)if(!1===(s=this._processORWHEN(o,t.AND[c])))return!1;return!1!==s&&(null===(n=null===(l=this._loggerManager)||void 0===l?void 0:l.info)||void 0===n||n.call(l,"RuleManager._processAND()",r.MESSAGES.RULE_MATCH_AND)),s}return null===(i=null===(a=this._loggerManager)||void 0===a?void 0:a.warn)||void 0===i||i.call(a,"RuleManager._processAND()",r.ERROR_MESSAGES.RULE_NOT_VALID),!1},t.prototype._processORWHEN=function(o,t){var l,n,a;if(Object.prototype.hasOwnProperty.call(t,"OR_WHEN")&&e.arrayNotEmpty(null==t?void 0:t.OR_WHEN)){for(var i=0,s=t.OR_WHEN.length;i<s;i++)if(!1!==(a=this._processRuleItem(o,t.OR_WHEN[i])))return a}else null===(n=null===(l=this._loggerManager)||void 0===l?void 0:l.warn)||void 0===n||n.call(l,"RuleManager._processORWHEN()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t.prototype._processRuleItem=function(t,l){var n,a,i,s,c,u,p,g,_,v,d,R;if(this.isValidRule(l))try{var h=l.matching.negated||!1,y=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(y))if("object"==typeof t){if(t.constructor===Object)try{for(var f=o(Object.keys(t)),E=f.next();!E.done;E=f.next()){var M=E.value;if((this._keys_case_sensitive?M:M.toLowerCase())===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[y](t[M],l.value,h)}}catch(e){n={error:e}}finally{try{E&&!E.done&&(a=f.return)&&a.call(f)}finally{if(n)throw n.error}}else if(null==l?void 0:l.rule_type){null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager._processRuleItem()",r.MESSAGES.RULE_MATCH_START.replace("#",l.rule_type));try{for(var O=o(Object.getOwnPropertyNames(t.constructor.prototype)),S=O.next();!S.done;S=O.next()){var m=S.value;if("constructor"!==m)if(m===e.camelCase("get ".concat(l.rule_type.replace(/_/g," ")))){var A=t[m](l);return Object.values(r.RuleError).includes(A)||"js_condition"===l.rule_type?A:this._comparisonProcessor[y](A,l.value,h)}}}catch(e){i={error:e}}finally{try{S&&!S.done&&(s=O.return)&&s.call(O)}finally{if(i)throw i.error}}}}else null===(g=null===(p=this._loggerManager)||void 0===p?void 0:p.warn)||void 0===g||g.call(p,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_DATA_NOT_VALID})}catch(e){null===(v=null===(_=this._loggerManager)||void 0===_?void 0:_.error)||void 0===v||v.call(_,"RuleManager._processRuleItem()",{error:e.message})}else null===(R=null===(d=this._loggerManager)||void 0===d?void 0:d.warn)||void 0===R||R.call(d,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t}();exports.RuleManager=t;
7
+ "use strict";var e=require("@convertcom/js-sdk-utils"),r=require("@convertcom/js-sdk-enums");function o(e){var r="function"==typeof Symbol&&Symbol.iterator,o=r&&e[r],t=0;if(o)return o.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}"function"==typeof SuppressedError&&SuppressedError;var t=function(){function t(o,t){var l,a,n=(void 0===t?{}:t).loggerManager;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=n,this._comparisonProcessor=e.objectDeepValue(o,"rules.comparisonProcessor",e.Comparisons),this._negation=String(e.objectDeepValue(o,"rules.negation","!")).valueOf(),this._keys_case_sensitive=e.objectDeepValue(o,"rules.keys_case_sensitive",true,!0),this._mapper=(null==o?void 0:o.mapper)||function(e){return e},null===(a=null===(l=this._loggerManager)||void 0===l?void 0:l.trace)||void 0===a||a.call(l,"RuleManager()",r.MESSAGES.RULE_CONSTRUCTOR,this)}return Object.defineProperty(t.prototype,"comparisonProcessor",{get:function(){return this._comparisonProcessor},set:function(e){this._comparisonProcessor=e},enumerable:!1,configurable:!0}),t.prototype.getComparisonProcessorMethods=function(){var e=this;return Object.getOwnPropertyNames(this._comparisonProcessor).filter((function(r){return"function"==typeof e._comparisonProcessor[r]}))},t.prototype.isRuleMatched=function(o,t,l){var a,n,i,s,c,u,p,_,g,v,d;if(null===(n=null===(a=this._loggerManager)||void 0===a?void 0:a.trace)||void 0===n||n.call(a,"RuleManager.isRuleMatched()",this._mapper({data:o,ruleSet:t})),l&&(null===(s=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===s||s.call(i,"RuleManager.isRuleMatched()",r.MESSAGES.PROCESSING_ENTITY.replace("#",l))),Object.prototype.hasOwnProperty.call(t,"OR")&&e.arrayNotEmpty(null==t?void 0:t.OR)){for(var R=0,h=t.OR.length;R<h;R++)if(d=this._processAND(o,t.OR[R]),Object.values(r.RuleError).includes(d)?null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager.isRuleMatched()",l||"",r.ERROR_MESSAGES.RULE_ERROR):null===(_=null===(p=this._loggerManager)||void 0===p?void 0:p.info)||void 0===_||_.call(p,"RuleManager.isRuleMatched()",l||"",!1===d?r.MESSAGES.RULE_NOT_MATCH:r.MESSAGES.RULE_MATCH.replace("#",String(R))),!1!==d)return d}else null===(v=null===(g=this._loggerManager)||void 0===g?void 0:g.warn)||void 0===v||v.call(g,"RuleManager.isRuleMatched()",l||"",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t.prototype.isValidRule=function(e){var r,o;return null===(o=null===(r=this._loggerManager)||void 0===r?void 0:r.trace)||void 0===o||o.call(r,"RuleManager.isValidRule()",this._mapper({rule:e})),Object.prototype.hasOwnProperty.call(e,"matching")&&"object"==typeof e.matching&&Object.prototype.hasOwnProperty.call(e.matching,"match_type")&&"string"==typeof e.matching.match_type&&Object.prototype.hasOwnProperty.call(e.matching,"negated")&&"boolean"==typeof e.matching.negated&&Object.prototype.hasOwnProperty.call(e,"value")},t.prototype._processAND=function(o,t){var l,a,n,i,s;if(Object.prototype.hasOwnProperty.call(t,"AND")&&e.arrayNotEmpty(null==t?void 0:t.AND)){for(var c=0,u=t.AND.length;c<u;c++)if(!1===(s=this._processORWHEN(o,t.AND[c])))return!1;return!1!==s&&(null===(a=null===(l=this._loggerManager)||void 0===l?void 0:l.info)||void 0===a||a.call(l,"RuleManager._processAND()",r.MESSAGES.RULE_MATCH_AND)),s}return null===(i=null===(n=this._loggerManager)||void 0===n?void 0:n.warn)||void 0===i||i.call(n,"RuleManager._processAND()",r.ERROR_MESSAGES.RULE_NOT_VALID),!1},t.prototype._processORWHEN=function(o,t){var l,a,n;if(Object.prototype.hasOwnProperty.call(t,"OR_WHEN")&&e.arrayNotEmpty(null==t?void 0:t.OR_WHEN)){for(var i=0,s=t.OR_WHEN.length;i<s;i++)if(!1!==(n=this._processRuleItem(o,t.OR_WHEN[i])))return n}else null===(a=null===(l=this._loggerManager)||void 0===l?void 0:l.warn)||void 0===a||a.call(l,"RuleManager._processORWHEN()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t.prototype._processRuleItem=function(t,l){var a,n,i,s,c,u,p,_,g,v,d,R,h,E,y,f,M;if(this.isValidRule(l))try{var O=l.matching.negated||!1,S=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(S))if(t&&"object"==typeof t&&(null==t?void 0:t.constructor))if(t.constructor===Object)try{for(var m=o(Object.keys(t)),A=m.next();!A.done;A=m.next()){var N=A.value;if((this._keys_case_sensitive?N:N.toLowerCase())===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[S](t[N],l.value,O)}}catch(e){a={error:e}}finally{try{A&&!A.done&&(n=m.return)&&n.call(m)}finally{if(a)throw a.error}}else if(null==l?void 0:l.rule_type){null===(u=null===(c=this._loggerManager)||void 0===c?void 0:c.info)||void 0===u||u.call(c,"RuleManager._processRuleItem()",r.MESSAGES.RULE_MATCH_START.replace("#",l.rule_type));try{for(var b=o(Object.getOwnPropertyNames(t.constructor.prototype)),P=b.next();!P.done;P=b.next()){var j=P.value;if("constructor"!==j){var T=e.camelCase("get ".concat(l.rule_type.replace(/_/g," ")));if(j===T||(null===(p=null==t?void 0:t.mapper)||void 0===p?void 0:p.call(t,j))===T){var w=t[j](l);return Object.values(r.RuleError).includes(w)||"js_condition"===l.rule_type?w:this._comparisonProcessor[S](w,l.value,O)}}}}catch(e){i={error:e}}finally{try{P&&!P.done&&(s=b.return)&&s.call(b)}finally{if(i)throw i.error}}}else null===(g=null===(_=this._loggerManager)||void 0===_?void 0:_.trace)||void 0===g||g.call(_,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_DATA_NOT_VALID,data:t});else null===(d=null===(v=this._loggerManager)||void 0===v?void 0:v.trace)||void 0===d||d.call(v,"RuleManager._processRuleItem()",{warn:r.ERROR_MESSAGES.RULE_NOT_VALID,data:t,rule:l});else null===(h=null===(R=this._loggerManager)||void 0===R?void 0:R.warn)||void 0===h||h.call(R,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_MATCH_TYPE_NOT_SUPPORTED.replace("#",S))}catch(e){null===(y=null===(E=this._loggerManager)||void 0===E?void 0:E.error)||void 0===y||y.call(E,"RuleManager._processRuleItem()",{error:e.message})}else null===(M=null===(f=this._loggerManager)||void 0===f?void 0:f.warn)||void 0===M||M.call(f,"RuleManager._processRuleItem()",r.ERROR_MESSAGES.RULE_NOT_VALID);return!1},t}();exports.RuleManager=t;
8
8
  //# sourceMappingURL=index.min.js.map
package/lib/package.json CHANGED
@@ -14,5 +14,5 @@
14
14
  "directory": "packages/rules"
15
15
  },
16
16
  "license": "Apache-2.0",
17
- "version": "1.0.0"
17
+ "version": "1.0.1"
18
18
  }
package/package.json CHANGED
@@ -31,12 +31,6 @@
31
31
  "engines": {
32
32
  "node": ">=8.0.0"
33
33
  },
34
- "peerDependencies": {
35
- "@convertcom/js-sdk-enums": "workspace:^",
36
- "@convertcom/js-sdk-logger": "workspace:^",
37
- "@convertcom/js-sdk-types": "workspace:^",
38
- "@convertcom/js-sdk-utils": "workspace:^"
39
- },
40
34
  "devDependencies": {
41
35
  "@babel/core": "^7.23.2",
42
36
  "@babel/preset-env": "^7.23.2",
@@ -66,6 +60,7 @@
66
60
  "prettier": "^3.0.3",
67
61
  "require": "^2.4.20",
68
62
  "rollup": "^3.20.2",
63
+ "rollup-plugin-dts": "^6.1.0",
69
64
  "rollup-plugin-generate-package-json": "^3.2.0",
70
65
  "rollup-plugin-modify": "^3.0.0",
71
66
  "rollup-plugin-typescript2": "^0.36.0",
@@ -76,5 +71,5 @@
76
71
  "typings": "^2.1.1",
77
72
  "webpack": "^5.89.0"
78
73
  },
79
- "version": "1.0.0"
74
+ "version": "1.0.1"
80
75
  }
@@ -1,29 +0,0 @@
1
- /*!
2
- * Convert JS SDK test
3
- * Version 1.0.0
4
- * Copyright(c) 2020 Convert Insights, Inc
5
- * License Apache-2.0
6
- */
7
- export * from './src/audience-type';
8
- export * from './src/data-enitites';
9
- export * from './src/dictionary';
10
- export * from './src/do-not-track';
11
- export * from './src/event-type';
12
- export * from './src/experience-type';
13
- export * from './src/feature-status';
14
- export * from './src/ga-type';
15
- export * from './src/goal-data-key';
16
- export * from './src/goal-type';
17
- export * from './src/integration-provider';
18
- export * from './src/log-level';
19
- export * from './src/log-method';
20
- export * from './src/project-type';
21
- export * from './src/rule-error';
22
- export * from './src/system-events';
23
- export * from './src/variable-types';
24
- export * from './src/variation-change-type';
25
- export * from './src/segments/browser-type';
26
- export * from './src/segments/device-type';
27
- export * from './src/segments/segments-keys';
28
- export * from './src/segments/source-type';
29
- export * from './src/segments/visitor-type';
@@ -1,11 +0,0 @@
1
- /*!
2
- * Convert JS SDK
3
- * Version 1.0.0
4
- * Copyright(c) 2020 Convert Insights, Inc
5
- * License Apache-2.0
6
- */
7
- export declare enum AudienceType {
8
- PERMANENT = "permanent",
9
- SEGMENTATION = "segmentation",
10
- TRANSIENT = "transient"
11
- }
@@ -1,7 +0,0 @@
1
- /*!
2
- * Convert JS SDK
3
- * Version 1.0.0
4
- * Copyright(c) 2020 Convert Insights, Inc
5
- * License Apache-2.0
6
- */
7
- export declare const DATA_ENTITIES: string[];