@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.
- package/dist/{actions-D9_aAvCv.d.cts → actions-BcdlokGO.d.cts} +4 -2
- package/dist/{actions-D9_aAvCv.d.ts → actions-BcdlokGO.d.ts} +4 -2
- package/dist/client/index.cjs +27 -3
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +27 -3
- package/dist/client/index.js.map +1 -1
- package/dist/client/react/index.cjs +27 -3
- package/dist/client/react/index.cjs.map +1 -1
- package/dist/client/react/index.d.cts +2 -2
- package/dist/client/react/index.d.ts +2 -2
- package/dist/client/react/index.js +27 -3
- package/dist/client/react/index.js.map +1 -1
- package/dist/xenia-sdk.iife.js +3 -3
- package/dist/xenia-sdk.iife.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ElementType, ComponentType } from 'react';
|
|
3
|
-
import { E as XeniaClientOptions, D as XeniaClient, w as ResolveResult, u as ResolveBatchResult, J as JsonValue, x as WebhookResponse, R as ResolveBatchItem, g as AnalyticsEventName, T as TrackOptions, P as PagePersonalizeOptions, j as AppliedSwap, s as PageRef, e as XeniaAction, I as InteractionType, q as MessageMountContext, c as MessageComponentRenderer } from '../../actions-
|
|
4
|
-
export { A as AnalyticsContext, h as AnalyticsIdentity, i as AnalyticsIngestResponse, k as ClientEvent, l as CmsAdapter, C as ConsentState, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, M as MessageCta, f as MessagePlacement, r as MessageRenderContext, b as MessageTemplateFn, t as PersonalizationSwap, v as ResolveOptions, X as XeniaConfig, a as XeniaEvent, 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-
|
|
3
|
+
import { E as XeniaClientOptions, D as XeniaClient, w as ResolveResult, u as ResolveBatchResult, J as JsonValue, x as WebhookResponse, R as ResolveBatchItem, g as AnalyticsEventName, T as TrackOptions, P as PagePersonalizeOptions, j as AppliedSwap, s as PageRef, e as XeniaAction, I as InteractionType, q as MessageMountContext, c as MessageComponentRenderer } from '../../actions-BcdlokGO.cjs';
|
|
4
|
+
export { A as AnalyticsContext, h as AnalyticsIdentity, i as AnalyticsIngestResponse, k as ClientEvent, l as CmsAdapter, C as ConsentState, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, M as MessageCta, f as MessagePlacement, r as MessageRenderContext, b as MessageTemplateFn, t as PersonalizationSwap, v as ResolveOptions, X as XeniaConfig, a as XeniaEvent, 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';
|
|
5
5
|
|
|
6
6
|
interface XeniaProviderProps extends XeniaClientOptions {
|
|
7
7
|
children: ReactNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, ElementType, ComponentType } from 'react';
|
|
3
|
-
import { E as XeniaClientOptions, D as XeniaClient, w as ResolveResult, u as ResolveBatchResult, J as JsonValue, x as WebhookResponse, R as ResolveBatchItem, g as AnalyticsEventName, T as TrackOptions, P as PagePersonalizeOptions, j as AppliedSwap, s as PageRef, e as XeniaAction, I as InteractionType, q as MessageMountContext, c as MessageComponentRenderer } from '../../actions-
|
|
4
|
-
export { A as AnalyticsContext, h as AnalyticsIdentity, i as AnalyticsIngestResponse, k as ClientEvent, l as CmsAdapter, C as ConsentState, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, M as MessageCta, f as MessagePlacement, r as MessageRenderContext, b as MessageTemplateFn, t as PersonalizationSwap, v as ResolveOptions, X as XeniaConfig, a as XeniaEvent, 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-
|
|
3
|
+
import { E as XeniaClientOptions, D as XeniaClient, w as ResolveResult, u as ResolveBatchResult, J as JsonValue, x as WebhookResponse, R as ResolveBatchItem, g as AnalyticsEventName, T as TrackOptions, P as PagePersonalizeOptions, j as AppliedSwap, s as PageRef, e as XeniaAction, I as InteractionType, q as MessageMountContext, c as MessageComponentRenderer } from '../../actions-BcdlokGO.js';
|
|
4
|
+
export { A as AnalyticsContext, h as AnalyticsIdentity, i as AnalyticsIngestResponse, k as ClientEvent, l as CmsAdapter, C as ConsentState, m as ContentSwap, n as IdentifyRequest, o as IdentifyResponse, M as MessageCta, f as MessagePlacement, r as MessageRenderContext, b as MessageTemplateFn, t as PersonalizationSwap, v as ResolveOptions, X as XeniaConfig, a as XeniaEvent, 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';
|
|
5
5
|
|
|
6
6
|
interface XeniaProviderProps extends XeniaClientOptions {
|
|
7
7
|
children: ReactNode;
|
|
@@ -1236,6 +1236,20 @@ var AutoTracker = class {
|
|
|
1236
1236
|
}
|
|
1237
1237
|
};
|
|
1238
1238
|
|
|
1239
|
+
// src/server/cookies.ts
|
|
1240
|
+
function parseCookies(header) {
|
|
1241
|
+
const out = {};
|
|
1242
|
+
if (!header) return out;
|
|
1243
|
+
for (const part of header.split(";")) {
|
|
1244
|
+
const idx = part.indexOf("=");
|
|
1245
|
+
if (idx === -1) continue;
|
|
1246
|
+
const key = part.slice(0, idx).trim();
|
|
1247
|
+
const value = part.slice(idx + 1).trim();
|
|
1248
|
+
if (key) out[key] = decodeURIComponent(value);
|
|
1249
|
+
}
|
|
1250
|
+
return out;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1239
1253
|
// src/client/identity.ts
|
|
1240
1254
|
var SESSION_TIMEOUT_MS = 30 * 60 * 1e3;
|
|
1241
1255
|
var Identity = class {
|
|
@@ -1283,10 +1297,19 @@ var Identity = class {
|
|
|
1283
1297
|
} catch {
|
|
1284
1298
|
}
|
|
1285
1299
|
}
|
|
1300
|
+
/** The visitor id already in the cookie — e.g. minted by `xeniaProxy()` on the first request. */
|
|
1301
|
+
readVisitorCookie() {
|
|
1302
|
+
if (!this.cookie || typeof document === "undefined") return null;
|
|
1303
|
+
try {
|
|
1304
|
+
return parseCookies(document.cookie)[this.cookieName()] || null;
|
|
1305
|
+
} catch {
|
|
1306
|
+
return null;
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1286
1309
|
// ── Device id ────────────────────────────────────────────────────────────
|
|
1287
1310
|
/**
|
|
1288
|
-
* Resolve a stable device id: localStorage cache →
|
|
1289
|
-
* browser fingerprint. Cached for the session and across reloads.
|
|
1311
|
+
* Resolve a stable device id: localStorage cache → the visitor cookie a server already set →
|
|
1312
|
+
* MediaDevices → SHA-256 browser fingerprint. Cached for the session and across reloads.
|
|
1290
1313
|
*/
|
|
1291
1314
|
async resolveDeviceId() {
|
|
1292
1315
|
if (this.deviceId) {
|
|
@@ -1303,7 +1326,8 @@ var Identity = class {
|
|
|
1303
1326
|
}
|
|
1304
1327
|
} catch {
|
|
1305
1328
|
}
|
|
1306
|
-
let id =
|
|
1329
|
+
let id = this.readVisitorCookie();
|
|
1330
|
+
if (!id) id = await this.mediaDeviceId();
|
|
1307
1331
|
if (!id) id = await this.fingerprint();
|
|
1308
1332
|
this.deviceId = id;
|
|
1309
1333
|
try {
|