@absmartly/sdk-plugins 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 (177) hide show
  1. package/README.md +1101 -0
  2. package/dist/absmartly-cookie.min.js +1 -0
  3. package/dist/absmartly-dom-changes-core.min.js +1 -0
  4. package/dist/absmartly-dom-changes-lite.min.js +1 -0
  5. package/dist/absmartly-overrides-full.min.js +1 -0
  6. package/dist/absmartly-overrides-lite.min.js +1 -0
  7. package/dist/absmartly-sdk-plugins.min.js +1 -0
  8. package/dist/absmartly-vitals.min.js +1 -0
  9. package/es/cookies/CookiePlugin.js +410 -0
  10. package/es/cookies/CookiePlugin.js.map +1 -0
  11. package/es/cookies/index.js +2 -0
  12. package/es/cookies/index.js.map +1 -0
  13. package/es/core/DOMChangesPluginLite.js +1124 -0
  14. package/es/core/DOMChangesPluginLite.js.map +1 -0
  15. package/es/core/DOMManipulatorLite.js +410 -0
  16. package/es/core/DOMManipulatorLite.js.map +1 -0
  17. package/es/core/ExposureTracker.js +501 -0
  18. package/es/core/ExposureTracker.js.map +1 -0
  19. package/es/core/HTMLInjector.js +333 -0
  20. package/es/core/HTMLInjector.js.map +1 -0
  21. package/es/core/PendingChangeManager.js +440 -0
  22. package/es/core/PendingChangeManager.js.map +1 -0
  23. package/es/core/StyleSheetManager.js +78 -0
  24. package/es/core/StyleSheetManager.js.map +1 -0
  25. package/es/entries/cookie-only.js +10 -0
  26. package/es/entries/cookie-only.js.map +1 -0
  27. package/es/entries/dom-only.js +13 -0
  28. package/es/entries/dom-only.js.map +1 -0
  29. package/es/entries/dom-with-overrides-full.js +19 -0
  30. package/es/entries/dom-with-overrides-full.js.map +1 -0
  31. package/es/entries/dom-with-overrides-lite.js +15 -0
  32. package/es/entries/dom-with-overrides-lite.js.map +1 -0
  33. package/es/entries/overrides-full-only.js +15 -0
  34. package/es/entries/overrides-full-only.js.map +1 -0
  35. package/es/entries/overrides-lite-only.js +12 -0
  36. package/es/entries/overrides-lite-only.js.map +1 -0
  37. package/es/entries/vitals-only.js +10 -0
  38. package/es/entries/vitals-only.js.map +1 -0
  39. package/es/index.js +17 -0
  40. package/es/index.js.map +1 -0
  41. package/es/overrides/BrowserCookieAdapter.js +76 -0
  42. package/es/overrides/BrowserCookieAdapter.js.map +1 -0
  43. package/es/overrides/OverridesPlugin.js +903 -0
  44. package/es/overrides/OverridesPlugin.js.map +1 -0
  45. package/es/overrides/OverridesPluginFull.js +32 -0
  46. package/es/overrides/OverridesPluginFull.js.map +1 -0
  47. package/es/overrides/OverridesPluginLite.js +352 -0
  48. package/es/overrides/OverridesPluginLite.js.map +1 -0
  49. package/es/overrides/index.js +4 -0
  50. package/es/overrides/index.js.map +1 -0
  51. package/es/overrides/types.js +2 -0
  52. package/es/overrides/types.js.map +1 -0
  53. package/es/parsers/VariantExtractor.js +570 -0
  54. package/es/parsers/VariantExtractor.js.map +1 -0
  55. package/es/types/index.js +2 -0
  56. package/es/types/index.js.map +1 -0
  57. package/es/utils/URLMatcher.js +114 -0
  58. package/es/utils/URLMatcher.js.map +1 -0
  59. package/es/utils/debug.js +184 -0
  60. package/es/utils/debug.js.map +1 -0
  61. package/es/vitals/WebVitalsPlugin.js +379 -0
  62. package/es/vitals/WebVitalsPlugin.js.map +1 -0
  63. package/es/vitals/index.js +2 -0
  64. package/es/vitals/index.js.map +1 -0
  65. package/lib/cookies/CookiePlugin.d.ts +55 -0
  66. package/lib/cookies/CookiePlugin.js +413 -0
  67. package/lib/cookies/CookiePlugin.js.map +1 -0
  68. package/lib/cookies/index.d.ts +2 -0
  69. package/lib/cookies/index.js +6 -0
  70. package/lib/cookies/index.js.map +1 -0
  71. package/lib/core/DOMChangesPluginLite.d.ts +89 -0
  72. package/lib/core/DOMChangesPluginLite.js +1127 -0
  73. package/lib/core/DOMChangesPluginLite.js.map +1 -0
  74. package/lib/core/DOMManipulatorLite.d.ts +21 -0
  75. package/lib/core/DOMManipulatorLite.js +413 -0
  76. package/lib/core/DOMManipulatorLite.js.map +1 -0
  77. package/lib/core/ExposureTracker.d.ts +81 -0
  78. package/lib/core/ExposureTracker.js +504 -0
  79. package/lib/core/ExposureTracker.js.map +1 -0
  80. package/lib/core/HTMLInjector.d.ts +19 -0
  81. package/lib/core/HTMLInjector.js +336 -0
  82. package/lib/core/HTMLInjector.js.map +1 -0
  83. package/lib/core/PendingChangeManager.d.ts +31 -0
  84. package/lib/core/PendingChangeManager.js +443 -0
  85. package/lib/core/PendingChangeManager.js.map +1 -0
  86. package/lib/core/StyleSheetManager.d.ts +16 -0
  87. package/lib/core/StyleSheetManager.js +81 -0
  88. package/lib/core/StyleSheetManager.js.map +1 -0
  89. package/lib/entries/cookie-only.d.ts +8 -0
  90. package/lib/entries/cookie-only.js +12 -0
  91. package/lib/entries/cookie-only.js.map +1 -0
  92. package/lib/entries/dom-only.d.ts +9 -0
  93. package/lib/entries/dom-only.js +29 -0
  94. package/lib/entries/dom-only.js.map +1 -0
  95. package/lib/entries/dom-with-overrides-full.d.ts +15 -0
  96. package/lib/entries/dom-with-overrides-full.js +39 -0
  97. package/lib/entries/dom-with-overrides-full.js.map +1 -0
  98. package/lib/entries/dom-with-overrides-lite.d.ts +11 -0
  99. package/lib/entries/dom-with-overrides-lite.js +32 -0
  100. package/lib/entries/dom-with-overrides-lite.js.map +1 -0
  101. package/lib/entries/overrides-full-only.d.ts +11 -0
  102. package/lib/entries/overrides-full-only.js +33 -0
  103. package/lib/entries/overrides-full-only.js.map +1 -0
  104. package/lib/entries/overrides-lite-only.d.ts +8 -0
  105. package/lib/entries/overrides-lite-only.js +28 -0
  106. package/lib/entries/overrides-lite-only.js.map +1 -0
  107. package/lib/entries/vitals-only.d.ts +8 -0
  108. package/lib/entries/vitals-only.js +12 -0
  109. package/lib/entries/vitals-only.js.map +1 -0
  110. package/lib/index.d.ts +13 -0
  111. package/lib/index.js +34 -0
  112. package/lib/index.js.map +1 -0
  113. package/lib/overrides/BrowserCookieAdapter.d.ts +6 -0
  114. package/lib/overrides/BrowserCookieAdapter.js +79 -0
  115. package/lib/overrides/BrowserCookieAdapter.js.map +1 -0
  116. package/lib/overrides/OverridesPlugin.d.ts +33 -0
  117. package/lib/overrides/OverridesPlugin.js +906 -0
  118. package/lib/overrides/OverridesPlugin.js.map +1 -0
  119. package/lib/overrides/OverridesPluginFull.d.ts +9 -0
  120. package/lib/overrides/OverridesPluginFull.js +35 -0
  121. package/lib/overrides/OverridesPluginFull.js.map +1 -0
  122. package/lib/overrides/OverridesPluginLite.d.ts +27 -0
  123. package/lib/overrides/OverridesPluginLite.js +355 -0
  124. package/lib/overrides/OverridesPluginLite.js.map +1 -0
  125. package/lib/overrides/index.d.ts +3 -0
  126. package/lib/overrides/index.js +23 -0
  127. package/lib/overrides/index.js.map +1 -0
  128. package/lib/overrides/types.d.ts +43 -0
  129. package/lib/overrides/types.js +3 -0
  130. package/lib/overrides/types.js.map +1 -0
  131. package/lib/parsers/VariantExtractor.d.ts +49 -0
  132. package/lib/parsers/VariantExtractor.js +573 -0
  133. package/lib/parsers/VariantExtractor.js.map +1 -0
  134. package/lib/types/index.d.ts +177 -0
  135. package/lib/types/index.js +3 -0
  136. package/lib/types/index.js.map +1 -0
  137. package/lib/utils/URLMatcher.d.ts +20 -0
  138. package/lib/utils/URLMatcher.js +117 -0
  139. package/lib/utils/URLMatcher.js.map +1 -0
  140. package/lib/utils/debug.d.ts +41 -0
  141. package/lib/utils/debug.js +195 -0
  142. package/lib/utils/debug.js.map +1 -0
  143. package/lib/vitals/WebVitalsPlugin.d.ts +37 -0
  144. package/lib/vitals/WebVitalsPlugin.js +382 -0
  145. package/lib/vitals/WebVitalsPlugin.js.map +1 -0
  146. package/lib/vitals/index.d.ts +2 -0
  147. package/lib/vitals/index.js +6 -0
  148. package/lib/vitals/index.js.map +1 -0
  149. package/package.json +94 -0
  150. package/types/cookies/CookiePlugin.d.ts +55 -0
  151. package/types/cookies/index.d.ts +2 -0
  152. package/types/core/DOMChangesPluginLite.d.ts +89 -0
  153. package/types/core/DOMManipulatorLite.d.ts +21 -0
  154. package/types/core/ExposureTracker.d.ts +81 -0
  155. package/types/core/HTMLInjector.d.ts +19 -0
  156. package/types/core/PendingChangeManager.d.ts +31 -0
  157. package/types/core/StyleSheetManager.d.ts +16 -0
  158. package/types/entries/cookie-only.d.ts +8 -0
  159. package/types/entries/dom-only.d.ts +9 -0
  160. package/types/entries/dom-with-overrides-full.d.ts +15 -0
  161. package/types/entries/dom-with-overrides-lite.d.ts +11 -0
  162. package/types/entries/overrides-full-only.d.ts +11 -0
  163. package/types/entries/overrides-lite-only.d.ts +8 -0
  164. package/types/entries/vitals-only.d.ts +8 -0
  165. package/types/index.d.ts +13 -0
  166. package/types/overrides/BrowserCookieAdapter.d.ts +6 -0
  167. package/types/overrides/OverridesPlugin.d.ts +33 -0
  168. package/types/overrides/OverridesPluginFull.d.ts +9 -0
  169. package/types/overrides/OverridesPluginLite.d.ts +27 -0
  170. package/types/overrides/index.d.ts +3 -0
  171. package/types/overrides/types.d.ts +43 -0
  172. package/types/parsers/VariantExtractor.d.ts +49 -0
  173. package/types/types/index.d.ts +177 -0
  174. package/types/utils/URLMatcher.d.ts +20 -0
  175. package/types/utils/debug.d.ts +41 -0
  176. package/types/vitals/WebVitalsPlugin.d.ts +37 -0
  177. package/types/vitals/index.d.ts +2 -0
