@uniformdev/context 19.128.1-alpha.11 → 19.128.1-alpha.12

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 { ay as paths$7, N as ManifestV2 } from '../types-g61S1nwH.mjs';
1
+ import { ay as paths$7, N as ManifestV2 } from '../types-o-_vpf1P.mjs';
2
2
  import 'mitt';
3
3
 
4
4
  type LimitPolicy = <ReturnValue>(func: () => Promise<ReturnValue>) => Promise<ReturnValue>;
package/dist/api/api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ay as paths$7, N as ManifestV2 } from '../types-g61S1nwH.js';
1
+ import { ay as paths$7, N as ManifestV2 } from '../types-o-_vpf1P.js';
2
2
  import 'mitt';
3
3
 
4
4
  type LimitPolicy = <ReturnValue>(func: () => Promise<ReturnValue>) => Promise<ReturnValue>;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OutputSeverity, L as LogDrain, C as ContextPlugin, S as ScoreVector, A as AggregateDimension, T as TransitionDataStore, a as StorageCommands, V as VisitorData, b as TransitionDataStoreOptions, D as DecayFunction, c as CriteriaEvaluator, d as StringMatch, e as VariantMatchCriteria, f as LogMessage, g as DevToolsEvents } from './types-g61S1nwH.mjs';
2
- export { _ as AggregateDimensionInput, a4 as BehaviorTag, h as CONTEXTUAL_EDITING_TEST_NAME, i as CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID, n as Context, l as ContextEvents, m as ContextInstance, j as ContextOptions, aw as ContextState, ax as ContextStateUpdate, J as CriteriaEvaluatorParameters, I as CriteriaEvaluatorResult, al as DecayOptions, q as DevToolsActions, t as DevToolsDataEvent, r as DevToolsEvent, x as DevToolsForgetEvent, u as DevToolsHelloEvent, s as DevToolsLogEvent, w as DevToolsRawCommandsEvent, p as DevToolsState, o as DevToolsUiVersion, v as DevToolsUpdateEvent, a1 as DimensionMatch, X as EnrichmentCategory, ar as EnrichmentData, au as EventData, H as GroupCriteriaEvaluator, af as IdentifyCommand, F as LogMessageGroup, E as LogMessageSingle, y as LogMessages, G as ManifestInstance, N as ManifestV2, M as MessageCategory, B as MessageFunc, aa as ModifyScoreCommand, ab as ModifySessionScoreCommand, Y as NumberMatch, P as PersonalizationEvent, Q as PersonalizationManifest, as as PersonalizeControlVariant, a2 as PersonalizeOptions, at as PersonalizeVariants, a6 as PersonalizedResult, a5 as PersonalizedVariant, ap as Quirks, aj as SERVER_STATE_ID, ai as ServerToClientTransitionState, ac as SetConsentCommand, ag as SetControlGroupCommand, ah as SetPersonalizeVariantControlCommand, ad as SetQuirkCommand, ae as SetTestCommand, z as Severity, R as Signal, W as SignalCriteria, U as SignalCriteriaGroup, K as SignalData, a9 as StorageCommand, Z as TestDefinition, k as TestEvent, $ as TestOptions, a8 as TestResult, a7 as TestVariant, aq as Tests, ak as TransitionDataStoreEvents, ao as VisitorDataStore, an as VisitorDataStoreEvents, am as VisitorDataStoreOptions, av as emptyVisitorData, a3 as personalizeVariations, a0 as testVariations } from './types-g61S1nwH.mjs';
1
+ import { O as OutputSeverity, L as LogDrain, C as ContextPlugin, S as ScoreVector, A as AggregateDimension, T as TransitionDataStore, a as StorageCommands, V as VisitorData, b as TransitionDataStoreOptions, D as DecayFunction, c as CriteriaEvaluator, d as StringMatch, e as VariantMatchCriteria, f as LogMessage, g as DevToolsEvents } from './types-o-_vpf1P.mjs';
2
+ export { _ as AggregateDimensionInput, a4 as BehaviorTag, h as CONTEXTUAL_EDITING_TEST_NAME, i as CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID, n as Context, l as ContextEvents, m as ContextInstance, j as ContextOptions, aw as ContextState, ax as ContextStateUpdate, J as CriteriaEvaluatorParameters, I as CriteriaEvaluatorResult, al as DecayOptions, q as DevToolsActions, t as DevToolsDataEvent, r as DevToolsEvent, x as DevToolsForgetEvent, u as DevToolsHelloEvent, s as DevToolsLogEvent, w as DevToolsRawCommandsEvent, p as DevToolsState, o as DevToolsUiVersion, v as DevToolsUpdateEvent, a1 as DimensionMatch, X as EnrichmentCategory, ar as EnrichmentData, au as EventData, H as GroupCriteriaEvaluator, af as IdentifyCommand, F as LogMessageGroup, E as LogMessageSingle, y as LogMessages, G as ManifestInstance, N as ManifestV2, M as MessageCategory, B as MessageFunc, aa as ModifyScoreCommand, ab as ModifySessionScoreCommand, Y as NumberMatch, P as PersonalizationEvent, Q as PersonalizationManifest, as as PersonalizeControlVariant, a2 as PersonalizeOptions, at as PersonalizeVariants, a6 as PersonalizedResult, a5 as PersonalizedVariant, ap as Quirks, aj as SERVER_STATE_ID, ai as ServerToClientTransitionState, ac as SetConsentCommand, ag as SetControlGroupCommand, ah as SetPersonalizeVariantControlCommand, ad as SetQuirkCommand, ae as SetTestCommand, z as Severity, R as Signal, W as SignalCriteria, U as SignalCriteriaGroup, K as SignalData, a9 as StorageCommand, Z as TestDefinition, k as TestEvent, $ as TestOptions, a8 as TestResult, a7 as TestVariant, aq as Tests, ak as TransitionDataStoreEvents, ao as VisitorDataStore, an as VisitorDataStoreEvents, am as VisitorDataStoreOptions, av as emptyVisitorData, a3 as personalizeVariations, a0 as testVariations } from './types-o-_vpf1P.mjs';
3
3
  import Cookies from 'js-cookie';
