@uniformdev/context 16.2.0 → 16.2.1-alpha.106
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/api/api.d.ts +6 -4
- package/dist/api/api.js +2 -2
- package/dist/api/api.mjs +2 -2
- package/dist/cli/cli.d.ts +2 -2
- package/dist/cli/cli.js +44 -44
- package/dist/cli/cli.mjs +42 -42
- package/dist/{contextTypes-572b0d33.d.ts → contextTypes-0d7326f7.d.ts} +86 -7
- package/dist/index.d.ts +3 -3
- package/dist/index.esm.js +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{types-682b51bf.d.ts → types-17d56dd5.d.ts} +1 -1
- package/dist/{v2-manifest.swagger-ff2af13e.d.ts → v2-manifest.swagger-2ea6ebb4.d.ts} +26 -2
- package/package.json +8 -6
@@ -1,4 +1,4 @@
|
|
1
|
-
import { p as paths$7 } from './v2-manifest.swagger-
|
1
|
+
import { p as paths$7 } from './v2-manifest.swagger-2ea6ebb4.js';
|
2
2
|
|
3
3
|
/**
|
4
4
|
* This file was auto-generated by openapi-typescript.
|
@@ -382,6 +382,8 @@ interface paths$4 {
|
|
382
382
|
* @description Skips updating aggregate inputs and upserts only the aggregate definition.
|
383
383
|
* Inputs data is still required, but is ignored and not saved or validated.
|
384
384
|
* Useful when creating aggregates that reference each other: Create the definitions, then the inputs.
|
385
|
+
*
|
386
|
+
* @default false
|
385
387
|
*/
|
386
388
|
skipInputs?: boolean;
|
387
389
|
};
|
@@ -420,6 +422,8 @@ interface components$5 {
|
|
420
422
|
* @description The type of aggregate
|
421
423
|
* 0: Audience
|
422
424
|
* 1: Intent
|
425
|
+
*
|
426
|
+
* @enum {number}
|
423
427
|
*/
|
424
428
|
type: 0 | 1;
|
425
429
|
inputs: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["AggregateDimensionInput"][];
|
@@ -487,12 +491,17 @@ interface external$4 {
|
|
487
491
|
* 's' = current session (expires after a period of inactivity)
|
488
492
|
* 'p' = permanent (expires as far in the future as possible, may be limited by browser security settings)
|
489
493
|
* 't' = transient (score tracks the current state of the criteria every time scores are updated)
|
494
|
+
*
|
495
|
+
* @enum {string}
|
490
496
|
*/
|
491
497
|
dur: "s" | "p" | "t";
|
492
498
|
crit: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["RootSignalCriteriaGroup"];
|
493
499
|
};
|
494
500
|
RootSignalCriteriaGroup: {
|
495
|
-
/**
|
501
|
+
/**
|
502
|
+
* @description Criteria type (Group of other criteria)
|
503
|
+
* @enum {string}
|
504
|
+
*/
|
496
505
|
type: "G";
|
497
506
|
/**
|
498
507
|
* @description The logical operator to apply to the criteria groups
|
@@ -502,13 +511,17 @@ interface external$4 {
|
|
502
511
|
* Default is `&` if unspecified.
|
503
512
|
*
|
504
513
|
* @default &
|
514
|
+
* @enum {string}
|
505
515
|
*/
|
506
516
|
op?: "&" | "|";
|
507
517
|
/** @description The criteria clauses that make up this grouping of criteria */
|
508
518
|
clauses: (external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["SignalCriteriaGroup"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["SignalCriteria"])[];
|
509
519
|
};
|
510
520
|
SignalCriteriaGroup: {
|
511
|
-
/**
|
521
|
+
/**
|
522
|
+
* @description Criteria type (Group of other criteria)
|
523
|
+
* @enum {string}
|
524
|
+
*/
|
512
525
|
type: "G";
|
513
526
|
/**
|
514
527
|
* @description The logical operator to apply to the criteria groups
|
@@ -516,6 +529,8 @@ interface external$4 {
|
|
516
529
|
* | = OR
|
517
530
|
*
|
518
531
|
* Default is `&` if unspecified.
|
532
|
+
*
|
533
|
+
* @enum {string}
|
519
534
|
*/
|
520
535
|
op?: "&" | "|";
|
521
536
|
/** @description The criteria clauses that make up this grouping of criteria */
|
@@ -524,6 +539,7 @@ interface external$4 {
|
|
524
539
|
SignalCriteria: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["CookieCriteria"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["QueryStringCriteria"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["QuirkCriteria"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["EventCriteria"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["CurrentPageCriteria"] | external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["PageViewCountCriteria"];
|
525
540
|
/** @description Matches a URL query string parameter value */
|
526
541
|
QueryStringCriteria: {
|
542
|
+
/** @enum {string} */
|
527
543
|
type: "QS";
|
528
544
|
/** @description The name of the query string parameter to match */
|
529
545
|
queryName: string;
|
@@ -532,6 +548,7 @@ interface external$4 {
|
|
532
548
|
};
|
533
549
|
/** @description Matches a web cookie value */
|
534
550
|
CookieCriteria: {
|
551
|
+
/** @enum {string} */
|
535
552
|
type: "CK";
|
536
553
|
/** @description The name of the cookie to match */
|
537
554
|
cookieName: string;
|
@@ -540,6 +557,7 @@ interface external$4 {
|
|
540
557
|
};
|
541
558
|
/** @description Matches a visitor quirk key and value */
|
542
559
|
QuirkCriteria: {
|
560
|
+
/** @enum {string} */
|
543
561
|
type: "QK";
|
544
562
|
/** @description The name of the quirk key to match */
|
545
563
|
key: string;
|
@@ -548,6 +566,7 @@ interface external$4 {
|
|
548
566
|
};
|
549
567
|
/** @description Matches an analytics event name being fired */
|
550
568
|
EventCriteria: {
|
569
|
+
/** @enum {string} */
|
551
570
|
type: "EVT";
|
552
571
|
/** @description How to match the event name */
|
553
572
|
event: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["StringMatch"];
|
@@ -557,11 +576,13 @@ interface external$4 {
|
|
557
576
|
* Does not include the query string or protocol and hostname (i.e. NOT https://foo.com/path/to/page.html?query=something)
|
558
577
|
*/
|
559
578
|
CurrentPageCriteria: {
|
579
|
+
/** @enum {string} */
|
560
580
|
type: "PV";
|
561
581
|
/** @description The page/route path to match as a page that has been visited */
|
562
582
|
path: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["StringMatch"];
|
563
583
|
};
|
564
584
|
PageViewCountCriteria: {
|
585
|
+
/** @enum {string} */
|
565
586
|
type: "PVC";
|
566
587
|
/** @description The expression to match the page view count against */
|
567
588
|
match: external$4["uniform-context-types.swagger.yml"]["components"]["schemas"]["NumberMatch"];
|
@@ -577,6 +598,8 @@ interface external$4 {
|
|
577
598
|
* '//' = regular expression match
|
578
599
|
*
|
579
600
|
* Any of the above can be prefixed with '!' to invert the match (i.e. != for 'not an exact match')
|
601
|
+
*
|
602
|
+
* @enum {string}
|
580
603
|
*/
|
581
604
|
op: "=" | "~" | "//" | "!=" | "!~" | "!//";
|
582
605
|
/** @description The case sensitivity of the match. Defaults to false if unspecified. */
|
@@ -586,6 +609,8 @@ interface external$4 {
|
|
586
609
|
* @description The type of match to perform
|
587
610
|
* '*' = exists with any value
|
588
611
|
* '!*' = does not exist
|
612
|
+
*
|
613
|
+
* @enum {string}
|
589
614
|
*/
|
590
615
|
op: "*" | "!*";
|
591
616
|
};
|
@@ -599,6 +624,8 @@ interface external$4 {
|
|
599
624
|
* '!=' = not an exact match
|
600
625
|
* '<' = less than match expression
|
601
626
|
* '>' = greater than match expression
|
627
|
+
*
|
628
|
+
* @enum {string}
|
602
629
|
*/
|
603
630
|
op: "=" | "<" | ">" | "!=";
|
604
631
|
};
|
@@ -629,6 +656,7 @@ interface external$4 {
|
|
629
656
|
* Default if unspecified: '+'
|
630
657
|
*
|
631
658
|
* @default +
|
659
|
+
* @enum {string}
|
632
660
|
*/
|
633
661
|
sign?: "+" | "-" | "c";
|
634
662
|
};
|
@@ -683,6 +711,8 @@ interface components$4 {
|
|
683
711
|
* AGG: Aggregation (intent or audience)
|
684
712
|
* ENR: Enrichment
|
685
713
|
* SIG: Signal
|
714
|
+
*
|
715
|
+
* @enum {string}
|
686
716
|
*/
|
687
717
|
category: "AGG" | "ENR" | "SIG";
|
688
718
|
/**
|
@@ -957,6 +987,7 @@ interface components$2 {
|
|
957
987
|
name: string;
|
958
988
|
winning_variant_id?: string;
|
959
989
|
default_variant_id?: string;
|
990
|
+
/** @default false */
|
960
991
|
closed?: boolean;
|
961
992
|
};
|
962
993
|
};
|
@@ -1141,12 +1172,17 @@ interface external {
|
|
1141
1172
|
* 's' = current session (expires after a period of inactivity)
|
1142
1173
|
* 'p' = permanent (expires as far in the future as possible, may be limited by browser security settings)
|
1143
1174
|
* 't' = transient (score tracks the current state of the criteria every time scores are updated)
|
1175
|
+
*
|
1176
|
+
* @enum {string}
|
1144
1177
|
*/
|
1145
1178
|
dur: "s" | "p" | "t";
|
1146
1179
|
crit: external["uniform-context-types.swagger.yml"]["components"]["schemas"]["RootSignalCriteriaGroup"];
|
1147
1180
|
};
|
1148
1181
|
RootSignalCriteriaGroup: {
|
1149
|
-
/**
|
1182
|
+
/**
|
1183
|
+
* @description Criteria type (Group of other criteria)
|
1184
|
+
* @enum {string}
|
1185
|
+
*/
|
1150
1186
|
type: "G";
|
1151
1187
|
/**
|
1152
1188
|
* @description The logical operator to apply to the criteria groups
|
@@ -1156,13 +1192,17 @@ interface external {
|
|
1156
1192
|
* Default is `&` if unspecified.
|
1157
1193
|
*
|
1158
1194
|
* @default &
|
1195
|
+
* @enum {string}
|
1159
1196
|
*/
|
1160
1197
|
op?: "&" | "|";
|
1161
1198
|
/** @description The criteria clauses that make up this grouping of criteria */
|
1162
1199
|
clauses: (external["uniform-context-types.swagger.yml"]["components"]["schemas"]["SignalCriteriaGroup"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["SignalCriteria"])[];
|
1163
1200
|
};
|
1164
1201
|
SignalCriteriaGroup: {
|
1165
|
-
/**
|
1202
|
+
/**
|
1203
|
+
* @description Criteria type (Group of other criteria)
|
1204
|
+
* @enum {string}
|
1205
|
+
*/
|
1166
1206
|
type: "G";
|
1167
1207
|
/**
|
1168
1208
|
* @description The logical operator to apply to the criteria groups
|
@@ -1170,6 +1210,8 @@ interface external {
|
|
1170
1210
|
* | = OR
|
1171
1211
|
*
|
1172
1212
|
* Default is `&` if unspecified.
|
1213
|
+
*
|
1214
|
+
* @enum {string}
|
1173
1215
|
*/
|
1174
1216
|
op?: "&" | "|";
|
1175
1217
|
/** @description The criteria clauses that make up this grouping of criteria */
|
@@ -1178,6 +1220,7 @@ interface external {
|
|
1178
1220
|
SignalCriteria: external["uniform-context-types.swagger.yml"]["components"]["schemas"]["CookieCriteria"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["QueryStringCriteria"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["QuirkCriteria"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["EventCriteria"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["CurrentPageCriteria"] | external["uniform-context-types.swagger.yml"]["components"]["schemas"]["PageViewCountCriteria"];
|
1179
1221
|
/** @description Matches a URL query string parameter value */
|
1180
1222
|
QueryStringCriteria: {
|
1223
|
+
/** @enum {string} */
|
1181
1224
|
type: "QS";
|
1182
1225
|
/** @description The name of the query string parameter to match */
|
1183
1226
|
queryName: string;
|
@@ -1186,6 +1229,7 @@ interface external {
|
|
1186
1229
|
};
|
1187
1230
|
/** @description Matches a web cookie value */
|
1188
1231
|
CookieCriteria: {
|
1232
|
+
/** @enum {string} */
|
1189
1233
|
type: "CK";
|
1190
1234
|
/** @description The name of the cookie to match */
|
1191
1235
|
cookieName: string;
|
@@ -1194,6 +1238,7 @@ interface external {
|
|
1194
1238
|
};
|
1195
1239
|
/** @description Matches a visitor quirk key and value */
|
1196
1240
|
QuirkCriteria: {
|
1241
|
+
/** @enum {string} */
|
1197
1242
|
type: "QK";
|
1198
1243
|
/** @description The name of the quirk key to match */
|
1199
1244
|
key: string;
|
@@ -1202,6 +1247,7 @@ interface external {
|
|
1202
1247
|
};
|
1203
1248
|
/** @description Matches an analytics event name being fired */
|
1204
1249
|
EventCriteria: {
|
1250
|
+
/** @enum {string} */
|
1205
1251
|
type: "EVT";
|
1206
1252
|
/** @description How to match the event name */
|
1207
1253
|
event: external["uniform-context-types.swagger.yml"]["components"]["schemas"]["StringMatch"];
|
@@ -1211,11 +1257,13 @@ interface external {
|
|
1211
1257
|
* Does not include the query string or protocol and hostname (i.e. NOT https://foo.com/path/to/page.html?query=something)
|
1212
1258
|
*/
|
1213
1259
|
CurrentPageCriteria: {
|
1260
|
+
/** @enum {string} */
|
1214
1261
|
type: "PV";
|
1215
1262
|
/** @description The page/route path to match as a page that has been visited */
|
1216
1263
|
path: external["uniform-context-types.swagger.yml"]["components"]["schemas"]["StringMatch"];
|
1217
1264
|
};
|
1218
1265
|
PageViewCountCriteria: {
|
1266
|
+
/** @enum {string} */
|
1219
1267
|
type: "PVC";
|
1220
1268
|
/** @description The expression to match the page view count against */
|
1221
1269
|
match: external["uniform-context-types.swagger.yml"]["components"]["schemas"]["NumberMatch"];
|
@@ -1231,6 +1279,8 @@ interface external {
|
|
1231
1279
|
* '//' = regular expression match
|
1232
1280
|
*
|
1233
1281
|
* Any of the above can be prefixed with '!' to invert the match (i.e. != for 'not an exact match')
|
1282
|
+
*
|
1283
|
+
* @enum {string}
|
1234
1284
|
*/
|
1235
1285
|
op: "=" | "~" | "//" | "!=" | "!~" | "!//";
|
1236
1286
|
/** @description The case sensitivity of the match. Defaults to false if unspecified. */
|
@@ -1240,6 +1290,8 @@ interface external {
|
|
1240
1290
|
* @description The type of match to perform
|
1241
1291
|
* '*' = exists with any value
|
1242
1292
|
* '!*' = does not exist
|
1293
|
+
*
|
1294
|
+
* @enum {string}
|
1243
1295
|
*/
|
1244
1296
|
op: "*" | "!*";
|
1245
1297
|
};
|
@@ -1253,6 +1305,8 @@ interface external {
|
|
1253
1305
|
* '!=' = not an exact match
|
1254
1306
|
* '<' = less than match expression
|
1255
1307
|
* '>' = greater than match expression
|
1308
|
+
*
|
1309
|
+
* @enum {string}
|
1256
1310
|
*/
|
1257
1311
|
op: "=" | "<" | ">" | "!=";
|
1258
1312
|
};
|
@@ -1283,6 +1337,7 @@ interface external {
|
|
1283
1337
|
* Default if unspecified: '+'
|
1284
1338
|
*
|
1285
1339
|
* @default +
|
1340
|
+
* @enum {string}
|
1286
1341
|
*/
|
1287
1342
|
sign?: "+" | "-" | "c";
|
1288
1343
|
};
|
@@ -1318,12 +1373,17 @@ interface components {
|
|
1318
1373
|
* 's' = current session (expires after a period of inactivity)
|
1319
1374
|
* 'p' = permanent (expires as far in the future as possible, may be limited by browser security settings)
|
1320
1375
|
* 't' = transient (score tracks the current state of the criteria every time scores are updated)
|
1376
|
+
*
|
1377
|
+
* @enum {string}
|
1321
1378
|
*/
|
1322
1379
|
dur: "s" | "p" | "t";
|
1323
1380
|
crit: components["schemas"]["RootSignalCriteriaGroup"];
|
1324
1381
|
};
|
1325
1382
|
RootSignalCriteriaGroup: {
|
1326
|
-
/**
|
1383
|
+
/**
|
1384
|
+
* @description Criteria type (Group of other criteria)
|
1385
|
+
* @enum {string}
|
1386
|
+
*/
|
1327
1387
|
type: "G";
|
1328
1388
|
/**
|
1329
1389
|
* @description The logical operator to apply to the criteria groups
|
@@ -1333,13 +1393,17 @@ interface components {
|
|
1333
1393
|
* Default is `&` if unspecified.
|
1334
1394
|
*
|
1335
1395
|
* @default &
|
1396
|
+
* @enum {string}
|
1336
1397
|
*/
|
1337
1398
|
op?: "&" | "|";
|
1338
1399
|
/** @description The criteria clauses that make up this grouping of criteria */
|
1339
1400
|
clauses: (components["schemas"]["SignalCriteriaGroup"] | components["schemas"]["SignalCriteria"])[];
|
1340
1401
|
};
|
1341
1402
|
SignalCriteriaGroup: {
|
1342
|
-
/**
|
1403
|
+
/**
|
1404
|
+
* @description Criteria type (Group of other criteria)
|
1405
|
+
* @enum {string}
|
1406
|
+
*/
|
1343
1407
|
type: "G";
|
1344
1408
|
/**
|
1345
1409
|
* @description The logical operator to apply to the criteria groups
|
@@ -1347,6 +1411,8 @@ interface components {
|
|
1347
1411
|
* | = OR
|
1348
1412
|
*
|
1349
1413
|
* Default is `&` if unspecified.
|
1414
|
+
*
|
1415
|
+
* @enum {string}
|
1350
1416
|
*/
|
1351
1417
|
op?: "&" | "|";
|
1352
1418
|
/** @description The criteria clauses that make up this grouping of criteria */
|
@@ -1355,6 +1421,7 @@ interface components {
|
|
1355
1421
|
SignalCriteria: components["schemas"]["CookieCriteria"] | components["schemas"]["QueryStringCriteria"] | components["schemas"]["QuirkCriteria"] | components["schemas"]["EventCriteria"] | components["schemas"]["CurrentPageCriteria"] | components["schemas"]["PageViewCountCriteria"];
|
1356
1422
|
/** @description Matches a URL query string parameter value */
|
1357
1423
|
QueryStringCriteria: {
|
1424
|
+
/** @enum {string} */
|
1358
1425
|
type: "QS";
|
1359
1426
|
/** @description The name of the query string parameter to match */
|
1360
1427
|
queryName: string;
|
@@ -1363,6 +1430,7 @@ interface components {
|
|
1363
1430
|
};
|
1364
1431
|
/** @description Matches a web cookie value */
|
1365
1432
|
CookieCriteria: {
|
1433
|
+
/** @enum {string} */
|
1366
1434
|
type: "CK";
|
1367
1435
|
/** @description The name of the cookie to match */
|
1368
1436
|
cookieName: string;
|
@@ -1371,6 +1439,7 @@ interface components {
|
|
1371
1439
|
};
|
1372
1440
|
/** @description Matches a visitor quirk key and value */
|
1373
1441
|
QuirkCriteria: {
|
1442
|
+
/** @enum {string} */
|
1374
1443
|
type: "QK";
|
1375
1444
|
/** @description The name of the quirk key to match */
|
1376
1445
|
key: string;
|
@@ -1379,6 +1448,7 @@ interface components {
|
|
1379
1448
|
};
|
1380
1449
|
/** @description Matches an analytics event name being fired */
|
1381
1450
|
EventCriteria: {
|
1451
|
+
/** @enum {string} */
|
1382
1452
|
type: "EVT";
|
1383
1453
|
/** @description How to match the event name */
|
1384
1454
|
event: components["schemas"]["StringMatch"];
|
@@ -1388,11 +1458,13 @@ interface components {
|
|
1388
1458
|
* Does not include the query string or protocol and hostname (i.e. NOT https://foo.com/path/to/page.html?query=something)
|
1389
1459
|
*/
|
1390
1460
|
CurrentPageCriteria: {
|
1461
|
+
/** @enum {string} */
|
1391
1462
|
type: "PV";
|
1392
1463
|
/** @description The page/route path to match as a page that has been visited */
|
1393
1464
|
path: components["schemas"]["StringMatch"];
|
1394
1465
|
};
|
1395
1466
|
PageViewCountCriteria: {
|
1467
|
+
/** @enum {string} */
|
1396
1468
|
type: "PVC";
|
1397
1469
|
/** @description The expression to match the page view count against */
|
1398
1470
|
match: components["schemas"]["NumberMatch"];
|
@@ -1408,6 +1480,8 @@ interface components {
|
|
1408
1480
|
* '//' = regular expression match
|
1409
1481
|
*
|
1410
1482
|
* Any of the above can be prefixed with '!' to invert the match (i.e. != for 'not an exact match')
|
1483
|
+
*
|
1484
|
+
* @enum {string}
|
1411
1485
|
*/
|
1412
1486
|
op: "=" | "~" | "//" | "!=" | "!~" | "!//";
|
1413
1487
|
/** @description The case sensitivity of the match. Defaults to false if unspecified. */
|
@@ -1417,6 +1491,8 @@ interface components {
|
|
1417
1491
|
* @description The type of match to perform
|
1418
1492
|
* '*' = exists with any value
|
1419
1493
|
* '!*' = does not exist
|
1494
|
+
*
|
1495
|
+
* @enum {string}
|
1420
1496
|
*/
|
1421
1497
|
op: "*" | "!*";
|
1422
1498
|
};
|
@@ -1430,6 +1506,8 @@ interface components {
|
|
1430
1506
|
* '!=' = not an exact match
|
1431
1507
|
* '<' = less than match expression
|
1432
1508
|
* '>' = greater than match expression
|
1509
|
+
*
|
1510
|
+
* @enum {string}
|
1433
1511
|
*/
|
1434
1512
|
op: "=" | "<" | ">" | "!=";
|
1435
1513
|
};
|
@@ -1460,6 +1538,7 @@ interface components {
|
|
1460
1538
|
* Default if unspecified: '+'
|
1461
1539
|
*
|
1462
1540
|
* @default +
|
1541
|
+
* @enum {string}
|
1463
1542
|
*/
|
1464
1543
|
sign?: "+" | "-" | "c";
|
1465
1544
|
};
|
package/dist/index.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
import { T as TransitionDataStore, S as StorageCommands, V as VisitorData, a as TransitionDataStoreOptions, D as DecayFunction, O as OutputSeverity, L as LogDrain, C as ContextPlugin, b as CriteriaEvaluator, c as StringMatch, d as ScoreVector, A as AggregateDimension, e as VariantMatchCriteria, f as LogMessage } from './types-
|
2
|
-
export { A as AggregateDimension, l as AggregateDimensionInput, ac as BehaviorTag, a0 as Context, $ as ContextEvents, Y as ContextOptions, C as ContextPlugin, t as ContextState, u as ContextStateUpdate, b as CriteriaEvaluator, n as CriteriaEvaluatorParameters, m as CriteriaEvaluatorResult, D as DecayFunction, H as DecayOptions, aj as DevToolsActions, an as DevToolsDataEvent, ak as DevToolsEvent, al as DevToolsEvents, ar as DevToolsForgetEvent, ao as DevToolsHelloEvent, am as DevToolsLogEvent, aq as DevToolsRawCommandsEvent, ai as DevToolsState, ah as DevToolsUiVersion, ap as DevToolsUpdateEvent, ab as DimensionMatch, E as EnrichmentCategory, q as EnrichmentData, r as EventData, G as GroupCriteriaEvaluator, I as IdentifyCommand, L as LogDrain, f as LogMessage, a6 as LogMessageGroup, a5 as LogMessageSingle, a1 as LogMessages, M as ManifestInstance, g as ManifestV2, a3 as MessageCategory, a4 as MessageFunc, w as ModifyScoreCommand, x as ModifySessionScoreCommand, N as NumberMatch, O as OutputSeverity, Z as PersonalizationEvent, P as PersonalizationManifest, a9 as PersonalizeOptions, ae as PersonalizedResult, ad as PersonalizedVariant, Q as Quirks, W as SERVER_STATE_ID, d as ScoreVector, U as ServerToClientTransitionState, y as SetConsentCommand, F as SetControlGroupCommand, z as SetQuirkCommand, B as SetTestCommand, a2 as Severity, h as Signal, j as SignalCriteria, i as SignalCriteriaGroup, o as SignalData, v as StorageCommand, S as StorageCommands, c as StringMatch, k as TestDefinition, _ as TestEvent, a8 as TestOptions, ag as TestResult, af as TestVariant, p as Tests, T as TransitionDataStore, X as TransitionDataStoreEvents, a as TransitionDataStoreOptions, e as VariantMatchCriteria, V as VisitorData, R as VisitorDataStore, K as VisitorDataStoreEvents, J as VisitorDataStoreOptions, s as emptyVisitorData, aa as personalizeVariations, a7 as testVariations } from './types-
|
1
|
+
import { T as TransitionDataStore, S as StorageCommands, V as VisitorData, a as TransitionDataStoreOptions, D as DecayFunction, O as OutputSeverity, L as LogDrain, C as ContextPlugin, b as CriteriaEvaluator, c as StringMatch, d as ScoreVector, A as AggregateDimension, e as VariantMatchCriteria, f as LogMessage } from './types-17d56dd5.js';
|
2
|
+
export { A as AggregateDimension, l as AggregateDimensionInput, ac as BehaviorTag, a0 as Context, $ as ContextEvents, Y as ContextOptions, C as ContextPlugin, t as ContextState, u as ContextStateUpdate, b as CriteriaEvaluator, n as CriteriaEvaluatorParameters, m as CriteriaEvaluatorResult, D as DecayFunction, H as DecayOptions, aj as DevToolsActions, an as DevToolsDataEvent, ak as DevToolsEvent, al as DevToolsEvents, ar as DevToolsForgetEvent, ao as DevToolsHelloEvent, am as DevToolsLogEvent, aq as DevToolsRawCommandsEvent, ai as DevToolsState, ah as DevToolsUiVersion, ap as DevToolsUpdateEvent, ab as DimensionMatch, E as EnrichmentCategory, q as EnrichmentData, r as EventData, G as GroupCriteriaEvaluator, I as IdentifyCommand, L as LogDrain, f as LogMessage, a6 as LogMessageGroup, a5 as LogMessageSingle, a1 as LogMessages, M as ManifestInstance, g as ManifestV2, a3 as MessageCategory, a4 as MessageFunc, w as ModifyScoreCommand, x as ModifySessionScoreCommand, N as NumberMatch, O as OutputSeverity, Z as PersonalizationEvent, P as PersonalizationManifest, a9 as PersonalizeOptions, ae as PersonalizedResult, ad as PersonalizedVariant, Q as Quirks, W as SERVER_STATE_ID, d as ScoreVector, U as ServerToClientTransitionState, y as SetConsentCommand, F as SetControlGroupCommand, z as SetQuirkCommand, B as SetTestCommand, a2 as Severity, h as Signal, j as SignalCriteria, i as SignalCriteriaGroup, o as SignalData, v as StorageCommand, S as StorageCommands, c as StringMatch, k as TestDefinition, _ as TestEvent, a8 as TestOptions, ag as TestResult, af as TestVariant, p as Tests, T as TransitionDataStore, X as TransitionDataStoreEvents, a as TransitionDataStoreOptions, e as VariantMatchCriteria, V as VisitorData, R as VisitorDataStore, K as VisitorDataStoreEvents, J as VisitorDataStoreOptions, s as emptyVisitorData, aa as personalizeVariations, a7 as testVariations } from './types-17d56dd5.js';
|
3
3
|
import Cookies from 'js-cookie';
|
4
4
|
import 'mitt';
|
5
|
-
import './v2-manifest.swagger-
|
5
|
+
import './v2-manifest.swagger-2ea6ebb4.js';
|
6
6
|
|
7
7
|
declare type CookieTransitionDataStoreOptions = {
|
8
8
|
/**
|
package/dist/index.esm.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
var ce=Object.defineProperty;var de=(e,t,i)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var y=(e,t,i)=>(de(e,typeof t!="symbol"?t+"":t,i),i),pt=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)};var a=(e,t,i)=>(pt(e,t,"read from private field"),i?i.call(e):t.get(e)),d=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},p=(e,t,i,r)=>(pt(e,t,"write to private field"),r?r.call(e,i):t.set(e,i),i);var v=(e,t,i)=>(pt(e,t,"access private method"),i);function Ut(e,t){let i={...e};for(let r in t){let n=$t(e,r,t,new Set([r]));n!==0&&(i[r]=n)}return i}function $t(e,t,i,r){var s;let n=0;for(let o of i[t].inputs){let u=(s=e[o.dim])!=null?s:0;if(!u&&i[o.dim]){if(r.has(o.dim))continue;let l=new Set(r);l.add(o.dim),u=$t(e,o.dim,i,l)}if(u!==0)if(o.sign==="c"){n=0;break}else o.sign==="-"?n-=u:n+=u}return n}var L="_";var Q,F,tt=class{constructor(t,i,r){d(this,Q,void 0);d(this,F,void 0);y(this,"signal");this.signal=t,p(this,Q,i),p(this,F,r)}computeSignal(t,i){if(t.scores[this.signal.id]>=this.signal.cap&&this.signal.dur!=="t")return;let n=a(this,Q).evaluate(t,this.signal.crit,i,this.signal,a(this,F)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!n.changed){if(n.result)i.push({type:s,data:{dimension:this.signal.id,delta:this.signal.str}});else if(this.signal.dur==="t"){let o=t.visitor.sessionScores[this.signal.id];o&&i.push({type:s,data:{dimension:this.signal.id,delta:-o}})}}}};Q=new WeakMap,F=new WeakMap;var b,K,R,et=class{constructor({manifest:t,evaluator:i=new G({}),onLogMessage:r=()=>{}}){y(this,"data");d(this,b,void 0);d(this,K,void 0);d(this,R,void 0);var n,s,o;p(this,b,(n=t.project)!=null?n:{}),this.data=t,p(this,K,Object.entries((o=(s=a(this,b).pz)==null?void 0:s.sig)!=null?o:[]).map(([u,c])=>new tt({...c,id:u},i,r))),p(this,R,r)}rollForControlGroup(){var t,i;return Math.random()<((i=(t=a(this,b).pz)==null?void 0:t.control)!=null?i:0)}getTest(t){var i;return(i=a(this,b).test)==null?void 0:i[t]}computeSignals(t){let i=[];a(this,R).call(this,["debug",200,"GROUP"]);try{a(this,K).forEach(r=>{a(this,R).call(this,["debug",201,"GROUP",r.signal]);try{r.computeSignal(t,i)}finally{a(this,R).call(this,["debug",201,"ENDGROUP"])}})}finally{a(this,R).call(this,["debug",200,"ENDGROUP"])}return i}computeAggregateDimensions(t){var i,r;return Ut(t,(r=(i=a(this,b).pz)==null?void 0:i.agg)!=null?r:{})}getDimensionByKey(t){var r,n,s,o;let i=t.indexOf(L);return i<=0?(n=(r=a(this,b).pz)==null?void 0:r.sig)==null?void 0:n[t]:(o=(s=a(this,b).pz)==null?void 0:s.enr)==null?void 0:o[t.substring(0,i)]}};b=new WeakMap,K=new WeakMap,R=new WeakMap;import{dequal as fe}from"dequal/lite";function E(e,t){var o,u,c,l,f,m;let i=(o=t==null?void 0:t.op)!=null?o:"=";if(t.op==="*")return e!==null&&typeof e!="undefined";if(t.op==="!*")return e===null||typeof e=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${i}`);let r=(u=t.cs)!=null?u:!1,n=(r?e!=null?e:"":At(e)).toString(),s=(r?t.rhs:At(t.rhs)).toString();switch(i){case"=":return n===s;case"!=":return n!==s;case"~":return(c=n.includes(s))!=null?c:!1;case"!~":return!((l=n.includes(s))==null||l);case"//":return new RegExp(t.rhs.toString(),r?"":"i").test((f=e==null?void 0:e.toString())!=null?f:"");case"!//":return!new RegExp(t.rhs.toString(),r?"":"i").test((m=e==null?void 0:e.toString())!=null?m:"");default:throw new Error(`Unknown match type ${i}.`)}}function O(e,t){return`'${("cs"in t?t.cs:!1)?e:e==null?void 0:e.toString().toUpperCase()}' ${mt(t)}`}function mt(e){return"rhs"in e?`${e.op} '${e.cs?e.rhs:e.rhs.toString().toUpperCase()}'`:`${e.op==="*"?"exists":"does not exist"}`}function At(e){var t,i;return(i=(t=e==null?void 0:e.toString())==null?void 0:t.toUpperCase())!=null?i:""}var Gt=({update:e,criteria:t,onLogMessage:i})=>{var u,c;if(t.type!=="CK")return{result:!1,changed:!1};let r=!fe(Nt(e.state.cookies),Nt((u=e.previousState)==null?void 0:u.cookies)),n=(c=e.state.cookies)==null?void 0:c[t.cookieName],o={result:E(n,t.match),changed:r};return i==null||i(["debug",203,{criteria:t,result:o,explanation:O(n,t.match)}]),o};function Nt(e){if(!e)return;if(!e.ufvd)return e;let{ufvd:t,...i}=e;return i}function zt(e,t){var r;if(typeof e=="undefined"||e===null)return!1;let i=Number(e);if(isNaN(i))return!1;switch((r=t==null?void 0:t.op)!=null?r:"="){case"=":return i===t.rhs;case"!=":return i!==t.rhs;case">":return i>t.rhs;case"<":return i<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}function It(e,t){return`${e} ${pe(t)}`}function pe(e){return`${e.op} ${e.rhs}`}function it(e,t){return`${e}${L}${t}`}var ht=it("$pvc","v"),gt=({update:e,criteria:t,commands:i,onLogMessage:r})=>{var l,f;if(t.type!=="PVC")return{result:!1,changed:!1};let n=Boolean(e.state.url&&(!e.previousState||((l=e.state.url)==null?void 0:l.toString())!==((f=e.previousState.url)==null?void 0:f.toString()))),o=(e.visitor.sessionScores[ht]||0)+1,u={result:!1,changed:n},c=i.some(m=>m.type==="modscoreS"&&m.data.dimension===ht);return n&&!c&&i.push({type:"modscoreS",data:{dimension:ht,delta:1}}),zt(o,t.match)&&(u.result=!0),r==null||r(["debug",203,{criteria:t,result:u,explanation:It(o,t.match)}]),u};gt.alwaysExecute=!0;var qt=({update:e,criteria:t,onLogMessage:i})=>{var u,c,l,f,m;if(t.type!=="QS")return{result:!1,changed:!1};let r=!e.previousState||((c=(u=e.state.url)==null?void 0:u.searchParams)==null?void 0:c.toString())!==((f=(l=e.previousState.url)==null?void 0:l.searchParams)==null?void 0:f.toString()),n=(m=e.state.url)==null?void 0:m.searchParams.get(t.queryName),o={result:E(n,t.match),changed:r};return i==null||i(["debug",203,{criteria:t,result:o,explanation:O(n,t.match)}]),o};var jt=({update:e,criteria:t,signal:i,onLogMessage:r})=>{var f;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof document=="undefined"&&i.dur==="t"&&e.scores[i.id]>0)return{result:!0,changed:!1};let n=e.visitor.quirks[t.key],s=(f=e.state.quirks)==null?void 0:f[t.key],o=s!=null?s:n,u=Boolean(s&&n!==s),l={result:E(o,t.match),changed:u};return r==null||r(["debug",203,{criteria:t,result:l,explanation:O(o,t.match)}]),l};var _t=({update:e,criteria:t,onLogMessage:i})=>{var s,o,u;if(t.type!=="EVT")return{result:!1,changed:!1};let r=(o=(s=e.state.events)==null?void 0:s.some(c=>E(c.event,t.event)))!=null?o:!1,n={result:r,changed:r};return i==null||i(["debug",203,{criteria:t,result:n,explanation:`'${(u=e.state.events)==null?void 0:u.join("', '")}' ${mt(t.event)}`}]),n};var Qt=({update:e,criteria:t,onLogMessage:i})=>{var u,c,l;if(t.type!=="PV")return{result:!1,changed:!1};let r=(u=e.state.url)==null?void 0:u.pathname,n=!e.previousState||(r==null?void 0:r.toString())!==((l=(c=e.previousState.url)==null?void 0:c.pathname)==null?void 0:l.toString()),o={result:E(r,t.path),changed:n};return i==null||i(["debug",203,{criteria:t,result:o,explanation:O(r,t.path)}]),o};var H,G=class{constructor(t){d(this,H,void 0);p(this,H,t)}evaluate(t,i,r,n,s){let o=i.clauses.length>1;o&&(s==null||s(["debug",202,"GROUP",i]));try{let u=!(i.op==="&"||!i.op),c=null,l=!1;for(let m of i.clauses){let S;if(m.type==="G")S=this.evaluate(t,m,r,n,s);else{let D=a(this,H)[m.type];if(c&&!D.alwaysExecute)continue;if(!D)throw new Error(`${m.type} signal criteria not registered`);S=D({update:t,criteria:m,commands:r,signal:n,onLogMessage:s})}S.changed&&(l=!0),!c&&S.result===u&&(c={result:u,changed:l})}let f=c!=null?c:{result:!u,changed:l};return o&&(s==null||s(["debug",204,f])),f}finally{o&&(s==null||s(["debug",202,"ENDGROUP"]))}}};H=new WeakMap;var rt=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});import me from"mitt";import{dequal as he}from"dequal/lite";var ge="__UNIFORM_DATA__",U,B,z,I=class{constructor({initialData:t}){d(this,U,void 0);d(this,B,void 0);d(this,z,me());y(this,"events",{on:a(this,z).on,off:a(this,z).off});t&&(p(this,U,t),p(this,B,t))}get data(){return a(this,U)}get initialData(){return a(this,B)}updateData(t,i){return p(this,U,i),this.handleUpdateData(t,i)}async delete(t){p(this,U,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){he(this.data,t)||(p(this,U,t),a(this,z).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(ge);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};U=new WeakMap,B=new WeakMap,z=new WeakMap;var vt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ft=vt.split(""),Kt=new Array(123);for(let e=0;e<vt.length;e++)Kt[vt.charCodeAt(e)]=e;var St=e=>{if(e<0)return`-${St(-e)}`;let t=e>>>0,i=e/4294967296>>>0,r="";for(;i>0;)r=Ft[63&t]+r,t>>>=6,t|=(63&i)<<26,i>>>=6;let n="";do n=Ft[63&t]+n,t>>>=6;while(t>0);return n+r},Ht=e=>{let t=0,i=e.charAt(0)==="-"?1:0;for(let r=i;r<e.length;r++)t=t*64+Kt[e.charCodeAt(r)];return i?-t:t};import yt from"js-cookie";var Dt=typeof document=="undefined",ve="ufvd",$,J,Bt=class extends I{constructor({serverCookieValue:i,cookieName:r=ve,cookieAttributes:n={sameSite:"lax"}}){super({initialData:Dt?Se(i):void 0});d(this,$,void 0);d(this,J,void 0);p(this,$,r),p(this,J,n)}handleDelete(){return Dt||yt.remove(a(this,$)),Promise.resolve()}async handleUpdateData(i,r){Dt||(r.consent?yt.set(a(this,$),ye(r),a(this,J)):yt.remove(a(this,$)))}};$=new WeakMap,J=new WeakMap;var Yt="~",Xt="!",Zt="-";function Se(e){if(!e)return;let t=e.split(Yt);if(t.length>3)return;let[i,r,n]=t;return{consent:!0,sessionScores:Jt(Ct(r)),scores:Jt(Ct(n)),tests:Ct(i)}}function Ct(e){return e.split(Xt).map(i=>i.split(Zt)).reduce((i,r)=>(r.length<2||(i[r[0]]=r.slice(1).join("-")),i),{})}function Jt(e){return Object.entries(e).reduce((t,[i,r])=>(t[i]=Ht(r),t),{})}function ye(e){return[xt(e.tests),xt(Wt(e.sessionScores)),xt(Wt(e.scores))].join(Yt)}function Wt(e){return Object.entries(e).reduce((t,[i,r])=>(t[i]=St(r),t),{})}function xt(e){return Object.entries(e).map(t=>t.join(Zt)).join(Xt)}var nt,Lt,Mt=class extends I{constructor({serverCookieValue:i,visitorIdCookieName:r="ufvi",...n}){super(n);d(this,nt);n.initialData||v(this,nt,Lt).call(this).catch(s=>{console.error(s)})}handleDelete(i){throw new Error("Method not implemented.")}async handleUpdateData(i){let r=await new Promise(n=>{setTimeout(()=>{n(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};nt=new WeakSet,Lt=async function(){let i=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});i&&this.signalAsyncDataUpdate(i)};function Ri(e){let{gracePeriod:t=864e5,decayRate:i=1/30,decayCap:r=.95}=e!=null?e:{};return function({now:s,lastUpd:o,scores:u,sessionScores:c,onLogMessage:l}){if(typeof o!="number")return!1;let m=s-o-t;if(m<=0)return!1;let S=m/864e5,D=1-Math.min(r,S*i);return D<=0?!1:(te(u,D),te(c,D),l==null||l(["info",140,`linear decay factor ${D.toPrecision(6)}`]),!0)}}function te(e,t){for(let i in e)i.startsWith("$")||(e[i]*=t)}import xe from"mitt";import{dequal as st}from"dequal/lite";var ot=class{constructor(){y(this,"inMemoryFallback",{});y(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let i=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||i)return i;try{let r=localStorage.getItem(t);return r?JSON.parse(r):void 0}catch(r){return i}}set(t,i,r){if(this.inMemoryFallback[t]=i,!(!this.hasLocalStorageObject||!r))try{localStorage.setItem(t,JSON.stringify(i))}catch(n){console.warn(n)}}delete(t,i){i||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(r){}}};import De from"rfdc";var Ce=De();function ee(e,t,i){let r=t?Ce(t):rt();return e.forEach(n=>{var s,o;switch(n.type){case"consent":r.consent=n.data;break;case"setquirk":r.quirks[n.data.key]=n.data.value;break;case"settest":r.tests[n.data.test]=n.data.variant;break;case"modscore":if(i)break;let u=Number(n.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let c=(s=r.scores[n.data.dimension])!=null?s:0;r.scores[n.data.dimension]=c+u;break;case"modscoreS":if(i)break;let l=Number(n.data.delta);if(isNaN(l))throw new Error("Non-number delta received");let f=(o=r.sessionScores[n.data.dimension])!=null?o:0;r.sessionScores[n.data.dimension]=f+l;break;case"identify":break;case"setcontrol":r.controlGroup=n.data;break;default:throw new Error("Unknown command")}}),r}var at="ufvisitor",V,N,q,g,x,P,w,A,lt,ie,ct,re,W,bt,Y,Et,ut=class{constructor(t){d(this,x);d(this,w);d(this,lt);d(this,ct);d(this,W);d(this,Y);d(this,V,xe());d(this,N,new ot);d(this,q,void 0);d(this,g,void 0);y(this,"events",{on:a(this,V).on,off:a(this,V).off});if(p(this,g,t),a(this,x,P)||v(this,w,A).call(this,v(this,Y,Et).call(this),!0),t.transitionStore){let i=t.transitionStore.getClientTransitionState();i&&t.onServerTransitionReceived&&t.onServerTransitionReceived(i),t.transitionStore.events.on("dataUpdatedAsync",n=>{v(this,w,A).call(this,{...a(this,x,P).visitorData,...n})});let r=t.transitionStore.data;r&&v(this,w,A).call(this,{...a(this,x,P).visitorData,...r},!0)}}get data(){var i,r;let t=a(this,x,P);if(v(this,ct,re).call(this,t)){let{sessionScores:n,...s}=t.visitorData;return v(this,w,A).call(this,{...s,sessionScores:{}}),(r=(i=a(this,g)).onLogMessage)==null||r.call(i,["info",120]),a(this,x,P).visitorData}return t.visitorData}get decayEnabled(){return!!a(this,g).decay}get options(){return a(this,g)}async updateData(t){var r,n,s,o;if(t.length===0)return;(n=(r=a(this,g)).onLogMessage)==null||n.call(r,["debug",101,t]);let i=ee(t,this.data,(s=a(this,x,P))==null?void 0:s.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&a(this,N).delete(at,!0),v(this,w,A).call(this,i),await((o=a(this,g).transitionStore)==null?void 0:o.updateData(t,a(this,x,P).visitorData))}async delete(t){var i,r,n,s,o;(r=(i=a(this,g)).onLogMessage)==null||r.call(i,["info",103,"GROUP",t]);try{a(this,N).delete(at,!1),await((n=a(this,g).transitionStore)==null?void 0:n.delete(t)),v(this,w,A).call(this,v(this,Y,Et).call(this))}finally{(o=(s=a(this,g)).onLogMessage)==null||o.call(s,["info",103,"ENDGROUP"])}}};V=new WeakMap,N=new WeakMap,q=new WeakMap,g=new WeakMap,x=new WeakSet,P=function(){return a(this,N).get(at)},w=new WeakSet,A=function(t,i=!1){var f,m,S,D,M,Pt,wt,Rt,Ot;let r=a(this,x,P),n=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(v(this,W,bt).call(this,t.scores),v(this,W,bt).call(this,t.sessionScores),(m=(f=a(this,g)).decay)==null||m.call(f,{now:n,lastUpd:r==null?void 0:r.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:a(this,g).onLogMessage}));let s=!st(r==null?void 0:r.visitorData.scores,t.scores),o=!st(r==null?void 0:r.visitorData.sessionScores,t.sessionScores),u=!st(r==null?void 0:r.visitorData.quirks,t.quirks),c=!st(r==null?void 0:r.visitorData.tests,t.tests),l={updated:n,visitorData:t};v(this,lt,ie).call(this),a(this,N).set(at,l,!!t.consent),(D=(S=a(this,g)).onLogMessage)==null||D.call(S,["debug",102,t]),i||((s||o)&&a(this,V).emit("scoresUpdated",t),u&&a(this,V).emit("quirksUpdated",t),c&&a(this,V).emit("testsUpdated",t),((M=r==null?void 0:r.visitorData)==null?void 0:M.consent)!==t.consent&&a(this,V).emit("consentUpdated",t),((Pt=r==null?void 0:r.visitorData)==null?void 0:Pt.controlGroup)!==t.controlGroup&&(a(this,V).emit("controlGroupUpdated",t),(Ot=(Rt=a(this,g)).onLogMessage)==null||Ot.call(Rt,["debug",104,(wt=t.controlGroup)!=null?wt:!1])))},lt=new WeakSet,ie=function(){typeof document=="undefined"||!a(this,g).visitLifespan||(a(this,q)&&window.clearTimeout(a(this,q)),p(this,q,window.setTimeout(()=>{this.data},a(this,g).visitLifespan+50)))},ct=new WeakSet,re=function(t){let i=a(this,g).visitLifespan;return i?t.updated+i<Date.now():!1},W=new WeakSet,bt=function(t){var i,r;if(!!a(this,g).manifest)for(let n in t){let s=t[n],o=a(this,g).manifest.getDimensionByKey(n);!o||s>o.cap&&((r=(i=a(this,g)).onLogMessage)==null||r.call(i,["debug",110,{dim:n,score:s,cap:o.cap}]),t[n]=o.cap)}},Y=new WeakSet,Et=function(){var t,i,r;return{...rt(),consent:(t=a(this,g).defaultConsent)!=null?t:!1,controlGroup:(r=(i=a(this,g).manifest)==null?void 0:i.rollForControlGroup())!=null?r:!1}};import Ee from"mitt";function ne({name:e,context:t,variations:i,take:r=1,onLogMessage:n}){var s,o,u;n==null||n(["info",300,"GROUP",{name:e,take:r}]);try{let c=(s=t.storage.data.controlGroup)!=null?s:!1,l=[],f=!1,m=t.scores;for(let S of i){if(l.length===r)break;if(!((o=S.pz)!=null&&o.crit.length)){n==null||n(["info",301,"GROUP",{id:S.id,op:(u=S.pz)==null?void 0:u.op}]),n==null||n(["info",302,{matched:!0,description:"default variation"}]),n==null||n(["info",303,!0]),n==null||n(["info",301,"ENDGROUP"]),l.push(S);continue}c||oe(S.id,S.pz,m,n)&&(f=!0,l.push(S))}return{personalized:f,variations:l}}finally{n==null||n(["info",300,"ENDGROUP"])}}function oe(e,t,i,r){r==null||r(["info",301,"GROUP",{id:e,op:t==null?void 0:t.op}]);let n;try{t!=null&&t.crit?!t.op||t.op==="&"?n=t.crit.every(s=>se(s,i,r)):n=t.crit.some(s=>se(s,i,r)):(r==null||r(["info",302,{matched:!0,description:"default variation"}]),n=!0),r==null||r(["info",303,n])}finally{r==null||r(["info",301,"ENDGROUP"])}return n}function se(e,t,i){var u,c;let{op:r,l:n}=e,s=(u=t[n])!=null?u:0;if(r==="+"){let l=Math.max(...Object.values(t))===s&&s>0;return i==null||i(["info",302,{matched:l,description:`${e.l} has the highest score`}]),l}else if(r==="-"){let l=Math.min(...Object.values(t))===s&&s>0;return i==null||i(["info",302,{matched:l,description:`${e.l} has the lowest non-zero score`}]),l}let o=parseInt(e.rDim?t[e.rDim]:e.r,10);if(isNaN(o))return i==null||i(["info",302,{matched:!1,description:`${(c=e.rDim)!=null?c:e.r} has no score value`}]),!1;if(r===">"){let l=s>o;return j(i,l,e,s,o),l}else if(r===">="){let l=s>=o;return j(i,l,e,s,o),l}else if(r==="<"){let l=s<o;return j(i,l,e,s,o),l}else if(r==="<="){let l=s<=o;return j(i,l,e,s,o),l}else if(r==="="){let l=s===o;return j(i,l,e,s,o),l}else if(r==="!="){let l=s!==o;return j(i,l,e,s,o),l}else throw new Error(`Unknown op: ${r}`)}function j(e,t,i,r,n){e==null||e(["info",302,{matched:t,description:`${i.l}[${r}] ${i.op} ${i.rDim?`${i.rDim}[${n}]`:i.r}`}])}var be=e=>{let{values:t,total:i,missingDistribution:r}=e.reduce((n,s)=>(s.testDistribution?n.total+=s.testDistribution:++n.missingDistribution,n.values.push(s.testDistribution),n),{values:[],total:0,missingDistribution:0});if(i>100)throw new Error(`Total distribution ${i} is over the maximum 100.`);if(i<100){let s=(100-i)/r;t.forEach((o,u)=>{typeof o=="undefined"&&(t[u]=s)})}return t},Vt=({name:e,context:t,variations:i,onLogMessage:r})=>{r==null||r(["info",400,"GROUP",e]);try{let n,s=t.getTestVariantId(e);if(s===null)return r==null||r(["error",401,e]),{result:void 0,variantAssigned:!1};if(s&&(n=i.find(o=>o.id===s),n||r==null||r(["warn",402,{missingVariant:s,variants:i.map(o=>o.id)}])),!n){let o=be(i),u=Math.floor(Math.random()*100),c=0;n=i.find((l,f)=>{let m=o[f];if(u>c&&u<=c+m)return l;c+=m}),n&&(r==null||r(["info",403,n.id]),t.setTestVariantId(e,n.id))}return n&&(r==null||r(["info",404,n.id])),{result:n,variantAssigned:!s}}finally{r==null||r(["info",400,"ENDGROUP"])}};import{dequal as ae}from"dequal/lite";var C,T,k,X,h,Z,Tt,_,dt,ue=class{constructor(t){d(this,Z);d(this,_);y(this,"manifest");d(this,C,void 0);d(this,T,{});d(this,k,void 0);d(this,X,{});d(this,h,Ee());y(this,"events",{on:a(this,h).on,off:a(this,h).off});y(this,"storage");var n,s;let{manifest:i,...r}=t;p(this,k,{}),(n=t.plugins)==null||n.forEach(o=>{!o.logDrain||a(this,h).on("log",o.logDrain)}),a(this,h).emit("log",["info",1,"GROUP"]);try{this.manifest=new et({onLogMessage:o=>a(this,h).emit("log",o),manifest:i,evaluator:new G({CK:Gt,QS:qt,QK:jt,PVC:gt,EVT:_t,PV:Qt})}),this.storage=new ut({...r,manifest:this.manifest,onServerTransitionReceived:o=>{p(this,C,o),o.ssv&&(p(this,T,o.ssv),a(this,h).emit("log",["debug",130,o]))},onLogMessage:o=>a(this,h).emit("log",o)}),this.storage.events.on("scoresUpdated",v(this,_,dt).bind(this)),a(this,C)||v(this,_,dt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",o=>{let u=this.manifest.computeSignals({scores:a(this,T),state:a(this,k),previousState:a(this,k),visitor:this.storage.data});this.storage.updateData(u),a(this,h).emit("quirksUpdated",o.quirks),a(this,h).emit("log",["info",4,o.quirks])}),(s=t.plugins)==null||s.forEach(o=>{!o.init||o.init(this)})}finally{a(this,h).emit("log",["info",1,"ENDGROUP"])}}get scores(){return a(this,T)}get quirks(){var t,i;return(i=(t=a(this,C))==null?void 0:t.quirks)!=null?i:this.storage.data.quirks}async update(t){var n,s,o;let i=[],r={};if((n=a(this,C))!=null&&n.quirks&&(t={...t,quirks:{...a(this,C).quirks,...t.quirks||{}}}),(s=a(this,C))!=null&&s.tests){let u=Object.entries(a(this,C).tests);if(u.length>0){let c=[];u.forEach(([l,f])=>{this.storage.data.tests[l]||(c.push([l,f]),r[l]=f)}),i.push(...c.map(([l,f])=>({type:"settest",data:{test:l,variant:f}})))}}try{a(this,h).emit("log",["info",2,"GROUP",{...t,url:(o=t.url)==null?void 0:o.toString()}]),t.quirks&&i.push(...Object.entries(t.quirks).map(([u,c])=>({type:"setquirk",data:{key:u,value:c}}))),t.enrichments&&t.enrichments.forEach(u=>{let c=it(u.cat,u.key);this.manifest.getDimensionByKey(c)?i.push({type:"modscore",data:{dimension:c,delta:u.str}}):a(this,h).emit("log",["warn",5,u])}),i.push(...this.manifest.computeSignals({state:t,previousState:a(this,k),visitor:this.storage.data,scores:a(this,T)})),p(this,k,{...a(this,k),...t}),await this.storage.updateData(i),a(this,C)&&(v(this,_,dt).call(this,this.storage.data),Object.entries(r).forEach(([u,c])=>{v(this,Z,Tt).call(this,{name:u,variantId:c,variantAssigned:!0})}),p(this,C,void 0),a(this,h).emit("log",["debug",131]))}finally{a(this,h).emit("log",["info",2,"ENDGROUP"])}}getTestVariantId(t){var r,n,s,o;let i=this.manifest.getTest(t);return i?(o=(s=i.wv)!=null?s:(n=(r=a(this,C))==null?void 0:r.tests)==null?void 0:n[t])!=null?o:this.storage.data.tests[t]:(a(this,h).emit("log",["warn",401,t]),null)}setTestVariantId(t,i){this.storage.updateData([{type:"settest",data:{test:t,variant:i}}])}log(...t){a(this,h).emit("log",t)}test(t){var r,n;let i=Vt({...t,context:this,onLogMessage:s=>a(this,h).emit("log",s)});return v(this,Z,Tt).call(this,{name:t.name,variantId:(n=(r=i.result)==null?void 0:r.id)!=null?n:void 0,variantAssigned:i.variantAssigned}),i}personalize(t){let i=ne({...t,context:this,onLogMessage:s=>a(this,h).emit("log",s)}),r=a(this,X)[t.name],n={name:t.name,variantIds:i.variations.map(s=>{var o;return(o=s.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return r&&ae(n.variantIds,r)&&(n.changed=!1),a(this,h).emit("personalizationResult",n),a(this,X)[t.name]=n.variantIds,i}async forget(t){p(this,k,{}),await this.storage.delete(t)}getServerToClientTransitionState(){let t={quirks:this.storage.data.quirks,ssv:a(this,T),tests:{}},i=this.storage.data.tests;return Object.entries(i).map(([r,n])=>{var s,o,u;((u=(o=(s=this.storage.options.transitionStore)==null?void 0:s.initialData)==null?void 0:o.tests)==null?void 0:u[r])!==i[r]&&t.tests&&(t.tests[r]=n)}),t}};C=new WeakMap,T=new WeakMap,k=new WeakMap,X=new WeakMap,h=new WeakMap,Z=new WeakSet,Tt=function(t){a(this,h).emit("testResult",t)},_=new WeakSet,dt=function(t){var n;let i={...t.scores};for(let s in t.sessionScores)i[s]=((n=i[s])!=null?n:0)+t.sessionScores[s];i=this.manifest.computeAggregateDimensions(i),!ae(i,a(this,T))&&(p(this,T,i),a(this,h).emit("scoresUpdated",i),a(this,h).emit("log",["info",3,i]))};import Ve from"rfdc";function ft(e,t){if(e==="none")return!1;switch(t){case"debug":return e==="debug";case"info":return e==="info"||e==="debug";case"warn":return e==="warn"||e==="info"||e==="debug";case"error":return e==="debug"||"info";default:return!1}}var Te=Ve();function ke(e){return([t,...i])=>{if(!ft(e,t))return;let[r,...n]=i;console[t](`\u{1F94B} [${t}] Uniform event ID ${r}
|
2
2
|
`,...n.map(Te))}}function hr(e){return{logDrain:ke(e)}}var le={1:()=>["context","initializing Uniform Context"],2:e=>["context","received update()",e],3:e=>["context","new score vector",e],4:e=>["context","updated quirks",e],5:e=>["context","ignored enrichment update for unknown enrichment category",e.cat],101:e=>["storage","received update commands",e],102:e=>["storage","data was updated",e],103:e=>["storage",`deleting visitor data ${e?"from all devices":"from this device"}`],104:e=>["context",e?"Visitor assigned to personalization control group":"Visitor assigned to personalization experiment group"],110:({dim:e,cap:t,score:i})=>["storage",`${e} score ${i} exceeded cap ${t}. Rounded down.`],120:()=>["storage","visitor data expired and was cleared"],130:e=>["storage","server to client transition score data was loaded; it will persist until the next update event occurs",e],131:()=>["storage","server to client transition data was discarded"],140:e=>["storage",`score decay was applied: ${e}`],200:()=>["signals","evaluating signals"],201:e=>["signals",`evaluating signal ${e.id} (${e.dur})`],202:e=>["signals",e.op==="|"?"OR":"AND"],203:({criteria:e,result:t,explanation:i})=>["signals",`${e.type}: ${i} is ${t.result} [${t.changed?"CHANGED":"unchanged"}]`],204:e=>["signals",`group result: ${e.result} [${e.changed?"CHANGED":"unchanged"}]`],300:e=>["personalization",`executing personalization '${e.name}'`],301:({id:e,op:t})=>["personalization",`testing variation ${e} (${t==="|"?"OR":"AND"})`],302:({matched:e,description:t})=>["personalization",`${t} is ${e}`],303:e=>["personalization",e?"selected variation":"did not select variation"],400:e=>["testing",`executing A/B test '${e}'`],401:e=>["testing",`${e} is not registered in the manifest; it will not be run.`],402:({missingVariant:e,variants:t})=>["testing",`test variation '${e}' previously assigned to the visitor for this test no longer exists as a variant. It will be removed. This may indicate changing test variations after publishing a test, which will make results invalid. Known variants: ${t.join(", ")}`],403:e=>["testing",`assigned new test variant '${e}'`],404:e=>["testing",`displaying variation '${e}'`],700:()=>["gtag","gtag is not defined, skipping analytics event emission. Ensure you have added the gtag script to your page."],701:()=>["gtag","enabled gtag event signal redirection"]};import Pe from"rfdc";var we=Pe();function Re(e,t){let i=typeof document=="undefined",{enableOnServer:r=!1}=t!=null?t:{};return([n,...s])=>{if(!ft(e,n)||i&&!r)return;let[o,...u]=s,c=console[n];if(u[0]==="GROUP"&&(u.shift(),c=console.groupCollapsed),u[0]==="ENDGROUP"){console.groupEnd();return}let l=le[o],f="";switch(n){case"debug":f="\u{1F41E}";break;case"info":f="\u{1F4AC}";break;case"warn":f="\u26A0\uFE0F";break;case"error":f="\u{1F4A5}";break}let m=f;if(!l){c(`${m} unknown event ID ${o}. Log messages data may be older than Uniform Context package.`,...u);return}let[S,D,...M]=l(...u);c(`${m}[${S}] ${D}
|
3
|
-
`,...M.map(we))}}function Cr(e,t){return{logDrain:Re(e,t)}}var Oe=(u=>(u.ListStart="nesi-list-start",u.ListEnd="nesi-list-end",u.ListItem="nesi-list-item-html",u.ListItemSettings="nesi-list-item-settings",u.TestStart="nesi-test-start",u.TestEnd="nesi-test-end",u.Unknown="unknown",u))(Oe||{}),br="nesitag";var kt=typeof top!="undefined";function Vr(){return{logDrain:e=>{!kt||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],i=[],r=()=>{!kt||top==null||top.postMessage({type:"uniform:context:data",data:{scores:e.scores,data:e.storage.data,manifest:e.manifest.data,personalizations:t,tests:i}},window.location.origin)},n=o=>{!o.changed||
|
3
|
+
`,...M.map(we))}}function Cr(e,t){return{logDrain:Re(e,t)}}var Oe=(u=>(u.ListStart="nesi-list-start",u.ListEnd="nesi-list-end",u.ListItem="nesi-list-item-html",u.ListItemSettings="nesi-list-item-settings",u.TestStart="nesi-test-start",u.TestEnd="nesi-test-end",u.Unknown="unknown",u))(Oe||{}),br="nesitag";var kt=typeof top!="undefined";function Vr(){return{logDrain:e=>{!kt||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],i=[],r=()=>{!kt||top==null||top.postMessage({type:"uniform:context:data",data:{scores:e.scores,data:e.storage.data,manifest:e.manifest.data,personalizations:t,tests:i}},window.location.origin)},n=o=>{!o.changed||t.push(o)},s=o=>{!o.variantAssigned||i.push(o)};if(kt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=e;try{top==null||top.addEventListener("message",async o=>{if(!o.data)return;let u=o.data;await Ue(u,e)})}catch(o){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",o)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),r()}return e.events.on("personalizationResult",n),e.events.on("testResult",s),e.events.on("scoresUpdated",r),e.storage.events.on("*",r),()=>{e.events.off("scoresUpdated",r),e.storage.events.off("*",r),e.events.off("personalizationResult",n),e.events.off("testResult",s)}}}}async function Ue(e,t){e.type==="uniform-in:context:update"&&e.newData&&await t.update(e.newData),e.type==="uniform-in:context:commands"&&e.commands&&Array.isArray(e.commands)&&await t.storage.updateData(e.commands),e.type==="uniform-in:context:forget"&&await t.forget(!1)}function kr(e){return`${e.apiKey}|${e.projectId}${e.apiHost?`|${e.apiHost}`:""}`}function Pr(e){let[t,i,r]=e.split("|");if(!t.startsWith("uf"))throw new Error("Invalid API key");if(!/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$/i.test(i))throw new Error("Invalid project ID");return{apiKey:t,projectId:i,apiHost:r||"https://uniform.app"}}export{ue as Context,Bt as CookieTransitionDataStore,br as EdgeNodeTagName,Mt as EdgeTransitionDataStore,G as GroupCriteriaEvaluator,et as ManifestInstance,ge as SERVER_STATE_ID,Oe as ScriptType,I as TransitionDataStore,ve as UNIFORM_DEFAULT_COOKIE_NAME,ut as VisitorDataStore,Ut as computeAggregateDimensions,Gt as cookieEvaluator,ke as createConsoleLogDrain,Re as createDebugConsoleLogDrain,Ri as createLinearDecay,Qt as currentPageEvaluator,rt as emptyVisitorData,hr as enableConsoleLogDrain,Vr as enableContextDevTools,Cr as enableDebugConsoleLogDrain,oe as evaluateVariantMatch,_t as eventEvaluator,O as explainStringMatch,mt as explainStringMatchCriteria,it as getEnrichmentVectorKey,E as isStringMatch,ht as pageViewCountDimension,gt as pageViewCountEvaluator,Pr as parseQuickConnect,ne as personalizeVariations,qt as queryStringEvaluator,jt as quirkEvaluator,kr as serializeQuickConnect,Vt as testVariations};
|