@xenia-martech/sdk-js 1.2.0-dev.1 → 1.2.0-dev.2

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.
@@ -1,5 +1,5 @@
1
- import { I as InteractionType, X as XeniaConfig, a as XeniaEvent, M as MessageCta, b as MessageTemplateFn, c as MessageComponentRenderer, W as WidgetFormSubmit, d as WidgetSubmitResponse, e as XeniaAction, f as MessagePlacement, C as ConsentState } from '../actions-D9_aAvCv.cjs';
2
- export { A as AnalyticsContext, g as AnalyticsEventName, h as AnalyticsIdentity, i as AnalyticsIngestResponse, j as AppliedSwap, k as ClientEvent, l as CmsAdapter, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, p as Identity, J as JsonValue, q as MessageMountContext, r as MessageRenderContext, P as PagePersonalizeOptions, s as PageRef, t as PersonalizationSwap, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveOptions, w as ResolveResult, T as TrackOptions, x as WebhookResponse, y as WidgetPrize, z as WidgetSegment, B as WidgetType, D as XeniaClient, E as XeniaClientOptions, F as XeniaMarker, G as createXeniaClient, H as extractContentSwaps, K as parseActions, L as pendingTargets, N as personalizeContent, O as personalizePage, Q as spliceSlots } from '../actions-D9_aAvCv.cjs';
1
+ import { I as InteractionType, X as XeniaConfig, a as XeniaEvent, M as MessageCta, b as MessageTemplateFn, c as MessageComponentRenderer, W as WidgetFormSubmit, d as WidgetSubmitResponse, e as XeniaAction, f as MessagePlacement, C as ConsentState } from '../actions-BcdlokGO.cjs';
2
+ export { A as AnalyticsContext, g as AnalyticsEventName, h as AnalyticsIdentity, i as AnalyticsIngestResponse, j as AppliedSwap, k as ClientEvent, l as CmsAdapter, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, p as Identity, J as JsonValue, q as MessageMountContext, r as MessageRenderContext, P as PagePersonalizeOptions, s as PageRef, t as PersonalizationSwap, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveOptions, w as ResolveResult, T as TrackOptions, x as WebhookResponse, y as WidgetPrize, z as WidgetSegment, B as WidgetType, D as XeniaClient, E as XeniaClientOptions, F as XeniaMarker, G as createXeniaClient, H as extractContentSwaps, K as parseActions, L as pendingTargets, N as personalizeContent, O as personalizePage, Q as spliceSlots } from '../actions-BcdlokGO.cjs';
3
3
 
4
4
  interface Parsed {
5
5
  eventId: string;
@@ -1,5 +1,5 @@
1
- import { I as InteractionType, X as XeniaConfig, a as XeniaEvent, M as MessageCta, b as MessageTemplateFn, c as MessageComponentRenderer, W as WidgetFormSubmit, d as WidgetSubmitResponse, e as XeniaAction, f as MessagePlacement, C as ConsentState } from '../actions-D9_aAvCv.js';
2
- export { A as AnalyticsContext, g as AnalyticsEventName, h as AnalyticsIdentity, i as AnalyticsIngestResponse, j as AppliedSwap, k as ClientEvent, l as CmsAdapter, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, p as Identity, J as JsonValue, q as MessageMountContext, r as MessageRenderContext, P as PagePersonalizeOptions, s as PageRef, t as PersonalizationSwap, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveOptions, w as ResolveResult, T as TrackOptions, x as WebhookResponse, y as WidgetPrize, z as WidgetSegment, B as WidgetType, D as XeniaClient, E as XeniaClientOptions, F as XeniaMarker, G as createXeniaClient, H as extractContentSwaps, K as parseActions, L as pendingTargets, N as personalizeContent, O as personalizePage, Q as spliceSlots } from '../actions-D9_aAvCv.js';
1
+ import { I as InteractionType, X as XeniaConfig, a as XeniaEvent, M as MessageCta, b as MessageTemplateFn, c as MessageComponentRenderer, W as WidgetFormSubmit, d as WidgetSubmitResponse, e as XeniaAction, f as MessagePlacement, C as ConsentState } from '../actions-BcdlokGO.js';
2
+ export { A as AnalyticsContext, g as AnalyticsEventName, h as AnalyticsIdentity, i as AnalyticsIngestResponse, j as AppliedSwap, k as ClientEvent, l as CmsAdapter, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, p as Identity, J as JsonValue, q as MessageMountContext, r as MessageRenderContext, P as PagePersonalizeOptions, s as PageRef, t as PersonalizationSwap, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveOptions, w as ResolveResult, T as TrackOptions, x as WebhookResponse, y as WidgetPrize, z as WidgetSegment, B as WidgetType, D as XeniaClient, E as XeniaClientOptions, F as XeniaMarker, G as createXeniaClient, H as extractContentSwaps, K as parseActions, L as pendingTargets, N as personalizeContent, O as personalizePage, Q as spliceSlots } from '../actions-BcdlokGO.js';
3
3
 
4
4
  interface Parsed {
5
5
  eventId: string;
@@ -1229,6 +1229,20 @@ var AutoTracker = class {
1229
1229
  }
1230
1230
  };
1231
1231
 
1232
+ // src/server/cookies.ts
1233
+ function parseCookies(header) {
1234
+ const out = {};
1235
+ if (!header) return out;
1236
+ for (const part of header.split(";")) {
1237
+ const idx = part.indexOf("=");
1238
+ if (idx === -1) continue;
1239
+ const key = part.slice(0, idx).trim();
1240
+ const value = part.slice(idx + 1).trim();
1241
+ if (key) out[key] = decodeURIComponent(value);
1242
+ }
1243
+ return out;
1244
+ }
1245
+
1232
1246
  // src/client/identity.ts
1233
1247
  var SESSION_TIMEOUT_MS = 30 * 60 * 1e3;
1234
1248
  var Identity = class {
@@ -1276,10 +1290,19 @@ var Identity = class {
1276
1290
  } catch {
1277
1291
  }
1278
1292
  }
1293
+ /** The visitor id already in the cookie — e.g. minted by `xeniaProxy()` on the first request. */
1294
+ readVisitorCookie() {
1295
+ if (!this.cookie || typeof document === "undefined") return null;
1296
+ try {
1297
+ return parseCookies(document.cookie)[this.cookieName()] || null;
1298
+ } catch {
1299
+ return null;
1300
+ }
1301
+ }
1279
1302
  // ── Device id ────────────────────────────────────────────────────────────
1280
1303
  /**
1281
- * Resolve a stable device id: localStorage cache → MediaDevices → SHA-256
1282
- * browser fingerprint. Cached for the session and across reloads.
1304
+ * Resolve a stable device id: localStorage cache → the visitor cookie a server already set →
1305
+ * MediaDevices → SHA-256 browser fingerprint. Cached for the session and across reloads.
1283
1306
  */
1284
1307
  async resolveDeviceId() {
1285
1308
  if (this.deviceId) {
@@ -1296,7 +1319,8 @@ var Identity = class {
1296
1319
  }
1297
1320
  } catch {
1298
1321
  }
1299
- let id = await this.mediaDeviceId();
1322
+ let id = this.readVisitorCookie();
1323
+ if (!id) id = await this.mediaDeviceId();
1300
1324
  if (!id) id = await this.fingerprint();
1301
1325
  this.deviceId = id;
1302
1326
  try {