@convertcom/js-sdk-rules 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +8 -8
- package/lib/index.js +7 -7
- package/lib/index.min.js +1 -1
- package/lib/index.min.mjs +1 -1
- package/lib/index.mjs +7 -7
- package/lib/legacy/index.js +7 -7
- package/lib/legacy/index.min.js +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RuleObject, RuleElement, Config } from '@convertcom/js-sdk-types';
|
|
2
2
|
import { RuleError } from '@convertcom/js-sdk-enums';
|
|
3
3
|
import { LogManagerInterface } from '@convertcom/js-sdk-logger';
|
|
4
4
|
|
|
@@ -12,8 +12,8 @@ import { LogManagerInterface } from '@convertcom/js-sdk-logger';
|
|
|
12
12
|
interface RuleManagerInterface {
|
|
13
13
|
comparisonProcessor: Record<string, any>;
|
|
14
14
|
getComparisonProcessorMethods(): Array<string>;
|
|
15
|
-
isRuleMatched(data: Record<string, any>, ruleSet:
|
|
16
|
-
isValidRule(rule:
|
|
15
|
+
isRuleMatched(data: Record<string, any>, ruleSet: RuleObject, logEntry?: string): boolean | RuleError;
|
|
16
|
+
isValidRule(rule: RuleElement): boolean;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -53,16 +53,16 @@ declare class RuleManager implements RuleManagerInterface {
|
|
|
53
53
|
/**
|
|
54
54
|
* Check input data matching to rule set
|
|
55
55
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
56
|
-
* @param {
|
|
56
|
+
* @param {RuleObject} ruleSet
|
|
57
57
|
* @return {boolean | RuleError}
|
|
58
58
|
*/
|
|
59
|
-
isRuleMatched(data: Record<string, any>, ruleSet:
|
|
59
|
+
isRuleMatched(data: Record<string, any>, ruleSet: RuleObject, logEntry?: string): boolean | RuleError;
|
|
60
60
|
/**
|
|
61
61
|
* Check is rule object valid
|
|
62
|
-
* @param {
|
|
62
|
+
* @param {RuleElement} rule
|
|
63
63
|
* @return {boolean}
|
|
64
64
|
*/
|
|
65
|
-
isValidRule(rule:
|
|
65
|
+
isValidRule(rule: RuleElement): boolean;
|
|
66
66
|
/**
|
|
67
67
|
* Process AND block of rule set. Return first false if found
|
|
68
68
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
@@ -82,7 +82,7 @@ declare class RuleManager implements RuleManagerInterface {
|
|
|
82
82
|
/**
|
|
83
83
|
* Process single rule item
|
|
84
84
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
85
|
-
* @param {
|
|
85
|
+
* @param {RuleElement} rule A single rule to compare
|
|
86
86
|
* @return {boolean | RuleError} Comparison result
|
|
87
87
|
* @private
|
|
88
88
|
*/
|
package/lib/index.js
CHANGED
|
@@ -60,7 +60,7 @@ class RuleManager {
|
|
|
60
60
|
/**
|
|
61
61
|
* Check input data matching to rule set
|
|
62
62
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
63
|
-
* @param {
|
|
63
|
+
* @param {RuleObject} ruleSet
|
|
64
64
|
* @return {boolean | RuleError}
|
|
65
65
|
*/
|
|
66
66
|
isRuleMatched(data, ruleSet, logEntry) {
|
|
@@ -98,7 +98,7 @@ class RuleManager {
|
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Check is rule object valid
|
|
101
|
-
* @param {
|
|
101
|
+
* @param {RuleElement} rule
|
|
102
102
|
* @return {boolean}
|
|
103
103
|
*/
|
|
104
104
|
isValidRule(rule) {
|
|
@@ -171,7 +171,7 @@ class RuleManager {
|
|
|
171
171
|
/**
|
|
172
172
|
* Process single rule item
|
|
173
173
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
174
|
-
* @param {
|
|
174
|
+
* @param {RuleElement} rule A single rule to compare
|
|
175
175
|
* @return {boolean | RuleError} Comparison result
|
|
176
176
|
* @private
|
|
177
177
|
*/
|
|
@@ -185,7 +185,7 @@ class RuleManager {
|
|
|
185
185
|
if (data && typeof data === 'object') {
|
|
186
186
|
// Validate data key-value set.
|
|
187
187
|
if (this.isUsingCustomInterface(data)) {
|
|
188
|
-
//
|
|
188
|
+
// RuleElement object has to have `rule_type` field
|
|
189
189
|
if (rule === null || rule === void 0 ? void 0 : rule.rule_type) {
|
|
190
190
|
(_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager._processRuleItem()', jsSdkEnums.MESSAGES.RULE_MATCH_START.replace('#', rule.rule_type));
|
|
191
191
|
for (const method of Object.getOwnPropertyNames(data.constructor.prototype)) {
|
|
@@ -205,12 +205,12 @@ class RuleManager {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
else if (jsSdkUtils.objectNotEmpty(data)) {
|
|
208
|
-
//
|
|
208
|
+
// only handle RuleElement with a `key` field
|
|
209
209
|
for (const key of Object.keys(data)) {
|
|
210
210
|
const k = this._keys_case_sensitive ? key : key.toLowerCase();
|
|
211
211
|
const rule_k = this._keys_case_sensitive
|
|
212
|
-
? rule
|
|
213
|
-
: rule
|
|
212
|
+
? rule['key']
|
|
213
|
+
: String(rule['key']).toLowerCase();
|
|
214
214
|
if (k === rule_k) {
|
|
215
215
|
return this._comparisonProcessor[matching](data[key], rule.value, negation);
|
|
216
216
|
}
|
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,a,s,i,n;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=(null===(t=null==o?void 0:o.rules)||void 0===t?void 0:t.comparisonProcessor)||e.Comparisons,this._negation=String((null===(a=null==o?void 0:o.rules)||void 0===a?void 0:a.negation)||"!"),this._keys_case_sensitive=(null===(s=null==o?void 0:o.rules)||void 0===s?void 0:s.keys_case_sensitive)||true,this._mapper=(null==o?void 0:o.mapper)||(e=>e),null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"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)if(this.isUsingCustomInterface(o)){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 if(e.objectNotEmpty(o))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 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}isUsingCustomInterface(r){return e.objectNotEmpty(r)&&Object.prototype.hasOwnProperty.call(r,"name")&&"RuleData"===r.name}};
|
|
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,s,i,n;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=l,this._comparisonProcessor=(null===(t=null==o?void 0:o.rules)||void 0===t?void 0:t.comparisonProcessor)||e.Comparisons,this._negation=String((null===(a=null==o?void 0:o.rules)||void 0===a?void 0:a.negation)||"!"),this._keys_case_sensitive=(null===(s=null==o?void 0:o.rules)||void 0===s?void 0:s.keys_case_sensitive)||true,this._mapper=(null==o?void 0:o.mapper)||(e=>e),null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"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)if(this.isUsingCustomInterface(o)){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 if(e.objectNotEmpty(o))for(const e of Object.keys(o)){const r=this._keys_case_sensitive?e:e.toLowerCase();if(r===(this._keys_case_sensitive?l.key:String(l.key).toLowerCase()))return this._comparisonProcessor[p](o[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}isUsingCustomInterface(r){return e.objectNotEmpty(r)&&Object.prototype.hasOwnProperty.call(r,"name")&&"RuleData"===r.name}};
|
|
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,arrayNotEmpty as l,camelCase as o,objectNotEmpty as r}from"@convertcom/js-sdk-utils";import{MESSAGES as t,RuleError as a,ERROR_MESSAGES as s}from"@convertcom/js-sdk-enums";class i{constructor(l,{loggerManager:o}={}){var r,a,s,i,n;this._comparisonProcessor=e,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=o,this._comparisonProcessor=(null===(r=null==l?void 0:l.rules)||void 0===r?void 0:r.comparisonProcessor)||e,this._negation=String((null===(a=null==l?void 0:l.rules)||void 0===a?void 0:a.negation)||"!"),this._keys_case_sensitive=(null===(s=null==l?void 0:l.rules)||void 0===s?void 0:s.keys_case_sensitive)||true,this._mapper=(null==l?void 0:l.mapper)||(e=>e),null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"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,o,r){var i,n,c,u,g,_,d,p,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:o})),r&&(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("#",r))),Object.prototype.hasOwnProperty.call(o,"OR")&&l(null==o?void 0:o.OR)){for(let l=0,i=o.OR.length;l<i;l++)if(R=this._processAND(e,o.OR[l]),Object.values(a).includes(R)?null===(_=null===(g=this._loggerManager)||void 0===g?void 0:g.info)||void 0===_||_.call(g,"RuleManager.isRuleMatched()",r||"",s.RULE_ERROR):null===(p=null===(d=this._loggerManager)||void 0===d?void 0:d.info)||void 0===p||p.call(d,"RuleManager.isRuleMatched()",r||"",!1===R?t.RULE_NOT_MATCH:t.RULE_MATCH.replace("#",String(l))),!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()",r||"",s.RULE_NOT_VALID);return!1}isValidRule(e){var l,o;return null===(o=null===(l=this._loggerManager)||void 0===l?void 0:l.trace)||void 0===o||o.call(l,"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,o){var r,a,i,n;let c;if(Object.prototype.hasOwnProperty.call(o,"AND")&&l(null==o?void 0:o.AND)){for(let l=0,r=o.AND.length;l<r;l++)if(c=this._processORWHEN(e,o.AND[l]),!1===c)return!1;return!1!==c&&(null===(a=null===(r=this._loggerManager)||void 0===r?void 0:r.info)||void 0===a||a.call(r,"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,o){var r,t;let a;if(Object.prototype.hasOwnProperty.call(o,"OR_WHEN")&&l(null==o?void 0:o.OR_WHEN)){for(let l=0,r=o.OR_WHEN.length;l<r;l++)if(a=this._processRuleItem(e,o.OR_WHEN[l]),!1!==a)return a}else null===(t=null===(r=this._loggerManager)||void 0===r?void 0:r.warn)||void 0===t||t.call(r,"RuleManager._processORWHEN()",s.RULE_NOT_VALID);return!1}_processRuleItem(e,l){var i,n,c,u,g,_,d,p,v,h,R,m,O;if(this.isValidRule(l))try{const h=l.matching.negated||!1,R=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(R))if(e&&"object"==typeof e)if(this.isUsingCustomInterface(e)){if(null==l?void 0:l.rule_type){null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===n||n.call(i,"RuleManager._processRuleItem()",t.RULE_MATCH_START.replace("#",l.rule_type));for(const r of Object.getOwnPropertyNames(e.constructor.prototype)){if("constructor"===r)continue;const t=o(`get ${l.rule_type.replace(/_/g," ")}`);if(r===t||(null===(c=null==e?void 0:e.mapper)||void 0===c?void 0:c.call(e,r))===t){const o=e[r](l);return Object.values(a).includes(o)||"js_condition"===l.rule_type?o:this._comparisonProcessor[R](o,l.value,h)}}}}else if(r(e))for(const o of Object.keys(e)){const r=this._keys_case_sensitive?o:o.toLowerCase();if(r===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[R](e[o],l.value,h)}else null===(g=null===(u=this._loggerManager)||void 0===u?void 0:u.trace)||void 0===g||g.call(u,"RuleManager._processRuleItem()",{warn:s.RULE_DATA_NOT_VALID,data:e});else null===(d=null===(_=this._loggerManager)||void 0===_?void 0:_.trace)||void 0===d||d.call(_,"RuleManager._processRuleItem()",{warn:s.RULE_NOT_VALID,data:e,rule:l});else null===(v=null===(p=this._loggerManager)||void 0===p?void 0:p.warn)||void 0===v||v.call(p,"RuleManager._processRuleItem()",s.RULE_MATCH_TYPE_NOT_SUPPORTED.replace("#",R))}catch(e){null===(R=null===(h=this._loggerManager)||void 0===h?void 0:h.error)||void 0===R||R.call(h,"RuleManager._processRuleItem()",{error:e.message})}else null===(O=null===(m=this._loggerManager)||void 0===m?void 0:m.warn)||void 0===O||O.call(m,"RuleManager._processRuleItem()",s.RULE_NOT_VALID);return!1}isUsingCustomInterface(e){return r(e)&&Object.prototype.hasOwnProperty.call(e,"name")&&"RuleData"===e.name}}export{i as RuleManager};
|
|
7
|
+
import{Comparisons as e,arrayNotEmpty as l,camelCase as o,objectNotEmpty as r}from"@convertcom/js-sdk-utils";import{MESSAGES as t,RuleError as a,ERROR_MESSAGES as s}from"@convertcom/js-sdk-enums";class i{constructor(l,{loggerManager:o}={}){var r,a,s,i,n;this._comparisonProcessor=e,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=o,this._comparisonProcessor=(null===(r=null==l?void 0:l.rules)||void 0===r?void 0:r.comparisonProcessor)||e,this._negation=String((null===(a=null==l?void 0:l.rules)||void 0===a?void 0:a.negation)||"!"),this._keys_case_sensitive=(null===(s=null==l?void 0:l.rules)||void 0===s?void 0:s.keys_case_sensitive)||true,this._mapper=(null==l?void 0:l.mapper)||(e=>e),null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===n||n.call(i,"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,o,r){var i,n,c,u,g,_,d,p,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:o})),r&&(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("#",r))),Object.prototype.hasOwnProperty.call(o,"OR")&&l(null==o?void 0:o.OR)){for(let l=0,i=o.OR.length;l<i;l++)if(R=this._processAND(e,o.OR[l]),Object.values(a).includes(R)?null===(_=null===(g=this._loggerManager)||void 0===g?void 0:g.info)||void 0===_||_.call(g,"RuleManager.isRuleMatched()",r||"",s.RULE_ERROR):null===(p=null===(d=this._loggerManager)||void 0===d?void 0:d.info)||void 0===p||p.call(d,"RuleManager.isRuleMatched()",r||"",!1===R?t.RULE_NOT_MATCH:t.RULE_MATCH.replace("#",String(l))),!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()",r||"",s.RULE_NOT_VALID);return!1}isValidRule(e){var l,o;return null===(o=null===(l=this._loggerManager)||void 0===l?void 0:l.trace)||void 0===o||o.call(l,"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,o){var r,a,i,n;let c;if(Object.prototype.hasOwnProperty.call(o,"AND")&&l(null==o?void 0:o.AND)){for(let l=0,r=o.AND.length;l<r;l++)if(c=this._processORWHEN(e,o.AND[l]),!1===c)return!1;return!1!==c&&(null===(a=null===(r=this._loggerManager)||void 0===r?void 0:r.info)||void 0===a||a.call(r,"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,o){var r,t;let a;if(Object.prototype.hasOwnProperty.call(o,"OR_WHEN")&&l(null==o?void 0:o.OR_WHEN)){for(let l=0,r=o.OR_WHEN.length;l<r;l++)if(a=this._processRuleItem(e,o.OR_WHEN[l]),!1!==a)return a}else null===(t=null===(r=this._loggerManager)||void 0===r?void 0:r.warn)||void 0===t||t.call(r,"RuleManager._processORWHEN()",s.RULE_NOT_VALID);return!1}_processRuleItem(e,l){var i,n,c,u,g,_,d,p,v,h,R,m,O;if(this.isValidRule(l))try{const h=l.matching.negated||!1,R=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(R))if(e&&"object"==typeof e)if(this.isUsingCustomInterface(e)){if(null==l?void 0:l.rule_type){null===(n=null===(i=this._loggerManager)||void 0===i?void 0:i.info)||void 0===n||n.call(i,"RuleManager._processRuleItem()",t.RULE_MATCH_START.replace("#",l.rule_type));for(const r of Object.getOwnPropertyNames(e.constructor.prototype)){if("constructor"===r)continue;const t=o(`get ${l.rule_type.replace(/_/g," ")}`);if(r===t||(null===(c=null==e?void 0:e.mapper)||void 0===c?void 0:c.call(e,r))===t){const o=e[r](l);return Object.values(a).includes(o)||"js_condition"===l.rule_type?o:this._comparisonProcessor[R](o,l.value,h)}}}}else if(r(e))for(const o of Object.keys(e)){const r=this._keys_case_sensitive?o:o.toLowerCase();if(r===(this._keys_case_sensitive?l.key:String(l.key).toLowerCase()))return this._comparisonProcessor[R](e[o],l.value,h)}else null===(g=null===(u=this._loggerManager)||void 0===u?void 0:u.trace)||void 0===g||g.call(u,"RuleManager._processRuleItem()",{warn:s.RULE_DATA_NOT_VALID,data:e});else null===(d=null===(_=this._loggerManager)||void 0===_?void 0:_.trace)||void 0===d||d.call(_,"RuleManager._processRuleItem()",{warn:s.RULE_NOT_VALID,data:e,rule:l});else null===(v=null===(p=this._loggerManager)||void 0===p?void 0:p.warn)||void 0===v||v.call(p,"RuleManager._processRuleItem()",s.RULE_MATCH_TYPE_NOT_SUPPORTED.replace("#",R))}catch(e){null===(R=null===(h=this._loggerManager)||void 0===h?void 0:h.error)||void 0===R||R.call(h,"RuleManager._processRuleItem()",{error:e.message})}else null===(O=null===(m=this._loggerManager)||void 0===m?void 0:m.warn)||void 0===O||O.call(m,"RuleManager._processRuleItem()",s.RULE_NOT_VALID);return!1}isUsingCustomInterface(e){return r(e)&&Object.prototype.hasOwnProperty.call(e,"name")&&"RuleData"===e.name}}export{i as RuleManager};
|
|
8
8
|
//# sourceMappingURL=index.min.mjs.map
|
package/lib/index.mjs
CHANGED
|
@@ -58,7 +58,7 @@ class RuleManager {
|
|
|
58
58
|
/**
|
|
59
59
|
* Check input data matching to rule set
|
|
60
60
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
61
|
-
* @param {
|
|
61
|
+
* @param {RuleObject} ruleSet
|
|
62
62
|
* @return {boolean | RuleError}
|
|
63
63
|
*/
|
|
64
64
|
isRuleMatched(data, ruleSet, logEntry) {
|
|
@@ -96,7 +96,7 @@ class RuleManager {
|
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
98
|
* Check is rule object valid
|
|
99
|
-
* @param {
|
|
99
|
+
* @param {RuleElement} rule
|
|
100
100
|
* @return {boolean}
|
|
101
101
|
*/
|
|
102
102
|
isValidRule(rule) {
|
|
@@ -169,7 +169,7 @@ class RuleManager {
|
|
|
169
169
|
/**
|
|
170
170
|
* Process single rule item
|
|
171
171
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
172
|
-
* @param {
|
|
172
|
+
* @param {RuleElement} rule A single rule to compare
|
|
173
173
|
* @return {boolean | RuleError} Comparison result
|
|
174
174
|
* @private
|
|
175
175
|
*/
|
|
@@ -183,7 +183,7 @@ class RuleManager {
|
|
|
183
183
|
if (data && typeof data === 'object') {
|
|
184
184
|
// Validate data key-value set.
|
|
185
185
|
if (this.isUsingCustomInterface(data)) {
|
|
186
|
-
//
|
|
186
|
+
// RuleElement object has to have `rule_type` field
|
|
187
187
|
if (rule === null || rule === void 0 ? void 0 : rule.rule_type) {
|
|
188
188
|
(_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager._processRuleItem()', MESSAGES.RULE_MATCH_START.replace('#', rule.rule_type));
|
|
189
189
|
for (const method of Object.getOwnPropertyNames(data.constructor.prototype)) {
|
|
@@ -203,12 +203,12 @@ class RuleManager {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
else if (objectNotEmpty(data)) {
|
|
206
|
-
//
|
|
206
|
+
// only handle RuleElement with a `key` field
|
|
207
207
|
for (const key of Object.keys(data)) {
|
|
208
208
|
const k = this._keys_case_sensitive ? key : key.toLowerCase();
|
|
209
209
|
const rule_k = this._keys_case_sensitive
|
|
210
|
-
? rule
|
|
211
|
-
: rule
|
|
210
|
+
? rule['key']
|
|
211
|
+
: String(rule['key']).toLowerCase();
|
|
212
212
|
if (k === rule_k) {
|
|
213
213
|
return this._comparisonProcessor[matching](data[key], rule.value, negation);
|
|
214
214
|
}
|
package/lib/legacy/index.js
CHANGED
|
@@ -94,7 +94,7 @@ var RuleManager = /** @class */ (function () {
|
|
|
94
94
|
/**
|
|
95
95
|
* Check input data matching to rule set
|
|
96
96
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
97
|
-
* @param {
|
|
97
|
+
* @param {RuleObject} ruleSet
|
|
98
98
|
* @return {boolean | RuleError}
|
|
99
99
|
*/
|
|
100
100
|
RuleManager.prototype.isRuleMatched = function (data, ruleSet, logEntry) {
|
|
@@ -132,7 +132,7 @@ var RuleManager = /** @class */ (function () {
|
|
|
132
132
|
};
|
|
133
133
|
/**
|
|
134
134
|
* Check is rule object valid
|
|
135
|
-
* @param {
|
|
135
|
+
* @param {RuleElement} rule
|
|
136
136
|
* @return {boolean}
|
|
137
137
|
*/
|
|
138
138
|
RuleManager.prototype.isValidRule = function (rule) {
|
|
@@ -205,7 +205,7 @@ var RuleManager = /** @class */ (function () {
|
|
|
205
205
|
/**
|
|
206
206
|
* Process single rule item
|
|
207
207
|
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
208
|
-
* @param {
|
|
208
|
+
* @param {RuleElement} rule A single rule to compare
|
|
209
209
|
* @return {boolean | RuleError} Comparison result
|
|
210
210
|
* @private
|
|
211
211
|
*/
|
|
@@ -220,7 +220,7 @@ var RuleManager = /** @class */ (function () {
|
|
|
220
220
|
if (data && typeof data === 'object') {
|
|
221
221
|
// Validate data key-value set.
|
|
222
222
|
if (this.isUsingCustomInterface(data)) {
|
|
223
|
-
//
|
|
223
|
+
// RuleElement object has to have `rule_type` field
|
|
224
224
|
if (rule === null || rule === void 0 ? void 0 : rule.rule_type) {
|
|
225
225
|
(_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));
|
|
226
226
|
try {
|
|
@@ -251,13 +251,13 @@ var RuleManager = /** @class */ (function () {
|
|
|
251
251
|
}
|
|
252
252
|
else if (jsSdkUtils.objectNotEmpty(data)) {
|
|
253
253
|
try {
|
|
254
|
-
//
|
|
254
|
+
// only handle RuleElement with a `key` field
|
|
255
255
|
for (var _t = __values(Object.keys(data)), _u = _t.next(); !_u.done; _u = _t.next()) {
|
|
256
256
|
var key = _u.value;
|
|
257
257
|
var k = this._keys_case_sensitive ? key : key.toLowerCase();
|
|
258
258
|
var rule_k = this._keys_case_sensitive
|
|
259
|
-
? rule
|
|
260
|
-
: rule
|
|
259
|
+
? rule['key']
|
|
260
|
+
: String(rule['key']).toLowerCase();
|
|
261
261
|
if (k === rule_k) {
|
|
262
262
|
return this._comparisonProcessor[matching](data[key], rule.value, negation);
|
|
263
263
|
}
|
package/lib/legacy/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");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,i,s,c=(void 0===t?{}:t).loggerManager;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=c,this._comparisonProcessor=(null===(l=null==o?void 0:o.rules)||void 0===l?void 0:l.comparisonProcessor)||e.Comparisons,this._negation=String((null===(n=null==o?void 0:o.rules)||void 0===n?void 0:n.negation)||"!"),this._keys_case_sensitive=(null===(a=null==o?void 0:o.rules)||void 0===a?void 0:a.keys_case_sensitive)||true,this._mapper=(null==o?void 0:o.mapper)||function(e){return e},null===(s=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===s||s.call(i,"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()",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,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,h,y,E,f,M;if(this.isValidRule(l))try{var m=l.matching.negated||!1,O=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(O))if(t&&"object"==typeof t)if(this.isUsingCustomInterface(t)){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 S=o(Object.getOwnPropertyNames(t.constructor.prototype)),A=S.next();!A.done;A=S.next()){var N=A.value;if("constructor"!==N){var b=e.camelCase("get ".concat(l.rule_type.replace(/_/g," ")));if(N===b||(null===(p=null==t?void 0:t.mapper)||void 0===p?void 0:p.call(t,N))===b){var P=t[N](l);return Object.values(r.RuleError).includes(P)||"js_condition"===l.rule_type?P:this._comparisonProcessor[O](P,l.value,m)}}}}catch(e){n={error:e}}finally{try{A&&!A.done&&(a=S.return)&&a.call(S)}finally{if(n)throw n.error}}}}else if(e.objectNotEmpty(t))try{for(var w=o(Object.keys(t)),T=w.next();!T.done;T=w.next()){var j=T.value;if((this._keys_case_sensitive?j:j.toLowerCase())===(this._keys_case_sensitive?l.key:l.key.toLowerCase()))return this._comparisonProcessor[O](t[j],l.value,m)}}catch(e){i={error:e}}finally{try{T&&!T.done&&(s=w.return)&&s.call(w)}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("#",O))}catch(e){null===(E=null===(y=this._loggerManager)||void 0===y?void 0:y.error)||void 0===E||E.call(y,"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.prototype.isUsingCustomInterface=function(r){return e.objectNotEmpty(r)&&Object.prototype.hasOwnProperty.call(r,"name")&&"RuleData"===r.name},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,n,a,i,s,c=(void 0===t?{}:t).loggerManager;this._comparisonProcessor=e.Comparisons,this._negation="!",this._keys_case_sensitive=true,this._loggerManager=c,this._comparisonProcessor=(null===(l=null==o?void 0:o.rules)||void 0===l?void 0:l.comparisonProcessor)||e.Comparisons,this._negation=String((null===(n=null==o?void 0:o.rules)||void 0===n?void 0:n.negation)||"!"),this._keys_case_sensitive=(null===(a=null==o?void 0:o.rules)||void 0===a?void 0:a.keys_case_sensitive)||true,this._mapper=(null==o?void 0:o.mapper)||function(e){return e},null===(s=null===(i=this._loggerManager)||void 0===i?void 0:i.trace)||void 0===s||s.call(i,"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()",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,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,h,y,E,f,M;if(this.isValidRule(l))try{var m=l.matching.negated||!1,O=l.matching.match_type;if(-1!==this.getComparisonProcessorMethods().indexOf(O))if(t&&"object"==typeof t)if(this.isUsingCustomInterface(t)){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 S=o(Object.getOwnPropertyNames(t.constructor.prototype)),A=S.next();!A.done;A=S.next()){var N=A.value;if("constructor"!==N){var b=e.camelCase("get ".concat(l.rule_type.replace(/_/g," ")));if(N===b||(null===(p=null==t?void 0:t.mapper)||void 0===p?void 0:p.call(t,N))===b){var P=t[N](l);return Object.values(r.RuleError).includes(P)||"js_condition"===l.rule_type?P:this._comparisonProcessor[O](P,l.value,m)}}}}catch(e){n={error:e}}finally{try{A&&!A.done&&(a=S.return)&&a.call(S)}finally{if(n)throw n.error}}}}else if(e.objectNotEmpty(t))try{for(var w=o(Object.keys(t)),T=w.next();!T.done;T=w.next()){var j=T.value;if((this._keys_case_sensitive?j:j.toLowerCase())===(this._keys_case_sensitive?l.key:String(l.key).toLowerCase()))return this._comparisonProcessor[O](t[j],l.value,m)}}catch(e){i={error:e}}finally{try{T&&!T.done&&(s=w.return)&&s.call(w)}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("#",O))}catch(e){null===(E=null===(y=this._loggerManager)||void 0===y?void 0:y.error)||void 0===E||E.call(y,"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.prototype.isUsingCustomInterface=function(r){return e.objectNotEmpty(r)&&Object.prototype.hasOwnProperty.call(r,"name")&&"RuleData"===r.name},t}();exports.RuleManager=t;
|
|
8
8
|
//# sourceMappingURL=index.min.js.map
|
package/lib/package.json
CHANGED
package/package.json
CHANGED