@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,570 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
41
+ if (ar || !(i in from)) {
42
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
43
+ ar[i] = from[i];
44
+ }
45
+ }
46
+ return to.concat(ar || Array.prototype.slice.call(from));
47
+ };
48
+ import { logDebug } from '../utils/debug';
49
+ import { URLMatcher } from '../utils/URLMatcher';
50
+ var VariantExtractor = /** @class */ (function () {
51
+ function VariantExtractor(context, dataSource, dataFieldName, debug) {
52
+ if (dataSource === void 0) { dataSource = 'variable'; }
53
+ if (dataFieldName === void 0) { dataFieldName = '__dom_changes'; }
54
+ if (debug === void 0) { debug = false; }
55
+ this.cachedAllChanges = null;
56
+ this.context = context;
57
+ this.dataSource = dataSource;
58
+ this.dataFieldName = dataFieldName;
59
+ this.debug = debug;
60
+ }
61
+ // Clear cache when context changes
62
+ VariantExtractor.prototype.clearCache = function () {
63
+ this.cachedAllChanges = null;
64
+ };
65
+ // Extract ALL variants for ALL experiments (efficient single pass)
66
+ VariantExtractor.prototype.extractAllChanges = function () {
67
+ var e_1, _a;
68
+ var _b, _c, _d, _e, _f;
69
+ // Return cached version if available
70
+ if (this.cachedAllChanges) {
71
+ if (this.debug) {
72
+ logDebug('[ABsmartly VariantExtractor] Returning cached changes');
73
+ }
74
+ return this.cachedAllChanges;
75
+ }
76
+ var allChanges = new Map();
77
+ try {
78
+ var contextData = this.context.data();
79
+ // Always log the raw context data structure for debugging
80
+ logDebug('[VariantExtractor DEBUG] Raw context data structure:', {
81
+ hasData: !!contextData,
82
+ contextKeys: contextData ? Object.keys(contextData) : [],
83
+ experimentCount: ((_b = contextData === null || contextData === void 0 ? void 0 : contextData.experiments) === null || _b === void 0 ? void 0 : _b.length) || 0,
84
+ firstExperiment: ((_c = contextData === null || contextData === void 0 ? void 0 : contextData.experiments) === null || _c === void 0 ? void 0 : _c[0])
85
+ ? {
86
+ name: contextData.experiments[0].name,
87
+ // id: contextData.experiments[0].id, // id field might not exist
88
+ variantCount: ((_d = contextData.experiments[0].variants) === null || _d === void 0 ? void 0 : _d.length) || 0,
89
+ firstVariantStructure: ((_e = contextData.experiments[0].variants) === null || _e === void 0 ? void 0 : _e[0])
90
+ ? Object.keys(contextData.experiments[0].variants[0])
91
+ : [],
92
+ }
93
+ : null,
94
+ rawContextData: JSON.stringify(contextData).substring(0, 500) + '...',
95
+ });
96
+ if (this.debug) {
97
+ logDebug('[ABsmartly VariantExtractor] Extracting changes from context:', {
98
+ hasData: !!contextData,
99
+ experimentCount: ((_f = contextData === null || contextData === void 0 ? void 0 : contextData.experiments) === null || _f === void 0 ? void 0 : _f.length) || 0,
100
+ });
101
+ }
102
+ // Extract from SDK context data
103
+ if (contextData === null || contextData === void 0 ? void 0 : contextData.experiments) {
104
+ if (this.debug) {
105
+ logDebug('[ABsmartly VariantExtractor] Available experiments:', contextData.experiments.map(function (exp) {
106
+ var _a;
107
+ return ({
108
+ name: exp.name,
109
+ // id: exp.id, // id field might not exist
110
+ hasVariants: !!exp.variants,
111
+ variantCount: ((_a = exp.variants) === null || _a === void 0 ? void 0 : _a.length) || 0,
112
+ });
113
+ }));
114
+ }
115
+ try {
116
+ for (var _g = __values(contextData.experiments), _h = _g.next(); !_h.done; _h = _g.next()) {
117
+ var experiment = _h.value;
118
+ var variantChanges = this.extractAllVariantsForExperiment(experiment);
119
+ if (variantChanges.size > 0) {
120
+ allChanges.set(experiment.name, variantChanges);
121
+ if (this.debug) {
122
+ logDebug("[ABsmartly VariantExtractor] Experiment '".concat(experiment.name, "' has DOM changes:"), {
123
+ variantsWithChanges: Array.from(variantChanges.keys()),
124
+ changesByVariant: Array.from(variantChanges.entries()).map(function (_a) {
125
+ var _b = __read(_a, 2), v = _b[0], changes = _b[1];
126
+ return ({
127
+ variant: v,
128
+ changeCount: changes.length,
129
+ changeTypes: __spreadArray([], __read(new Set(changes.map(function (c) { return c.type; }))), false),
130
+ });
131
+ }),
132
+ });
133
+ }
134
+ }
135
+ else if (this.debug) {
136
+ logDebug("[ABsmartly VariantExtractor] Experiment '".concat(experiment.name, "' has no DOM changes"));
137
+ }
138
+ }
139
+ }
140
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
141
+ finally {
142
+ try {
143
+ if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
144
+ }
145
+ finally { if (e_1) throw e_1.error; }
146
+ }
147
+ }
148
+ // No need to check window storage - experiments are now injected into context data
149
+ }
150
+ catch (error) {
151
+ logDebug('[ABsmartly] Error extracting DOM changes:', error);
152
+ }
153
+ // Cache the result
154
+ this.cachedAllChanges = allChanges;
155
+ return allChanges;
156
+ };
157
+ // Extract all variants for a single experiment
158
+ VariantExtractor.prototype.extractAllVariantsForExperiment = function (experiment) {
159
+ var _a;
160
+ var variantChanges = new Map();
161
+ logDebug('[DEBUG] Processing experiment:', experiment.name, 'with', ((_a = experiment.variants) === null || _a === void 0 ? void 0 : _a.length) || 0, 'variants');
162
+ if (!experiment.variants) {
163
+ logDebug('[DEBUG] No variants found for experiment:', experiment.name);
164
+ return variantChanges;
165
+ }
166
+ for (var i = 0; i < experiment.variants.length; i++) {
167
+ var variant = experiment.variants[i];
168
+ if (!variant)
169
+ continue;
170
+ var changesData = null;
171
+ if (this.dataSource === 'variable') {
172
+ // First check variant.variables (common in tests and some setups)
173
+ if (variant.variables && variant.variables[this.dataFieldName]) {
174
+ changesData = variant.variables[this.dataFieldName];
175
+ logDebug("[VariantExtractor DEBUG] \u2713 Found DOM changes in variables[".concat(this.dataFieldName, "]:"), changesData);
176
+ }
177
+ // Then check variant.config (ABSmartly SDK provides data here as a JSON string)
178
+ else if (variant.config) {
179
+ try {
180
+ var config = typeof variant.config === 'string' ? JSON.parse(variant.config) : variant.config;
181
+ if (config && config[this.dataFieldName]) {
182
+ changesData = config[this.dataFieldName];
183
+ logDebug("[VariantExtractor DEBUG] \u2713 Found DOM changes in config[".concat(this.dataFieldName, "]:"), changesData);
184
+ }
185
+ else {
186
+ logDebug('[VariantExtractor DEBUG] ✗ No', this.dataFieldName, 'field found in parsed config');
187
+ }
188
+ }
189
+ catch (e) {
190
+ logDebug('[VariantExtractor DEBUG] ✗ Failed to parse variant.config:', e, 'Raw config:', typeof variant.config === 'string' ? variant.config.substring(0, 100) : '');
191
+ }
192
+ }
193
+ }
194
+ else {
195
+ // For custom field, we would need to handle it per experiment
196
+ // This is a limitation of the current approach when extracting all variants
197
+ continue;
198
+ }
199
+ if (changesData) {
200
+ // Extract changes - handles both legacy array and new wrapped format
201
+ var changes = this.extractChangesFromData(changesData);
202
+ if (changes && changes.length > 0) {
203
+ variantChanges.set(i, changes);
204
+ }
205
+ }
206
+ }
207
+ return variantChanges;
208
+ };
209
+ /**
210
+ * Extract changes from DOMChangesData (handles both legacy array and new wrapped format)
211
+ */
212
+ VariantExtractor.prototype.extractChangesFromData = function (data) {
213
+ if (!data) {
214
+ return null;
215
+ }
216
+ // If it's a string, try to parse it as JSON first
217
+ if (typeof data === 'string') {
218
+ try {
219
+ data = JSON.parse(data);
220
+ }
221
+ catch (error) {
222
+ logDebug('[ABsmartly] Failed to parse DOM changes JSON:', error);
223
+ return null;
224
+ }
225
+ }
226
+ // Check if it's the new wrapped format (DOMChangesConfig)
227
+ if (data && typeof data === 'object' && !Array.isArray(data) && 'changes' in data) {
228
+ var config = data;
229
+ return this.parseChanges(config.changes);
230
+ }
231
+ // Legacy array format
232
+ return this.parseChanges(data);
233
+ };
234
+ // Get changes for the current variant of a specific experiment
235
+ // Note: Requires context to be ready for peek() to work correctly
236
+ VariantExtractor.prototype.getExperimentChanges = function (experimentName) {
237
+ var allChanges = this.extractAllChanges();
238
+ var experimentVariants = allChanges.get(experimentName);
239
+ if (!experimentVariants || experimentVariants.size === 0) {
240
+ return null;
241
+ }
242
+ // Use peek to get the current variant without triggering exposure
243
+ // Important: peek() returns 0 if context is not ready
244
+ var currentVariant = this.context.peek(experimentName);
245
+ if (currentVariant === undefined || currentVariant === null) {
246
+ if (this.debug) {
247
+ logDebug("[ABsmartly] No variant selected for ".concat(experimentName));
248
+ }
249
+ return null;
250
+ }
251
+ return experimentVariants.get(currentVariant) || null;
252
+ };
253
+ VariantExtractor.prototype.parseChanges = function (changesData) {
254
+ var e_2, _a;
255
+ if (!changesData) {
256
+ return null;
257
+ }
258
+ // If it's a string, try to parse it as JSON
259
+ if (typeof changesData === 'string') {
260
+ try {
261
+ changesData = JSON.parse(changesData);
262
+ }
263
+ catch (error) {
264
+ logDebug('[ABsmartly] Failed to parse DOM changes JSON:', error);
265
+ return null;
266
+ }
267
+ }
268
+ // Ensure it's an array
269
+ if (!Array.isArray(changesData)) {
270
+ if (this.debug) {
271
+ logDebug('[ABsmartly] DOM changes data is not an array');
272
+ }
273
+ return null;
274
+ }
275
+ // Validate and filter changes
276
+ var validChanges = [];
277
+ try {
278
+ for (var changesData_1 = __values(changesData), changesData_1_1 = changesData_1.next(); !changesData_1_1.done; changesData_1_1 = changesData_1.next()) {
279
+ var change = changesData_1_1.value;
280
+ if (this.isValidChange(change)) {
281
+ validChanges.push(change);
282
+ }
283
+ else if (this.debug) {
284
+ logDebug('[ABsmartly] Invalid DOM change:', change);
285
+ }
286
+ }
287
+ }
288
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
289
+ finally {
290
+ try {
291
+ if (changesData_1_1 && !changesData_1_1.done && (_a = changesData_1.return)) _a.call(changesData_1);
292
+ }
293
+ finally { if (e_2) throw e_2.error; }
294
+ }
295
+ return validChanges.length > 0 ? validChanges : null;
296
+ };
297
+ VariantExtractor.prototype.isValidChange = function (change) {
298
+ if (!change || typeof change !== 'object') {
299
+ return false;
300
+ }
301
+ var obj = change;
302
+ // Check required fields
303
+ // Note: selector can be empty string for 'create' and 'styleRules' types
304
+ if (obj.selector === undefined || obj.selector === null || !obj.type) {
305
+ return false;
306
+ }
307
+ // Check type is valid
308
+ var validTypes = [
309
+ 'text',
310
+ 'html',
311
+ 'style',
312
+ 'class',
313
+ 'attribute',
314
+ 'javascript',
315
+ 'move',
316
+ 'create',
317
+ 'delete',
318
+ 'styleRules',
319
+ ];
320
+ if (!validTypes.includes(obj.type)) {
321
+ return false;
322
+ }
323
+ // Type-specific validation
324
+ switch (obj.type) {
325
+ case 'class':
326
+ if (!obj.add && !obj.remove) {
327
+ return false;
328
+ }
329
+ if (obj.add && !Array.isArray(obj.add)) {
330
+ return false;
331
+ }
332
+ if (obj.remove && !Array.isArray(obj.remove)) {
333
+ return false;
334
+ }
335
+ break;
336
+ case 'move':
337
+ if (!obj.targetSelector) {
338
+ return false;
339
+ }
340
+ break;
341
+ case 'create':
342
+ if (!obj.element || !obj.targetSelector) {
343
+ return false;
344
+ }
345
+ break;
346
+ case 'style':
347
+ case 'attribute':
348
+ if (!obj.value || typeof obj.value !== 'object') {
349
+ return false;
350
+ }
351
+ break;
352
+ }
353
+ return true;
354
+ };
355
+ /**
356
+ * Get all variant changes for an experiment (not just the current variant)
357
+ * This is needed for proper exposure tracking across variants
358
+ */
359
+ VariantExtractor.prototype.getAllVariantChanges = function (experimentName) {
360
+ var allChanges = this.extractAllChanges();
361
+ var experimentVariants = allChanges.get(experimentName);
362
+ if (!experimentVariants) {
363
+ return [];
364
+ }
365
+ // Convert Map to array indexed by variant number
366
+ var maxVariant = Math.max.apply(Math, __spreadArray([], __read(experimentVariants.keys()), false));
367
+ var variantArray = [];
368
+ for (var i = 0; i <= maxVariant; i++) {
369
+ variantArray.push(experimentVariants.get(i) || []);
370
+ }
371
+ return variantArray;
372
+ };
373
+ /**
374
+ * Get the experiment data by name
375
+ * Note: This requires the context to be ready, otherwise it will throw
376
+ */
377
+ VariantExtractor.prototype.getExperiment = function (experimentName) {
378
+ try {
379
+ var contextData = this.context.data();
380
+ if (!contextData || !contextData.experiments) {
381
+ return null;
382
+ }
383
+ return contextData.experiments.find(function (exp) { return exp.name === experimentName; }) || null;
384
+ }
385
+ catch (error) {
386
+ if (this.debug) {
387
+ logDebug("[ABsmartly VariantExtractor] Failed to get experiment '".concat(experimentName, "' - context may not be ready:"), error);
388
+ }
389
+ return null;
390
+ }
391
+ };
392
+ /**
393
+ * Get the raw DOMChangesData for all variants of an experiment (includes URL filters and metadata)
394
+ * This is needed for URL filtering logic
395
+ */
396
+ VariantExtractor.prototype.getAllVariantsData = function (experimentName) {
397
+ var variantsData = new Map();
398
+ try {
399
+ var contextData = this.context.data();
400
+ if (!(contextData === null || contextData === void 0 ? void 0 : contextData.experiments)) {
401
+ return variantsData;
402
+ }
403
+ var experiment = contextData.experiments.find(function (exp) { return exp.name === experimentName; });
404
+ if (!(experiment === null || experiment === void 0 ? void 0 : experiment.variants)) {
405
+ return variantsData;
406
+ }
407
+ for (var i = 0; i < experiment.variants.length; i++) {
408
+ var variant = experiment.variants[i];
409
+ if (!variant)
410
+ continue;
411
+ var changesData = null;
412
+ if (this.dataSource === 'variable') {
413
+ // First check variant.variables
414
+ if (variant.variables && variant.variables[this.dataFieldName]) {
415
+ changesData = variant.variables[this.dataFieldName];
416
+ }
417
+ // Then check variant.config
418
+ else if (variant.config) {
419
+ try {
420
+ var config = typeof variant.config === 'string' ? JSON.parse(variant.config) : variant.config;
421
+ if (config && config[this.dataFieldName]) {
422
+ changesData = config[this.dataFieldName];
423
+ }
424
+ }
425
+ catch (e) {
426
+ logDebug('[VariantExtractor] Failed to parse variant.config:', e);
427
+ }
428
+ }
429
+ }
430
+ if (changesData) {
431
+ // Parse JSON string if needed
432
+ if (typeof changesData === 'string') {
433
+ try {
434
+ changesData = JSON.parse(changesData);
435
+ }
436
+ catch (error) {
437
+ logDebug('[ABsmartly] Failed to parse DOM changes JSON:', error);
438
+ continue;
439
+ }
440
+ }
441
+ // Store the raw data (could be array or wrapped format)
442
+ variantsData.set(i, changesData);
443
+ }
444
+ }
445
+ }
446
+ catch (error) {
447
+ logDebug('[ABsmartly] Error getting all variants data:', error);
448
+ }
449
+ return variantsData;
450
+ };
451
+ /**
452
+ * Check if any variant of an experiment has changes that match the current URL
453
+ * This is critical for SRM prevention - if ANY variant matches URL, ALL variants must be tracked
454
+ */
455
+ VariantExtractor.prototype.anyVariantMatchesURL = function (experimentName, url) {
456
+ var e_3, _a;
457
+ if (url === void 0) { url = window.location.href; }
458
+ var variantsData = this.getAllVariantsData(experimentName);
459
+ var hasAnyURLFilter = false;
460
+ try {
461
+ for (var variantsData_1 = __values(variantsData), variantsData_1_1 = variantsData_1.next(); !variantsData_1_1.done; variantsData_1_1 = variantsData_1.next()) {
462
+ var _b = __read(variantsData_1_1.value, 2), data = _b[1];
463
+ // Check if this variant has URL filter in wrapped format
464
+ if (data && typeof data === 'object' && !Array.isArray(data) && 'urlFilter' in data) {
465
+ var config = data;
466
+ if (config.urlFilter) {
467
+ hasAnyURLFilter = true;
468
+ if (URLMatcher.matches(config.urlFilter, url)) {
469
+ return true; // At least one variant matches this URL
470
+ }
471
+ }
472
+ }
473
+ // Note: Legacy array format or wrapped format without urlFilter doesn't affect matching
474
+ // We only check URL filters that exist
475
+ }
476
+ }
477
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
478
+ finally {
479
+ try {
480
+ if (variantsData_1_1 && !variantsData_1_1.done && (_a = variantsData_1.return)) _a.call(variantsData_1);
481
+ }
482
+ finally { if (e_3) throw e_3.error; }
483
+ }
484
+ // If NO variant has a URL filter, match all URLs (legacy behavior)
485
+ // If at least one variant has a URL filter, we checked them all above
486
+ return !hasAnyURLFilter;
487
+ };
488
+ /**
489
+ * Extract __inject_html from all variants for all experiments
490
+ * Only extracts from variant.variables (not from config)
491
+ */
492
+ VariantExtractor.prototype.extractAllInjectHTML = function () {
493
+ var e_4, _a;
494
+ var allInjectHTML = new Map();
495
+ try {
496
+ var contextData = this.context.data();
497
+ if (this.debug) {
498
+ logDebug('[ABsmartly VariantExtractor] Extracting __inject_html from context');
499
+ }
500
+ if (contextData === null || contextData === void 0 ? void 0 : contextData.experiments) {
501
+ try {
502
+ for (var _b = __values(contextData.experiments), _c = _b.next(); !_c.done; _c = _b.next()) {
503
+ var experiment = _c.value;
504
+ var variantInjections = this.extractInjectHTMLForExperiment(experiment);
505
+ if (variantInjections.size > 0) {
506
+ allInjectHTML.set(experiment.name, variantInjections);
507
+ if (this.debug) {
508
+ logDebug("[ABsmartly VariantExtractor] Experiment '".concat(experiment.name, "' has HTML injections:"), {
509
+ variantsWithInjections: Array.from(variantInjections.keys()),
510
+ });
511
+ }
512
+ }
513
+ }
514
+ }
515
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
516
+ finally {
517
+ try {
518
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
519
+ }
520
+ finally { if (e_4) throw e_4.error; }
521
+ }
522
+ }
523
+ }
524
+ catch (error) {
525
+ logDebug('[ABsmartly] Error extracting __inject_html:', error);
526
+ }
527
+ return allInjectHTML;
528
+ };
529
+ /**
530
+ * Extract __inject_html for a single experiment
531
+ * Only from variant.variables (not from config)
532
+ */
533
+ VariantExtractor.prototype.extractInjectHTMLForExperiment = function (experiment) {
534
+ var variantInjections = new Map();
535
+ if (!experiment.variants) {
536
+ return variantInjections;
537
+ }
538
+ for (var i = 0; i < experiment.variants.length; i++) {
539
+ var variant = experiment.variants[i];
540
+ if (!variant)
541
+ continue;
542
+ if (variant.variables && variant.variables.__inject_html) {
543
+ var injectionData = variant.variables.__inject_html;
544
+ if (typeof injectionData === 'object' && !Array.isArray(injectionData)) {
545
+ // Extract urlFilter if present
546
+ var _a = injectionData, urlFilter = _a.urlFilter, rawData = __rest(_a, ["urlFilter"]);
547
+ // Create InjectionDataWithFilter
548
+ var dataWithFilter = {
549
+ data: rawData,
550
+ urlFilter: urlFilter || undefined,
551
+ };
552
+ variantInjections.set(i, dataWithFilter);
553
+ if (this.debug) {
554
+ logDebug("[VariantExtractor] Found __inject_html in ".concat(experiment.name, " variant ").concat(i, ":"), {
555
+ keys: Object.keys(rawData),
556
+ hasUrlFilter: !!urlFilter,
557
+ });
558
+ }
559
+ }
560
+ else if (this.debug) {
561
+ logDebug("[VariantExtractor] Invalid __inject_html format in ".concat(experiment.name, " variant ").concat(i), injectionData);
562
+ }
563
+ }
564
+ }
565
+ return variantInjections;
566
+ };
567
+ return VariantExtractor;
568
+ }());
569
+ export { VariantExtractor };
570
+ //# sourceMappingURL=VariantExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariantExtractor.js","sourceRoot":"","sources":["../../src/parsers/VariantExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}