4
4
  import 'mitt';
5
5
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { O as OutputSeverity, L as LogDrain, C as ContextPlugin, S as ScoreVector, A as AggregateDimension, T as TransitionDataStore, a as StorageCommands, V as VisitorData, b as TransitionDataStoreOptions, D as DecayFunction, c as CriteriaEvaluator, d as StringMatch, e as VariantMatchCriteria, f as LogMessage, g as DevToolsEvents } from './types-g61S1nwH.js';
2
- export { _ as AggregateDimensionInput, a4 as BehaviorTag, h as CONTEXTUAL_EDITING_TEST_NAME, i as CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID, n as Context, l as ContextEvents, m as ContextInstance, j as ContextOptions, aw as ContextState, ax as ContextStateUpdate, J as CriteriaEvaluatorParameters, I as CriteriaEvaluatorResult, al as DecayOptions, q as DevToolsActions, t as DevToolsDataEvent, r as DevToolsEvent, x as DevToolsForgetEvent, u as DevToolsHelloEvent, s as DevToolsLogEvent, w as DevToolsRawCommandsEvent, p as DevToolsState, o as DevToolsUiVersion, v as DevToolsUpdateEvent, a1 as DimensionMatch, X as EnrichmentCategory, ar as EnrichmentData, au as EventData, H as GroupCriteriaEvaluator, af as IdentifyCommand, F as LogMessageGroup, E as LogMessageSingle, y as LogMessages, G as ManifestInstance, N as ManifestV2, M as MessageCategory, B as MessageFunc, aa as ModifyScoreCommand, ab as ModifySessionScoreCommand, Y as NumberMatch, P as PersonalizationEvent, Q as PersonalizationManifest, as as PersonalizeControlVariant, a2 as PersonalizeOptions, at as PersonalizeVariants, a6 as PersonalizedResult, a5 as PersonalizedVariant, ap as Quirks, aj as SERVER_STATE_ID, ai as ServerToClientTransitionState, ac as SetConsentCommand, ag as SetControlGroupCommand, ah as SetPersonalizeVariantControlCommand, ad as SetQuirkCommand, ae as SetTestCommand, z as Severity, R as Signal, W as SignalCriteria, U as SignalCriteriaGroup, K as SignalData, a9 as StorageCommand, Z as TestDefinition, k as TestEvent, $ as TestOptions, a8 as TestResult, a7 as TestVariant, aq as Tests, ak as TransitionDataStoreEvents, ao as VisitorDataStore, an as VisitorDataStoreEvents, am as VisitorDataStoreOptions, av as emptyVisitorData, a3 as personalizeVariations, a0 as testVariations } from './types-g61S1nwH.js';
1
+ import { O as OutputSeverity, L as LogDrain, C as ContextPlugin, S as ScoreVector, A as AggregateDimension, T as TransitionDataStore, a as StorageCommands, V as VisitorData, b as TransitionDataStoreOptions, D as DecayFunction, c as CriteriaEvaluator, d as StringMatch, e as VariantMatchCriteria, f as LogMessage, g as DevToolsEvents } from './types-o-_vpf1P.js';
2
+ export { _ as AggregateDimensionInput, a4 as BehaviorTag, h as CONTEXTUAL_EDITING_TEST_NAME, i as CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID, n as Context, l as ContextEvents, m as ContextInstance, j as ContextOptions, aw as ContextState, ax as ContextStateUpdate, J as CriteriaEvaluatorParameters, I as CriteriaEvaluatorResult, al as DecayOptions, q as DevToolsActions, t as DevToolsDataEvent, r as DevToolsEvent, x as DevToolsForgetEvent, u as DevToolsHelloEvent, s as DevToolsLogEvent, w as DevToolsRawCommandsEvent, p as DevToolsState, o as DevToolsUiVersion, v as DevToolsUpdateEvent, a1 as DimensionMatch, X as EnrichmentCategory, ar as EnrichmentData, au as EventData, H as GroupCriteriaEvaluator, af as IdentifyCommand, F as LogMessageGroup, E as LogMessageSingle, y as LogMessages, G as ManifestInstance, N as ManifestV2, M as MessageCategory, B as MessageFunc, aa as ModifyScoreCommand, ab as ModifySessionScoreCommand, Y as NumberMatch, P as PersonalizationEvent, Q as PersonalizationManifest, as as PersonalizeControlVariant, a2 as PersonalizeOptions, at as PersonalizeVariants, a6 as PersonalizedResult, a5 as PersonalizedVariant, ap as Quirks, aj as SERVER_STATE_ID, ai as ServerToClientTransitionState, ac as SetConsentCommand, ag as SetControlGroupCommand, ah as SetPersonalizeVariantControlCommand, ad as SetQuirkCommand, ae as SetTestCommand, z as Severity, R as Signal, W as SignalCriteria, U as SignalCriteriaGroup, K as SignalData, a9 as StorageCommand, Z as TestDefinition, k as TestEvent, $ as TestOptions, a8 as TestResult, a7 as TestVariant, aq as Tests, ak as TransitionDataStoreEvents, ao as VisitorDataStore, an as VisitorDataStoreEvents, am as VisitorDataStoreOptions, av as emptyVisitorData, a3 as personalizeVariations, a0 as testVariations } from './types-o-_vpf1P.js';
3
3
  import Cookies from 'js-cookie';
