@xenia-martech/sdk-js 1.2.0-dev.7 → 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 +70 -6
- 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-OMMIRSPK.js → chunk-V4EGU3PM.js} +48 -11
- package/dist/chunk-V4EGU3PM.js.map +1 -0
- package/dist/{chunk-YLMMTKQL.cjs → chunk-WMGCQPHY.cjs} +52 -13
- 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 +42 -6
- package/dist/edge/index.d.ts +42 -6
- 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 +39 -34
- 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 +13 -8
- 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-GWRDZIVA.js.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-OMMIRSPK.js.map +0 -1
- package/dist/chunk-RWE2OCQL.cjs.map +0 -1
- package/dist/chunk-YLMMTKQL.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
|
}
|
|
@@ -318,17 +319,21 @@ async function xeniaEdgeProxy(request, opts) {
|
|
|
318
319
|
}
|
|
319
320
|
}
|
|
320
321
|
var EMPTY = { version: "", pages: [] };
|
|
322
|
+
var PROCESS_KEY = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
321
323
|
var MAX_WEBHOOK_BODY = 64 * 1024;
|
|
322
324
|
function createManifestRoute(opts) {
|
|
323
325
|
return async () => {
|
|
324
326
|
if (!opts.token) return Response.json(EMPTY);
|
|
325
327
|
try {
|
|
326
|
-
const manifest = await
|
|
328
|
+
const manifest = await chunkWMGCQPHY_cjs.fetchManifest({
|
|
327
329
|
baseUrl: opts.baseUrl,
|
|
328
330
|
token: opts.token,
|
|
329
|
-
|
|
331
|
+
init: {
|
|
332
|
+
headers: { "X-Xenia-Cache-Key": PROCESS_KEY },
|
|
333
|
+
...opts.revalidate !== void 0 && { next: { revalidate: opts.revalidate } }
|
|
334
|
+
}
|
|
330
335
|
});
|
|
331
|
-
return Response.json(
|
|
336
|
+
return Response.json(chunkWMGCQPHY_cjs.trimManifest(manifest));
|
|
332
337
|
} catch (error) {
|
|
333
338
|
if (process.env.NEXT_PHASE === "phase-production-build") {
|
|
334
339
|
console.warn("[xenia] manifest unavailable at build:", error instanceof Error ? error.message : error);
|
|
@@ -341,7 +346,7 @@ function createManifestRoute(opts) {
|
|
|
341
346
|
function createRevalidateRoute(opts) {
|
|
342
347
|
return async (request) => {
|
|
343
348
|
const body = await request.text();
|
|
344
|
-
if (body.length > MAX_WEBHOOK_BODY || !await
|
|
349
|
+
if (body.length > MAX_WEBHOOK_BODY || !await chunkWMGCQPHY_cjs.verifyWebhook({ headers: request.headers, body }, opts.secret ?? "")) {
|
|
345
350
|
return Response.json({ error: "invalid signature" }, { status: 401 });
|
|
346
351
|
}
|
|
347
352
|
const event = request.headers.get("x-xenia-event") ?? "";
|
|
@@ -354,9 +359,9 @@ function createRevalidateRoute(opts) {
|
|
|
354
359
|
|
|
355
360
|
// src/next/index.ts
|
|
356
361
|
function xeniaProxy(request, opts = {}) {
|
|
357
|
-
const name =
|
|
362
|
+
const name = chunkGXJLU3RE_cjs.visitorCookieName(opts.prefix);
|
|
358
363
|
const existing = request.cookies.get(name)?.value;
|
|
359
|
-
const visitorId = existing ??
|
|
364
|
+
const visitorId = existing ?? chunkSU25SELD_cjs.generateUlid();
|
|
360
365
|
const forwarded = forwardedHeaders(opts.headers ?? request.headers, request.url, existing ? void 0 : `${name}=${visitorId}`);
|
|
361
366
|
const response = server.NextResponse.next({ request: { headers: forwarded } });
|
|
362
367
|
if (!existing) response.cookies.set(name, visitorId, cookieAttributes(opts.cookie));
|
|
@@ -364,23 +369,23 @@ function xeniaProxy(request, opts = {}) {
|
|
|
364
369
|
}
|
|
365
370
|
async function xeniaServerFromNext(config) {
|
|
366
371
|
const [jar, h] = await Promise.all([headers.cookies(), headers.headers()]);
|
|
367
|
-
const name =
|
|
372
|
+
const name = chunkGXJLU3RE_cjs.visitorCookieName(config.prefix);
|
|
368
373
|
let visitorId = config.visitorId ?? jar.get(name)?.value;
|
|
369
374
|
if (!visitorId) {
|
|
370
|
-
visitorId =
|
|
375
|
+
visitorId = chunkSU25SELD_cjs.generateUlid();
|
|
371
376
|
try {
|
|
372
377
|
jar.set(name, visitorId, cookieAttributes());
|
|
373
378
|
} catch {
|
|
374
379
|
}
|
|
375
380
|
}
|
|
376
|
-
return
|
|
381
|
+
return chunkI5EHLRSR_cjs.createXeniaServer({
|
|
377
382
|
...config,
|
|
378
383
|
visitorId,
|
|
379
|
-
context: { ...
|
|
384
|
+
context: { ...chunkSU25SELD_cjs.contextFromUrl(h.get(URL_HEADER), h.get("referer")), ...config.context }
|
|
380
385
|
});
|
|
381
386
|
}
|
|
382
387
|
async function consentFromNext(prefix) {
|
|
383
|
-
return
|
|
388
|
+
return chunkUUIKUU5W_cjs.getConsent((await headers.headers()).get("cookie"), prefix);
|
|
384
389
|
}
|
|
385
390
|
var requestStore = typeof React__namespace.cache === "function" ? React__namespace.cache(() => /* @__PURE__ */ new Map()) : () => /* @__PURE__ */ new Map();
|
|
386
391
|
function personalizeOnce(key, personalize) {
|