@@ -0,0 +1,114 @@
1
+ var URLMatcher = /** @class */ (function () {
2
+ function URLMatcher() {
3
+ }
4
+ /**
5
+ * Check if current URL matches the filter
6
+ */
7
+ URLMatcher.matches = function (filter, url) {
8
+ if (url === void 0) { url = window.location.href; }
9
+ // Normalize filter to URLFilterConfig
10
+ var config = this.normalizeFilter(filter);
11
+ // Extract the part of URL to match based on matchType
12
+ var urlPart = this.extractURLPart(url, config.matchType);
13
+ // Check exclusions first
14
+ if (config.exclude && this.matchesPatterns(config.exclude, urlPart, config.mode)) {
15
+ return false;
16
+ }
17
+ // Check inclusions
18
+ if (!config.include) {
19
+ return true; // No include property = match all
20
+ }
21
+ if (config.include.length === 0) {
22
+ return false; // Empty include array = match nothing (explicit "include nothing")
23
+ }
24
+ return this.matchesPatterns(config.include, urlPart, config.mode);
25
+ };
26
+ /**
27
+ * Extract the relevant part of the URL based on matchType
28
+ */
29
+ URLMatcher.extractURLPart = function (url, matchType) {
30
+ if (matchType === void 0) { matchType = 'path'; }
31
+ try {
32
+ var urlObj = new URL(url);
33
+ switch (matchType) {
34
+ case 'full-url':
35
+ // Complete URL including protocol, domain, path, query, and hash
36
+ return urlObj.href;
37
+ case 'path':
38
+ // Path + hash (default behavior - most common use case)
39
+ return urlObj.pathname + urlObj.hash;
40
+ case 'domain':
41
+ // Just the hostname (e.g., 'example.com' or 'www.example.com')
42
+ return urlObj.hostname;
43
+ case 'query':
44
+ // Just query parameters (e.g., '?id=123&ref=home')
45
+ return urlObj.search;
46
+ case 'hash':
47
+ // Just hash fragment (e.g., '#section')
48
+ return urlObj.hash;
49
+ default:
50
+ return urlObj.pathname + urlObj.hash;
51
+ }
52
+ }
53
+ catch (error) {
54
+ // If URL parsing fails, return original string
55
+ console.error("[ABsmartly] Failed to parse URL: ".concat(url), error);
56
+ return url;
57
+ }
58
+ };
59
+ URLMatcher.matchesPatterns = function (patterns, url, mode) {
60
+ var _this = this;
61
+ if (mode === void 0) { mode = 'simple'; }
62
+ return patterns.some(function (pattern) {
63
+ if (mode === 'regex') {
64
+ try {
65
+ return new RegExp(pattern).test(url);
66
+ }
67
+ catch (error) {
68
+ console.error("[ABsmartly] Invalid regex pattern: ".concat(pattern), error);
69
+ return false;
70
+ }
71
+ }
72
+ return _this.matchSimplePattern(pattern, url);
73
+ });
74
+ };
75
+ URLMatcher.matchSimplePattern = function (pattern, url) {
76
+ // Convert simple pattern to regex
77
+ // * becomes .*
78
+ // ? becomes .
79
+ // Escape other regex special chars
80
+ var regexPattern = pattern
81
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars except * and ?
82
+ .replace(/\*/g, '.*') // * to .*
83
+ .replace(/\?/g, '.'); // ? to .
84
+ try {
85
+ return new RegExp("^".concat(regexPattern, "$")).test(url);
86
+ }
87
+ catch (error) {
88
+ console.error("[ABsmartly] Invalid pattern: ".concat(pattern), error);
89
+ return false;
90
+ }
91
+ };
92
+ URLMatcher.normalizeFilter = function (filter) {
93
+ if (typeof filter === 'string') {
94
+ return { include: [filter], exclude: [], mode: 'simple', matchType: 'path' };
95
+ }
96
+ if (Array.isArray(filter)) {
97
+ return {
98
+ include: filter.length > 0 ? filter : undefined,
99
+ exclude: [],
100
+ mode: 'simple',
101
+ matchType: 'path',
102
+ };
103
+ }
104
+ return {
105
+ include: filter.include,
106
+ exclude: filter.exclude || [],
107
+ mode: filter.mode || 'simple',
108
+ matchType: filter.matchType || 'path',
109
+ };
110
+ };
111
+ return URLMatcher;
112
+ }());
113
+ export { URLMatcher };
114
+ //# sourceMappingURL=URLMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"URLMatcher.js","sourceRoot":"","sources":["../../src/utils/URLMatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __read = (this && this.__read) || function (o, n) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
14
+ if (!m) return o;
15
+ var i = m.call(o), r, ar = [], e;
16
+ try {
17
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
+ }
19
+ catch (error) { e = { error: error }; }
20
+ finally {
21
+ try {
22
+ if (r && !r.done && (m = i["return"])) m.call(i);
23
+ }
24
+ finally { if (e) throw e.error; }
25
+ }
26
+ return ar;
27
+ };
28
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
+ if (ar || !(i in from)) {
31
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
+ ar[i] = from[i];
33
+ }
34
+ }
35
+ return to.concat(ar || Array.prototype.slice.call(from));
36
+ };
37
+ // Build-time debug flag - true in development, false in production
38
+ export var DEBUG = typeof __DEBUG__ !== 'undefined' ? __DEBUG__ : false;
39
+ /**
40
+ * Logs debug messages only when DEBUG flag is true
41
+ * This function will be completely removed in production builds
42
+ */
43
+ export function logDebug() {
44
+ var args = [];
45
+ for (var _i = 0; _i < arguments.length; _i++) {
46
+ args[_i] = arguments[_i];
47
+ }
48
+ if (DEBUG) {
49
+ // Handle old format with message and context
50
+ if (args.length === 2 && typeof args[0] === 'string' && typeof args[1] === 'object') {
51
+ var _a = __read(args, 2), message = _a[0], context = _a[1];
52
+ // Skip repetitive messages
53
+ if (message.includes('Original state already stored'))
54
+ return;
55
+ if (message.includes('State store operation'))
56
+ return;
57
+ if (message.includes('Performance:') && (context === null || context === void 0 ? void 0 : context.duration) && context.duration < 5)
58
+ return;
59
+ if (message.includes('Message sent:') || message.includes('Message received:'))
60
+ return;
61
+ var timestamp = new Date().toISOString();
62
+ var prefix = '[ABsmartly Debug]';
63
+ console.log("".concat(prefix, " [").concat(timestamp, "] ").concat(message), context);
64
+ }
65
+ else if (args.length === 1 && typeof args[0] === 'string') {
66
+ // Single string message
67
+ var message = args[0];
68
+ // Skip repetitive messages
69
+ if (message.includes('Original state already stored'))
70
+ return;
71
+ if (message.includes('State store operation'))
72
+ return;
73
+ if (message.includes('Message sent:') || message.includes('Message received:'))
74
+ return;
75
+ var timestamp = new Date().toISOString();
76
+ var prefix = '[ABsmartly Debug]';
77
+ console.log("".concat(prefix, " [").concat(timestamp, "] ").concat(message));
78
+ }
79
+ else {
80
+ // Direct console.log replacement - just pass through all arguments
81
+ console.log.apply(console, __spreadArray([], __read(args), false));
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Logs detailed change application
87
+ */
88
+ export function logChangeApplication(experimentName, selector, changeType, elementsAffected, success) {
89
+ if (DEBUG) {
90
+ var status_1 = success ? '✓' : '✗';
91
+ var message = "".concat(status_1, " Applied ").concat(changeType, " change to ").concat(elementsAffected, " element(s)");
92
+ logDebug(message, {
93
+ experimentName: experimentName,
94
+ selector: selector,
95
+ changeType: changeType,
96
+ elementsCount: elementsAffected,
97
+ success: success,
98
+ });
99
+ }
100
+ }
101
+ /**
102
+ * Logs change removal/restoration
103
+ */
104
+ export function logChangeRemoval(experimentName, selector, changeType, elementsRestored) {
105
+ if (DEBUG) {
106
+ var message = "Restored ".concat(elementsRestored, " element(s) to original state");
107
+ logDebug(message, {
108
+ experimentName: experimentName,
109
+ selector: selector,
110
+ changeType: changeType,
111
+ elementsCount: elementsRestored,
112
+ action: 'restore',
113
+ });
114
+ }
115
+ }
116
+ /**
117
+ * Logs experiment summary
118
+ */
119
+ export function logExperimentSummary(experimentName, totalChanges, successfulChanges, pendingChanges) {
120
+ if (DEBUG) {
121
+ var message = "Experiment \"".concat(experimentName, "\" summary");
122
+ logDebug(message, {
123
+ experimentName: experimentName,
124
+ totalChanges: totalChanges,
125
+ successfulChanges: successfulChanges,
126
+ pendingChanges: pendingChanges,
127
+ successRate: totalChanges > 0 ? "".concat(Math.round((successfulChanges / totalChanges) * 100), "%") : 'N/A',
128
+ });
129
+ }
130
+ }
131
+ /**
132
+ * Logs state management operations
133
+ */
134
+ export function logStateOperation(operation, selector, changeType, experimentName) {
135
+ if (DEBUG) {
136
+ var message = "State ".concat(operation, " operation");
137
+ logDebug(message, {
138
+ operation: operation,
139
+ selector: selector,
140
+ changeType: changeType,
141
+ experimentName: experimentName,
142
+ });
143
+ }
144
+ }
145
+ /**
146
+ * Logs visibility tracking events
147
+ */
148
+ export function logVisibilityEvent(experimentName, element, triggered) {
149
+ if (DEBUG) {
150
+ var message = triggered
151
+ ? 'Element became visible - experiment triggered'
152
+ : 'Element visibility changed';
153
+ logDebug(message, {
154
+ experimentName: experimentName,
155
+ selector: element.className || element.id || element.tagName,
156
+ triggered: triggered,
157
+ action: 'visibility',
158
+ });
159
+ }
160
+ }
161
+ /**
162
+ * Logs message bridge communication
163
+ */
164
+ export function logMessage(direction, messageType, payload) {
165
+ if (DEBUG) {
166
+ var message = "Message ".concat(direction, ": ").concat(messageType);
167
+ logDebug(message, {
168
+ direction: direction,
169
+ messageType: messageType,
170
+ payload: payload,
171
+ bridge: 'extension',
172
+ });
173
+ }
174
+ }
175
+ /**
176
+ * Logs performance metrics
177
+ */
178
+ export function logPerformance(operation, duration, details) {
179
+ if (DEBUG) {
180
+ var message = "Performance: ".concat(operation, " took ").concat(duration, "ms");
181
+ logDebug(message, __assign({ operation: operation, duration: duration, performance: true }, details));
182
+ }
183
+ }
184
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"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"}