@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/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkPKWANLT7_cjs = require('./chunk-PKWANLT7.cjs');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkSU25SELD_cjs = require('./chunk-SU25SELD.cjs');
|
|
5
|
+
var chunkGXJLU3RE_cjs = require('./chunk-GXJLU3RE.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -24,83 +24,83 @@ Object.defineProperty(exports, "spliceSlots", {
|
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "MAX_EVENT_ID_LENGTH", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkSU25SELD_cjs.MAX_EVENT_ID_LENGTH; }
|
|
28
28
|
});
|
|
29
29
|
Object.defineProperty(exports, "XeniaApi", {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
31
|
+
get: function () { return chunkSU25SELD_cjs.XeniaApi; }
|
|
32
32
|
});
|
|
33
33
|
Object.defineProperty(exports, "contextFromUrl", {
|
|
34
34
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
35
|
+
get: function () { return chunkSU25SELD_cjs.contextFromUrl; }
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "generateUlid", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunkSU25SELD_cjs.generateUlid; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "parseActions", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
44
|
-
});
|
|
45
|
-
Object.defineProperty(exports, "pendingTargets", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
get: function () { return chunkRWE2OCQL_cjs.pendingTargets; }
|
|
48
|
-
});
|
|
49
|
-
Object.defineProperty(exports, "personalizeContent", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
get: function () { return chunkRWE2OCQL_cjs.personalizeContent; }
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(exports, "personalizePage", {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
get: function () { return chunkRWE2OCQL_cjs.personalizePage; }
|
|
43
|
+
get: function () { return chunkSU25SELD_cjs.parseActions; }
|
|
56
44
|
});
|
|
57
45
|
Object.defineProperty(exports, "toEventId", {
|
|
58
46
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunkSU25SELD_cjs.toEventId; }
|
|
60
48
|
});
|
|
61
49
|
Object.defineProperty(exports, "CONSENT_COOKIE", {
|
|
62
50
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunkGXJLU3RE_cjs.CONSENT_COOKIE; }
|
|
64
52
|
});
|
|
65
53
|
Object.defineProperty(exports, "CircuitOpenError", {
|
|
66
54
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
55
|
+
get: function () { return chunkGXJLU3RE_cjs.CircuitOpenError; }
|
|
68
56
|
});
|
|
69
57
|
Object.defineProperty(exports, "DEFAULT_PREFIX", {
|
|
70
58
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
59
|
+
get: function () { return chunkGXJLU3RE_cjs.DEFAULT_PREFIX; }
|
|
72
60
|
});
|
|
73
61
|
Object.defineProperty(exports, "HttpClient", {
|
|
74
62
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
63
|
+
get: function () { return chunkGXJLU3RE_cjs.HttpClient; }
|
|
76
64
|
});
|
|
77
65
|
Object.defineProperty(exports, "HttpError", {
|
|
78
66
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
67
|
+
get: function () { return chunkGXJLU3RE_cjs.HttpError; }
|
|
80
68
|
});
|
|
81
69
|
Object.defineProperty(exports, "VISITOR_COOKIE", {
|
|
82
70
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
71
|
+
get: function () { return chunkGXJLU3RE_cjs.VISITOR_COOKIE; }
|
|
84
72
|
});
|
|
85
73
|
Object.defineProperty(exports, "buildUrl", {
|
|
86
74
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
75
|
+
get: function () { return chunkGXJLU3RE_cjs.buildUrl; }
|
|
88
76
|
});
|
|
89
77
|
Object.defineProperty(exports, "consentCookie", {
|
|
90
78
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
79
|
+
get: function () { return chunkGXJLU3RE_cjs.consentCookie; }
|
|
92
80
|
});
|
|
93
81
|
Object.defineProperty(exports, "consentCookieName", {
|
|
94
82
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
83
|
+
get: function () { return chunkGXJLU3RE_cjs.consentCookieName; }
|
|
96
84
|
});
|
|
97
85
|
Object.defineProperty(exports, "isBrowser", {
|
|
98
86
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
87
|
+
get: function () { return chunkGXJLU3RE_cjs.isBrowser; }
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(exports, "pendingTargets", {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () { return chunkGXJLU3RE_cjs.pendingTargets; }
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, "personalizeContent", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () { return chunkGXJLU3RE_cjs.personalizeContent; }
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(exports, "personalizePage", {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function () { return chunkGXJLU3RE_cjs.personalizePage; }
|
|
100
100
|
});
|
|
101
101
|
Object.defineProperty(exports, "visitorCookieName", {
|
|
102
102
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
103
|
+
get: function () { return chunkGXJLU3RE_cjs.visitorCookieName; }
|
|
104
104
|
});
|
|
105
105
|
//# sourceMappingURL=index.cjs.map
|
|
106
106
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export { X as XeniaApi } from './api-
|
|
2
|
-
export { C as CONSENT_COOKIE, a as CircuitOpenError, D as DEFAULT_PREFIX, H as HttpClient, b as HttpClientOptions, c as HttpError, d as HttpResult, R as RequestOptions, V as VISITOR_COOKIE, e as buildUrl, f as consentCookie, g as consentCookieName, i as isBrowser, p as parseActions, v as visitorCookieName } from './cookie-names-
|
|
3
|
-
import { J as JsonValue, E as EventContext, W as WebhookResponse } from './
|
|
4
|
-
export { A as AnalyticsContext,
|
|
5
|
-
export { A as AppliedSwap, C as CmsAdapter, E as EntryResolver, P as PagePersonalizeOptions, a as PageRef, b as PersonalizeContentOptions, c as PersonalizeContentResult, X as XeniaMarker, p as pendingTargets, d as personalizeContent, e as personalizePage } from './personalize-content-CxSdplMV.cjs';
|
|
1
|
+
export { X as XeniaApi } from './api-DgzJ5s-k.cjs';
|
|
2
|
+
export { C as CONSENT_COOKIE, a as CircuitOpenError, D as DEFAULT_PREFIX, H as HttpClient, b as HttpClientOptions, c as HttpError, d as HttpResult, R as RequestOptions, V as VISITOR_COOKIE, e as buildUrl, f as consentCookie, g as consentCookieName, i as isBrowser, p as parseActions, v as visitorCookieName } from './cookie-names-B4hda2rX.cjs';
|
|
3
|
+
import { J as JsonValue, E as EventContext, W as WebhookResponse } from './personalize-content-D6xeBI7-.cjs';
|
|
4
|
+
export { A as AnalyticsContext, c as AnalyticsEventName, d as AnalyticsIdentity, e as AnalyticsIngestResponse, f as AppliedSwap, g as CircuitBreakerConfig, C as CmsAdapter, h as ConsentState, i as EntryDecision, j as EntryFilter, k as EntryQuery, l as EntryResolver, m as EntrySwapOp, n as EventIdentity, H as HttpMethod, I as IdentifyRequest, o as IdentifyResponse, p as InteractionType, q as JsonObject, M as MessageCta, r as MessagePlacement, s as PagePersonalizeOptions, b as PageRef, t as PersonalizationSwap, P as PersonalizeContentOptions, a as PersonalizeContentResult, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveEntriesResult, w as ResolveOptions, x as ResolveResult, y as RetryConfig, T as TrackOptions, z as WidgetFormSubmit, B as WidgetPrize, D as WidgetSegment, F as WidgetSubmitResponse, G as WidgetType, K as XeniaAction, L as XeniaConfig, N as XeniaEvent, X as XeniaMarker, O as pendingTargets, Q as personalizeContent, S as personalizePage } from './personalize-content-D6xeBI7-.cjs';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Generate a ULID (Universally Unique Lexicographically Sortable Identifier):
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
export { X as XeniaApi } from './api-
|
|
2
|
-
export { C as CONSENT_COOKIE, a as CircuitOpenError, D as DEFAULT_PREFIX, H as HttpClient, b as HttpClientOptions, c as HttpError, d as HttpResult, R as RequestOptions, V as VISITOR_COOKIE, e as buildUrl, f as consentCookie, g as consentCookieName, i as isBrowser, p as parseActions, v as visitorCookieName } from './cookie-names-
|
|
3
|
-
import { J as JsonValue, E as EventContext, W as WebhookResponse } from './
|
|
4
|
-
export { A as AnalyticsContext,
|
|
5
|
-
export { A as AppliedSwap, C as CmsAdapter, E as EntryResolver, P as PagePersonalizeOptions, a as PageRef, b as PersonalizeContentOptions, c as PersonalizeContentResult, X as XeniaMarker, p as pendingTargets, d as personalizeContent, e as personalizePage } from './personalize-content-Cwc2AomC.js';
|
|
1
|
+
export { X as XeniaApi } from './api-DbUxT38T.js';
|
|
2
|
+
export { C as CONSENT_COOKIE, a as CircuitOpenError, D as DEFAULT_PREFIX, H as HttpClient, b as HttpClientOptions, c as HttpError, d as HttpResult, R as RequestOptions, V as VISITOR_COOKIE, e as buildUrl, f as consentCookie, g as consentCookieName, i as isBrowser, p as parseActions, v as visitorCookieName } from './cookie-names-DioZXuV0.js';
|
|
3
|
+
import { J as JsonValue, E as EventContext, W as WebhookResponse } from './personalize-content-D6xeBI7-.js';
|
|
4
|
+
export { A as AnalyticsContext, c as AnalyticsEventName, d as AnalyticsIdentity, e as AnalyticsIngestResponse, f as AppliedSwap, g as CircuitBreakerConfig, C as CmsAdapter, h as ConsentState, i as EntryDecision, j as EntryFilter, k as EntryQuery, l as EntryResolver, m as EntrySwapOp, n as EventIdentity, H as HttpMethod, I as IdentifyRequest, o as IdentifyResponse, p as InteractionType, q as JsonObject, M as MessageCta, r as MessagePlacement, s as PagePersonalizeOptions, b as PageRef, t as PersonalizationSwap, P as PersonalizeContentOptions, a as PersonalizeContentResult, R as ResolveBatchItem, u as ResolveBatchResult, v as ResolveEntriesResult, w as ResolveOptions, x as ResolveResult, y as RetryConfig, T as TrackOptions, z as WidgetFormSubmit, B as WidgetPrize, D as WidgetSegment, F as WidgetSubmitResponse, G as WidgetType, K as XeniaAction, L as XeniaConfig, N as XeniaEvent, X as XeniaMarker, O as pendingTargets, Q as personalizeContent, S as personalizePage } from './personalize-content-D6xeBI7-.js';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Generate a ULID (Universally Unique Lexicographically Sortable Identifier):
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { LocalStorageResponseStore, MemoryResponseStore, extractContentSwaps, spliceSlots } from './chunk-OUZU4Z5B.js';
|
|
2
|
-
export { MAX_EVENT_ID_LENGTH, XeniaApi, contextFromUrl, generateUlid, parseActions,
|
|
3
|
-
export { CONSENT_COOKIE, CircuitOpenError, DEFAULT_PREFIX, HttpClient, HttpError, VISITOR_COOKIE, buildUrl, consentCookie, consentCookieName, isBrowser, visitorCookieName } from './chunk-
|
|
2
|
+
export { MAX_EVENT_ID_LENGTH, XeniaApi, contextFromUrl, generateUlid, parseActions, toEventId } from './chunk-MEULT5X6.js';
|
|
3
|
+
export { CONSENT_COOKIE, CircuitOpenError, DEFAULT_PREFIX, HttpClient, HttpError, VISITOR_COOKIE, buildUrl, consentCookie, consentCookieName, isBrowser, pendingTargets, personalizeContent, personalizePage, visitorCookieName } from './chunk-FSJMHXS6.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/next/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkI5EHLRSR_cjs = require('../chunk-I5EHLRSR.cjs');
|
|
4
|
+
var chunkSU25SELD_cjs = require('../chunk-SU25SELD.cjs');
|
|
5
|
+
var chunkWMGCQPHY_cjs = require('../chunk-WMGCQPHY.cjs');
|
|
6
|
+
var chunkUUIKUU5W_cjs = require('../chunk-UUIKUU5W.cjs');
|
|
7
|
+
var chunkGXJLU3RE_cjs = require('../chunk-GXJLU3RE.cjs');
|
|
8
8
|
var React = require('react');
|
|
9
9
|
var headers = require('next/headers');
|
|
10
10
|
var server = require('next/server');
|
|
@@ -171,7 +171,7 @@ function debugEntry(info) {
|
|
|
171
171
|
};
|
|
172
172
|
}
|
|
173
173
|
function writeDebug(request, response, entry, cookie) {
|
|
174
|
-
if (
|
|
174
|
+
if (chunkWMGCQPHY_cjs.isPrefetch(request.headers)) return;
|
|
175
175
|
entry = { ...entry, page: entry.page.slice(0, MAX_PAGE) };
|
|
176
176
|
const pages = readDebugEntries(request.cookies.get(cookie)?.value);
|
|
177
177
|
delete pages[entry.page];
|
|
@@ -194,36 +194,36 @@ var MAX_QUERY = 20;
|
|
|
194
194
|
var MAX_QUERY_VALUE = 500;
|
|
195
195
|
async function xeniaEdgeProxy(request, opts) {
|
|
196
196
|
if (request.method !== "GET" && request.method !== "HEAD") return server.NextResponse.next();
|
|
197
|
-
if (
|
|
197
|
+
if (chunkWMGCQPHY_cjs.isBot(request.headers.get("user-agent"))) return server.NextResponse.next();
|
|
198
198
|
const started = Date.now();
|
|
199
|
-
const prefix = opts.prefix ??
|
|
200
|
-
const vidCookie =
|
|
199
|
+
const prefix = opts.prefix ?? chunkGXJLU3RE_cjs.DEFAULT_PREFIX;
|
|
200
|
+
const vidCookie = chunkGXJLU3RE_cjs.visitorCookieName(prefix);
|
|
201
201
|
const ctxCookie = `${prefix}_ctx`;
|
|
202
|
-
const trailCookie =
|
|
202
|
+
const trailCookie = chunkWMGCQPHY_cjs.trailCookieName(prefix);
|
|
203
203
|
const { pathname: path } = request.nextUrl;
|
|
204
204
|
const existingVisitorId = request.cookies.get(vidCookie)?.value;
|
|
205
|
-
const landing =
|
|
205
|
+
const landing = chunkWMGCQPHY_cjs.landingContext(request.nextUrl, request.headers.get("referer"), request.cookies.get(ctxCookie)?.value);
|
|
206
206
|
const qaOn = Boolean(opts.qa);
|
|
207
207
|
const cities = typeof opts.qa === "object" && opts.qa.cities || QA_CITIES;
|
|
208
208
|
const qaCookie = `${prefix}_qa_ctx`;
|
|
209
209
|
const { qa, changed: qaChanged } = qaOn ? readQa(request, cities, qaCookie) : { qa: {}, changed: false };
|
|
210
|
-
const detected =
|
|
210
|
+
const detected = chunkWMGCQPHY_cjs.viewerGeo(request, { trust: opts.geoHeaders, devOverride: qaOn && process.env.NODE_ENV === "development" });
|
|
211
211
|
const qaCity = qa.geo && Object.hasOwn(cities, qa.geo) ? cities[qa.geo] : void 0;
|
|
212
212
|
const { geo, via } = qaCity ? { geo: { ...qaCity, source: "qa" }, via: "qa" } : detected;
|
|
213
213
|
const ctx = {
|
|
214
214
|
request,
|
|
215
215
|
host: request.headers.get("host"),
|
|
216
216
|
path,
|
|
217
|
-
visitorId: existingVisitorId ??
|
|
217
|
+
visitorId: existingVisitorId ?? chunkSU25SELD_cjs.generateUlid(),
|
|
218
218
|
existingVisitorId,
|
|
219
219
|
geo,
|
|
220
220
|
geoVia: via,
|
|
221
221
|
...qaCity && detected.geo ? { detectedGeo: detected.geo } : {},
|
|
222
|
-
device:
|
|
222
|
+
device: chunkWMGCQPHY_cjs.deviceOf(request.headers),
|
|
223
223
|
landing: landing.ctx,
|
|
224
|
-
previousTrail:
|
|
224
|
+
previousTrail: chunkWMGCQPHY_cjs.readTrail(request.cookies.get(trailCookie)?.value),
|
|
225
225
|
trail: [],
|
|
226
|
-
consent:
|
|
226
|
+
consent: chunkWMGCQPHY_cjs.edgeConsent(request.headers, { prefix, respectDnt: opts.respectDnt }),
|
|
227
227
|
now: qaNow(qa) ?? /* @__PURE__ */ new Date()
|
|
228
228
|
};
|
|
229
229
|
const newVisitor = () => ctx.visitorId !== existingVisitorId;
|
|
@@ -235,8 +235,8 @@ async function xeniaEdgeProxy(request, opts) {
|
|
|
235
235
|
if (landing.changed || ctx.landing !== landing.ctx) {
|
|
236
236
|
response.cookies.set(ctxCookie, JSON.stringify(ctx.landing), { path: "/", sameSite: "lax", httpOnly: true });
|
|
237
237
|
}
|
|
238
|
-
if (ctx.consent.analytics &&
|
|
239
|
-
response.cookies.set(trailCookie,
|
|
238
|
+
if (ctx.consent.analytics && chunkWMGCQPHY_cjs.isPageLoad(request.headers) && ctx.trail.length && ctx.trail !== ctx.previousTrail) {
|
|
239
|
+
response.cookies.set(trailCookie, chunkWMGCQPHY_cjs.trailCookieValue(ctx.trail), { path: "/", maxAge: chunkWMGCQPHY_cjs.TRAIL_MAX_AGE_S, sameSite: "lax" });
|
|
240
240
|
}
|
|
241
241
|
response.headers.set("Server-Timing", `xenia;dur=${Date.now() - started};desc="${desc}"`);
|
|
242
242
|
if (qaChanged) rememberQa(response, qa, qaCookie);
|
|
@@ -257,7 +257,7 @@ async function xeniaEdgeProxy(request, opts) {
|
|
|
257
257
|
}
|
|
258
258
|
async function decideAndRespond() {
|
|
259
259
|
await opts.prepare?.(ctx);
|
|
260
|
-
ctx.trail =
|
|
260
|
+
ctx.trail = chunkWMGCQPHY_cjs.withView(ctx.previousTrail, path);
|
|
261
261
|
if (opts.skip?.(path)) return finish(base(), "skipped", "site page");
|
|
262
262
|
const query = {};
|
|
263
263
|
for (const [k, v] of request.nextUrl.searchParams) {
|
|
@@ -266,7 +266,7 @@ async function xeniaEdgeProxy(request, opts) {
|
|
|
266
266
|
}
|
|
267
267
|
const facts = {
|
|
268
268
|
...ctx.landing,
|
|
269
|
-
...
|
|
269
|
+
...chunkWMGCQPHY_cjs.localTime(ctx.geo, ctx.now),
|
|
270
270
|
device: ctx.device,
|
|
271
271
|
path,
|
|
272
272
|
url: request.nextUrl.href,
|
|
@@ -307,10 +307,11 @@ async function xeniaEdgeProxy(request, opts) {
|
|
|
307
307
|
});
|
|
308
308
|
const side = await pending;
|
|
309
309
|
const decisions = opts.filterDecisions ? opts.filterDecisions(outcome.decisions, ctx, side, outcome) : outcome.decisions;
|
|
310
|
-
const groups =
|
|
310
|
+
const groups = chunkWMGCQPHY_cjs.swapGroups(decisions);
|
|
311
|
+
const entries = chunkWMGCQPHY_cjs.variantEntries(decisions, outcome.entryDecisions);
|
|
311
312
|
let url = await opts.rewrite?.(ctx, groups, side, outcome);
|
|
312
|
-
if (url === void 0 && groups.length) {
|
|
313
|
-
const token = await
|
|
313
|
+
if (url === void 0 && (groups.length || entries.length)) {
|
|
314
|
+
const token = await chunkWMGCQPHY_cjs.encodeVariant(groups, opts.variantSecret, await opts.extra?.(ctx, side, outcome), entries);
|
|
314
315
|
url = request.nextUrl.clone();
|
|
315
316
|
url.pathname = `${opts.variantPrefix ?? "/xv"}/${token}${path === "/" ? "" : path}`;
|
|
316
317
|
}
|
|
@@ -324,7 +325,7 @@ function createManifestRoute(opts) {
|
|
|
324
325
|
return async () => {
|
|
325
326
|
if (!opts.token) return Response.json(EMPTY);
|
|
326
327
|
try {
|
|
327
|
-
const manifest = await
|
|
328
|
+
const manifest = await chunkWMGCQPHY_cjs.fetchManifest({
|
|
328
329
|
baseUrl: opts.baseUrl,
|
|
329
330
|
token: opts.token,
|
|
330
331
|
init: {
|
|
@@ -332,7 +333,7 @@ function createManifestRoute(opts) {
|
|
|
332
333
|
...opts.revalidate !== void 0 && { next: { revalidate: opts.revalidate } }
|
|
333
334
|
}
|
|
334
335
|
});
|
|
335
|
-
return Response.json(
|
|
336
|
+
return Response.json(chunkWMGCQPHY_cjs.trimManifest(manifest));
|
|
336
337
|
} catch (error) {
|
|
337
338
|
if (process.env.NEXT_PHASE === "phase-production-build") {
|
|
338
339
|
console.warn("[xenia] manifest unavailable at build:", error instanceof Error ? error.message : error);
|
|
@@ -345,7 +346,7 @@ function createManifestRoute(opts) {
|
|
|
345
346
|
function createRevalidateRoute(opts) {
|
|
346
347
|
return async (request) => {
|
|
347
348
|
const body = await request.text();
|
|
348
|
-
if (body.length > MAX_WEBHOOK_BODY || !await
|
|
349
|
+
if (body.length > MAX_WEBHOOK_BODY || !await chunkWMGCQPHY_cjs.verifyWebhook({ headers: request.headers, body }, opts.secret ?? "")) {
|
|
349
350
|
return Response.json({ error: "invalid signature" }, { status: 401 });
|
|
350
351
|
}
|
|
351
352
|
const event = request.headers.get("x-xenia-event") ?? "";
|
|
@@ -358,9 +359,9 @@ function createRevalidateRoute(opts) {
|
|
|
358
359
|
|
|
359
360
|
// src/next/index.ts
|
|
360
361
|
function xeniaProxy(request, opts = {}) {
|
|
361
|
-
const name =
|
|
362
|
+
const name = chunkGXJLU3RE_cjs.visitorCookieName(opts.prefix);
|
|
362
363
|
const existing = request.cookies.get(name)?.value;
|
|
363
|
-
const visitorId = existing ??
|
|
364
|
+
const visitorId = existing ?? chunkSU25SELD_cjs.generateUlid();
|
|
364
365
|
const forwarded = forwardedHeaders(opts.headers ?? request.headers, request.url, existing ? void 0 : `${name}=${visitorId}`);
|
|
365
366
|
const response = server.NextResponse.next({ request: { headers: forwarded } });
|
|
366
367
|
if (!existing) response.cookies.set(name, visitorId, cookieAttributes(opts.cookie));
|
|
@@ -368,23 +369,23 @@ function xeniaProxy(request, opts = {}) {
|
|
|
368
369
|
}
|
|
369
370
|
async function xeniaServerFromNext(config) {
|
|
370
371
|
const [jar, h] = await Promise.all([headers.cookies(), headers.headers()]);
|
|
371
|
-
const name =
|
|
372
|
+
const name = chunkGXJLU3RE_cjs.visitorCookieName(config.prefix);
|
|
372
373
|
let visitorId = config.visitorId ?? jar.get(name)?.value;
|
|
373
374
|
if (!visitorId) {
|
|
374
|
-
visitorId =
|
|
375
|
+
visitorId = chunkSU25SELD_cjs.generateUlid();
|
|
375
376
|
try {
|
|
376
377
|
jar.set(name, visitorId, cookieAttributes());
|
|
377
378
|
} catch {
|
|
378
379
|
}
|
|
379
380
|
}
|
|
380
|
-
return
|
|
381
|
+
return chunkI5EHLRSR_cjs.createXeniaServer({
|
|
381
382
|
...config,
|
|
382
383
|
visitorId,
|
|
383
|
-
context: { ...
|
|
384
|
+
context: { ...chunkSU25SELD_cjs.contextFromUrl(h.get(URL_HEADER), h.get("referer")), ...config.context }
|
|
384
385
|
});
|
|
385
386
|
}
|
|
386
387
|
async function consentFromNext(prefix) {
|
|
387
|
-
return
|
|
388
|
+
return chunkUUIKUU5W_cjs.getConsent((await headers.headers()).get("cookie"), prefix);
|
|
388
389
|
}
|
|
389
390
|
var requestStore = typeof React__namespace.cache === "function" ? React__namespace.cache(() => /* @__PURE__ */ new Map()) : () => /* @__PURE__ */ new Map();
|
|
390
391
|
function personalizeOnce(key, personalize) {
|