@amplifyup/sdk 0.1.40 → 0.1.42
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/AmplifyRenderer.d.mts +1 -1
- package/dist/AmplifyRenderer.d.ts +1 -1
- package/dist/AmplifyRenderer.js +44 -3
- package/dist/AmplifyRenderer.js.map +1 -1
- package/dist/AmplifyRenderer.mjs +44 -3
- package/dist/AmplifyRenderer.mjs.map +1 -1
- package/dist/index.d.mts +21 -9
- package/dist/index.d.ts +21 -9
- package/dist/index.js +52 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -4
- package/dist/index.mjs.map +1 -1
- package/dist/middleware.d.mts +2 -1
- package/dist/middleware.d.ts +2 -1
- package/dist/middleware.js +19 -4
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +19 -5
- package/dist/middleware.mjs.map +1 -1
- package/dist/{query-6BmINKLR.d.mts → query-BMsorj0k.d.ts} +3 -1
- package/dist/{query-DjIuJ71C.d.ts → query-CraXKhi7.d.mts} +3 -1
- package/dist/react.d.mts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +60 -7
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +60 -7
- package/dist/react.mjs.map +1 -1
- package/dist/server.d.mts +3 -3
- package/dist/server.d.ts +3 -3
- package/dist/server.js +4 -0
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +4 -0
- package/dist/server.mjs.map +1 -1
- package/dist/{types-CBoVIFI8.d.mts → types-DUP8Lb7R.d.mts} +3 -0
- package/dist/{types-CBoVIFI8.d.ts → types-DUP8Lb7R.d.ts} +3 -0
- package/package.json +1 -1
package/dist/react.mjs
CHANGED
|
@@ -102,6 +102,7 @@ var AWSAdapter = class {
|
|
|
102
102
|
const eventData = {
|
|
103
103
|
type: "page",
|
|
104
104
|
anonymousId: properties.instanceId,
|
|
105
|
+
sessionId: properties.sessionId,
|
|
105
106
|
userId: properties.userId,
|
|
106
107
|
properties: {
|
|
107
108
|
path: properties.path || properties.url,
|
|
@@ -144,6 +145,7 @@ var AWSAdapter = class {
|
|
|
144
145
|
type: "track",
|
|
145
146
|
event: eventName,
|
|
146
147
|
anonymousId: properties.instanceId,
|
|
148
|
+
sessionId: properties.sessionId,
|
|
147
149
|
userId: properties.userId,
|
|
148
150
|
properties: {
|
|
149
151
|
...properties
|
|
@@ -166,6 +168,7 @@ var AWSAdapter = class {
|
|
|
166
168
|
const eventData = {
|
|
167
169
|
type: "identify",
|
|
168
170
|
anonymousId: traits.instanceId,
|
|
171
|
+
sessionId: traits.sessionId,
|
|
169
172
|
traits: {
|
|
170
173
|
...traits,
|
|
171
174
|
...identifiers ? { identifiers } : {}
|
|
@@ -184,6 +187,7 @@ var AWSAdapter = class {
|
|
|
184
187
|
const eventData = {
|
|
185
188
|
type: "set_fields",
|
|
186
189
|
anonymousId: context.instanceId,
|
|
190
|
+
sessionId: context.sessionId,
|
|
187
191
|
fields,
|
|
188
192
|
traits: {
|
|
189
193
|
instanceId: context.instanceId,
|
|
@@ -206,7 +210,11 @@ var AWSAdapter = class {
|
|
|
206
210
|
// src/storage.ts
|
|
207
211
|
var INSTANCE_ID_KEY = "amplifyup_instance_id";
|
|
208
212
|
var USER_ID_KEY = "amplifyup_user_id";
|
|
213
|
+
var SESSION_ID_KEY = "amplifyup_session_id";
|
|
214
|
+
var SESSION_ACTIVITY_KEY = "amplifyup_session_activity";
|
|
209
215
|
var ANON_COOKIE_NAME = "amplifyup_anon_id";
|
|
216
|
+
var SESSION_COOKIE_NAME = "amplifyup_session_id";
|
|
217
|
+
var SESSION_IDLE_GAP_MS = 30 * 60 * 1e3;
|
|
210
218
|
function generateGuid() {
|
|
211
219
|
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
212
220
|
return crypto.randomUUID();
|
|
@@ -233,9 +241,9 @@ function readCookie(name) {
|
|
|
233
241
|
}
|
|
234
242
|
return null;
|
|
235
243
|
}
|
|
236
|
-
function writeCookie(name, value) {
|
|
244
|
+
function writeCookie(name, value, maxAgeSeconds = 31536e3) {
|
|
237
245
|
if (typeof document === "undefined") return;
|
|
238
|
-
document.cookie = `${name}=${encodeURIComponent(value)}; Path=/; Max-Age
|
|
246
|
+
document.cookie = `${name}=${encodeURIComponent(value)}; Path=/; Max-Age=${maxAgeSeconds}; SameSite=Lax`;
|
|
239
247
|
}
|
|
240
248
|
function getInstanceId() {
|
|
241
249
|
if (typeof window === "undefined") {
|
|
@@ -258,6 +266,23 @@ function getUserId() {
|
|
|
258
266
|
}
|
|
259
267
|
return localStorage.getItem(USER_ID_KEY);
|
|
260
268
|
}
|
|
269
|
+
function getSessionId() {
|
|
270
|
+
if (typeof window === "undefined") {
|
|
271
|
+
return "";
|
|
272
|
+
}
|
|
273
|
+
const now = Date.now();
|
|
274
|
+
const lastActivity = Number(localStorage.getItem(SESSION_ACTIVITY_KEY) || 0);
|
|
275
|
+
const fromCookie = readCookie(SESSION_COOKIE_NAME);
|
|
276
|
+
const fromLs = localStorage.getItem(SESSION_ID_KEY);
|
|
277
|
+
let sessionId = fromLs || fromCookie || "";
|
|
278
|
+
if (!sessionId || lastActivity > 0 && now - lastActivity >= SESSION_IDLE_GAP_MS) {
|
|
279
|
+
sessionId = generateGuid();
|
|
280
|
+
}
|
|
281
|
+
localStorage.setItem(SESSION_ID_KEY, sessionId);
|
|
282
|
+
localStorage.setItem(SESSION_ACTIVITY_KEY, String(now));
|
|
283
|
+
writeCookie(SESSION_COOKIE_NAME, sessionId, Math.floor(SESSION_IDLE_GAP_MS / 1e3));
|
|
284
|
+
return sessionId;
|
|
285
|
+
}
|
|
261
286
|
function setUserId(userId) {
|
|
262
287
|
if (typeof window === "undefined") {
|
|
263
288
|
return;
|
|
@@ -270,7 +295,10 @@ function clearIds() {
|
|
|
270
295
|
}
|
|
271
296
|
localStorage.removeItem(INSTANCE_ID_KEY);
|
|
272
297
|
localStorage.removeItem(USER_ID_KEY);
|
|
298
|
+
localStorage.removeItem(SESSION_ID_KEY);
|
|
299
|
+
localStorage.removeItem(SESSION_ACTIVITY_KEY);
|
|
273
300
|
document.cookie = `${ANON_COOKIE_NAME}=; Path=/; Max-Age=0; SameSite=Lax`;
|
|
301
|
+
document.cookie = `${SESSION_COOKIE_NAME}=; Path=/; Max-Age=0; SameSite=Lax`;
|
|
274
302
|
}
|
|
275
303
|
|
|
276
304
|
// src/targets.ts
|
|
@@ -433,6 +461,7 @@ async function fetchEdgeResolve(options) {
|
|
|
433
461
|
params.set("variants", variantParam);
|
|
434
462
|
} else if (options.anonId) {
|
|
435
463
|
params.set("anonId", options.anonId);
|
|
464
|
+
if (options.sessionId) params.set("sessionId", options.sessionId);
|
|
436
465
|
}
|
|
437
466
|
const fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
438
467
|
const init = {
|
|
@@ -534,6 +563,7 @@ async function fetchContent(options) {
|
|
|
534
563
|
trackingId: options.trackingId,
|
|
535
564
|
route: options.route,
|
|
536
565
|
anonId: options.variantKeys ? void 0 : options.anonId,
|
|
566
|
+
sessionId: options.variantKeys ? void 0 : options.sessionId,
|
|
537
567
|
siteId: options.siteId,
|
|
538
568
|
fetch: options.fetchFn,
|
|
539
569
|
revalidate: options.revalidate,
|
|
@@ -603,6 +633,7 @@ async function fetchEdgeSelect(options) {
|
|
|
603
633
|
...options.trackingId ? { trackingId: options.trackingId } : {},
|
|
604
634
|
...options.site ? { site: options.site } : {},
|
|
605
635
|
anonId: options.anonId,
|
|
636
|
+
...options.sessionId ? { sessionId: options.sessionId } : {},
|
|
606
637
|
...options.zones?.length ? { zones: options.zones } : {},
|
|
607
638
|
...options.context ? { context: options.context } : {}
|
|
608
639
|
})
|
|
@@ -631,6 +662,7 @@ async function selectVariants(options) {
|
|
|
631
662
|
site: options.site,
|
|
632
663
|
view: options.view,
|
|
633
664
|
anonId: options.anonId,
|
|
665
|
+
sessionId: options.sessionId,
|
|
634
666
|
zones: options.zones,
|
|
635
667
|
context: options.context,
|
|
636
668
|
fetch: options.fetch,
|
|
@@ -715,7 +747,6 @@ function searchSpec(pagination, field, term) {
|
|
|
715
747
|
}
|
|
716
748
|
|
|
717
749
|
// src/index.ts
|
|
718
|
-
var SESSION_IDLE_GAP_MS = 30 * 60 * 1e3;
|
|
719
750
|
var DWELL_ACTIVITY_IDLE_MS = 2 * 60 * 1e3;
|
|
720
751
|
var DWELL_POLL_MS = 5e3;
|
|
721
752
|
function readPreviewQueryOverrides() {
|
|
@@ -891,6 +922,7 @@ var AmplifyUpSDK = class {
|
|
|
891
922
|
if (typeof window === "undefined") return;
|
|
892
923
|
window.AmplifyUp = {
|
|
893
924
|
getInstanceId: () => this.getInstanceId(),
|
|
925
|
+
getSessionId: () => this.getSessionId(),
|
|
894
926
|
getUserId: () => this.getUserId(),
|
|
895
927
|
getTrackingId: () => this.getTrackingId(),
|
|
896
928
|
getTarget: () => this.getTarget(),
|
|
@@ -1313,12 +1345,14 @@ var AmplifyUpSDK = class {
|
|
|
1313
1345
|
return;
|
|
1314
1346
|
}
|
|
1315
1347
|
const instanceId = getInstanceId();
|
|
1348
|
+
const sessionId = getSessionId();
|
|
1316
1349
|
const pageProperties = {
|
|
1317
1350
|
name: url,
|
|
1318
1351
|
path: url,
|
|
1319
1352
|
url: typeof window !== "undefined" ? window.location.href : url,
|
|
1320
1353
|
referrer: typeof document !== "undefined" ? document.referrer : void 0,
|
|
1321
1354
|
instanceId,
|
|
1355
|
+
sessionId,
|
|
1322
1356
|
trackingId: this.config?.trackingId,
|
|
1323
1357
|
// Timestamp is included in event payload
|
|
1324
1358
|
...properties
|
|
@@ -1337,8 +1371,10 @@ var AmplifyUpSDK = class {
|
|
|
1337
1371
|
return;
|
|
1338
1372
|
}
|
|
1339
1373
|
const instanceId = getInstanceId();
|
|
1374
|
+
const sessionId = getSessionId();
|
|
1340
1375
|
const trackProperties = {
|
|
1341
1376
|
instanceId,
|
|
1377
|
+
sessionId,
|
|
1342
1378
|
trackingId: this.config?.trackingId,
|
|
1343
1379
|
url: typeof window !== "undefined" ? window.location.href : void 0,
|
|
1344
1380
|
path: properties?.path || (typeof window !== "undefined" ? window.location.pathname : void 0),
|
|
@@ -1411,8 +1447,10 @@ var AmplifyUpSDK = class {
|
|
|
1411
1447
|
return;
|
|
1412
1448
|
}
|
|
1413
1449
|
const instanceId = getInstanceId();
|
|
1450
|
+
const sessionId = getSessionId();
|
|
1414
1451
|
const identifyTraits = {
|
|
1415
1452
|
instanceId,
|
|
1453
|
+
sessionId,
|
|
1416
1454
|
trackingId: this.config?.trackingId,
|
|
1417
1455
|
...traits
|
|
1418
1456
|
};
|
|
@@ -1450,6 +1488,7 @@ var AmplifyUpSDK = class {
|
|
|
1450
1488
|
if (typeof this.adapter.setProfileFields === "function") {
|
|
1451
1489
|
this.adapter.setProfileFields(fields, {
|
|
1452
1490
|
instanceId: instanceId || void 0,
|
|
1491
|
+
sessionId: getSessionId() || void 0,
|
|
1453
1492
|
trackingId: this.config?.trackingId
|
|
1454
1493
|
});
|
|
1455
1494
|
}
|
|
@@ -1500,6 +1539,12 @@ var AmplifyUpSDK = class {
|
|
|
1500
1539
|
getInstanceId() {
|
|
1501
1540
|
return getInstanceId();
|
|
1502
1541
|
}
|
|
1542
|
+
/**
|
|
1543
|
+
* Get session id (30-minute inactivity reset).
|
|
1544
|
+
*/
|
|
1545
|
+
getSessionId() {
|
|
1546
|
+
return getSessionId();
|
|
1547
|
+
}
|
|
1503
1548
|
/**
|
|
1504
1549
|
* Get user ID
|
|
1505
1550
|
*/
|
|
@@ -3216,6 +3261,9 @@ function isReactNodeFallback(fallback) {
|
|
|
3216
3261
|
if (fallback == null || fallback === false) return false;
|
|
3217
3262
|
return !isPlainTextValue(fallback);
|
|
3218
3263
|
}
|
|
3264
|
+
function classNameIsBlock(className) {
|
|
3265
|
+
return /(?:^|\s)block(?:\s|$)/.test(className || "");
|
|
3266
|
+
}
|
|
3219
3267
|
function htmlHasVisualChrome(html) {
|
|
3220
3268
|
return /<(input|button|select|textarea|form|svg|iframe|video|audio|img)\b/i.test(
|
|
3221
3269
|
html
|
|
@@ -3392,7 +3440,8 @@ function ComposerInlineField({
|
|
|
3392
3440
|
outlineOffset: "2px",
|
|
3393
3441
|
minWidth: "1ch",
|
|
3394
3442
|
minHeight: "1em",
|
|
3395
|
-
|
|
3443
|
+
// Do not force `inline` — that overrides Tailwind `block` and parks
|
|
3444
|
+
// an empty-field hint on the same line as a sibling that has a value.
|
|
3396
3445
|
opacity: showHint ? 0.5 : void 0
|
|
3397
3446
|
},
|
|
3398
3447
|
children: showRendered ? value != null && value !== "" && !storedEmpty ? render(value) : fallback ?? idleDisplay : isReactNodeFallback(fallback) && !idleDisplay ? fallback : null
|
|
@@ -3516,7 +3565,8 @@ function Field({
|
|
|
3516
3565
|
}
|
|
3517
3566
|
const text = formatFieldValue(fieldValue);
|
|
3518
3567
|
const showVisualFallback = !text && isReactNodeFallback(fallback);
|
|
3519
|
-
|
|
3568
|
+
const emptyBlockField = isComposerEmptyText(fieldValue) && classNameIsBlock(className);
|
|
3569
|
+
if (composerEdit && canInlineEdit(name, fieldValue) && !showVisualFallback && !emptyBlockField) {
|
|
3520
3570
|
return /* @__PURE__ */ jsx(
|
|
3521
3571
|
ComposerInlineField,
|
|
3522
3572
|
{
|
|
@@ -3529,7 +3579,7 @@ function Field({
|
|
|
3529
3579
|
}
|
|
3530
3580
|
);
|
|
3531
3581
|
}
|
|
3532
|
-
if (fieldValue === void 0 || fieldValue === null) {
|
|
3582
|
+
if (fieldValue === void 0 || fieldValue === null || isComposerEmptyText(fieldValue)) {
|
|
3533
3583
|
return fallback ? /* @__PURE__ */ jsx("span", { className, children: fallback }) : null;
|
|
3534
3584
|
}
|
|
3535
3585
|
if (!text) {
|
|
@@ -3563,7 +3613,7 @@ function RichText({
|
|
|
3563
3613
|
return fallback ? /* @__PURE__ */ jsx(Fragment, { children: fallback }) : null;
|
|
3564
3614
|
}
|
|
3565
3615
|
if (isComposerEmptyText(fieldValue)) {
|
|
3566
|
-
if (composerEdit && canInlineEdit(name, fieldValue) && !isReactNodeFallback(fallback)) {
|
|
3616
|
+
if (composerEdit && canInlineEdit(name, fieldValue) && !isReactNodeFallback(fallback) && !classNameIsBlock(className)) {
|
|
3567
3617
|
return /* @__PURE__ */ jsx(
|
|
3568
3618
|
ComposerInlineField,
|
|
3569
3619
|
{
|
|
@@ -4372,12 +4422,14 @@ function AmplifyUpProvider({ children, config }) {
|
|
|
4372
4422
|
}
|
|
4373
4423
|
let variantKeys;
|
|
4374
4424
|
const anonId = sdk.getInstanceId();
|
|
4425
|
+
const sessionId = sdk.getSessionId();
|
|
4375
4426
|
if (!preview && anonId) {
|
|
4376
4427
|
try {
|
|
4377
4428
|
const selected = await selectVariants({
|
|
4378
4429
|
trackingId,
|
|
4379
4430
|
view: actualRoute,
|
|
4380
4431
|
anonId,
|
|
4432
|
+
sessionId: sessionId || void 0,
|
|
4381
4433
|
site: sdk.getSiteId() || void 0,
|
|
4382
4434
|
edgeUrl
|
|
4383
4435
|
});
|
|
@@ -4390,6 +4442,7 @@ function AmplifyUpProvider({ children, config }) {
|
|
|
4390
4442
|
route: actualRoute,
|
|
4391
4443
|
trackingId,
|
|
4392
4444
|
anonId: variantKeys ? void 0 : anonId,
|
|
4445
|
+
sessionId: variantKeys ? void 0 : sessionId || void 0,
|
|
4393
4446
|
siteId: sdk.getSiteId() || null,
|
|
4394
4447
|
preview,
|
|
4395
4448
|
orchestratorUrl,
|