@convertcom/js-sdk-rules 0.0.1 → 1.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.
Files changed (159) hide show
  1. package/LICENSE.txt +202 -0
  2. package/lib/enums/index.d.ts +29 -0
  3. package/lib/enums/src/audience-type.d.ts +11 -0
  4. package/lib/enums/src/data-enitites.d.ts +7 -0
  5. package/lib/enums/src/dictionary.d.ts +60 -0
  6. package/lib/enums/src/do-not-track.d.ts +12 -0
  7. package/lib/enums/src/event-type.d.ts +10 -0
  8. package/lib/enums/src/experience-type.d.ts +16 -0
  9. package/lib/enums/src/feature-status.d.ts +10 -0
  10. package/lib/enums/src/ga-type.d.ts +10 -0
  11. package/lib/enums/src/goal-data-key.d.ts +11 -0
  12. package/lib/enums/src/goal-type.d.ts +22 -0
  13. package/lib/enums/src/integration-provider.d.ts +27 -0
  14. package/lib/enums/src/log-level.d.ts +14 -0
  15. package/lib/enums/src/log-method.d.ts +14 -0
  16. package/lib/enums/src/project-type.d.ts +10 -0
  17. package/lib/enums/src/rule-error.d.ts +10 -0
  18. package/lib/enums/src/segments/browser-type.d.ts +17 -0
  19. package/lib/enums/src/segments/device-type.d.ts +16 -0
  20. package/lib/enums/src/segments/segments-keys.d.ts +15 -0
  21. package/lib/enums/src/segments/source-type.d.ts +12 -0
  22. package/lib/enums/src/segments/visitor-type.d.ts +10 -0
  23. package/lib/enums/src/system-events.d.ts +22 -0
  24. package/lib/enums/src/variable-types.d.ts +7 -0
  25. package/lib/enums/src/variation-change-type.d.ts +14 -0
  26. package/lib/index.js +227 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/index.min.js +2 -0
  29. package/lib/index.min.js.map +1 -0
  30. package/lib/index.min.mjs +1 -0
  31. package/lib/index.min.mjs.map +1 -0
  32. package/lib/index.mjs +227 -0
  33. package/lib/index.mjs.map +1 -0
  34. package/lib/legacy/enums/index.d.ts +29 -0
  35. package/lib/legacy/enums/src/audience-type.d.ts +11 -0
  36. package/lib/legacy/enums/src/data-enitites.d.ts +7 -0
  37. package/lib/legacy/enums/src/dictionary.d.ts +60 -0
  38. package/lib/legacy/enums/src/do-not-track.d.ts +12 -0
  39. package/lib/legacy/enums/src/event-type.d.ts +10 -0
  40. package/lib/legacy/enums/src/experience-type.d.ts +16 -0
  41. package/lib/legacy/enums/src/feature-status.d.ts +10 -0
  42. package/lib/legacy/enums/src/ga-type.d.ts +10 -0
  43. package/lib/legacy/enums/src/goal-data-key.d.ts +11 -0
  44. package/lib/legacy/enums/src/goal-type.d.ts +22 -0
  45. package/lib/legacy/enums/src/integration-provider.d.ts +27 -0
  46. package/lib/legacy/enums/src/log-level.d.ts +14 -0
  47. package/lib/legacy/enums/src/log-method.d.ts +14 -0
  48. package/lib/legacy/enums/src/project-type.d.ts +10 -0
  49. package/lib/legacy/enums/src/rule-error.d.ts +10 -0
  50. package/lib/legacy/enums/src/segments/browser-type.d.ts +17 -0
  51. package/lib/legacy/enums/src/segments/device-type.d.ts +16 -0
  52. package/lib/legacy/enums/src/segments/segments-keys.d.ts +15 -0
  53. package/lib/legacy/enums/src/segments/source-type.d.ts +12 -0
  54. package/lib/legacy/enums/src/segments/visitor-type.d.ts +10 -0
  55. package/lib/legacy/enums/src/system-events.d.ts +22 -0
  56. package/lib/legacy/enums/src/variable-types.d.ts +7 -0
  57. package/lib/legacy/enums/src/variation-change-type.d.ts +14 -0
  58. package/lib/legacy/index.js +291 -0
  59. package/lib/legacy/index.js.map +1 -0
  60. package/lib/legacy/index.min.js +8 -0
  61. package/lib/legacy/index.min.js.map +1 -0
  62. package/lib/legacy/logger/index.d.ts +8 -0
  63. package/lib/legacy/logger/src/interfaces/log-client.d.ts +13 -0
  64. package/lib/legacy/logger/src/interfaces/log-manager.d.ts +18 -0
  65. package/lib/legacy/logger/src/interfaces/log-method-map.d.ts +15 -0
  66. package/lib/legacy/logger/src/log-manager.d.ts +64 -0
  67. package/lib/legacy/rules/index.d.ts +8 -0
  68. package/lib/legacy/rules/src/interfaces/rule-manager.d.ts +14 -0
  69. package/lib/legacy/rules/src/rule-manager.d.ts +75 -0
  70. package/lib/legacy/types/index.d.ts +36 -0
  71. package/lib/legacy/types/src/Audience.d.ts +16 -0
  72. package/lib/legacy/types/src/BucketedFeature.d.ts +30 -0
  73. package/lib/legacy/types/src/BucketedVariation.d.ts +13 -0
  74. package/lib/legacy/types/src/BucketingAttributes.d.ts +13 -0
  75. package/lib/legacy/types/src/Config.d.ts +62 -0
  76. package/lib/legacy/types/src/ConversionAttributes.d.ts +11 -0
  77. package/lib/legacy/types/src/Entity.d.ts +13 -0
  78. package/lib/legacy/types/src/Experience.d.ts +37 -0
  79. package/lib/legacy/types/src/Feature.d.ts +18 -0
  80. package/lib/legacy/types/src/Goal.d.ts +30 -0
  81. package/lib/legacy/types/src/Id.d.ts +10 -0
  82. package/lib/{index.d.ts → legacy/types/src/IndentityField.d.ts} +2 -1
  83. package/lib/legacy/types/src/Integration.d.ts +16 -0
  84. package/lib/legacy/types/src/Location.d.ts +14 -0
  85. package/lib/legacy/types/src/Path.d.ts +10 -0
  86. package/lib/legacy/types/src/Project.d.ts +37 -0
  87. package/lib/legacy/types/src/RequireAtLeastOne.d.ts +3 -0
  88. package/lib/legacy/types/src/Rule.d.ts +24 -0
  89. package/lib/legacy/types/src/Segments.d.ts +14 -0
  90. package/lib/legacy/types/src/SegmentsAttributes.d.ts +9 -0
  91. package/lib/legacy/types/src/SegmentsData.d.ts +16 -0
  92. package/lib/legacy/types/src/StoreData.d.ts +14 -0
  93. package/lib/legacy/types/src/TrackingEvent.d.ts +14 -0
  94. package/lib/legacy/types/src/VariableType.d.ts +8 -0
  95. package/lib/legacy/types/src/Variation.d.ts +49 -0
  96. package/lib/legacy/types/src/VisitorsQueue.d.ts +16 -0
  97. package/lib/legacy/types/src/tracking/BucketingEvent.d.ts +11 -0
  98. package/lib/legacy/types/src/tracking/ConversionEvent.d.ts +16 -0
  99. package/lib/legacy/types/src/tracking/Visitor.d.ts +14 -0
  100. package/lib/legacy/types/src/tracking/VisitorEvent.d.ts +13 -0
  101. package/lib/legacy/utils/index.d.ts +14 -0
  102. package/lib/legacy/utils/src/array-utils.d.ts +11 -0
  103. package/lib/legacy/utils/src/comparisons.d.ts +22 -0
  104. package/lib/legacy/utils/src/data-store.d.ts +39 -0
  105. package/lib/legacy/utils/src/file-logger.d.ts +40 -0
  106. package/lib/legacy/utils/src/http-client.d.ts +102 -0
  107. package/lib/legacy/utils/src/object-utils.d.ts +28 -0
  108. package/lib/legacy/utils/src/string-utils.d.ts +20 -0
  109. package/lib/legacy/utils/src/types-utils.d.ts +12 -0
  110. package/lib/logger/index.d.ts +8 -0
  111. package/lib/logger/src/interfaces/log-client.d.ts +13 -0
  112. package/lib/logger/src/interfaces/log-manager.d.ts +18 -0
  113. package/lib/logger/src/interfaces/log-method-map.d.ts +15 -0
  114. package/lib/logger/src/log-manager.d.ts +64 -0
  115. package/lib/package.json +18 -0
  116. package/lib/rules/index.d.ts +8 -0
  117. package/lib/rules/src/interfaces/rule-manager.d.ts +14 -0
  118. package/lib/rules/src/rule-manager.d.ts +75 -0
  119. package/lib/types/index.d.ts +36 -0
  120. package/lib/types/src/Audience.d.ts +16 -0
  121. package/lib/types/src/BucketedFeature.d.ts +30 -0
  122. package/lib/types/src/BucketedVariation.d.ts +13 -0
  123. package/lib/types/src/BucketingAttributes.d.ts +13 -0
  124. package/lib/types/src/Config.d.ts +62 -0
  125. package/lib/types/src/ConversionAttributes.d.ts +11 -0
  126. package/lib/types/src/Entity.d.ts +13 -0
  127. package/lib/types/src/Experience.d.ts +37 -0
  128. package/lib/types/src/Feature.d.ts +18 -0
  129. package/lib/types/src/Goal.d.ts +30 -0
  130. package/lib/types/src/Id.d.ts +10 -0
  131. package/lib/types/src/IndentityField.d.ts +7 -0
  132. package/lib/types/src/Integration.d.ts +16 -0
  133. package/lib/types/src/Location.d.ts +14 -0
  134. package/lib/types/src/Path.d.ts +10 -0
  135. package/lib/types/src/Project.d.ts +37 -0
  136. package/lib/types/src/RequireAtLeastOne.d.ts +3 -0
  137. package/lib/types/src/Rule.d.ts +24 -0
  138. package/lib/types/src/Segments.d.ts +14 -0
  139. package/lib/types/src/SegmentsAttributes.d.ts +9 -0
  140. package/lib/types/src/SegmentsData.d.ts +16 -0
  141. package/lib/types/src/StoreData.d.ts +14 -0
  142. package/lib/types/src/TrackingEvent.d.ts +14 -0
  143. package/lib/types/src/VariableType.d.ts +8 -0
  144. package/lib/types/src/Variation.d.ts +49 -0
  145. package/lib/types/src/VisitorsQueue.d.ts +16 -0
  146. package/lib/types/src/tracking/BucketingEvent.d.ts +11 -0
  147. package/lib/types/src/tracking/ConversionEvent.d.ts +16 -0
  148. package/lib/types/src/tracking/Visitor.d.ts +14 -0
  149. package/lib/types/src/tracking/VisitorEvent.d.ts +13 -0
  150. package/lib/utils/index.d.ts +14 -0
  151. package/lib/utils/src/array-utils.d.ts +11 -0
  152. package/lib/utils/src/comparisons.d.ts +22 -0
  153. package/lib/utils/src/data-store.d.ts +39 -0
  154. package/lib/utils/src/file-logger.d.ts +40 -0
  155. package/lib/utils/src/http-client.d.ts +102 -0
  156. package/lib/utils/src/object-utils.d.ts +28 -0
  157. package/lib/utils/src/string-utils.d.ts +20 -0
  158. package/lib/utils/src/types-utils.d.ts +12 -0
  159. package/package.json +60 -1
