@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,413 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
+ if (ar || !(i in from)) {
57
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
+ ar[i] = from[i];
59
+ }
60
+ }
61
+ return to.concat(ar || Array.prototype.slice.call(from));
62
+ };
63
+ Object.defineProperty(exports, "__esModule", { value: true });
64
+ exports.CookiePlugin = void 0;
65
+ var debug_1 = require("../utils/debug");
66
+ var CookiePlugin = /** @class */ (function () {
67
+ function CookiePlugin(options) {
68
+ if (options === void 0) { options = {}; }
69
+ this.context = options.context;
70
+ this.debug = options.debug || false;
71
+ this.cookieDomain = options.cookieDomain || '.absmartly.com';
72
+ this.cookiePath = options.cookiePath || '/';
73
+ this.sameSite = options.sameSite || 'Lax';
74
+ this.secure = options.secure || false;
75
+ this.cookieExpiryDays = options.cookieExpiryDays || 730;
76
+ this.unitIdCookieName = options.unitIdCookieName || 'abs';
77
+ this.publicIdCookieName = options.publicIdCookieName || 'abs_public';
78
+ this.expiryCookieName = options.expiryCookieName || 'abs_expiry';
79
+ this.utmCookieName = options.utmCookieName || 'abs_utm_params';
80
+ this.utmParams = options.utmParamsList || [
81
+ 'utm_source',
82
+ 'utm_medium',
83
+ 'utm_campaign',
84
+ 'utm_term',
85
+ 'utm_content',
86
+ ];
87
+ this.autoUpdateExpiry = options.autoUpdateExpiry !== false;
88
+ this.expiryCheckInterval = options.expiryCheckInterval || 30;
89
+ }
90
+ CookiePlugin.prototype.debugLog = function () {
91
+ var args = [];
92
+ for (var _i = 0; _i < arguments.length; _i++) {
93
+ args[_i] = arguments[_i];
94
+ }
95
+ if (this.debug) {
96
+ debug_1.logDebug.apply(void 0, __spreadArray(['[CookiePlugin]'], __read(args), false));
97
+ }
98
+ };
99
+ CookiePlugin.prototype.getCookie = function (name) {
100
+ var _a;
101
+ var value = "; ".concat(document.cookie);
102
+ var parts = value.split("; ".concat(name, "="));
103
+ if (parts.length === 2) {
104
+ var cookieValue = (_a = parts.pop()) === null || _a === void 0 ? void 0 : _a.split(';').shift();
105
+ return cookieValue || null;
106
+ }
107
+ return null;
108
+ };
109
+ CookiePlugin.prototype.setCookie = function (name, value, days) {
110
+ try {
111
+ var date = new Date();
112
+ var expiryDays = days !== undefined ? days : this.cookieExpiryDays;
113
+ date.setTime(date.getTime() + expiryDays * 24 * 60 * 60 * 1000);
114
+ var expires = "expires=".concat(date.toUTCString());
115
+ var cookieString = "".concat(name, "=").concat(value, ";").concat(expires, ";path=").concat(this.cookiePath);
116
+ if (this.cookieDomain && this.cookieDomain !== 'localhost') {
117
+ cookieString += ";domain=".concat(this.cookieDomain);
118
+ }
119
+ cookieString += ";SameSite=".concat(this.sameSite);
120
+ if (this.secure) {
121
+ cookieString += ';Secure';
122
+ }
123
+ document.cookie = cookieString;
124
+ this.debugLog("Set cookie ".concat(name, ":"), value);
125
+ return true;
126
+ }
127
+ catch (e) {
128
+ (0, debug_1.logDebug)("[CookiePlugin] Unable to set cookie ".concat(name, ":"), e);
129
+ return false;
130
+ }
131
+ };
132
+ CookiePlugin.prototype.deleteCookie = function (name) {
133
+ this.setCookie(name, '', -1);
134
+ };
135
+ CookiePlugin.prototype.isLocalStorageAvailable = function () {
136
+ try {
137
+ var test_1 = '__localStorage_test__';
138
+ localStorage.setItem(test_1, test_1);
139
+ localStorage.removeItem(test_1);
140
+ return true;
141
+ }
142
+ catch (e) {
143
+ return false;
144
+ }
145
+ };
146
+ CookiePlugin.prototype.generateFastUniqueID = function () {
147
+ return Date.now().toString(36) + Math.random().toString(36).substring(2);
148
+ };
149
+ CookiePlugin.prototype.getUnitId = function () {
150
+ if (this.unitId) {
151
+ return this.unitId;
152
+ }
153
+ var cookiesEnabled = navigator.cookieEnabled;
154
+ var localStorageAvailable = this.isLocalStorageAvailable();
155
+ var unitId = null;
156
+ if (cookiesEnabled) {
157
+ unitId = this.getCookie(this.unitIdCookieName) || this.getCookie(this.publicIdCookieName);
158
+ }
159
+ if (!unitId && localStorageAvailable) {
160
+ unitId = localStorage.getItem('abs_id');
161
+ }
162
+ if (unitId) {
163
+ this.unitId = unitId;
164
+ }
165
+ return unitId;
166
+ };
167
+ CookiePlugin.prototype.setUnitId = function (unitId) {
168
+ this.unitId = unitId;
169
+ var cookiesEnabled = navigator.cookieEnabled;
170
+ var localStorageAvailable = this.isLocalStorageAvailable();
171
+ if (cookiesEnabled) {
172
+ this.setCookie(this.unitIdCookieName, unitId);
173
+ this.setCookie(this.publicIdCookieName, unitId);
174
+ if (this.autoUpdateExpiry) {
175
+ this.updateExpiryTimestamp();
176
+ }
177
+ }
178
+ if (localStorageAvailable) {
179
+ localStorage.setItem('abs_id', unitId);
180
+ }
181
+ this.debugLog('Unit ID set:', unitId);
182
+ };
183
+ CookiePlugin.prototype.generateAndSetUnitId = function () {
184
+ var unitId = this.generateFastUniqueID();
185
+ this.setUnitId(unitId);
186
+ return unitId;
187
+ };
188
+ CookiePlugin.prototype.updateExpiryTimestamp = function () {
189
+ if (navigator.cookieEnabled) {
190
+ var now = Date.now();
191
+ this.setCookie(this.expiryCookieName, now.toString());
192
+ this.debugLog('Updated expiry timestamp:', now);
193
+ }
194
+ };
195
+ CookiePlugin.prototype.isExpiryFresh = function () {
196
+ if (!navigator.cookieEnabled) {
197
+ return false;
198
+ }
199
+ var expiryCookie = this.getCookie(this.expiryCookieName);
200
+ if (!expiryCookie) {
201
+ return false;
202
+ }
203
+ try {
204
+ var expiryTimestamp = parseInt(expiryCookie, 10);
205
+ var now = Date.now();
206
+ var daysSinceSet = (now - expiryTimestamp) / (1000 * 60 * 60 * 24);
207
+ var isFresh = daysSinceSet <= this.expiryCheckInterval;
208
+ this.debugLog('Expiry check:', { daysSinceSet: daysSinceSet, isFresh: isFresh });
209
+ return isFresh;
210
+ }
211
+ catch (e) {
212
+ this.debugLog('Error parsing expiry cookie:', e);
213
+ return false;
214
+ }
215
+ };
216
+ CookiePlugin.prototype.getUtmParams = function () {
217
+ var params = {};
218
+ var searchParams = new URLSearchParams(window.location.search);
219
+ this.utmParams.forEach(function (param) {
220
+ var value = searchParams.get(param);
221
+ if (value) {
222
+ params[param] = value;
223
+ }
224
+ });
225
+ if (Object.keys(params).length === 0 && document.referrer) {
226
+ try {
227
+ var referrerUrl_1 = new URL(document.referrer);
228
+ this.utmParams.forEach(function (param) {
229
+ var value = referrerUrl_1.searchParams.get(param);
230
+ if (value) {
231
+ params[param] = value;
232
+ }
233
+ });
234
+ }
235
+ catch (e) {
236
+ this.debugLog('Error parsing referrer URL:', e);
237
+ }
238
+ }
239
+ if (Object.keys(params).length === 0) {
240
+ var storedParams = this.getStoredUtmParams();
241
+ if (storedParams) {
242
+ return storedParams;
243
+ }
244
+ }
245
+ return params;
246
+ };
247
+ CookiePlugin.prototype.storeUtmParams = function (params) {
248
+ if (Object.keys(params).length === 0)
249
+ return;
250
+ var storage = {
251
+ params: params,
252
+ timestamp: Date.now(),
253
+ };
254
+ var cookiesEnabled = navigator.cookieEnabled;
255
+ var localStorageAvailable = this.isLocalStorageAvailable();
256
+ if (localStorageAvailable) {
257
+ try {
258
+ localStorage.setItem(this.utmCookieName, JSON.stringify(storage));
259
+ this.debugLog('Stored UTM params in localStorage:', params);
260
+ }
261
+ catch (e) {
262
+ this.debugLog('Failed to store UTM params in localStorage:', e);
263
+ }
264
+ }
265
+ if (cookiesEnabled) {
266
+ this.setCookie(this.utmCookieName, JSON.stringify(storage), 30);
267
+ this.debugLog('Stored UTM params in cookie:', params);
268
+ }
269
+ };
270
+ CookiePlugin.prototype.getStoredUtmParams = function () {
271
+ var stored = null;
272
+ var localStorageAvailable = this.isLocalStorageAvailable();
273
+ var cookiesEnabled = navigator.cookieEnabled;
274
+ if (localStorageAvailable) {
275
+ try {
276
+ stored = localStorage.getItem(this.utmCookieName);
277
+ }
278
+ catch (e) {
279
+ this.debugLog('Failed to get UTM params from localStorage:', e);
280
+ }
281
+ }
282
+ if (!stored && cookiesEnabled) {
283
+ stored = this.getCookie(this.utmCookieName);
284
+ }
285
+ if (stored) {
286
+ try {
287
+ var parsed = JSON.parse(stored);
288
+ if (Date.now() - parsed.timestamp < 30 * 24 * 60 * 60 * 1000) {
289
+ return parsed.params;
290
+ }
291
+ }
292
+ catch (e) {
293
+ this.debugLog('Failed to parse stored UTM params:', e);
294
+ }
295
+ }
296
+ return null;
297
+ };
298
+ CookiePlugin.prototype.applyUtmAttributesToContext = function (context) {
299
+ var _this = this;
300
+ var ctx = context || this.context;
301
+ if (!ctx) {
302
+ (0, debug_1.logDebug)('[CookiePlugin] No context available to apply UTM attributes');
303
+ return;
304
+ }
305
+ var utmParams = this.getUtmParams();
306
+ if (Object.keys(utmParams).length > 0) {
307
+ this.storeUtmParams(utmParams);
308
+ }
309
+ Object.entries(utmParams).forEach(function (_a) {
310
+ var _b = __read(_a, 2), param = _b[0], value = _b[1];
311
+ var attributeName = param.slice(4);
312
+ ctx.attribute(attributeName, value);
313
+ _this.debugLog("Set attribute ".concat(attributeName, ":"), value);
314
+ });
315
+ };
316
+ CookiePlugin.prototype.clearAllCookies = function () {
317
+ this.deleteCookie(this.unitIdCookieName);
318
+ this.deleteCookie(this.publicIdCookieName);
319
+ this.deleteCookie(this.expiryCookieName);
320
+ this.deleteCookie(this.utmCookieName);
321
+ var localStorageAvailable = this.isLocalStorageAvailable();
322
+ if (localStorageAvailable) {
323
+ localStorage.removeItem('abs_id');
324
+ localStorage.removeItem(this.utmCookieName);
325
+ }
326
+ this.unitId = undefined;
327
+ this.debugLog('All cookies and storage cleared');
328
+ };
329
+ CookiePlugin.prototype.initialize = function () {
330
+ return __awaiter(this, void 0, void 0, function () {
331
+ var unitId;
332
+ return __generator(this, function (_a) {
333
+ this.debugLog('Initializing CookiePlugin');
334
+ unitId = this.getUnitId();
335
+ if (!unitId) {
336
+ unitId = this.generateAndSetUnitId();
337
+ this.debugLog('Generated new unit ID:', unitId);
338
+ }
339
+ else {
340
+ this.debugLog('Using existing unit ID:', unitId);
341
+ if (this.autoUpdateExpiry && !this.isExpiryFresh()) {
342
+ this.updateExpiryTimestamp();
343
+ }
344
+ }
345
+ if (this.context) {
346
+ this.applyUtmAttributesToContext();
347
+ }
348
+ this.debugLog('CookiePlugin initialized successfully');
349
+ return [2 /*return*/];
350
+ });
351
+ });
352
+ };
353
+ CookiePlugin.prototype.setContext = function (context) {
354
+ this.context = context;
355
+ this.debugLog('Context set for CookiePlugin');
356
+ };
357
+ CookiePlugin.prototype.needsWorkerCall = function (searchParams) {
358
+ var params = searchParams || new URLSearchParams(window.location.search);
359
+ var hasOverrides = Array.from(params.keys()).some(function (key) { return key.startsWith('exp_'); });
360
+ if (hasOverrides) {
361
+ this.debugLog('Worker call needed due to experiment overrides');
362
+ return true;
363
+ }
364
+ var unitId = this.getUnitId();
365
+ var cookiesEnabled = navigator.cookieEnabled;
366
+ var localStorageAvailable = this.isLocalStorageAvailable();
367
+ if (!unitId) {
368
+ if (cookiesEnabled || localStorageAvailable) {
369
+ var expiryCookie = this.getCookie(this.expiryCookieName);
370
+ this.debugLog(expiryCookie
371
+ ? 'No existing ID but expiry cookie exists - need worker call'
372
+ : 'No existing ID and no expiry cookie - need worker call');
373
+ return true;
374
+ }
375
+ }
376
+ else if (cookiesEnabled && !this.isExpiryFresh()) {
377
+ this.debugLog('Existing ID present but expiry not fresh - need worker call');
378
+ return true;
379
+ }
380
+ return false;
381
+ };
382
+ CookiePlugin.prototype.trackLanding = function (context) {
383
+ var ctx = context || this.context;
384
+ if (!ctx) {
385
+ (0, debug_1.logDebug)('[CookiePlugin] No context available for tracking landing');
386
+ return;
387
+ }
388
+ var searchParams = new URLSearchParams(window.location.search);
389
+ var hasUtmParams = this.utmParams.some(function (param) { return searchParams.get(param); });
390
+ var referrerUrl = document.referrer;
391
+ var isExternalReferrer = referrerUrl && !referrerUrl.includes(this.cookieDomain.replace('.', ''));
392
+ var acceptsStorage = navigator.cookieEnabled || this.isLocalStorageAvailable();
393
+ var hasCookies = !!(this.getCookie(this.unitIdCookieName) ||
394
+ this.getCookie(this.publicIdCookieName) ||
395
+ this.getCookie(this.expiryCookieName) ||
396
+ (this.isLocalStorageAvailable() && localStorage.getItem('abs_id')));
397
+ var isFirstVisit = acceptsStorage && !hasCookies;
398
+ if (hasUtmParams || isExternalReferrer || isFirstVisit) {
399
+ var properties = {
400
+ referrer_url: referrerUrl || '',
401
+ landing_url: window.location.href,
402
+ accepts_cookies: navigator.cookieEnabled,
403
+ accepts_storage: this.isLocalStorageAvailable(),
404
+ has_utm: hasUtmParams,
405
+ };
406
+ this.debugLog('Tracking landing:', properties);
407
+ ctx.track('landing', properties);
408
+ }
409
+ };
410
+ return CookiePlugin;
411
+ }());
412
+ exports.CookiePlugin = CookiePlugin;
413
+ //# sourceMappingURL=CookiePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookiePlugin.js","sourceRoot":"","sources":["../../src/cookies/CookiePlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CookiePlugin } from './CookiePlugin';
2
+ export type { CookiePluginOptions } from './CookiePlugin';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookiePlugin = void 0;
4
+ var CookiePlugin_1 = require("./CookiePlugin");
5
+ Object.defineProperty(exports, "CookiePlugin", { enumerable: true, get: function () { return CookiePlugin_1.CookiePlugin; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,89 @@
1
+ import { PluginConfig, DOMChange, EventCallback, EventCallbackData } from '../types';
2
+ import { DOMManipulatorLite } from './DOMManipulatorLite';
3
+ import { VariantExtractor } from '../parsers/VariantExtractor';
4
+ import { StyleSheetManager } from './StyleSheetManager';
5
+ import { ExposureTracker } from './ExposureTracker';
6
+ import { HTMLInjector } from './HTMLInjector';
7
+ export declare class DOMChangesPluginLite {
8
+ static readonly VERSION: string;
9
+ protected config: Required<PluginConfig>;
10
+ protected domManipulator: DOMManipulatorLite;
11
+ protected variantExtractor: VariantExtractor;
12
+ protected exposureTracker: ExposureTracker;
13
+ protected htmlInjector: HTMLInjector;
14
+ protected mutationObserver: MutationObserver | null;
15
+ protected exposedExperiments: Set<string>;
16
+ protected eventListeners: Map<string, EventCallback[]>;
17
+ protected styleManagers: Map<string, StyleSheetManager>;
18
+ protected initialized: boolean;
19
+ protected watchedElements: WeakMap<Element, Set<string>>;
20
+ protected persistenceObserver: MutationObserver | null;
21
+ protected reapplyingElements: Set<Element>;
22
+ protected reapplyLogThrottle: Map<string, number>;
23
+ protected appliedStyleChanges: Map<string, DOMChange[]>;
24
+ protected antiFlickerTimeout: number | null;
25
+ protected antiFlickerStyleId: string;
26
+ constructor(config: PluginConfig);
27
+ ready(): Promise<void>;
28
+ initialize(): Promise<void>;
29
+ private setupMutationObserver;
30
+ /**
31
+ * Set up URL change listener for SPA mode
32
+ * Re-evaluates URL filters when URL changes and applies/removes changes accordingly
33
+ */
34
+ private setupURLChangeListener;
35
+ /**
36
+ * Remove all currently applied changes
37
+ * Used when URL changes in SPA mode
38
+ */
39
+ private removeAllChanges;
40
+ /**
41
+ * Apply HTML injections and DOM changes in parallel to minimize flickering
42
+ */
43
+ private applyInjectionsAndChanges;
44
+ /**
45
+ * Apply HTML injections from all variants
46
+ */
47
+ private applyHTMLInjections;
48
+ applyChanges(experimentName?: string): Promise<void>;
49
+ /**
50
+ * Get all experiments with their variant data and metadata
51
+ */
52
+ private getAllExperimentsData;
53
+ /**
54
+ * Extract changes from DOMChangesData and apply global defaults
55
+ */
56
+ private extractChangesFromData;
57
+ /**
58
+ * Extract all variant changes for cross-variant tracking
59
+ */
60
+ private extractAllVariantChanges;
61
+ /**
62
+ * Determine if visual changes should be applied based on URL filter
63
+ */
64
+ private shouldApplyVisualChanges;
65
+ hasChanges(experimentName: string): boolean;
66
+ applyChange(change: DOMChange, experimentName: string): boolean;
67
+ on(event: string, callback: EventCallback): void;
68
+ off(event: string, callback?: EventCallback): void;
69
+ protected emit(event: string, data?: EventCallbackData): void;
70
+ getStyleManager(experimentName: string): StyleSheetManager;
71
+ buildCssRule(selector: string, properties: Record<string, string>, important?: boolean): string;
72
+ buildStateRules(selector: string, states: any, important?: boolean): string;
73
+ refreshExperiments(): void;
74
+ destroy(): void;
75
+ protected registerWithContext(): void;
76
+ protected unregisterFromContext(): void;
77
+ /**
78
+ * Hide content to prevent flicker before experiments are applied
79
+ */
80
+ private hideContent;
81
+ /**
82
+ * Show hidden content after experiments are applied
83
+ */
84
+ private showContent;
85
+ watchElement(element: Element, experimentName: string, change: DOMChange): void;
86
+ unwatchElement(element: Element, experimentName: string): void;
87
+ private setupPersistenceObserver;
88
+ private checkStyleOverwritten;
89
+ }