@xenia-martech/sdk-js 1.2.0-dev.8 → 1.2.0-dev.9
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/README.md +69 -5
- package/dist/{actions-35V37IT0.d.cts → actions--1_9Z8ig.d.cts} +13 -2
- package/dist/{actions-35V37IT0.d.ts → actions--1_9Z8ig.d.ts} +13 -2
- package/dist/{api-0IycTYJR.d.cts → api-DbUxT38T.d.ts} +1 -1
- package/dist/{api-COXWLL5L.d.ts → api-DgzJ5s-k.d.cts} +1 -1
- package/dist/chunk-DPXINHQR.cjs +34 -0
- package/dist/chunk-DPXINHQR.cjs.map +1 -0
- package/dist/chunk-FSJMHXS6.js +432 -0
- package/dist/chunk-FSJMHXS6.js.map +1 -0
- package/dist/chunk-GXJLU3RE.cjs +448 -0
- package/dist/chunk-GXJLU3RE.cjs.map +1 -0
- package/dist/{chunk-2DR5AVPX.cjs → chunk-I5EHLRSR.cjs} +11 -10
- package/dist/chunk-I5EHLRSR.cjs.map +1 -0
- package/dist/{chunk-LW5AEJ6K.js → chunk-MEULT5X6.js} +4 -241
- package/dist/chunk-MEULT5X6.js.map +1 -0
- package/dist/{chunk-GWRDZIVA.js → chunk-NDRRSRTU.js} +4 -3
- package/dist/chunk-NDRRSRTU.js.map +1 -0
- package/dist/chunk-RC46KXDM.js +32 -0
- package/dist/chunk-RC46KXDM.js.map +1 -0
- package/dist/{chunk-RWE2OCQL.cjs → chunk-SU25SELD.cjs} +4 -244
- package/dist/chunk-SU25SELD.cjs.map +1 -0
- package/dist/{chunk-WHGK55JP.cjs → chunk-UUIKUU5W.cjs} +5 -5
- package/dist/{chunk-WHGK55JP.cjs.map → chunk-UUIKUU5W.cjs.map} +1 -1
- package/dist/{chunk-QEYONKWY.js → chunk-UVTFGQR6.js} +3 -3
- package/dist/{chunk-QEYONKWY.js.map → chunk-UVTFGQR6.js.map} +1 -1
- package/dist/{chunk-F3WZFXYK.js → chunk-V4EGU3PM.js} +45 -10
- package/dist/chunk-V4EGU3PM.js.map +1 -0
- package/dist/{chunk-IOY6IPUW.cjs → chunk-WMGCQPHY.cjs} +49 -12
- package/dist/chunk-WMGCQPHY.cjs.map +1 -0
- package/dist/client/index.cjs +26 -10
- 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 +26 -10
- package/dist/client/index.js.map +1 -1
- package/dist/client/react/index.cjs +73 -15
- package/dist/client/react/index.cjs.map +1 -1
- package/dist/client/react/index.d.cts +9 -3
- package/dist/client/react/index.d.ts +9 -3
- package/dist/client/react/index.js +73 -15
- package/dist/client/react/index.js.map +1 -1
- package/dist/cms/contentful.cjs +7 -24
- package/dist/cms/contentful.cjs.map +1 -1
- package/dist/cms/contentful.d.cts +5 -4
- package/dist/cms/contentful.d.ts +5 -4
- package/dist/cms/contentful.js +4 -23
- package/dist/cms/contentful.js.map +1 -1
- package/dist/cms/contentstack.cjs +120 -0
- package/dist/cms/contentstack.cjs.map +1 -0
- package/dist/cms/contentstack.d.cts +41 -0
- package/dist/cms/contentstack.d.ts +41 -0
- package/dist/cms/contentstack.js +117 -0
- package/dist/cms/contentstack.js.map +1 -0
- package/dist/{consent-DRCV0N0d.d.ts → consent-Dtiqzz2B.d.cts} +71 -11
- package/dist/{consent-BgAETCkL.d.cts → consent-byYiDMFr.d.ts} +71 -11
- package/dist/{cookie-names-DU3MtcNG.d.ts → cookie-names-B4hda2rX.d.cts} +1 -1
- package/dist/{cookie-names-DFItnSLK.d.cts → cookie-names-DioZXuV0.d.ts} +1 -1
- package/dist/edge/index.cjs +122 -29
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.d.cts +41 -5
- package/dist/edge/index.d.ts +41 -5
- package/dist/edge/index.js +92 -9
- package/dist/edge/index.js.map +1 -1
- package/dist/index.cjs +31 -31
- package/dist/index.d.cts +4 -5
- package/dist/index.d.ts +4 -5
- package/dist/index.js +2 -2
- package/dist/next/index.cjs +34 -33
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.d.cts +2 -3
- package/dist/next/index.d.ts +2 -3
- package/dist/next/index.js +8 -7
- package/dist/next/index.js.map +1 -1
- package/dist/{types-DgVHS4Qw.d.ts → personalize-content-D6xeBI7-.d.cts} +150 -1
- package/dist/{types-DgVHS4Qw.d.cts → personalize-content-D6xeBI7-.d.ts} +150 -1
- package/dist/server/index.cjs +30 -30
- package/dist/server/index.d.cts +5 -6
- package/dist/server/index.d.ts +5 -6
- package/dist/server/index.js +5 -5
- package/dist/xenia-sdk.iife.js +3 -3
- package/dist/xenia-sdk.iife.js.map +1 -1
- package/dist/{xenia-server-Cf24mL0c.d.ts → xenia-server-BcgeUHX4.d.ts} +2 -3
- package/dist/{xenia-server-D-bx14lw.d.cts → xenia-server-lv6LtJZP.d.cts} +2 -3
- package/package.json +14 -1
- package/dist/chunk-2DR5AVPX.cjs.map +0 -1
- package/dist/chunk-BQ5PJCZ7.js +0 -179
- package/dist/chunk-BQ5PJCZ7.js.map +0 -1
- package/dist/chunk-F3WZFXYK.js.map +0 -1
- package/dist/chunk-GWRDZIVA.js.map +0 -1
- package/dist/chunk-IOY6IPUW.cjs.map +0 -1
- package/dist/chunk-LW5AEJ6K.js.map +0 -1
- package/dist/chunk-N5M4PI7C.cjs +0 -192
- package/dist/chunk-N5M4PI7C.cjs.map +0 -1
- package/dist/chunk-RWE2OCQL.cjs.map +0 -1
- package/dist/personalize-content-Cwc2AomC.d.ts +0 -141
- package/dist/personalize-content-CxSdplMV.d.cts +0 -141
package/dist/client/index.d.cts
CHANGED
|
@@ -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
|
|
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
|
|
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--1_9Z8ig.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--1_9Z8ig.cjs';
|
|
3
3
|
|
|
4
4
|
interface Parsed {
|
|
5
5
|
eventId: string;
|
package/dist/client/index.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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--1_9Z8ig.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--1_9Z8ig.js';
|
|
3
3
|
|
|
4
4
|
interface Parsed {
|
|
5
5
|
eventId: string;
|
package/dist/client/index.js
CHANGED
|
@@ -713,7 +713,7 @@ async function personalizeContent(payload, options) {
|
|
|
713
713
|
const next = apply(target, op, d.decision.field ?? target.marker.field, items, cms);
|
|
714
714
|
report({
|
|
715
715
|
target: target.id,
|
|
716
|
-
kind: "runtime",
|
|
716
|
+
kind: target.local ? "static" : "runtime",
|
|
717
717
|
op,
|
|
718
718
|
entryIds: items.map((e) => cms.entryId(e)).filter((id) => !!id),
|
|
719
719
|
contentKey: d.decision.contentKey,
|
|
@@ -723,20 +723,23 @@ async function personalizeContent(payload, options) {
|
|
|
723
723
|
return next;
|
|
724
724
|
};
|
|
725
725
|
for (let round = 0; ; round++) {
|
|
726
|
-
const pending = walk(frontier, cms, settled, round, report, (t) => {
|
|
726
|
+
const pending = walk(frontier, cms, settled, round, report, options.contentKey, (t) => {
|
|
727
727
|
const d = decided.get(t.id);
|
|
728
728
|
return d ? settle(t, d, round) : void 0;
|
|
729
729
|
});
|
|
730
730
|
if (pending.size === 0) return { content: box.root, applied, complete: true };
|
|
731
|
-
|
|
732
|
-
|
|
731
|
+
const remote = [...pending.values()].filter((p) => !p.local).map((p) => p.id);
|
|
732
|
+
const local = [...pending.values()].flatMap((p) => p.local ? [p.local] : []);
|
|
733
|
+
if (!options.resolve && local.length === 0 || round >= maxRounds) {
|
|
734
|
+
return { content: box.root, applied, complete: !options.resolve && round < maxRounds };
|
|
733
735
|
}
|
|
734
736
|
progress(options, { content: box.root, round, pending: [...pending.keys()] });
|
|
735
737
|
let decisions;
|
|
736
738
|
let entriesById;
|
|
737
739
|
let queried;
|
|
738
740
|
try {
|
|
739
|
-
decisions = await withDeadline(options.resolve(
|
|
741
|
+
decisions = options.resolve && remote.length > 0 ? await withDeadline(options.resolve(remote), deadline) : [];
|
|
742
|
+
decisions = [...decisions, ...local];
|
|
740
743
|
({ entriesById, queried } = await withDeadline(loadReplacements(decisions, cms, options.locale), deadline));
|
|
741
744
|
} catch (error) {
|
|
742
745
|
return { content: box.root, applied, complete: false, error: error === TIMEOUT ? void 0 : error };
|
|
@@ -759,7 +762,7 @@ function progress(options, p) {
|
|
|
759
762
|
} catch {
|
|
760
763
|
}
|
|
761
764
|
}
|
|
762
|
-
function walk(frontier, cms, settled, round, report, reuse) {
|
|
765
|
+
function walk(frontier, cms, settled, round, report, contentKey, reuse) {
|
|
763
766
|
const pending = /* @__PURE__ */ new Map();
|
|
764
767
|
const seen = /* @__PURE__ */ new WeakSet();
|
|
765
768
|
const deferred = /* @__PURE__ */ new WeakSet();
|
|
@@ -770,7 +773,8 @@ function walk(frontier, cms, settled, round, report, reuse) {
|
|
|
770
773
|
if (!value || typeof value !== "object" || deferred.has(value)) continue;
|
|
771
774
|
const id = settled.has(value) ? void 0 : cms.entryId(value);
|
|
772
775
|
const marker = id ? cms.marker(value) : null;
|
|
773
|
-
|
|
776
|
+
const local = id && marker?.kind === "static" && marker.ids?.length && cms.staticVariants(value).length === 0 ? localDecision(id, marker, contentKey) : void 0;
|
|
777
|
+
if (id && marker && (marker.kind === "runtime" || local)) {
|
|
774
778
|
const again = reuse({ id, marker, entry: value, slots: [slot] });
|
|
775
779
|
if (again) {
|
|
776
780
|
queue.push(...again);
|
|
@@ -780,7 +784,7 @@ function walk(frontier, cms, settled, round, report, reuse) {
|
|
|
780
784
|
if (existing) {
|
|
781
785
|
existing.slots.push(slot);
|
|
782
786
|
} else {
|
|
783
|
-
pending.set(id, { id, marker, entry: value, slots: [slot] });
|
|
787
|
+
pending.set(id, { id, marker, entry: value, slots: [slot], ...local ? { local } : {} });
|
|
784
788
|
if (marker.op === "items" && marker.field) {
|
|
785
789
|
const held = cms.getField(value, marker.field);
|
|
786
790
|
if (held && typeof held === "object") deferred.add(held);
|
|
@@ -814,6 +818,16 @@ function walk(frontier, cms, settled, round, report, reuse) {
|
|
|
814
818
|
}
|
|
815
819
|
return pending;
|
|
816
820
|
}
|
|
821
|
+
function localDecision(id, marker, contentKey) {
|
|
822
|
+
return {
|
|
823
|
+
target: id,
|
|
824
|
+
op: marker.op ?? "replace",
|
|
825
|
+
...marker.field ? { field: marker.field } : {},
|
|
826
|
+
ids: marker.ids,
|
|
827
|
+
...marker.ct ? { contentType: marker.ct } : {},
|
|
828
|
+
contentKey
|
|
829
|
+
};
|
|
830
|
+
}
|
|
817
831
|
function apply(target, op, field, items, cms) {
|
|
818
832
|
if (op === "items") {
|
|
819
833
|
if (field) {
|
|
@@ -852,9 +866,11 @@ function children(value) {
|
|
|
852
866
|
}
|
|
853
867
|
async function loadReplacements(decisions, cms, locale) {
|
|
854
868
|
const ids = [...new Set(decisions.flatMap((d) => d.ids ?? []))];
|
|
869
|
+
const types = {};
|
|
870
|
+
for (const d of decisions) if (d.contentType) for (const id of d.ids ?? []) types[id] = d.contentType;
|
|
855
871
|
const queries = decisions.filter((d) => !d.ids && d.query);
|
|
856
872
|
const [fetched, ...results] = await Promise.all([
|
|
857
|
-
ids.length > 0 ? cms.fetchEntries(ids, locale) : Promise.resolve([]),
|
|
873
|
+
ids.length > 0 ? cms.fetchEntries(ids, locale, types) : Promise.resolve([]),
|
|
858
874
|
...queries.map((d) => cms.queryEntries(d.query, locale).catch(() => []))
|
|
859
875
|
]);
|
|
860
876
|
const entriesById = /* @__PURE__ */ new Map();
|
|
@@ -885,7 +901,7 @@ function pendingTargets(payload, adapter, contentKey) {
|
|
|
885
901
|
content = cms.prepare ? cms.prepare(content) : content;
|
|
886
902
|
const root = { parent: { root: content }, key: "root", value: content };
|
|
887
903
|
return [...walk([root], cms, /* @__PURE__ */ new WeakSet(), 0, () => {
|
|
888
|
-
}, () => void 0).keys()];
|
|
904
|
+
}, contentKey, () => void 0).keys()];
|
|
889
905
|
} catch {
|
|
890
906
|
return [];
|
|
891
907
|
}
|