@@ -0,0 +1,16 @@
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 ExperienceType {
8
+ AB = "a/b",
9
+ AA = "a/a",
10
+ MVT = "mvt",
11
+ SPLIT = "split_url",
12
+ DEPLOY = "deploy",
13
+ MULTIPAGE = "multipage",
14
+ AB_FULLSTACK = "a/b_fullstack",
15
+ FEATURE_ROLLOUT = "feature_rollout"
16
+ }
@@ -0,0 +1,10 @@
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 FeatureStatus {
8
+ ENABLED = "enabled",
9
+ DISABLED = "disabled"
10
+ }
@@ -0,0 +1,10 @@
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 GoogleAnalyticsType {
8
+ GA3 = "ga3",
9
+ GA4 = "ga4"
10
+ }
@@ -0,0 +1,11 @@
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 GoalDataKey {
8
+ AMOUNT = "amount",
9
+ PRODUCTS_COUNT = "productsCount",
10
+ TRANSACTION_ID = "transactionId"
11
+ }
@@ -0,0 +1,22 @@
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 GoalType {
8
+ ADVANCED = "advanced",
9
+ DOM_INTERACTION = "dom_interaction",
10
+ SCROLL_PERCENTAGE = "scroll_percentage",
11
+ CODE_TRIGGER = "code_trigger",
12
+ REVENUE = "revenue",
13
+ GOOGLE_ANALYTICS_IMPORT = "ga_import",
14
+ CLICKS_ELEMENT = "clicks_element",
15
+ CLICKS_LINK = "clicks_link",
16
+ SUBMITS_FORM = "submits_form",
17
+ VISITS_PAGE = "visits_page"
18
+ }
19
+ export declare enum GoalRevenueTriggeringType {
20
+ MANUAL = "manual",
21
+ GOOGLE_ANALYTICS = "ga"
22
+ }
@@ -0,0 +1,27 @@
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 IntegrationProvider {
8
+ BAIDU = "baidu",
9
+ CLICK_TALE = "clicktale",
10
+ CLICKY = "clicky",
11
+ CNZZ = "cnzz",
12
+ CRAZY_EGG = "crazyegg",
13
+ ECONDA = "econda",
14
+ EULERIAN = "eulerian",
15
+ GOOGLE_ANALYTICS = "google_analytics",
16
+ GO_SQUARED = "gosquared",
17
+ HEAP_ANALYTICS = "heapanalytics",
18
+ HOT_JAR = "hotjar",
19
+ KISS_METRICS = "kissmetrics",
20
+ MIX_PANEL = "mixpanel",
21
+ MOUSE_FLOW = "mouseflow",
22
+ PIWIK = "piwik",
23
+ SEGMENTIO = "segmentio",
24
+ SITE_CATALYST = "sitecatalyst",
25
+ WOOPRA = "woopra",
26
+ YSANCE = "ysance"
27
+ }
@@ -0,0 +1,14 @@
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 LogLevel {
8
+ TRACE = 0,
9
+ DEBUG = 1,
10
+ INFO = 2,
11
+ WARN = 3,
12
+ ERROR = 4,
13
+ SILENT = 5
14
+ }
@@ -0,0 +1,14 @@
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 LogMethod {
8
+ LOG = "log",
9
+ TRACE = "trace",
10
+ DEBUG = "debug",
11
+ INFO = "info",
12
+ WARN = "warn",
13
+ ERROR = "error"
14
+ }
@@ -0,0 +1,10 @@
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 ProjectType {
8
+ WEB = "web",
9
+ FULLSTACK = "fullstack"
10
+ }
@@ -0,0 +1,10 @@
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 RuleError {
8
+ NO_DATA_FOUND = "convert.com_no_data_found",
9
+ NEED_MORE_DATA = "convert.com_need_more_data"
10
+ }
@@ -0,0 +1,17 @@
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 BrowserType {
8
+ IE = "IE",
9
+ CH = "CH",
10
+ FF = "FF",
11
+ OP = "OP",
12
+ SF = "SF",
13
+ EDG = "EDG",
14
+ MO = "MO",
15
+ NS = "NS",
16
+ OTH = "OTH"
17
+ }
@@ -0,0 +1,16 @@
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 DeviceType {
8
+ ALLPH = "ALLPH",
9
+ IPH = "IPH",
10
+ OTHPH = "OTHPH",
11
+ ALLTAB = "ALLTAB",
12
+ IPAD = "IPAD",
13
+ OTHTAB = "OTHTAB",
14
+ DESK = "DESK",
15
+ OTHDEV = "OTHDEV"
16
+ }
@@ -0,0 +1,15 @@
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 SegmentsKeys {
8
+ COUNTRY = "country",
9
+ BROWSER = "browser",
10
+ DEVICES = "devices",
11
+ SOURCE = "source",
12
+ CAMPAIGN = "campaign",
13
+ VISITOR_TYPE = "visitorType",
14
+ CUSTOM_SEGMENTS = "customSegments"
15
+ }
@@ -0,0 +1,12 @@
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 SourceType {
8
+ CAMPAIGN = "campaign",
9
+ SEARCH = "search",
10
+ REFERRAL = "referral",
11
+ DIRECT = "direct"
12
+ }
@@ -0,0 +1,10 @@
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 VisitorType {
8
+ NEW = "new",
9
+ RETURNING = "returning"
10
+ }
@@ -0,0 +1,22 @@
1
+ /*!
2
+ * Convert JS SDK
3
+ * Version 1.0.0
4
+ * Copyright(c) 2020 Convert Insights, Inc
5
+ * License Apache-2.0
6
+ */
7
+ /**
8
+ * SDK system events. Possible values: 'ready' | 'queue-released'
9
+ * or custom visitor's event
10
+ */
11
+ export declare enum SystemEvents {
12
+ READY = "ready",
13
+ CONFIG_UPDATED = "config.updated",
14
+ API_QUEUE_RELEASED = "api.queue.released",
15
+ BUCKETING = "bucketing",
16
+ CONVERSION = "conversion",
17
+ SEGMENTS = "segments",
18
+ LOCATION_ACTIVATED = "location.activated",
19
+ LOCATION_DEACTIVATED = "location.deactivated",
20
+ AUDIENCES = "audiences",
21
+ DATA_STORE_QUEUE_RELEASED = "datastore.queue.released"
22
+ }
@@ -0,0 +1,7 @@
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 VARIABLE_TYPES: readonly ["boolean", "float", "json", "integer", "string"];
@@ -0,0 +1,14 @@
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 VariationChangeType {
8
+ RICH_STRUCTURE = "richStructure",
9
+ CUSTOM_CODE = "customCode",
10
+ DEFAULT_CODE = "defaultCode",
11
+ DEFAULT_CODE_MULTIPAGE = "defaultCodeMultipage",
12
+ DEFAULT_REDIRECT = "defaultRedirect",
13
+ FULLSTACK_FEATURE = "fullStackFeature"
14
+ }
@@ -0,0 +1,291 @@
1
+ 'use strict';
2
+
3
+ var jsSdkUtils = require('@convertcom/js-sdk-utils');
4
+ var jsSdkEnums = require('@convertcom/js-sdk-enums');
5
+
6
+ /******************************************************************************
7
+ Copyright (c) Microsoft Corporation.
8
+
9
+ Permission to use, copy, modify, and/or distribute this software for any
10
+ purpose with or without fee is hereby granted.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
13
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
14
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
15
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
16
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
17
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18
+ PERFORMANCE OF THIS SOFTWARE.
19
+ ***************************************************************************** */
20
+ /* global Reflect, Promise, SuppressedError, Symbol */
21
+
22
+
23
+ function __values(o) {
24
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
25
+ if (m) return m.call(o);
26
+ if (o && typeof o.length === "number") return {
27
+ next: function () {
28
+ if (o && i >= o.length) o = void 0;
29
+ return { value: o && o[i++], done: !o };
30
+ }
31
+ };
32
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
33
+ }
34
+
35
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
36
+ var e = new Error(message);
37
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
38
+ };
39
+
40
+ var DEFAULT_KEYS_CASE_SENSITIVE = true;
41
+ var DEFAULT_NEGATION = '!';
42
+ /**
43
+ * Provides rule processing calculations with corresponding comparisons methods
44
+ * @category Modules
45
+ * @constructor
46
+ * @implements {RuleManagerInterface}
47
+ */
48
+ var RuleManager = /** @class */ (function () {
49
+ /**
50
+ * @param {Config=} config
51
+ * @param {Object=} dependencies
52
+ * @param {LogManagerInterface=} dependencies.loggerManager
53
+ */
54
+ function RuleManager(config, _a) {
55
+ var _b = _a === void 0 ? {} : _a, loggerManager = _b.loggerManager;
56
+ var _c, _d;
57
+ this._comparisonProcessor = jsSdkUtils.Comparisons;
58
+ this._negation = DEFAULT_NEGATION;
59
+ this._keys_case_sensitive = DEFAULT_KEYS_CASE_SENSITIVE;
60
+ this._loggerManager = loggerManager;
61
+ this._comparisonProcessor = jsSdkUtils.objectDeepValue(config, 'rules.comparisonProcessor', jsSdkUtils.Comparisons);
62
+ this._negation = String(jsSdkUtils.objectDeepValue(config, 'rules.negation', DEFAULT_NEGATION)).valueOf();
63
+ this._keys_case_sensitive = jsSdkUtils.objectDeepValue(config, 'rules.keys_case_sensitive', DEFAULT_KEYS_CASE_SENSITIVE, true);
64
+ (_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
+ Object.defineProperty(RuleManager.prototype, "comparisonProcessor", {
67
+ /**
68
+ * Getter for comparison processor
69
+ */
70
+ get: function () {
71
+ return this._comparisonProcessor;
72
+ },
73
+ /**
74
+ * Setter for comparison processor
75
+ * @param {Record<string, any>} comparisonProcessor
76
+ */
77
+ set: function (comparisonProcessor) {
78
+ this._comparisonProcessor = comparisonProcessor;
79
+ },
80
+ enumerable: false,
81
+ configurable: true
82
+ });
83
+ /**
84
+ * Retrieve comparison methods from comparison processor
85
+ * @return {Array<string>} List of methods of comparison processor
86
+ */
87
+ RuleManager.prototype.getComparisonProcessorMethods = function () {
88
+ var _this = this;
89
+ return Object.getOwnPropertyNames(this._comparisonProcessor).filter(function (name) { return typeof _this._comparisonProcessor[name] === 'function'; });
90
+ };
91
+ /**
92
+ * Check input data matching to rule set
93
+ * @param {Record<string, any>} data Single value or key-value data set to compare
94
+ * @param {RuleSet} ruleSet
95
+ * @return {boolean | RuleError}
96
+ */
97
+ RuleManager.prototype.isRuleMatched = function (data, ruleSet, logEntry) {
98
+ 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
+ data: data,
101
+ ruleSet: ruleSet
102
+ });
103
+ if (logEntry) {
104
+ (_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
+ // Top OR level
107
+ var match;
108
+ if (Object.prototype.hasOwnProperty.call(ruleSet, 'OR') &&
109
+ jsSdkUtils.arrayNotEmpty(ruleSet === null || ruleSet === void 0 ? void 0 : ruleSet.OR)) {
110
+ for (var i = 0, l = ruleSet.OR.length; i < l; i++) {
111
+ match = this._processAND(data, ruleSet.OR[i]);
112
+ if (Object.values(jsSdkEnums.RuleError).includes(match)) {
113
+ (_f = (_e = this._loggerManager) === null || _e === void 0 ? void 0 : _e.info) === null || _f === void 0 ? void 0 : _f.call(_e, 'RuleManager.isRuleMatched()', logEntry || '', jsSdkEnums.ERROR_MESSAGES.RULE_ERROR);
114
+ }
115
+ else {
116
+ (_h = (_g = this._loggerManager) === null || _g === void 0 ? void 0 : _g.info) === null || _h === void 0 ? void 0 : _h.call(_g, 'RuleManager.isRuleMatched()', logEntry || '', match === false
117
+ ? jsSdkEnums.MESSAGES.RULE_NOT_MATCH
118
+ : jsSdkEnums.MESSAGES.RULE_MATCH.replace('#', String(i)));
119
+ }
120
+ if (match !== false) {
121
+ return match;
122
+ }
123
+ }
124
+ }
125
+ else {
126
+ (_k = (_j = this._loggerManager) === null || _j === void 0 ? void 0 : _j.warn) === null || _k === void 0 ? void 0 : _k.call(_j, 'RuleManager.isRuleMatched()', logEntry || '', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
127
+ }
128
+ return false;
129
+ };
130
+ /**
131
+ * Check is rule object valid
132
+ * @param {Rule} rule
133
+ * @return {boolean}
134
+ */
135
+ RuleManager.prototype.isValidRule = function (rule) {
136
+ 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
+ rule: rule
139
+ });
140
+ return (Object.prototype.hasOwnProperty.call(rule, 'matching') &&
141
+ typeof rule.matching === 'object' &&
142
+ Object.prototype.hasOwnProperty.call(rule.matching, 'match_type') &&
143
+ typeof rule.matching.match_type === 'string' &&
144
+ Object.prototype.hasOwnProperty.call(rule.matching, 'negated') &&
145
+ typeof rule.matching.negated === 'boolean' &&
146
+ Object.prototype.hasOwnProperty.call(rule, 'value'));
147
+ };
148
+ /**
149
+ * Process AND block of rule set. Return first false if found
150
+ * @param {Record<string, any>} data Single value or key-value data set to compare
151
+ * @param {RuleAnd} rulesSubset
152
+ * @return {boolean | RuleError}
153
+ * @private
154
+ */
155
+ RuleManager.prototype._processAND = function (data, rulesSubset) {
156
+ var _a, _b, _c, _d;
157
+ // Second AND level
158
+ var match;
159
+ if (Object.prototype.hasOwnProperty.call(rulesSubset, 'AND') &&
160
+ jsSdkUtils.arrayNotEmpty(rulesSubset === null || rulesSubset === void 0 ? void 0 : rulesSubset.AND)) {
161
+ for (var i = 0, l = rulesSubset.AND.length; i < l; i++) {
162
+ match = this._processORWHEN(data, rulesSubset.AND[i]);
163
+ if (match === false) {
164
+ return false;
165
+ }
166
+ }
167
+ if (match !== false) {
168
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.info) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager._processAND()', jsSdkEnums.MESSAGES.RULE_MATCH_AND);
169
+ }
170
+ return match;
171
+ }
172
+ else {
173
+ (_d = (_c = this._loggerManager) === null || _c === void 0 ? void 0 : _c.warn) === null || _d === void 0 ? void 0 : _d.call(_c, 'RuleManager._processAND()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
174
+ }
175
+ return false;
176
+ };
177
+ /**
178
+ * Process OR block of rule set. Return first true if found
179
+ * @param {Record<string, any>} data Single value or key-value data set to compare
180
+ * @param {RuleOrWhen} rulesSubset
181
+ * @return {boolean | RuleError}
182
+ * @private
183
+ */
184
+ RuleManager.prototype._processORWHEN = function (data, rulesSubset) {
185
+ var _a, _b;
186
+ // Third OR level. Called OR_WHEN.
187
+ var match;
188
+ if (Object.prototype.hasOwnProperty.call(rulesSubset, 'OR_WHEN') &&
189
+ jsSdkUtils.arrayNotEmpty(rulesSubset === null || rulesSubset === void 0 ? void 0 : rulesSubset.OR_WHEN)) {
190
+ for (var i = 0, l = rulesSubset.OR_WHEN.length; i < l; i++) {
191
+ match = this._processRuleItem(data, rulesSubset.OR_WHEN[i]);
192
+ if (match !== false) {
193
+ return match;
194
+ }
195
+ }
196
+ }
197
+ else {
198
+ (_b = (_a = this._loggerManager) === null || _a === void 0 ? void 0 : _a.warn) === null || _b === void 0 ? void 0 : _b.call(_a, 'RuleManager._processORWHEN()', jsSdkEnums.ERROR_MESSAGES.RULE_NOT_VALID);
199
+ }
200
+ return false;
201
+ };
202
+ /**
203
+ * Process single rule item
204
+ * @param {Record<string, any>} data Single value or key-value data set to compare
205
+ * @param {Rule} rule A single rule to compare
206
+ * @return {boolean | RuleError} Comparison result
207
+ * @private
208
+ */
209
+ RuleManager.prototype._processRuleItem = function (data, rule) {
210
+ var e_1, _a, e_2, _b;
211
+ var _c, _d, _e, _f, _g, _h, _j, _k;
212
+ if (this.isValidRule(rule)) {
213
+ try {
214
+ var negation = rule.matching.negated || false;
215
+ var matching = rule.matching.match_type;
216
+ if (this.getComparisonProcessorMethods().indexOf(matching) !== -1) {
217
+ if (typeof data === 'object') {
218
+ // Validate data key-value set.
219
+ if (data.constructor === Object) {
220
+ try {
221
+ // 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;
224
+ var k = this._keys_case_sensitive ? key : key.toLowerCase();
225
+ var rule_k = this._keys_case_sensitive
226
+ ? rule.key
227
+ : rule.key.toLowerCase();
228
+ if (k === rule_k) {
229
+ return this._comparisonProcessor[matching](data[key], rule.value, negation);
230
+ }
231
+ }
232
+ }
233
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
234
+ finally {
235
+ try {
236
+ if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
237
+ }
238
+ finally { if (e_1) throw e_1.error; }
239
+ }
240
+ }
241
+ else if (rule === null || rule === void 0 ? void 0 : rule.rule_type) {
242
+ // Rule object has to have `rule_type` field
243
+ (_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
+ try {
245
+ for (var _o = __values(Object.getOwnPropertyNames(data.constructor.prototype)), _p = _o.next(); !_p.done; _p = _o.next()) {
246
+ var method = _p.value;
247
+ if (method === 'constructor')
248
+ continue;
249
+ var rule_method = jsSdkUtils.camelCase("get ".concat(rule.rule_type.replace(/_/g, ' ')));
250
+ if (method === rule_method) {
251
+ var dataValue = data[method](rule);
252
+ if (Object.values(jsSdkEnums.RuleError).includes(dataValue))
253
+ return dataValue;
254
+ if (rule.rule_type === 'js_condition')
255
+ return dataValue;
256
+ return this._comparisonProcessor[matching](dataValue, rule.value, negation);
257
+ }
258
+ }
259
+ }
260
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
261
+ finally {
262
+ try {
263
+ if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
264
+ }
265
+ finally { if (e_2) throw e_2.error; }
266
+ }
267
+ }
268
+ }
269
+ 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
272
+ });
273
+ }
274
+ }
275
+ }
276
+ 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()', {
278
+ error: error.message
279
+ });
280
+ }
281
+ }
282
+ 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);
284
+ }
285
+ return false;
286
+ };
287
+ return RuleManager;
288
+ }());
289
+
290
+ exports.RuleManager = RuleManager;
291
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Convert JS SDK
3
+ * Version 1.0.0
4
+ * Copyright(c) 2020-2022 Convert Insights, Inc
5
+ * License Apache-2.0
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;
8
+ //# sourceMappingURL=index.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,8 @@
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 { LogManager } from './src/log-manager';
8
+ export { LogManagerInterface } from './src/interfaces/log-manager';
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Convert JS SDK
3
+ * Version 1.0.0
4
+ * Copyright(c) 2020 Convert Insights, Inc
5
+ * License Apache-2.0
6
+ */
7
+ import { LogLevel } from '@convertcom/js-sdk-enums';
8
+ import { LogMethodMapInterface } from './log-method-map';
9
+ export interface LogClientInterface {
10
+ sdk: any;
11
+ level: LogLevel;
12
+ mapper: LogMethodMapInterface;
13
+ }
@@ -0,0 +1,18 @@
1
+ /*!
2
+ * Convert JS SDK
3
+ * Version 1.0.0
4
+ * Copyright(c) 2020 Convert Insights, Inc
5
+ * License Apache-2.0
6
+ */
7
+ import { LogLevel } from '@convertcom/js-sdk-enums';
8
+ import { LogMethodMapInterface } from './log-method-map';
9
+ export interface LogManagerInterface {
10
+ log(level: LogLevel, ...args: any[]): void;
11
+ trace(...args: any[]): void;
12
+ debug(...args: any[]): void;
13
+ info(...args: any[]): void;
14
+ warn(...args: any[]): void;
15
+ error(...args: any[]): void;
16
+ addClient(client?: any, level?: LogLevel, methodMap?: LogMethodMapInterface): void;
17
+ setClientLevel(level: LogLevel, client?: any): void;
18
+ }
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Convert JS SDK
3
+ * Version 1.0.0
4
+ * Copyright(c) 2020 Convert Insights, Inc
5
+ * License Apache-2.0
6
+ */
7
+ import { LogMethod } from '@convertcom/js-sdk-enums';
8
+ export interface LogMethodMapInterface {
9
+ [LogMethod.LOG]?: string;
10
+ [LogMethod.DEBUG]?: string;
11
+ [LogMethod.INFO]?: string;
12
+ [LogMethod.WARN]?: string;
13
+ [LogMethod.ERROR]?: string;
14
+ [LogMethod.TRACE]?: string;
15
+ }