@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.
@@ -1,4 +1,4 @@
1
- import { p as paths$7 } from './v2-manifest.swagger-ff2af13e.js';
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
- /** @description Criteria type (Group of other criteria) */
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
- /** @description Criteria type (Group of other criteria) */
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
- /** @description Criteria type (Group of other criteria) */
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
- /** @description Criteria type (Group of other criteria) */
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
- /** @description Criteria type (Group of other criteria) */
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
- /** @description Criteria type (Group of other criteria) */
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-682b51bf.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-682b51bf.js';
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-ff2af13e.js';
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||(t.push(o),r())},s=o=>{!o.variantAssigned||(i.push(o),r())};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};
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};