@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,443 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __values = (this && this.__values) || function(o) {
14
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
+ if (m) return m.call(o);
16
+ if (o && typeof o.length === "number") return {
17
+ next: function () {
18
+ if (o && i >= o.length) o = void 0;
19
+ return { value: o && o[i++], done: !o };
20
+ }
21
+ };
22
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
23
+ };
24
+ var __read = (this && this.__read) || function (o, n) {
25
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
26
+ if (!m) return o;
27
+ var i = m.call(o), r, ar = [], e;
28
+ try {
29
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
+ }
31
+ catch (error) { e = { error: error }; }
32
+ finally {
33
+ try {
34
+ if (r && !r.done && (m = i["return"])) m.call(i);
35
+ }
36
+ finally { if (e) throw e.error; }
37
+ }
38
+ return ar;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.PendingChangeManager = void 0;
42
+ var debug_1 = require("../utils/debug");
43
+ var PendingChangeManager = /** @class */ (function () {
44
+ function PendingChangeManager(applyFn, debug) {
45
+ if (debug === void 0) { debug = false; }
46
+ this.applyFn = applyFn;
47
+ this.pending = new Map();
48
+ this.observers = new Map();
49
+ this.appliedSelectors = new Set();
50
+ this.batchTimer = null;
51
+ this.batchedWork = new Set();
52
+ this.debug = debug;
53
+ }
54
+ PendingChangeManager.prototype.addPending = function (pendingChange) {
55
+ var change = pendingChange.change, observerRoot = pendingChange.observerRoot;
56
+ // If observerRoot is specified but doesn't exist, treat as no observerRoot
57
+ var effectiveRoot = observerRoot;
58
+ if (observerRoot && !document.querySelector(observerRoot)) {
59
+ if (this.debug) {
60
+ (0, debug_1.logDebug)('[ABsmartly] Observer root not found, using document:', observerRoot);
61
+ }
62
+ effectiveRoot = undefined;
63
+ }
64
+ var key = "".concat(change.selector, "-").concat(effectiveRoot || 'document');
65
+ if (this.debug) {
66
+ (0, debug_1.logDebug)('[ABsmartly] Adding pending change for selector:', change.selector);
67
+ }
68
+ // Check if element already exists
69
+ var root = this.getObserverRoot(effectiveRoot);
70
+ var existing = root.querySelector(change.selector);
71
+ if (existing) {
72
+ // Apply immediately if element exists
73
+ this.applyChange(existing, __assign(__assign({}, pendingChange), { observerRoot: effectiveRoot }));
74
+ return;
75
+ }
76
+ // Add to pending
77
+ var list = this.pending.get(key) || [];
78
+ list.push(__assign(__assign({}, pendingChange), { observerRoot: effectiveRoot }));
79
+ this.pending.set(key, list);
80
+ // Ensure observer for this root
81
+ this.ensureObserver(effectiveRoot);
82
+ };
83
+ PendingChangeManager.prototype.removePending = function (selector, experimentName, observerRoot) {
84
+ var key = "".concat(selector, "-").concat(observerRoot || 'document');
85
+ var list = this.pending.get(key);
86
+ if (list) {
87
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName; });
88
+ if (filtered.length === 0) {
89
+ this.pending.delete(key);
90
+ }
91
+ else {
92
+ this.pending.set(key, filtered);
93
+ }
94
+ }
95
+ // Check if we should disconnect observer
96
+ this.checkObserverCleanup(observerRoot);
97
+ };
98
+ PendingChangeManager.prototype.removeAllPending = function (experimentName) {
99
+ var e_1, _a;
100
+ try {
101
+ // Remove all pending changes for this experiment
102
+ for (var _b = __values(this.pending.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
103
+ var _d = __read(_c.value, 2), key = _d[0], list = _d[1];
104
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName; });
105
+ if (filtered.length === 0) {
106
+ this.pending.delete(key);
107
+ }
108
+ else {
109
+ this.pending.set(key, filtered);
110
+ }
111
+ }
112
+ }
113
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
114
+ finally {
115
+ try {
116
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
117
+ }
118
+ finally { if (e_1) throw e_1.error; }
119
+ }
120
+ // Clean up observers if needed
121
+ this.cleanupObservers();
122
+ };
123
+ PendingChangeManager.prototype.ensureObserver = function (observerRoot) {
124
+ var _this = this;
125
+ var rootKey = observerRoot || 'document';
126
+ if (this.observers.has(rootKey)) {
127
+ return;
128
+ }
129
+ var root = this.getObserverRoot(observerRoot);
130
+ var observer = new MutationObserver(function (mutations) {
131
+ _this.handleMutations(mutations, observerRoot);
132
+ });
133
+ observer.observe(root, {
134
+ childList: true,
135
+ subtree: true,
136
+ });
137
+ this.observers.set(rootKey, observer);
138
+ if (this.debug) {
139
+ (0, debug_1.logDebug)('[ABsmartly] Started observer for root:', rootKey);
140
+ }
141
+ };
142
+ PendingChangeManager.prototype.handleMutations = function (mutations, observerRoot) {
143
+ var e_2, _a, e_3, _b;
144
+ var _this = this;
145
+ var work = [];
146
+ try {
147
+ for (var mutations_1 = __values(mutations), mutations_1_1 = mutations_1.next(); !mutations_1_1.done; mutations_1_1 = mutations_1.next()) {
148
+ var mutation = mutations_1_1.value;
149
+ var _loop_1 = function (node) {
150
+ var e_4, _e, e_5, _f;
151
+ if (!(node instanceof Element))
152
+ return "continue";
153
+ // Check all pending selectors for this root
154
+ var rootKey = observerRoot || 'document';
155
+ try {
156
+ for (var _g = (e_4 = void 0, __values(this_1.pending.entries())), _h = _g.next(); !_h.done; _h = _g.next()) {
157
+ var _j = __read(_h.value, 2), key = _j[0], pendingList = _j[1];
158
+ if (!key.endsWith("-".concat(rootKey)))
159
+ continue;
160
+ var _loop_2 = function (pending_1) {
161
+ var change = pending_1.change;
162
+ // Check if node matches selector
163
+ if (node.matches(change.selector)) {
164
+ work.push(function () { return _this.applyChange(node, pending_1); });
165
+ return "continue";
166
+ }
167
+ // Check descendants
168
+ var found = node.querySelectorAll(change.selector);
169
+ found.forEach(function (el) {
170
+ work.push(function () { return _this.applyChange(el, pending_1); });
171
+ });
172
+ };
173
+ try {
174
+ 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()) {
175
+ var pending_1 = pendingList_1_1.value;
176
+ _loop_2(pending_1);
177
+ }
178
+ }
179
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
180
+ finally {
181
+ try {
182
+ if (pendingList_1_1 && !pendingList_1_1.done && (_f = pendingList_1.return)) _f.call(pendingList_1);
183
+ }
184
+ finally { if (e_5) throw e_5.error; }
185
+ }
186
+ }
187
+ }
188
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
189
+ finally {
190
+ try {
191
+ if (_h && !_h.done && (_e = _g.return)) _e.call(_g);
192
+ }
193
+ finally { if (e_4) throw e_4.error; }
194
+ }
195
+ };
196
+ var this_1 = this;
197
+ try {
198
+ for (var _c = (e_3 = void 0, __values(mutation.addedNodes)), _d = _c.next(); !_d.done; _d = _c.next()) {
199
+ var node = _d.value;
200
+ _loop_1(node);
201
+ }
202
+ }
203
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
204
+ finally {
205
+ try {
206
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
207
+ }
208
+ finally { if (e_3) throw e_3.error; }
209
+ }
210
+ }
211
+ }
212
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
213
+ finally {
214
+ try {
215
+ if (mutations_1_1 && !mutations_1_1.done && (_a = mutations_1.return)) _a.call(mutations_1);
216
+ }
217
+ finally { if (e_2) throw e_2.error; }
218
+ }
219
+ // Batch the work
220
+ if (work.length > 0) {
221
+ this.batchWork(work);
222
+ }
223
+ };
224
+ PendingChangeManager.prototype.batchWork = function (work) {
225
+ var _this = this;
226
+ // Add work to batch
227
+ work.forEach(function (fn) { return _this.batchedWork.add(fn); });
228
+ // Clear existing timer
229
+ if (this.batchTimer) {
230
+ clearTimeout(this.batchTimer);
231
+ }
232
+ // Set new timer (32ms for ~2 frames)
233
+ this.batchTimer = setTimeout(function () {
234
+ _this.processBatchedWork();
235
+ }, 32);
236
+ };
237
+ PendingChangeManager.prototype.processBatchedWork = function () {
238
+ var work = Array.from(this.batchedWork);
239
+ this.batchedWork.clear();
240
+ this.batchTimer = null;
241
+ if (this.debug && work.length > 0) {
242
+ (0, debug_1.logDebug)('[ABsmartly] Processing batched work:', work.length, 'items');
243
+ }
244
+ // Apply all changes
245
+ work.forEach(function (fn) { return fn(); });
246
+ };
247
+ PendingChangeManager.prototype.applyChange = function (element, pendingChange) {
248
+ var change = pendingChange.change, experimentName = pendingChange.experimentName, observerRoot = pendingChange.observerRoot;
249
+ var key = "".concat(change.selector, "-").concat(observerRoot || 'document', "-").concat(experimentName);
250
+ // Skip if already applied
251
+ if (this.appliedSelectors.has(key)) {
252
+ return;
253
+ }
254
+ if (this.debug) {
255
+ (0, debug_1.logDebug)('[ABsmartly] Applying pending change to element:', change.selector);
256
+ }
257
+ // Apply the change
258
+ var success = this.applyFn(change, experimentName, element);
259
+ if (success) {
260
+ // Mark as applied
261
+ this.appliedSelectors.add(key);
262
+ // Remove from pending
263
+ var pendingKey = "".concat(change.selector, "-").concat(observerRoot || 'document');
264
+ var list = this.pending.get(pendingKey);
265
+ if (list) {
266
+ var filtered = list.filter(function (p) { return p.experimentName !== experimentName || p.change.selector !== change.selector; });
267
+ if (filtered.length === 0) {
268
+ this.pending.delete(pendingKey);
269
+ }
270
+ else {
271
+ this.pending.set(pendingKey, filtered);
272
+ }
273
+ }
274
+ // Check if observer should be cleaned up
275
+ this.checkObserverCleanup(observerRoot);
276
+ }
277
+ };
278
+ PendingChangeManager.prototype.getObserverRoot = function (observerRoot) {
279
+ if (!observerRoot) {
280
+ return document.documentElement;
281
+ }
282
+ var root = document.querySelector(observerRoot);
283
+ if (!root) {
284
+ // If observer root doesn't exist, fall back to document
285
+ return document.documentElement;
286
+ }
287
+ return root;
288
+ };
289
+ PendingChangeManager.prototype.checkObserverCleanup = function (observerRoot) {
290
+ var e_6, _a;
291
+ var rootKey = observerRoot || 'document';
292
+ // Check if there are any pending changes for this root
293
+ var hasPending = false;
294
+ try {
295
+ for (var _b = __values(this.pending.keys()), _c = _b.next(); !_c.done; _c = _b.next()) {
296
+ var key = _c.value;
297
+ if (key.endsWith("-".concat(rootKey))) {
298
+ hasPending = true;
299
+ break;
300
+ }
301
+ }
302
+ }
303
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
304
+ finally {
305
+ try {
306
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
307
+ }
308
+ finally { if (e_6) throw e_6.error; }
309
+ }
310
+ // Disconnect observer if no pending changes
311
+ if (!hasPending) {
312
+ var observer = this.observers.get(rootKey);
313
+ if (observer) {
314
+ observer.disconnect();
315
+ this.observers.delete(rootKey);
316
+ if (this.debug) {
317
+ (0, debug_1.logDebug)('[ABsmartly] Disconnected observer for root:', rootKey);
318
+ }
319
+ }
320
+ }
321
+ };
322
+ PendingChangeManager.prototype.cleanupObservers = function () {
323
+ var e_7, _a, e_8, _b;
324
+ var _this = this;
325
+ // Check each observer
326
+ var rootsToClean = [];
327
+ try {
328
+ for (var _c = __values(this.observers.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
329
+ var rootKey = _d.value;
330
+ var hasPending = false;
331
+ try {
332
+ for (var _e = (e_8 = void 0, __values(this.pending.keys())), _f = _e.next(); !_f.done; _f = _e.next()) {
333
+ var key = _f.value;
334
+ if (key.endsWith("-".concat(rootKey))) {
335
+ hasPending = true;
336
+ break;
337
+ }
338
+ }
339
+ }
340
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
341
+ finally {
342
+ try {
343
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
344
+ }
345
+ finally { if (e_8) throw e_8.error; }
346
+ }
347
+ if (!hasPending) {
348
+ rootsToClean.push(rootKey);
349
+ }
350
+ }
351
+ }
352
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
353
+ finally {
354
+ try {
355
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
356
+ }
357
+ finally { if (e_7) throw e_7.error; }
358
+ }
359
+ // Clean up observers with no pending changes
360
+ rootsToClean.forEach(function (rootKey) {
361
+ var observer = _this.observers.get(rootKey);
362
+ if (observer) {
363
+ observer.disconnect();
364
+ _this.observers.delete(rootKey);
365
+ if (_this.debug) {
366
+ (0, debug_1.logDebug)('[ABsmartly] Cleaned up observer for root:', rootKey);
367
+ }
368
+ }
369
+ });
370
+ };
371
+ PendingChangeManager.prototype.destroy = function () {
372
+ var e_9, _a;
373
+ // Clear batch timer
374
+ if (this.batchTimer) {
375
+ clearTimeout(this.batchTimer);
376
+ this.batchTimer = null;
377
+ }
378
+ try {
379
+ // Disconnect all observers
380
+ for (var _b = __values(this.observers.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
381
+ var observer = _c.value;
382
+ observer.disconnect();
383
+ }
384
+ }
385
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
386
+ finally {
387
+ try {
388
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
389
+ }
390
+ finally { if (e_9) throw e_9.error; }
391
+ }
392
+ this.observers.clear();
393
+ this.pending.clear();
394
+ this.appliedSelectors.clear();
395
+ this.batchedWork.clear();
396
+ if (this.debug) {
397
+ (0, debug_1.logDebug)('[ABsmartly] PendingChangeManager destroyed');
398
+ }
399
+ };
400
+ PendingChangeManager.prototype.getPendingCount = function () {
401
+ var e_10, _a;
402
+ var count = 0;
403
+ try {
404
+ for (var _b = __values(this.pending.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
405
+ var list = _c.value;
406
+ count += list.length;
407
+ }
408
+ }
409
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
410
+ finally {
411
+ try {
412
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
413
+ }
414
+ finally { if (e_10) throw e_10.error; }
415
+ }
416
+ return count;
417
+ };
418
+ PendingChangeManager.prototype.getAppliedCount = function () {
419
+ return this.appliedSelectors.size;
420
+ };
421
+ PendingChangeManager.prototype.hasPendingForExperiment = function (experimentName) {
422
+ var e_11, _a;
423
+ try {
424
+ for (var _b = __values(this.pending.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
425
+ var list = _c.value;
426
+ if (list.some(function (p) { return p.experimentName === experimentName; })) {
427
+ return true;
428
+ }
429
+ }
430
+ }
431
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
432
+ finally {
433
+ try {
434
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
435
+ }
436
+ finally { if (e_11) throw e_11.error; }
437
+ }
438
+ return false;
439
+ };
440
+ return PendingChangeManager;
441
+ }());
442
+ exports.PendingChangeManager = PendingChangeManager;
443
+ //# 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,16 @@
1
+ export declare class StyleSheetManager {
2
+ private id;
3
+ private styleEl;
4
+ private rules;
5
+ private debug;
6
+ constructor(id: string, debug?: boolean);
7
+ ensure(): HTMLStyleElement;
8
+ setRule(key: string, css: string): void;
9
+ deleteRule(key: string): void;
10
+ hasRule(key: string): boolean;
11
+ clear(): void;
12
+ destroy(): void;
13
+ private render;
14
+ getRulesCount(): number;
15
+ getCssText(): string;
16
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StyleSheetManager = void 0;
4
+ var debug_1 = require("../utils/debug");
5
+ var StyleSheetManager = /** @class */ (function () {
6
+ function StyleSheetManager(id, debug) {
7
+ if (debug === void 0) { debug = false; }
8
+ this.id = id;
9
+ this.styleEl = null;
10
+ this.rules = new Map(); // ruleKey -> css text
11
+ this.debug = debug;
12
+ }
13
+ StyleSheetManager.prototype.ensure = function () {
14
+ if (!this.styleEl || !document.head.contains(this.styleEl)) {
15
+ this.styleEl = document.getElementById(this.id);
16
+ if (!this.styleEl) {
17
+ var el = document.createElement('style');
18
+ el.id = this.id;
19
+ el.setAttribute('data-absmartly-styles', 'true');
20
+ document.head.appendChild(el);
21
+ this.styleEl = el;
22
+ if (this.debug) {
23
+ (0, debug_1.logDebug)("[ABsmartly] Created stylesheet: ".concat(this.id));
24
+ }
25
+ }
26
+ }
27
+ return this.styleEl;
28
+ };
29
+ StyleSheetManager.prototype.setRule = function (key, css) {
30
+ this.rules.set(key, css);
31
+ this.render();
32
+ if (this.debug) {
33
+ (0, debug_1.logDebug)("[ABsmartly] Set CSS rule for ".concat(key));
34
+ }
35
+ };
36
+ StyleSheetManager.prototype.deleteRule = function (key) {
37
+ if (this.rules.delete(key)) {
38
+ this.render();
39
+ if (this.debug) {
40
+ (0, debug_1.logDebug)("[ABsmartly] Deleted CSS rule for ".concat(key));
41
+ }
42
+ }
43
+ };
44
+ StyleSheetManager.prototype.hasRule = function (key) {
45
+ return this.rules.has(key);
46
+ };
47
+ StyleSheetManager.prototype.clear = function () {
48
+ var hadRules = this.rules.size > 0;
49
+ this.rules.clear();
50
+ if (hadRules) {
51
+ this.render();
52
+ if (this.debug) {
53
+ (0, debug_1.logDebug)("[ABsmartly] Cleared all CSS rules from ".concat(this.id));
54
+ }
55
+ }
56
+ };
57
+ StyleSheetManager.prototype.destroy = function () {
58
+ this.clear();
59
+ if (this.styleEl && document.head.contains(this.styleEl)) {
60
+ this.styleEl.remove();
61
+ this.styleEl = null;
62
+ if (this.debug) {
63
+ (0, debug_1.logDebug)("[ABsmartly] Destroyed stylesheet: ".concat(this.id));
64
+ }
65
+ }
66
+ };
67
+ StyleSheetManager.prototype.render = function () {
68
+ var el = this.ensure();
69
+ var cssText = Array.from(this.rules.values()).join('\n\n');
70
+ el.textContent = cssText;
71
+ };
72
+ StyleSheetManager.prototype.getRulesCount = function () {
73
+ return this.rules.size;
74
+ };
75
+ StyleSheetManager.prototype.getCssText = function () {
76
+ return Array.from(this.rules.values()).join('\n\n');
77
+ };
78
+ return StyleSheetManager;
79
+ }());
80
+ exports.StyleSheetManager = StyleSheetManager;
81
+ //# sourceMappingURL=StyleSheetManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyleSheetManager.js","sourceRoot":"","sources":["../../src/core/StyleSheetManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Entry point for CookiePlugin only
3
+ * Standalone cookie management and tracking functionality
4
+ */
5
+ import { CookiePlugin } from '../cookies/CookiePlugin';
6
+ export type { CookiePluginOptions } from '../cookies/CookiePlugin';
7
+ export { CookiePlugin };
8
+ export default CookiePlugin;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookiePlugin = void 0;
4
+ /**
5
+ * Entry point for CookiePlugin only
6
+ * Standalone cookie management and tracking functionality
7
+ */
8
+ var CookiePlugin_1 = require("../cookies/CookiePlugin");
9
+ Object.defineProperty(exports, "CookiePlugin", { enumerable: true, get: function () { return CookiePlugin_1.CookiePlugin; } });
10
+ // Default export for UMD builds
11
+ exports.default = CookiePlugin_1.CookiePlugin;
12
+ //# 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,wDAAuD;AAM9C,6FANA,2BAAY,OAMA;AAErB,gCAAgC;AAChC,kBAAe,2BAAY,CAAC"}
@@ -0,0 +1,9 @@
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
+ export * from '../types';
7
+ export { DOMChangesPluginLite };
8
+ export { DOMChangesPluginLite as DOMChangesPlugin };
9
+ export default DOMChangesPluginLite;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.DOMChangesPlugin = exports.DOMChangesPluginLite = void 0;
18
+ /**
19
+ * Entry point for DOM Changes Plugin only
20
+ * Smallest bundle - just core DOM manipulation functionality
21
+ */
22
+ var DOMChangesPluginLite_1 = require("../core/DOMChangesPluginLite");
23
+ Object.defineProperty(exports, "DOMChangesPluginLite", { enumerable: true, get: function () { return DOMChangesPluginLite_1.DOMChangesPluginLite; } });
24
+ Object.defineProperty(exports, "DOMChangesPlugin", { enumerable: true, get: function () { return DOMChangesPluginLite_1.DOMChangesPluginLite; } });
25
+ // Re-export types for convenience
26
+ __exportStar(require("../types"), exports);
27
+ // Default export for UMD builds
28
+ exports.default = DOMChangesPluginLite_1.DOMChangesPluginLite;
29
+ //# 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,qEAAoE;AAM3D,qGANA,2CAAoB,OAMA;AACI,iGAPxB,2CAAoB,OAOoB;AALjD,kCAAkC;AAClC,2CAAyB;AAMzB,gCAAgC;AAChC,kBAAe,2CAAoB,CAAC"}
@@ -0,0 +1,15 @@
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
+ export * from '../types';
11
+ export * from '../overrides/types';
12
+ export { DOMChangesPluginLite, DOMChangesPluginLite as DOMChangesPlugin, // Alias for backward compatibility
13
+ OverridesPluginFull, OverridesPluginFull as OverridesPlugin, // Alias for backward compatibility
14
+ BrowserCookieAdapter, CookiePlugin, WebVitalsPlugin, };
15
+ export default DOMChangesPluginLite;