@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,440 @@
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 __values = (this && this.__values) || function(o) {
13
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
14
+ if (m) return m.call(o);
15
+ if (o && typeof o.length === "number") return {
16
+ next: function () {
17
+ if (o && i >= o.length) o = void 0;
18
+ return { value: o && o[i++], done: !o };
19
+ }
20
+ };
21
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
22
+ };
23
+ var __read = (this && this.__read) || function (o, n) {
24
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
25
+ if (!m) return o;
26
+ var i = m.call(o), r, ar = [], e;
27
+ try {
28
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
29
+ }
30
+ catch (error) { e = { error: error }; }
31
+ finally {
32
+ try {
33
+ if (r && !r.done && (m = i["return"])) m.call(i);
34
+ }
35
+ finally { if (e) throw e.error; }
36
+ }
37
+ return ar;
38
+ };
39
+ import { logDebug } from '../utils/debug';
40
+ var PendingChangeManager = /** @class */ (function () {
41
+ function PendingChangeManager(applyFn, debug) {
42
+ if (debug === void 0) { debug = false; }
43
+ this.applyFn = applyFn;
44
+ this.pending = new Map();
45
+ this.observers = new Map();
46
+ this.appliedSelectors = new Set();
47
+ this.batchTimer = null;
48
+ this.batchedWork = new Set();
49
+ this.debug = debug;
50
+ }
51
+ PendingChangeManager.prototype.addPending = function (pendingChange) {
52
+ var change = pendingChange.change, observerRoot = pendingChange.observerRoot;
53
+ // If observerRoot is specified but doesn't exist, treat as no observerRoot
54
+ var effectiveRoot = observerRoot;
55
+ if (observerRoot && !document.querySelector(observerRoot)) {
56
+ if (this.debug) {
57
+ logDebug('[ABsmartly] Observer root not found, using document:', observerRoot);
58
+ }
59
+ effectiveRoot = undefined;
60
+ }
61
+ var key = "".concat(change.selector, "-").concat(effectiveRoot || 'document');
62
+ if (this.debug) {
63
+ logDebug('[ABsmartly] Adding pending change for selector:', change.selector);
64
+ }
65
+ // Check if element already exists
66
+ var root = this.getObserverRoot(effectiveRoot);
67
+ var existing = root.querySelector(change.selector);
68
+ if (existing) {
69
+ // Apply immediately if element exists
70
+ this.applyChange(existing, __assign(__assign({}, pendingChange), { observerRoot: effectiveRoot }));
71
+ return;
72
+ }
73
+ // Add to pending
74
+ var list = this.pending.get(key) || [];
75
+ list.push(__assign(__assign({}, pendingChange), { observerRoot: effectiveRoot }));
76
+ this.pending.set(key, list);
77
+ // Ensure observer for this root
78
+ this.ensureObserver(effectiveRoot);
79
+ };
80
+ PendingChangeManager.prototype.removePending = function (selector, experimentName, observerRoot) {
81
+ var key = "".concat(selector, "-").concat(observerRoot || 'document');
82
+ var list = this.pending.get(key);
83
+ if (list) {
84
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName; });
85
+ if (filtered.length === 0) {
86
+ this.pending.delete(key);
87
+ }
88
+ else {
89
+ this.pending.set(key, filtered);
90
+ }
91
+ }
92
+ // Check if we should disconnect observer
93
+ this.checkObserverCleanup(observerRoot);
94
+ };
95
+ PendingChangeManager.prototype.removeAllPending = function (experimentName) {
96
+ var e_1, _a;
97
+ try {
98
+ // Remove all pending changes for this experiment
99
+ for (var _b = __values(this.pending.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
100
+ var _d = __read(_c.value, 2), key = _d[0], list = _d[1];
101
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName; });
102
+ if (filtered.length === 0) {
103
+ this.pending.delete(key);
104
+ }
105
+ else {
106
+ this.pending.set(key, filtered);
107
+ }
108
+ }
109
+ }
110
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
111
+ finally {
112
+ try {
113
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
114
+ }
115
+ finally { if (e_1) throw e_1.error; }
116
+ }
117
+ // Clean up observers if needed
118
+ this.cleanupObservers();
119
+ };
120
+ PendingChangeManager.prototype.ensureObserver = function (observerRoot) {
121
+ var _this = this;
122
+ var rootKey = observerRoot || 'document';
123
+ if (this.observers.has(rootKey)) {
124
+ return;
125
+ }
126
+ var root = this.getObserverRoot(observerRoot);
127
+ var observer = new MutationObserver(function (mutations) {
128
+ _this.handleMutations(mutations, observerRoot);
129
+ });
130
+ observer.observe(root, {
131
+ childList: true,
132
+ subtree: true,
133
+ });
134
+ this.observers.set(rootKey, observer);
135
+ if (this.debug) {
136
+ logDebug('[ABsmartly] Started observer for root:', rootKey);
137
+ }
138
+ };
139
+ PendingChangeManager.prototype.handleMutations = function (mutations, observerRoot) {
140
+ var e_2, _a, e_3, _b;
141
+ var _this = this;
142
+ var work = [];
143
+ try {
144
+ for (var mutations_1 = __values(mutations), mutations_1_1 = mutations_1.next(); !mutations_1_1.done; mutations_1_1 = mutations_1.next()) {
145
+ var mutation = mutations_1_1.value;
146
+ var _loop_1 = function (node) {
147
+ var e_4, _e, e_5, _f;
148
+ if (!(node instanceof Element))
149
+ return "continue";
150
+ // Check all pending selectors for this root
151
+ var rootKey = observerRoot || 'document';
152
+ try {
153
+ for (var _g = (e_4 = void 0, __values(this_1.pending.entries())), _h = _g.next(); !_h.done; _h = _g.next()) {
154
+ var _j = __read(_h.value, 2), key = _j[0], pendingList = _j[1];
155
+ if (!key.endsWith("-".concat(rootKey)))
156
+ continue;
157
+ var _loop_2 = function (pending_1) {
158
+ var change = pending_1.change;
159
+ // Check if node matches selector
160
+ if (node.matches(change.selector)) {
161
+ work.push(function () { return _this.applyChange(node, pending_1); });
162
+ return "continue";
163
+ }
164
+ // Check descendants
165
+ var found = node.querySelectorAll(change.selector);
166
+ found.forEach(function (el) {
167
+ work.push(function () { return _this.applyChange(el, pending_1); });
168
+ });
169
+ };
170
+ try {
171
+ for (var pendingList_1 = (e_5 = void 0, __values(pendingList)), pendingList_1_1 = pendingList_1.next(); !pendingList_1_1.done; pendingList_1_1 = pendingList_1.next()) {
172
+ var pending_1 = pendingList_1_1.value;
173
+ _loop_2(pending_1);
174
+ }
175
+ }
176
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
177
+ finally {
178
+ try {
179
+ if (pendingList_1_1 && !pendingList_1_1.done && (_f = pendingList_1.return)) _f.call(pendingList_1);
180
+ }
181
+ finally { if (e_5) throw e_5.error; }
182
+ }
183
+ }
184
+ }
185
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
186
+ finally {
187
+ try {
188
+ if (_h && !_h.done && (_e = _g.return)) _e.call(_g);
189
+ }
190
+ finally { if (e_4) throw e_4.error; }
191
+ }
192
+ };
193
+ var this_1 = this;
194
+ try {
195
+ for (var _c = (e_3 = void 0, __values(mutation.addedNodes)), _d = _c.next(); !_d.done; _d = _c.next()) {
196
+ var node = _d.value;
197
+ _loop_1(node);
198
+ }
199
+ }
200
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
201
+ finally {
202
+ try {
203
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
204
+ }
205
+ finally { if (e_3) throw e_3.error; }
206
+ }
207
+ }
208
+ }
209
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
210
+ finally {
211
+ try {
212
+ if (mutations_1_1 && !mutations_1_1.done && (_a = mutations_1.return)) _a.call(mutations_1);
213
+ }
214
+ finally { if (e_2) throw e_2.error; }
215
+ }
216
+ // Batch the work
217
+ if (work.length > 0) {
218
+ this.batchWork(work);
219
+ }
220
+ };
221
+ PendingChangeManager.prototype.batchWork = function (work) {
222
+ var _this = this;
223
+ // Add work to batch
224
+ work.forEach(function (fn) { return _this.batchedWork.add(fn); });
225
+ // Clear existing timer
226
+ if (this.batchTimer) {
227
+ clearTimeout(this.batchTimer);
228
+ }
229
+ // Set new timer (32ms for ~2 frames)
230
+ this.batchTimer = setTimeout(function () {
231
+ _this.processBatchedWork();
232
+ }, 32);
233
+ };
234
+ PendingChangeManager.prototype.processBatchedWork = function () {
235
+ var work = Array.from(this.batchedWork);
236
+ this.batchedWork.clear();
237
+ this.batchTimer = null;
238
+ if (this.debug && work.length > 0) {
239
+ logDebug('[ABsmartly] Processing batched work:', work.length, 'items');
240
+ }
241
+ // Apply all changes
242
+ work.forEach(function (fn) { return fn(); });
243
+ };
244
+ PendingChangeManager.prototype.applyChange = function (element, pendingChange) {
245
+ var change = pendingChange.change, experimentName = pendingChange.experimentName, observerRoot = pendingChange.observerRoot;
246
+ var key = "".concat(change.selector, "-").concat(observerRoot || 'document', "-").concat(experimentName);
247
+ // Skip if already applied
248
+ if (this.appliedSelectors.has(key)) {
249
+ return;
250
+ }
251
+ if (this.debug) {
252
+ logDebug('[ABsmartly] Applying pending change to element:', change.selector);
253
+ }
254
+ // Apply the change
255
+ var success = this.applyFn(change, experimentName, element);
256
+ if (success) {
257
+ // Mark as applied
258
+ this.appliedSelectors.add(key);
259
+ // Remove from pending
260
+ var pendingKey = "".concat(change.selector, "-").concat(observerRoot || 'document');
261
+ var list = this.pending.get(pendingKey);
262
+ if (list) {
263
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName || p.change.selector !== change.selector; });
264
+ if (filtered.length === 0) {
265
+ this.pending.delete(pendingKey);
266
+ }
267
+ else {
268
+ this.pending.set(pendingKey, filtered);
269
+ }
270
+ }
271
+ // Check if observer should be cleaned up
272
+ this.checkObserverCleanup(observerRoot);
273
+ }
274
+ };
275
+ PendingChangeManager.prototype.getObserverRoot = function (observerRoot) {
276
+ if (!observerRoot) {
277
+ return document.documentElement;
278
+ }
279
+ var root = document.querySelector(observerRoot);
280
+ if (!root) {
281
+ // If observer root doesn't exist, fall back to document
282
+ return document.documentElement;
283
+ }
284
+ return root;
285
+ };
286
+ PendingChangeManager.prototype.checkObserverCleanup = function (observerRoot) {
287
+ var e_6, _a;
288
+ var rootKey = observerRoot || 'document';
289
+ // Check if there are any pending changes for this root
290
+ var hasPending = false;
291
+ try {
292
+ for (var _b = __values(this.pending.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
293
+ var key = _c.value;
294
+ if (key.endsWith("-".concat(rootKey))) {
295
+ hasPending = true;
296
+ break;
297
+ }
298
+ }
299
+ }
300
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
301
+ finally {
302
+ try {
303
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
304
+ }
305
+ finally { if (e_6) throw e_6.error; }
306
+ }
307
+ // Disconnect observer if no pending changes
308
+ if (!hasPending) {
309
+ var observer = this.observers.get(rootKey);
310
+ if (observer) {
311
+ observer.disconnect();
312
+ this.observers.delete(rootKey);
313
+ if (this.debug) {
314
+ logDebug('[ABsmartly] Disconnected observer for root:', rootKey);
315
+ }
316
+ }
317
+ }
318
+ };
319
+ PendingChangeManager.prototype.cleanupObservers = function () {
320
+ var e_7, _a, e_8, _b;
321
+ var _this = this;
322
+ // Check each observer
323
+ var rootsToClean = [];
324
+ try {
325
+ for (var _c = __values(this.observers.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
326
+ var rootKey = _d.value;
327
+ var hasPending = false;
328
+ try {
329
+ for (var _e = (e_8 = void 0, __values(this.pending.keys())), _f = _e.next(); !_f.done; _f = _e.next()) {
330
+ var key = _f.value;
331
+ if (key.endsWith("-".concat(rootKey))) {
332
+ hasPending = true;
333
+ break;
334
+ }
335
+ }
336
+ }
337
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
338
+ finally {
339
+ try {
340
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
341
+ }
342
+ finally { if (e_8) throw e_8.error; }
343
+ }
344
+ if (!hasPending) {
345
+ rootsToClean.push(rootKey);
346
+ }
347
+ }
348
+ }
349
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
350
+ finally {
351
+ try {
352
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
353
+ }
354
+ finally { if (e_7) throw e_7.error; }
355
+ }
356
+ // Clean up observers with no pending changes
357
+ rootsToClean.forEach(function (rootKey) {
358
+ var observer = _this.observers.get(rootKey);
359
+ if (observer) {
360
+ observer.disconnect();
361
+ _this.observers.delete(rootKey);
362
+ if (_this.debug) {
363
+ logDebug('[ABsmartly] Cleaned up observer for root:', rootKey);
364
+ }
365
+ }
366
+ });
367
+ };
368
+ PendingChangeManager.prototype.destroy = function () {
369
+ var e_9, _a;
370
+ // Clear batch timer
371
+ if (this.batchTimer) {
372
+ clearTimeout(this.batchTimer);
373
+ this.batchTimer = null;
374
+ }
375
+ try {
376
+ // Disconnect all observers
377
+ for (var _b = __values(this.observers.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
378
+ var observer = _c.value;
379
+ observer.disconnect();
380
+ }
381
+ }
382
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
383
+ finally {
384
+ try {
385
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
386
+ }
387
+ finally { if (e_9) throw e_9.error; }
388
+ }
389
+ this.observers.clear();
390
+ this.pending.clear();
391
+ this.appliedSelectors.clear();
392
+ this.batchedWork.clear();
393
+ if (this.debug) {
394
+ logDebug('[ABsmartly] PendingChangeManager destroyed');
395
+ }
396
+ };
397
+ PendingChangeManager.prototype.getPendingCount = function () {
398
+ var e_10, _a;
399
+ var count = 0;
400
+ try {
401
+ for (var _b = __values(this.pending.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
402
+ var list = _c.value;
403
+ count += list.length;
404
+ }
405
+ }
406
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
407
+ finally {
408
+ try {
409
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
410
+ }
411
+ finally { if (e_10) throw e_10.error; }
412
+ }
413
+ return count;
414
+ };
415
+ PendingChangeManager.prototype.getAppliedCount = function () {
416
+ return this.appliedSelectors.size;
417
+ };
418
+ PendingChangeManager.prototype.hasPendingForExperiment = function (experimentName) {
419
+ var e_11, _a;
420
+ try {
421
+ for (var _b = __values(this.pending.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
422
+ var list = _c.value;
423
+ if (list.some(function (p) { return p.experimentName === experimentName; })) {
424
+ return true;
425
+ }
426
+ }
427
+ }
428
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
429
+ finally {
430
+ try {
431
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
432
+ }
433
+ finally { if (e_11) throw e_11.error; }
434
+ }
435
+ return false;
436
+ };
437
+ return PendingChangeManager;
438
+ }());
439
+ export { PendingChangeManager };
440
+ //# sourceMappingURL=PendingChangeManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingChangeManager.js","sourceRoot":"","sources":["../../src/core/PendingChangeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { logDebug } from '../utils/debug';
2
+ var StyleSheetManager = /** @class */ (function () {
3
+ function StyleSheetManager(id, debug) {
4
+ if (debug === void 0) { debug = false; }
5
+ this.id = id;
6
+ this.styleEl = null;
7
+ this.rules = new Map(); // ruleKey -> css text
8
+ this.debug = debug;
9
+ }
10
+ StyleSheetManager.prototype.ensure = function () {
11
+ if (!this.styleEl || !document.head.contains(this.styleEl)) {
12
+ this.styleEl = document.getElementById(this.id);
13
+ if (!this.styleEl) {
14
+ var el = document.createElement('style');
15
+ el.id = this.id;
16
+ el.setAttribute('data-absmartly-styles', 'true');
17
+ document.head.appendChild(el);
18
+ this.styleEl = el;
19
+ if (this.debug) {
20
+ logDebug("[ABsmartly] Created stylesheet: ".concat(this.id));
21
+ }
22
+ }
23
+ }
24
+ return this.styleEl;
25
+ };
26
+ StyleSheetManager.prototype.setRule = function (key, css) {
27
+ this.rules.set(key, css);
28
+ this.render();
29
+ if (this.debug) {
30
+ logDebug("[ABsmartly] Set CSS rule for ".concat(key));
31
+ }
32
+ };
33
+ StyleSheetManager.prototype.deleteRule = function (key) {
34
+ if (this.rules.delete(key)) {
35
+ this.render();
36
+ if (this.debug) {
37
+ logDebug("[ABsmartly] Deleted CSS rule for ".concat(key));
38
+ }
39
+ }
40
+ };
41
+ StyleSheetManager.prototype.hasRule = function (key) {
42
+ return this.rules.has(key);
43
+ };
44
+ StyleSheetManager.prototype.clear = function () {
45
+ var hadRules = this.rules.size > 0;
46
+ this.rules.clear();
47
+ if (hadRules) {
48
+ this.render();
49
+ if (this.debug) {
50
+ logDebug("[ABsmartly] Cleared all CSS rules from ".concat(this.id));
51
+ }
52
+ }
53
+ };
54
+ StyleSheetManager.prototype.destroy = function () {
55
+ this.clear();
56
+ if (this.styleEl && document.head.contains(this.styleEl)) {
57
+ this.styleEl.remove();
58
+ this.styleEl = null;
59
+ if (this.debug) {
60
+ logDebug("[ABsmartly] Destroyed stylesheet: ".concat(this.id));
61
+ }
62
+ }
63
+ };
64
+ StyleSheetManager.prototype.render = function () {
65
+ var el = this.ensure();
66
+ var cssText = Array.from(this.rules.values()).join('\n\n');
67
+ el.textContent = cssText;
68
+ };
69
+ StyleSheetManager.prototype.getRulesCount = function () {
70
+ return this.rules.size;
71
+ };
72
+ StyleSheetManager.prototype.getCssText = function () {
73
+ return Array.from(this.rules.values()).join('\n\n');
74
+ };
75
+ return StyleSheetManager;
76
+ }());
77
+ export { StyleSheetManager };
78
+ //# sourceMappingURL=StyleSheetManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleSheetManager.js","sourceRoot":"","sources":["../../src/core/StyleSheetManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C;IAKE,2BACU,EAAU,EAClB,KAAa;QAAb,sBAAA,EAAA,aAAa;QADL,OAAE,GAAF,EAAE,CAAQ;QALZ,YAAO,GAA4B,IAAI,CAAC;QACxC,UAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,sBAAsB;QAO/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,kCAAM,GAAN;QACE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAqB,CAAC;YAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3C,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAChB,EAAE,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAElB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,QAAQ,CAAC,0CAAmC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,mCAAO,GAAP,UAAQ,GAAW,EAAE,GAAW;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,uCAAgC,GAAG,CAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,sCAAU,GAAV,UAAW,GAAW;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,2CAAoC,GAAG,CAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAO,GAAP,UAAQ,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,iCAAK,GAAL;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;YAEd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,iDAA0C,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAO,GAAP;QACE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,4CAAqC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kCAAM,GAAd;QACE,IAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,yCAAa,GAAb;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,sCAAU,GAAV;QACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACH,wBAAC;AAAD,CAAC,AA5FD,IA4FC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Entry point for CookiePlugin only
3
+ * Standalone cookie management and tracking functionality
4
+ */
5
+ import { CookiePlugin } from '../cookies/CookiePlugin';
6
+ // Export the plugin
7
+ export { CookiePlugin };
8
+ // Default export for UMD builds
9
+ export default CookiePlugin;
10
+ //# sourceMappingURL=cookie-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-only.js","sourceRoot":"","sources":["../../src/entries/cookie-only.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,gCAAgC;AAChC,eAAe,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Entry point for DOM Changes Plugin only
3
+ * Smallest bundle - just core DOM manipulation functionality
4
+ */
5
+ import { DOMChangesPluginLite } from '../core/DOMChangesPluginLite';
6
+ // Re-export types for convenience
7
+ export * from '../types';
8
+ // Export only the DOM Changes Plugin Lite
9
+ export { DOMChangesPluginLite };
10
+ export { DOMChangesPluginLite as DOMChangesPlugin }; // Alias for backward compatibility
11
+ // Default export for UMD builds
12
+ export default DOMChangesPluginLite;
13
+ //# sourceMappingURL=dom-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-only.js","sourceRoot":"","sources":["../../src/entries/dom-only.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,kCAAkC;AAClC,cAAc,UAAU,CAAC;AAEzB,0CAA0C;AAC1C,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,OAAO,EAAE,oBAAoB,IAAI,gBAAgB,EAAE,CAAC,CAAC,mCAAmC;AAExF,gCAAgC;AAChC,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Entry point for DOM Changes Plugin + Overrides Full
3
+ * Full bundle - DOM manipulation + full override capabilities with API support
4
+ */
5
+ import { DOMChangesPluginLite } from '../core/DOMChangesPluginLite';
6
+ import { OverridesPluginFull } from '../overrides/OverridesPluginFull';
7
+ import { BrowserCookieAdapter } from '../overrides/BrowserCookieAdapter';
8
+ import { CookiePlugin } from '../cookies/CookiePlugin';
9
+ import { WebVitalsPlugin } from '../vitals/WebVitalsPlugin';
10
+ // Re-export types
11
+ export * from '../types';
12
+ export * from '../overrides/types';
13
+ // Export the plugins and adapter
14
+ export { DOMChangesPluginLite, DOMChangesPluginLite as DOMChangesPlugin, // Alias for backward compatibility
15
+ OverridesPluginFull, OverridesPluginFull as OverridesPlugin, // Alias for backward compatibility
16
+ BrowserCookieAdapter, CookiePlugin, WebVitalsPlugin, };
17
+ // Default export for UMD builds
18
+ export default DOMChangesPluginLite;
19
+ //# sourceMappingURL=dom-with-overrides-full.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-with-overrides-full.js","sourceRoot":"","sources":["../../src/entries/dom-with-overrides-full.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,kBAAkB;AAClB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAEnC,iCAAiC;AACjC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,IAAI,gBAAgB,EAAE,mCAAmC;AAC7E,mBAAmB,EACnB,mBAAmB,IAAI,eAAe,EAAE,mCAAmC;AAC3E,oBAAoB,EACpB,YAAY,EACZ,eAAe,GAChB,CAAC;AAEF,gCAAgC;AAChC,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Entry point for DOM Changes Plugin + Overrides Lite
3
+ * Medium bundle - DOM manipulation + lightweight override detection
4
+ */
5
+ import { DOMChangesPluginLite } from '../core/DOMChangesPluginLite';
6
+ import { OverridesPluginLite } from '../overrides/OverridesPluginLite';
7
+ // Re-export types
8
+ export * from '../types';
9
+ export * from '../overrides/types';
10
+ // Export the plugins
11
+ export { DOMChangesPluginLite, OverridesPluginLite };
12
+ export { DOMChangesPluginLite as DOMChangesPlugin }; // Alias for backward compatibility
13
+ // Default export for UMD builds
14
+ export default DOMChangesPluginLite;
15
+ //# sourceMappingURL=dom-with-overrides-lite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-with-overrides-lite.js","sourceRoot":"","sources":["../../src/entries/dom-with-overrides-lite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,kBAAkB;AAClB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AAEnC,qBAAqB;AACrB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;AACrD,OAAO,EAAE,oBAAoB,IAAI,gBAAgB,EAAE,CAAC,CAAC,mCAAmC;AAExF,gCAAgC;AAChC,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Entry point for Overrides Full Plugin only
3
+ * Full override capabilities with API support, no DOM manipulation
4
+ */
5
+ import { OverridesPluginFull } from '../overrides/OverridesPluginFull';
6
+ import { BrowserCookieAdapter } from '../overrides/BrowserCookieAdapter';
7
+ import { CookiePlugin } from '../cookies/CookiePlugin';
8
+ // Re-export types
9
+ export * from '../overrides/types';
10
+ // Export the plugin and adapter
11
+ export { OverridesPluginFull, OverridesPluginFull as OverridesPlugin, // Alias for backward compatibility
12
+ BrowserCookieAdapter, CookiePlugin, };
13
+ // Default export for UMD builds
14
+ export default OverridesPluginFull;
15
+ //# sourceMappingURL=overrides-full-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides-full-only.js","sourceRoot":"","sources":["../../src/entries/overrides-full-only.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,kBAAkB;AAClB,cAAc,oBAAoB,CAAC;AAEnC,gCAAgC;AAChC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,eAAe,EAAE,mCAAmC;AAC3E,oBAAoB,EACpB,YAAY,GACb,CAAC;AAEF,gCAAgC;AAChC,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Entry point for Overrides Lite Plugin only
3
+ * Minimal bundle - just lightweight override detection and application
4
+ */
5
+ import { OverridesPluginLite } from '../overrides/OverridesPluginLite';
6
+ // Re-export types
7
+ export * from '../overrides/types';
8
+ // Export only the plugin
9
+ export { OverridesPluginLite };
10
+ // Default export for UMD builds
11
+ export default OverridesPluginLite;
12
+ //# sourceMappingURL=overrides-lite-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides-lite-only.js","sourceRoot":"","sources":["../../src/entries/overrides-lite-only.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,kBAAkB;AAClB,cAAc,oBAAoB,CAAC;AAEnC,yBAAyB;AACzB,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,gCAAgC;AAChC,eAAe,mBAAmB,CAAC"}