4
4
  import 'mitt';
5
5
 
package/dist/index.esm.js CHANGED
@@ -614,7 +614,7 @@ function personalizeVariations({
614
614
  take = 1,
615
615
  onLogMessage
616
616
  }) {
617
- var _a, _b, _c, _d, _e;
617
+ var _a, _b, _c, _d;
618
618
  onLogMessage == null ? void 0 : onLogMessage(["info", 300, "GROUP", { name, take }]);
619
619
  try {
620
620
  const control = (_a = context.storage.data.controlGroup) != null ? _a : false;
@@ -649,26 +649,23 @@ function personalizeVariations({
649
649
  }
650
650
  if (evaluateVariantMatch(variant.id, variant.pz, scores, onLogMessage)) {
651
651
  let variantToAdd = variant;
652
- let isControl = false;
652
+ const isControl = false;
653
653
  if (take === 1 && defaultVariants.length && typeof variant.pz.control === "number") {
654
- const testVariants = (_e = context.storage.data.personalizeVariants) == null ? void 0 : _e[name];
655
- const entry = testVariants == null ? void 0 : testVariants.find((v) => v.index === currentIndex);
656
- if (typeof entry !== "undefined") {
657
- isControl = entry.control;
658
- } else {
659
- isControl = rollForControlGroup(variant.pz.control);
654
+ let isControl2 = context.getPersonalizeVariantControl(name, currentIndex);
655
+ if (typeof isControl2 === "undefined") {
656
+ isControl2 = rollForControlGroup(variant.pz.control);
660
657
  context.storage.updateData([
661
658
  {
662
659
  type: "setpersonalizecontrol",
663
660
  data: {
664
661
  personlizationName: name,
665
662
  index: currentIndex,
666
- control: isControl
663
+ control: isControl2
667
664
  }
668
665
  }
669
666
  ]);
670
667
  }
671
- if (isControl) {
668
+ if (isControl2) {
672
669
  variantToAdd = defaultVariants[0];
673
670
  }
674
671
  }
@@ -988,8 +985,9 @@ function decodePersonalizeVariants(data) {
988
985
  return void 0;
989
986
  }
990
987
  const results = {};
991
- Object.keys(parsed).forEach((key) => {
992
- const variants = parsed[key].split(",");
988
+ Object.keys(parsed).forEach((k) => {
989
+ const variants = parsed[k].split(",");
990
+ const key = decodeURIComponent(k);
993
991
  results[key] = variants.map((variant) => {
994
992
  const [index, control] = variant.split(":");
995
993
  return {
@@ -1148,11 +1146,10 @@ function applyCommandsToData(commands, state, inControlGroup) {
1148
1146
  (i) => i.index === command.data.index
1149
1147
  );
1150
1148
  if (!existingDef) {
1151
- const newDef = {
1149
+ newData.personalizeVariants[command.data.personlizationName].push({
1152
1150
  index: command.data.index,
1153
1151
  control: command.data.control
1154
- };
1155
- newData.personalizeVariants[command.data.personlizationName].push(newDef);
1152
+ });
1156
1153
  } else if (existingDef.control !== command.data.control) {
1157
1154
  existingDef.control = command.data.control;
1158
1155
  }
@@ -1518,7 +1515,7 @@ var Context = class {
1518
1515
  * will NOT result in a recomputation of signal state.
1519
1516
  */
1520
1517
  async update(newData) {
1521
- var _a, _b, _c;
1518
+ var _a, _b, _c, _d;
1522
1519
  const commands = [];
1523
1520
  const newServerSideTests = {};
1524
1521
  if ((_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.quirks) {
@@ -1548,6 +1545,17 @@ var Context = class {
1548
1545
  );
1549
1546
  }
1550
1547
  }
1548
+ if ((_c = __privateGet(this, _serverTransitionState)) == null ? void 0 : _c.personalizeVariants) {
1549
+ Object.keys(__privateGet(this, _serverTransitionState).personalizeVariants).forEach((personalizationName) => {
1550
+ const variants = __privateGet(this, _serverTransitionState).personalizeVariants[personalizationName];
1551
+ variants.forEach((e) => {
1552
+ commands.push({
1553
+ type: "setpersonalizecontrol",
1554
+ data: { personlizationName: personalizationName, index: e.index, control: e.control }
1555
+ });
1556
+ });
1557
+ });
1558
+ }
1551
1559
  try {
1552
1560
  __privateGet(this, _mitt3).emit("log", [
1553
1561
  "info",
@@ -1557,7 +1565,7 @@ var Context = class {
1557
1565
  ...newData,
1558
1566
  // need to convert url to string so it can be json serialized
1559
1567
  // to go over postMessage to chrome extension
1560
- url: (_c = newData.url) == null ? void 0 : _c.toString()
1568
+ url: (_d = newData.url) == null ? void 0 : _d.toString()
1561
1569
  }
1562
1570
  ]);
1563
1571
  if (newData.quirks) {
@@ -1639,6 +1647,13 @@ var Context = class {
1639
1647
  }
1640
1648
  ]);
1641
1649
  }
1650
+ getPersonalizeVariantControl(name, index) {
1651
+ var _a, _b, _c;
1652
+ const source = (_b = (_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.personalizeVariants) != null ? _b : this.storage.data.personalizeVariants;
1653
+ const variants = (_c = source == null ? void 0 : source[name]) != null ? _c : [];
1654
+ const variant = variants.find((v) => v.index === index);
1655
+ return variant == null ? void 0 : variant.control;
1656
+ }
1642
1657
  /**
1643
1658
  * Writes a message to the Context log sink.
1644
1659
  * Used by Uniform internal SDK; not intended for public use.
package/dist/index.js CHANGED
@@ -684,7 +684,7 @@ function personalizeVariations({
684
684
  take = 1,
685
685
  onLogMessage
686
686
  }) {
687
- var _a, _b, _c, _d, _e;
687
+ var _a, _b, _c, _d;
688
688
  onLogMessage == null ? void 0 : onLogMessage(["info", 300, "GROUP", { name, take }]);
689
689
  try {
690
690
  const control = (_a = context.storage.data.controlGroup) != null ? _a : false;
@@ -719,26 +719,23 @@ function personalizeVariations({
719
719
  }
720
720
  if (evaluateVariantMatch(variant.id, variant.pz, scores, onLogMessage)) {
721
721
  let variantToAdd = variant;
722
- let isControl = false;
722
+ const isControl = false;
723
723
  if (take === 1 && defaultVariants.length && typeof variant.pz.control === "number") {
724
- const testVariants = (_e = context.storage.data.personalizeVariants) == null ? void 0 : _e[name];
725
- const entry = testVariants == null ? void 0 : testVariants.find((v) => v.index === currentIndex);
726
- if (typeof entry !== "undefined") {
727
- isControl = entry.control;
728
- } else {
729
- isControl = rollForControlGroup(variant.pz.control);
724
+ let isControl2 = context.getPersonalizeVariantControl(name, currentIndex);
725
+ if (typeof isControl2 === "undefined") {
726
+ isControl2 = rollForControlGroup(variant.pz.control);
730
727
  context.storage.updateData([
731
728
  {
732
729
  type: "setpersonalizecontrol",
733
730
  data: {
734
731
  personlizationName: name,
735
732
  index: currentIndex,
736
- control: isControl
733
+ control: isControl2
737
734
  }
738
735
  }
739
736
  ]);
740
737
  }
741
- if (isControl) {
738
+ if (isControl2) {
742
739
  variantToAdd = defaultVariants[0];
743
740
  }
744
741
  }
@@ -1058,8 +1055,9 @@ function decodePersonalizeVariants(data) {
1058
1055
  return void 0;
1059
1056
  }
1060
1057
  const results = {};
1061
- Object.keys(parsed).forEach((key) => {
1062
- const variants = parsed[key].split(",");
1058
+ Object.keys(parsed).forEach((k) => {
1059
+ const variants = parsed[k].split(",");
1060
+ const key = decodeURIComponent(k);
1063
1061
  results[key] = variants.map((variant) => {
1064
1062
  const [index, control] = variant.split(":");
1065
1063
  return {
@@ -1218,11 +1216,10 @@ function applyCommandsToData(commands, state, inControlGroup) {
1218
1216
  (i) => i.index === command.data.index
1219
1217
  );
1220
1218
  if (!existingDef) {
1221
- const newDef = {
1219
+ newData.personalizeVariants[command.data.personlizationName].push({
1222
1220
  index: command.data.index,
1223
1221
  control: command.data.control
1224
- };
1225
- newData.personalizeVariants[command.data.personlizationName].push(newDef);
1222
+ });
1226
1223
  } else if (existingDef.control !== command.data.control) {
1227
1224
  existingDef.control = command.data.control;
1228
1225
  }
@@ -1588,7 +1585,7 @@ var Context = class {
1588
1585
  * will NOT result in a recomputation of signal state.
1589
1586
  */
1590
1587
  async update(newData) {
1591
- var _a, _b, _c;
1588
+ var _a, _b, _c, _d;
1592
1589
  const commands = [];
1593
1590
  const newServerSideTests = {};
1594
1591
  if ((_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.quirks) {
@@ -1618,6 +1615,17 @@ var Context = class {
1618
1615
  );
1619
1616
  }
1620
1617
  }
1618
+ if ((_c = __privateGet(this, _serverTransitionState)) == null ? void 0 : _c.personalizeVariants) {
1619
+ Object.keys(__privateGet(this, _serverTransitionState).personalizeVariants).forEach((personalizationName) => {
1620
+ const variants = __privateGet(this, _serverTransitionState).personalizeVariants[personalizationName];
1621
+ variants.forEach((e) => {
1622
+ commands.push({
1623
+ type: "setpersonalizecontrol",
1624
+ data: { personlizationName: personalizationName, index: e.index, control: e.control }
1625
+ });
1626
+ });
1627
+ });
1628
+ }
1621
1629
  try {
1622
1630
  __privateGet(this, _mitt3).emit("log", [
1623
1631
  "info",
@@ -1627,7 +1635,7 @@ var Context = class {
1627
1635
  ...newData,
1628
1636
  // need to convert url to string so it can be json serialized
1629
1637
  // to go over postMessage to chrome extension
1630
- url: (_c = newData.url) == null ? void 0 : _c.toString()
1638
+ url: (_d = newData.url) == null ? void 0 : _d.toString()
1631
1639
  }
1632
1640
  ]);
1633
1641
  if (newData.quirks) {
@@ -1709,6 +1717,13 @@ var Context = class {
1709
1717
  }
1710
1718
  ]);
1711
1719
  }
1720
+ getPersonalizeVariantControl(name, index) {
1721
+ var _a, _b, _c;
1722
+ const source = (_b = (_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.personalizeVariants) != null ? _b : this.storage.data.personalizeVariants;
1723
+ const variants = (_c = source == null ? void 0 : source[name]) != null ? _c : [];
1724
+ const variant = variants.find((v) => v.index === index);
1725
+ return variant == null ? void 0 : variant.control;
1726
+ }
1712
1727
  /**
1713
1728
  * Writes a message to the Context log sink.
1714
1729
  * Used by Uniform internal SDK; not intended for public use.
package/dist/index.mjs CHANGED
@@ -614,7 +614,7 @@ function personalizeVariations({
614
614
  take = 1,
615
615
  onLogMessage
616
616
  }) {
617
- var _a, _b, _c, _d, _e;
617
+ var _a, _b, _c, _d;
618
618
  onLogMessage == null ? void 0 : onLogMessage(["info", 300, "GROUP", { name, take }]);
619
619
  try {
620
620
  const control = (_a = context.storage.data.controlGroup) != null ? _a : false;
@@ -649,26 +649,23 @@ function personalizeVariations({
649
649
  }
650
650
  if (evaluateVariantMatch(variant.id, variant.pz, scores, onLogMessage)) {
651
651
  let variantToAdd = variant;
652
- let isControl = false;
652
+ const isControl = false;
653
653
  if (take === 1 && defaultVariants.length && typeof variant.pz.control === "number") {
654
- const testVariants = (_e = context.storage.data.personalizeVariants) == null ? void 0 : _e[name];
655
- const entry = testVariants == null ? void 0 : testVariants.find((v) => v.index === currentIndex);
656
- if (typeof entry !== "undefined") {
657
- isControl = entry.control;
658
- } else {
659
- isControl = rollForControlGroup(variant.pz.control);
654
+ let isControl2 = context.getPersonalizeVariantControl(name, currentIndex);
655
+ if (typeof isControl2 === "undefined") {
656
+ isControl2 = rollForControlGroup(variant.pz.control);
660
657
  context.storage.updateData([
661
658
  {
662
659
  type: "setpersonalizecontrol",
663
660
  data: {
664
661
  personlizationName: name,
665
662
  index: currentIndex,
666
- control: isControl
663
+ control: isControl2
667
664
  }
668
665
  }
669
666
  ]);
670
667
  }
671
- if (isControl) {
668
+ if (isControl2) {
672
669
  variantToAdd = defaultVariants[0];
673
670
  }
674
671
  }
@@ -988,8 +985,9 @@ function decodePersonalizeVariants(data) {
988
985
  return void 0;
989
986
  }
990
987
  const results = {};
991
- Object.keys(parsed).forEach((key) => {
992
- const variants = parsed[key].split(",");
988
+ Object.keys(parsed).forEach((k) => {
989
+ const variants = parsed[k].split(",");
990
+ const key = decodeURIComponent(k);
993
991
  results[key] = variants.map((variant) => {
994
992
  const [index, control] = variant.split(":");
995
993
  return {
@@ -1148,11 +1146,10 @@ function applyCommandsToData(commands, state, inControlGroup) {
1148
1146
  (i) => i.index === command.data.index
1149
1147
  );
1150
1148
  if (!existingDef) {
1151
- const newDef = {
1149
+ newData.personalizeVariants[command.data.personlizationName].push({
1152
1150
  index: command.data.index,
1153
1151
  control: command.data.control
1154
- };
1155
- newData.personalizeVariants[command.data.personlizationName].push(newDef);
1152
+ });
1156
1153
  } else if (existingDef.control !== command.data.control) {
1157
1154
  existingDef.control = command.data.control;
1158
1155
  }
@@ -1518,7 +1515,7 @@ var Context = class {
1518
1515
  * will NOT result in a recomputation of signal state.
1519
1516
  */
1520
1517
  async update(newData) {
1521
- var _a, _b, _c;
1518
+ var _a, _b, _c, _d;
1522
1519
  const commands = [];
1523
1520
  const newServerSideTests = {};
1524
1521
  if ((_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.quirks) {
@@ -1548,6 +1545,17 @@ var Context = class {
1548
1545
  );
1549
1546
  }
1550
1547
  }
1548
+ if ((_c = __privateGet(this, _serverTransitionState)) == null ? void 0 : _c.personalizeVariants) {
1549
+ Object.keys(__privateGet(this, _serverTransitionState).personalizeVariants).forEach((personalizationName) => {
1550
+ const variants = __privateGet(this, _serverTransitionState).personalizeVariants[personalizationName];
1551
+ variants.forEach((e) => {
1552
+ commands.push({
1553
+ type: "setpersonalizecontrol",
1554
+ data: { personlizationName: personalizationName, index: e.index, control: e.control }
1555
+ });
1556
+ });
1557
+ });
1558
+ }
1551
1559
  try {
1552
1560
  __privateGet(this, _mitt3).emit("log", [
1553
1561
  "info",
@@ -1557,7 +1565,7 @@ var Context = class {
1557
1565
  ...newData,
1558
1566
  // need to convert url to string so it can be json serialized
1559
1567
  // to go over postMessage to chrome extension
1560
- url: (_c = newData.url) == null ? void 0 : _c.toString()
1568
+ url: (_d = newData.url) == null ? void 0 : _d.toString()
1561
1569
  }
1562
1570
  ]);
1563
1571
  if (newData.quirks) {
@@ -1639,6 +1647,13 @@ var Context = class {
1639
1647
  }
1640
1648
  ]);
1641
1649
  }
1650
+ getPersonalizeVariantControl(name, index) {
1651
+ var _a, _b, _c;
1652
+ const source = (_b = (_a = __privateGet(this, _serverTransitionState)) == null ? void 0 : _a.personalizeVariants) != null ? _b : this.storage.data.personalizeVariants;
1653
+ const variants = (_c = source == null ? void 0 : source[name]) != null ? _c : [];
1654
+ const variant = variants.find((v) => v.index === index);
1655
+ return variant == null ? void 0 : variant.control;
1656
+ }
1642
1657
  /**
1643
1658
  * Writes a message to the Context log sink.
1644
1659
  * Used by Uniform internal SDK; not intended for public use.
@@ -1082,6 +1082,7 @@ declare class Context implements ContextInstance {
1082
1082
  getTestVariantId(testName: string): string | null | undefined;
1083
1083
  /** use test() instead */
1084
1084
  setTestVariantId(testName: string, variantId: string): void;
1085
+ getPersonalizeVariantControl(name: string, index: number): boolean | undefined;
1085
1086
  /**
1086
1087
  * Writes a message to the Context log sink.
1087
1088
  * Used by Uniform internal SDK; not intended for public use.
@@ -1082,6 +1082,7 @@ declare class Context implements ContextInstance {
1082
1082
  getTestVariantId(testName: string): string | null | undefined;
1083
1083
  /** use test() instead */
1084
1084
  setTestVariantId(testName: string, variantId: string): void;
1085
+ getPersonalizeVariantControl(name: string, index: number): boolean | undefined;
1085
1086
  /**
1086
1087
  * Writes a message to the Context log sink.
1087
1088
  * Used by Uniform internal SDK; not intended for public use.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/context",
3
- "version": "19.128.1-alpha.11+11cc55c0a1",
3
+ "version": "19.128.1-alpha.12+257ca411a1",
4
4
  "description": "Uniform Context core package",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "./dist/index.js",
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "11cc55c0a1f62ac84634af6734dac6168a140161"
69
+ "gitHead": "257ca411a1416b6486147689285a1642546967a0"
70
70
  }