expf-sigma-node.js 3.0.5 → 3.1.0

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/sigma.js +19 -16
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expf-sigma-node.js",
3
- "version": "3.0.5",
3
+ "version": "3.1.0",
4
4
  "description": "expf-sigma-node.js lets you manage features flags and remote config across web, server side applications. Deliver true Continuous Integration. Get builds out faster. Control who has access to new features.",
5
5
  "main": "public/sigma.js",
6
6
  "keywords": [
package/public/sigma.js CHANGED
@@ -941,15 +941,15 @@ function generateRandomId() {
941
941
  }
942
942
 
943
943
  // src/helpers/getUserGroup.js
944
- function getUserGroup(salt, exposureRate, controlBucketPerc, forcedExp) {
944
+ function getUserGroup(salt, exposureRate, controlBucket, forcedExp) {
945
945
  let userInGroup = "a";
946
946
  let currentDiapason = 0;
947
947
  if (Math.abs(salt) / 100 <= parseFloat(exposureRate) * 100 || forcedExp) {
948
948
  let bucket = Math.abs(salt) % 100;
949
- for (let i = 0; i < controlBucketPerc.length; i++) {
950
- currentDiapason += controlBucketPerc[i].weight * 100;
949
+ for (let i = 0; i < controlBucket.length; i++) {
950
+ currentDiapason += controlBucket[i].weight * 100;
951
951
  if (bucket <= currentDiapason) {
952
- return userInGroup = controlBucketPerc[i].name;
952
+ return userInGroup = controlBucket[i].name;
953
953
  }
954
954
  }
955
955
  return userInGroup;
@@ -1313,7 +1313,7 @@ var Sigma = class {
1313
1313
  }
1314
1314
  }
1315
1315
  }
1316
- return false;
1316
+ return null;
1317
1317
  }
1318
1318
  getSplitById(experiment) {
1319
1319
  if (!experiment)
@@ -1386,7 +1386,8 @@ var Sigma = class {
1386
1386
  let experiment = null;
1387
1387
  let layer = null;
1388
1388
  let bounds = [];
1389
- let userInGroupExperiment = null;
1389
+ let groupName = null;
1390
+ let groupIndex = null;
1390
1391
  let forcedUser = false;
1391
1392
  let splitById = null;
1392
1393
  for (let i = 0; i < sigmaDataLs.experiments.length; i++) {
@@ -1397,15 +1398,15 @@ var Sigma = class {
1397
1398
  if (sigmaDataLs.experiments[i]["name"] === experimentName && !experiment) {
1398
1399
  splitById = this.getSplitById(sigmaDataLs.experiments[i]);
1399
1400
  forcedUser = checkForcedList(sigmaDataLs.experiments[i].forced_user_list, this.sigmaUserData.user.userId);
1400
- userInGroupExperiment = this.findUserInForcedGroup(sigmaDataLs.experiments[i]);
1401
- experiment = this.experimentDefinition(sigmaDataLs.experiments[i], userInGroupExperiment);
1401
+ groupName = this.findUserInForcedGroup(sigmaDataLs.experiments[i]);
1402
+ experiment = this.experimentDefinition(sigmaDataLs.experiments[i], groupName);
1402
1403
  break;
1403
1404
  }
1404
1405
  }
1405
1406
  const localStorageGroupName = `sigma_group_${experimentName}`;
1406
1407
  if (experiment) {
1407
- if (!userInGroupExperiment) {
1408
- userInGroupExperiment = this.calcUserInGroup(
1408
+ if (!groupName) {
1409
+ groupName = this.calcUserInGroup(
1409
1410
  experiment.salt,
1410
1411
  experiment.allocation,
1411
1412
  experiment.groups,
@@ -1415,13 +1416,14 @@ var Sigma = class {
1415
1416
  splitById
1416
1417
  );
1417
1418
  }
1418
- this.cache.set(localStorageGroupName, userInGroupExperiment);
1419
+ this.cache.set(localStorageGroupName, groupName);
1420
+ groupIndex = experiment.groups.findIndex((i) => i.name == groupName);
1419
1421
  }
1420
1422
  const getParamValue = (paramName) => {
1421
1423
  if (!paramName || !experiment) {
1422
1424
  return null;
1423
1425
  }
1424
- const groupName = this.cache.get(localStorageGroupName);
1426
+ const groupName2 = this.cache.get(localStorageGroupName);
1425
1427
  let params = null;
1426
1428
  for (let i = 0; i < experiment.params.length; i++) {
1427
1429
  if (experiment.params[i]["name"] === paramName) {
@@ -1434,7 +1436,7 @@ var Sigma = class {
1434
1436
  }
1435
1437
  let paramValue = null;
1436
1438
  for (let item in params.values) {
1437
- if (params.values[item].group === groupName) {
1439
+ if (params.values[item].group === groupName2) {
1438
1440
  paramValue = doTypeConversion(params.type, params.values[item].value);
1439
1441
  }
1440
1442
  }
@@ -1444,7 +1446,7 @@ var Sigma = class {
1444
1446
  if (!flagName || !experiment) {
1445
1447
  return null;
1446
1448
  }
1447
- const groupName = this.cache.get(localStorageGroupName);
1449
+ const groupName2 = this.cache.get(localStorageGroupName);
1448
1450
  let flagExperiment = null;
1449
1451
  for (let i = 0; i < experiment.feature_flags.length; i++) {
1450
1452
  if (experiment.feature_flags[i]["name"] === flagName) {
@@ -1456,7 +1458,7 @@ var Sigma = class {
1456
1458
  return null;
1457
1459
  let flag = null;
1458
1460
  for (let i = 0; i < flagExperiment.groups.length; i++) {
1459
- if (flagExperiment.groups[i]["group"] === groupName) {
1461
+ if (flagExperiment.groups[i]["group"] === groupName2) {
1460
1462
  flag = flagExperiment.groups[i];
1461
1463
  break;
1462
1464
  }
@@ -1468,7 +1470,8 @@ var Sigma = class {
1468
1470
  };
1469
1471
  return {
1470
1472
  getParamValue,
1471
- getFeatureValue
1473
+ getFeatureValue,
1474
+ groupIndex
1472
1475
  };
1473
1476
  }
1474
1477
  async getAllUserExperiments() {