@featurevisor/sdk 0.46.1 → 0.47.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.
- package/.eslintcache +1 -0
- package/.eslintrc.js +18 -0
- package/.prettierignore +5 -0
- package/CHANGELOG.md +19 -0
- package/coverage/clover.xml +281 -281
- package/coverage/coverage-final.json +8 -8
- package/coverage/lcov-report/bucket.ts.html +4 -4
- package/coverage/lcov-report/conditions.ts.html +2 -2
- package/coverage/lcov-report/datafileReader.ts.html +9 -9
- package/coverage/lcov-report/emitter.ts.html +22 -22
- package/coverage/lcov-report/feature.ts.html +17 -23
- package/coverage/lcov-report/index.html +28 -28
- package/coverage/lcov-report/instance.ts.html +236 -242
- package/coverage/lcov-report/logger.ts.html +8 -8
- package/coverage/lcov-report/segments.ts.html +3 -3
- package/coverage/lcov.info +485 -485
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/dist/index.js.map +1 -1
- package/lib/conditions.js +1 -1
- package/lib/conditions.js.map +1 -1
- package/lib/feature.d.ts +1 -2
- package/lib/feature.js +1 -1
- package/lib/feature.js.map +1 -1
- package/lib/instance.js +2 -2
- package/lib/instance.js.map +1 -1
- package/package.json +8 -5
- package/prettier.config.js +8 -0
- package/src/conditions.ts +1 -1
- package/src/feature.ts +0 -2
- package/src/instance.spec.ts +137 -10
- package/src/instance.ts +0 -2
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">69.38% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>281/405</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">56.93% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>119/209</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">78.43% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>40/51</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">69.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>278/399</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -1326,9 +1326,7 @@
|
|
|
1326
1326
|
<a name='L1261'></a><a href='#L1261'>1261</a>
|
|
1327
1327
|
<a name='L1262'></a><a href='#L1262'>1262</a>
|
|
1328
1328
|
<a name='L1263'></a><a href='#L1263'>1263</a>
|
|
1329
|
-
<a name='L1264'></a><a href='#L1264'>1264</a>
|
|
1330
|
-
<a name='L1265'></a><a href='#L1265'>1265</a>
|
|
1331
|
-
<a name='L1266'></a><a href='#L1266'>1266</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
1329
|
+
<a name='L1264'></a><a href='#L1264'>1264</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
1332
1330
|
<span class="cline-any cline-neutral"> </span>
|
|
1333
1331
|
<span class="cline-any cline-neutral"> </span>
|
|
1334
1332
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1462,27 +1460,27 @@
|
|
|
1462
1460
|
<span class="cline-any cline-neutral"> </span>
|
|
1463
1461
|
<span class="cline-any cline-neutral"> </span>
|
|
1464
1462
|
<span class="cline-any cline-yes">1x</span>
|
|
1465
|
-
<span class="cline-any cline-
|
|
1466
|
-
<span class="cline-any cline-
|
|
1463
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1464
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1467
1465
|
<span class="cline-any cline-no"> </span>
|
|
1468
1466
|
<span class="cline-any cline-neutral"> </span>
|
|
1469
1467
|
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
-
<span class="cline-any cline-
|
|
1468
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1471
1469
|
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
-
<span class="cline-any cline-
|
|
1470
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1473
1471
|
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-
|
|
1472
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1475
1473
|
<span class="cline-any cline-neutral"> </span>
|
|
1476
1474
|
<span class="cline-any cline-no"> </span>
|
|
1477
1475
|
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-
|
|
1476
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1479
1477
|
<span class="cline-any cline-neutral"> </span>
|
|
1480
|
-
<span class="cline-any cline-
|
|
1478
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1481
1479
|
<span class="cline-any cline-neutral"> </span>
|
|
1482
|
-
<span class="cline-any cline-
|
|
1480
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1483
1481
|
<span class="cline-any cline-neutral"> </span>
|
|
1484
1482
|
<span class="cline-any cline-neutral"> </span>
|
|
1485
|
-
<span class="cline-any cline-
|
|
1483
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1486
1484
|
<span class="cline-any cline-neutral"> </span>
|
|
1487
1485
|
<span class="cline-any cline-neutral"> </span>
|
|
1488
1486
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1517,54 +1515,54 @@
|
|
|
1517
1515
|
<span class="cline-any cline-neutral"> </span>
|
|
1518
1516
|
<span class="cline-any cline-neutral"> </span>
|
|
1519
1517
|
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
-
<span class="cline-any cline-yes">
|
|
1521
|
-
<span class="cline-any cline-yes">
|
|
1522
|
-
<span class="cline-any cline-yes">
|
|
1523
|
-
<span class="cline-any cline-yes">
|
|
1524
|
-
<span class="cline-any cline-yes">
|
|
1525
|
-
<span class="cline-any cline-yes">
|
|
1526
|
-
<span class="cline-any cline-yes">
|
|
1527
|
-
<span class="cline-any cline-yes">
|
|
1528
|
-
<span class="cline-any cline-yes">
|
|
1529
|
-
<span class="cline-any cline-yes">
|
|
1518
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1519
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1520
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1521
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1522
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1523
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1524
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1525
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1526
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1527
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1530
1528
|
<span class="cline-any cline-neutral"> </span>
|
|
1531
1529
|
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
-
<span class="cline-any cline-yes">
|
|
1533
|
-
<span class="cline-any cline-yes">
|
|
1530
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1531
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1534
1532
|
<span class="cline-any cline-neutral"> </span>
|
|
1535
1533
|
<span class="cline-any cline-neutral"> </span>
|
|
1536
1534
|
<span class="cline-any cline-neutral"> </span>
|
|
1537
1535
|
<span class="cline-any cline-neutral"> </span>
|
|
1538
1536
|
<span class="cline-any cline-neutral"> </span>
|
|
1539
|
-
<span class="cline-any cline-yes">
|
|
1537
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1540
1538
|
<span class="cline-any cline-yes">2x</span>
|
|
1541
1539
|
<span class="cline-any cline-neutral"> </span>
|
|
1542
1540
|
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
-
<span class="cline-any cline-yes">
|
|
1541
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1544
1542
|
<span class="cline-any cline-yes">1x</span>
|
|
1545
1543
|
<span class="cline-any cline-neutral"> </span>
|
|
1546
1544
|
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
-
<span class="cline-any cline-yes">
|
|
1545
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1548
1546
|
<span class="cline-any cline-yes">1x</span>
|
|
1549
1547
|
<span class="cline-any cline-neutral"> </span>
|
|
1550
1548
|
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
-
<span class="cline-any cline-yes">
|
|
1549
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1552
1550
|
<span class="cline-any cline-yes">1x</span>
|
|
1553
1551
|
<span class="cline-any cline-neutral"> </span>
|
|
1554
1552
|
<span class="cline-any cline-neutral"> </span>
|
|
1555
1553
|
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
-
<span class="cline-any cline-yes">
|
|
1557
|
-
<span class="cline-any cline-yes">
|
|
1558
|
-
<span class="cline-any cline-yes">
|
|
1554
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1555
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1556
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1559
1557
|
<span class="cline-any cline-neutral"> </span>
|
|
1560
|
-
<span class="cline-any cline-yes">
|
|
1561
|
-
<span class="cline-any cline-yes">
|
|
1562
|
-
<span class="cline-any cline-yes">
|
|
1558
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1559
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1560
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1563
1561
|
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
-
<span class="cline-any cline-yes">
|
|
1562
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1565
1563
|
<span class="cline-any cline-neutral"> </span>
|
|
1566
1564
|
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
-
<span class="cline-any cline-yes">
|
|
1565
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1568
1566
|
<span class="cline-any cline-yes">3x</span>
|
|
1569
1567
|
<span class="cline-any cline-neutral"> </span>
|
|
1570
1568
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -1581,11 +1579,11 @@
|
|
|
1581
1579
|
<span class="cline-any cline-neutral"> </span>
|
|
1582
1580
|
<span class="cline-any cline-no"> </span>
|
|
1583
1581
|
<span class="cline-any cline-neutral"> </span>
|
|
1584
|
-
<span class="cline-any cline-yes">
|
|
1585
|
-
<span class="cline-any cline-yes">
|
|
1586
|
-
<span class="cline-any cline-yes">
|
|
1582
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1583
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1584
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1587
1585
|
<span class="cline-any cline-neutral"> </span>
|
|
1588
|
-
<span class="cline-any cline-yes">
|
|
1586
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1589
1587
|
<span class="cline-any cline-yes">8x</span>
|
|
1590
1588
|
<span class="cline-any cline-neutral"> </span>
|
|
1591
1589
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1612,8 +1610,8 @@
|
|
|
1612
1610
|
<span class="cline-any cline-neutral"> </span>
|
|
1613
1611
|
<span class="cline-any cline-neutral"> </span>
|
|
1614
1612
|
<span class="cline-any cline-neutral"> </span>
|
|
1615
|
-
<span class="cline-any cline-yes">
|
|
1616
|
-
<span class="cline-any cline-yes">
|
|
1613
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1617
1615
|
<span class="cline-any cline-neutral"> </span>
|
|
1618
1616
|
<span class="cline-any cline-neutral"> </span>
|
|
1619
1617
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1630,7 +1628,7 @@
|
|
|
1630
1628
|
<span class="cline-any cline-neutral"> </span>
|
|
1631
1629
|
<span class="cline-any cline-neutral"> </span>
|
|
1632
1630
|
<span class="cline-any cline-neutral"> </span>
|
|
1633
|
-
<span class="cline-any cline-yes">
|
|
1631
|
+
<span class="cline-any cline-yes">62x</span>
|
|
1634
1632
|
<span class="cline-any cline-neutral"> </span>
|
|
1635
1633
|
<span class="cline-any cline-neutral"> </span>
|
|
1636
1634
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1639,14 +1637,14 @@
|
|
|
1639
1637
|
<span class="cline-any cline-neutral"> </span>
|
|
1640
1638
|
<span class="cline-any cline-neutral"> </span>
|
|
1641
1639
|
<span class="cline-any cline-neutral"> </span>
|
|
1642
|
-
<span class="cline-any cline-yes">
|
|
1640
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1643
1641
|
<span class="cline-any cline-neutral"> </span>
|
|
1644
1642
|
<span class="cline-any cline-neutral"> </span>
|
|
1645
1643
|
<span class="cline-any cline-neutral"> </span>
|
|
1646
1644
|
<span class="cline-any cline-neutral"> </span>
|
|
1647
|
-
<span class="cline-any cline-yes">
|
|
1648
|
-
<span class="cline-any cline-yes">
|
|
1649
|
-
<span class="cline-any cline-yes">
|
|
1645
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1646
|
+
<span class="cline-any cline-yes">53x</span>
|
|
1647
|
+
<span class="cline-any cline-yes">53x</span>
|
|
1650
1648
|
<span class="cline-any cline-yes">7x</span>
|
|
1651
1649
|
<span class="cline-any cline-yes">2x</span>
|
|
1652
1650
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1659,17 +1657,17 @@
|
|
|
1659
1657
|
<span class="cline-any cline-no"> </span>
|
|
1660
1658
|
<span class="cline-any cline-neutral"> </span>
|
|
1661
1659
|
<span class="cline-any cline-neutral"> </span>
|
|
1662
|
-
<span class="cline-any cline-yes">
|
|
1660
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1663
1661
|
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
-
<span class="cline-any cline-yes">
|
|
1665
|
-
<span class="cline-any cline-yes">
|
|
1662
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1663
|
+
<span class="cline-any cline-yes">67x</span>
|
|
1666
1664
|
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-yes">
|
|
1665
|
+
<span class="cline-any cline-yes">67x</span>
|
|
1668
1666
|
<span class="cline-any cline-yes">12x</span>
|
|
1669
1667
|
<span class="cline-any cline-neutral"> </span>
|
|
1670
1668
|
<span class="cline-any cline-neutral"> </span>
|
|
1671
|
-
<span class="cline-any cline-yes">
|
|
1672
|
-
<span class="cline-any cline-yes">
|
|
1669
|
+
<span class="cline-any cline-yes">55x</span>
|
|
1670
|
+
<span class="cline-any cline-yes">47x</span>
|
|
1673
1671
|
<span class="cline-any cline-neutral"> </span>
|
|
1674
1672
|
<span class="cline-any cline-neutral"> </span>
|
|
1675
1673
|
<span class="cline-any cline-yes">8x</span>
|
|
@@ -1678,27 +1676,27 @@
|
|
|
1678
1676
|
<span class="cline-any cline-neutral"> </span>
|
|
1679
1677
|
<span class="cline-any cline-neutral"> </span>
|
|
1680
1678
|
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
-
<span class="cline-any cline-yes">
|
|
1679
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1682
1680
|
<span class="cline-any cline-neutral"> </span>
|
|
1683
|
-
<span class="cline-any cline-yes">
|
|
1681
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1684
1682
|
<span class="cline-any cline-neutral"> </span>
|
|
1685
|
-
<span class="cline-any cline-yes">
|
|
1683
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1686
1684
|
<span class="cline-any cline-yes">10x</span>
|
|
1687
1685
|
<span class="cline-any cline-neutral"> </span>
|
|
1688
1686
|
<span class="cline-any cline-neutral"> </span>
|
|
1689
|
-
<span class="cline-any cline-yes">
|
|
1687
|
+
<span class="cline-any cline-yes">50x</span>
|
|
1690
1688
|
<span class="cline-any cline-neutral"> </span>
|
|
1691
1689
|
<span class="cline-any cline-neutral"> </span>
|
|
1692
1690
|
<span class="cline-any cline-neutral"> </span>
|
|
1693
|
-
<span class="cline-any cline-yes">
|
|
1691
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1694
1692
|
<span class="cline-any cline-neutral"> </span>
|
|
1695
|
-
<span class="cline-any cline-yes">
|
|
1693
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1696
1694
|
<span class="cline-any cline-neutral"> </span>
|
|
1697
|
-
<span class="cline-any cline-yes">
|
|
1695
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1698
1696
|
<span class="cline-any cline-no"> </span>
|
|
1699
1697
|
<span class="cline-any cline-neutral"> </span>
|
|
1700
1698
|
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
-
<span class="cline-any cline-yes">
|
|
1699
|
+
<span class="cline-any cline-yes">60x</span>
|
|
1702
1700
|
<span class="cline-any cline-neutral"> </span>
|
|
1703
1701
|
<span class="cline-any cline-neutral"> </span>
|
|
1704
1702
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1779,11 +1777,11 @@
|
|
|
1779
1777
|
<span class="cline-any cline-neutral"> </span>
|
|
1780
1778
|
<span class="cline-any cline-neutral"> </span>
|
|
1781
1779
|
<span class="cline-any cline-neutral"> </span>
|
|
1782
|
-
<span class="cline-any cline-yes">
|
|
1783
|
-
<span class="cline-any cline-yes">
|
|
1780
|
+
<span class="cline-any cline-yes">39x</span>
|
|
1781
|
+
<span class="cline-any cline-yes">39x</span>
|
|
1784
1782
|
<span class="cline-any cline-neutral"> </span>
|
|
1785
1783
|
<span class="cline-any cline-neutral"> </span>
|
|
1786
|
-
<span class="cline-any cline-yes">
|
|
1784
|
+
<span class="cline-any cline-yes">39x</span>
|
|
1787
1785
|
<span class="cline-any cline-neutral"> </span>
|
|
1788
1786
|
<span class="cline-any cline-neutral"> </span>
|
|
1789
1787
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1801,7 +1799,7 @@
|
|
|
1801
1799
|
<span class="cline-any cline-neutral"> </span>
|
|
1802
1800
|
<span class="cline-any cline-neutral"> </span>
|
|
1803
1801
|
<span class="cline-any cline-neutral"> </span>
|
|
1804
|
-
<span class="cline-any cline-yes">
|
|
1802
|
+
<span class="cline-any cline-yes">37x</span>
|
|
1805
1803
|
<span class="cline-any cline-neutral"> </span>
|
|
1806
1804
|
<span class="cline-any cline-neutral"> </span>
|
|
1807
1805
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1820,10 +1818,10 @@
|
|
|
1820
1818
|
<span class="cline-any cline-yes">1x</span>
|
|
1821
1819
|
<span class="cline-any cline-neutral"> </span>
|
|
1822
1820
|
<span class="cline-any cline-neutral"> </span>
|
|
1823
|
-
<span class="cline-any cline-yes">
|
|
1821
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1824
1822
|
<span class="cline-any cline-neutral"> </span>
|
|
1825
1823
|
<span class="cline-any cline-neutral"> </span>
|
|
1826
|
-
<span class="cline-any cline-yes">
|
|
1824
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1827
1825
|
<span class="cline-any cline-no"> </span>
|
|
1828
1826
|
<span class="cline-any cline-neutral"> </span>
|
|
1829
1827
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1835,16 +1833,16 @@
|
|
|
1835
1833
|
<span class="cline-any cline-neutral"> </span>
|
|
1836
1834
|
<span class="cline-any cline-neutral"> </span>
|
|
1837
1835
|
<span class="cline-any cline-neutral"> </span>
|
|
1838
|
-
<span class="cline-any cline-yes">
|
|
1836
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1839
1837
|
<span class="cline-any cline-yes">1x</span>
|
|
1840
1838
|
<span class="cline-any cline-neutral"> </span>
|
|
1841
1839
|
<span class="cline-any cline-neutral"> </span>
|
|
1842
|
-
<span class="cline-any cline-yes">
|
|
1840
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1843
1841
|
<span class="cline-any cline-neutral"> </span>
|
|
1844
1842
|
<span class="cline-any cline-neutral"> </span>
|
|
1845
|
-
<span class="cline-any cline-yes">
|
|
1843
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1846
1844
|
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
-
<span class="cline-any cline-yes">
|
|
1845
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1848
1846
|
<span class="cline-any cline-no"> </span>
|
|
1849
1847
|
<span class="cline-any cline-neutral"> </span>
|
|
1850
1848
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1857,7 +1855,7 @@
|
|
|
1857
1855
|
<span class="cline-any cline-neutral"> </span>
|
|
1858
1856
|
<span class="cline-any cline-neutral"> </span>
|
|
1859
1857
|
<span class="cline-any cline-neutral"> </span>
|
|
1860
|
-
<span class="cline-any cline-yes">
|
|
1858
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1861
1859
|
<span class="cline-any cline-yes">4x</span>
|
|
1862
1860
|
<span class="cline-any cline-neutral"> </span>
|
|
1863
1861
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1896,13 +1894,13 @@
|
|
|
1896
1894
|
<span class="cline-any cline-neutral"> </span>
|
|
1897
1895
|
<span class="cline-any cline-neutral"> </span>
|
|
1898
1896
|
<span class="cline-any cline-neutral"> </span>
|
|
1899
|
-
<span class="cline-any cline-yes">
|
|
1897
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1900
1898
|
<span class="cline-any cline-neutral"> </span>
|
|
1901
|
-
<span class="cline-any cline-yes">
|
|
1899
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1902
1900
|
<span class="cline-any cline-neutral"> </span>
|
|
1903
|
-
<span class="cline-any cline-yes">
|
|
1901
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1904
1902
|
<span class="cline-any cline-neutral"> </span>
|
|
1905
|
-
<span class="cline-any cline-yes">
|
|
1903
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1906
1904
|
<span class="cline-any cline-no"> </span>
|
|
1907
1905
|
<span class="cline-any cline-no"> </span>
|
|
1908
1906
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1934,7 +1932,7 @@
|
|
|
1934
1932
|
<span class="cline-any cline-neutral"> </span>
|
|
1935
1933
|
<span class="cline-any cline-neutral"> </span>
|
|
1936
1934
|
<span class="cline-any cline-neutral"> </span>
|
|
1937
|
-
<span class="cline-any cline-yes">
|
|
1935
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1938
1936
|
<span class="cline-any cline-no"> </span>
|
|
1939
1937
|
<span class="cline-any cline-neutral"> </span>
|
|
1940
1938
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1950,9 +1948,9 @@
|
|
|
1950
1948
|
<span class="cline-any cline-neutral"> </span>
|
|
1951
1949
|
<span class="cline-any cline-neutral"> </span>
|
|
1952
1950
|
<span class="cline-any cline-neutral"> </span>
|
|
1953
|
-
<span class="cline-any cline-yes">
|
|
1951
|
+
<span class="cline-any cline-yes">34x</span>
|
|
1954
1952
|
<span class="cline-any cline-neutral"> </span>
|
|
1955
|
-
<span class="cline-any cline-yes">
|
|
1953
|
+
<span class="cline-any cline-yes">33x</span>
|
|
1956
1954
|
<span class="cline-any cline-neutral"> </span>
|
|
1957
1955
|
<span class="cline-any cline-neutral"> </span>
|
|
1958
1956
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1961,7 +1959,7 @@
|
|
|
1961
1959
|
<span class="cline-any cline-neutral"> </span>
|
|
1962
1960
|
<span class="cline-any cline-neutral"> </span>
|
|
1963
1961
|
<span class="cline-any cline-neutral"> </span>
|
|
1964
|
-
<span class="cline-any cline-yes">
|
|
1962
|
+
<span class="cline-any cline-yes">33x</span>
|
|
1965
1963
|
<span class="cline-any cline-neutral"> </span>
|
|
1966
1964
|
<span class="cline-any cline-neutral"> </span>
|
|
1967
1965
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2003,12 +2001,12 @@
|
|
|
2003
2001
|
<span class="cline-any cline-neutral"> </span>
|
|
2004
2002
|
<span class="cline-any cline-neutral"> </span>
|
|
2005
2003
|
<span class="cline-any cline-neutral"> </span>
|
|
2006
|
-
<span class="cline-any cline-yes">
|
|
2007
|
-
<span class="cline-any cline-yes">
|
|
2004
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2005
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2008
2006
|
<span class="cline-any cline-neutral"> </span>
|
|
2009
|
-
<span class="cline-any cline-yes">
|
|
2007
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2010
2008
|
<span class="cline-any cline-neutral"> </span>
|
|
2011
|
-
<span class="cline-any cline-yes">
|
|
2009
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2012
2010
|
<span class="cline-any cline-no"> </span>
|
|
2013
2011
|
<span class="cline-any cline-neutral"> </span>
|
|
2014
2012
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2020,7 +2018,7 @@
|
|
|
2020
2018
|
<span class="cline-any cline-neutral"> </span>
|
|
2021
2019
|
<span class="cline-any cline-neutral"> </span>
|
|
2022
2020
|
<span class="cline-any cline-neutral"> </span>
|
|
2023
|
-
<span class="cline-any cline-yes">
|
|
2021
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2024
2022
|
<span class="cline-any cline-yes">2x</span>
|
|
2025
2023
|
<span class="cline-any cline-neutral"> </span>
|
|
2026
2024
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -2037,7 +2035,7 @@
|
|
|
2037
2035
|
<span class="cline-any cline-neutral"> </span>
|
|
2038
2036
|
<span class="cline-any cline-neutral"> </span>
|
|
2039
2037
|
<span class="cline-any cline-neutral"> </span>
|
|
2040
|
-
<span class="cline-any cline-yes">
|
|
2038
|
+
<span class="cline-any cline-yes">15x</span>
|
|
2041
2039
|
<span class="cline-any cline-neutral"> </span>
|
|
2042
2040
|
<span class="cline-any cline-neutral"> </span>
|
|
2043
2041
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2057,10 +2055,10 @@
|
|
|
2057
2055
|
<span class="cline-any cline-yes">1x</span>
|
|
2058
2056
|
<span class="cline-any cline-neutral"> </span>
|
|
2059
2057
|
<span class="cline-any cline-neutral"> </span>
|
|
2060
|
-
<span class="cline-any cline-yes">
|
|
2058
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2061
2059
|
<span class="cline-any cline-neutral"> </span>
|
|
2062
2060
|
<span class="cline-any cline-neutral"> </span>
|
|
2063
|
-
<span class="cline-any cline-yes">
|
|
2061
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2064
2062
|
<span class="cline-any cline-no"> </span>
|
|
2065
2063
|
<span class="cline-any cline-neutral"> </span>
|
|
2066
2064
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2072,7 +2070,7 @@
|
|
|
2072
2070
|
<span class="cline-any cline-neutral"> </span>
|
|
2073
2071
|
<span class="cline-any cline-neutral"> </span>
|
|
2074
2072
|
<span class="cline-any cline-neutral"> </span>
|
|
2075
|
-
<span class="cline-any cline-yes">
|
|
2073
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2076
2074
|
<span class="cline-any cline-no"> </span>
|
|
2077
2075
|
<span class="cline-any cline-neutral"> </span>
|
|
2078
2076
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2083,12 +2081,12 @@
|
|
|
2083
2081
|
<span class="cline-any cline-no"> </span>
|
|
2084
2082
|
<span class="cline-any cline-neutral"> </span>
|
|
2085
2083
|
<span class="cline-any cline-neutral"> </span>
|
|
2086
|
-
<span class="cline-any cline-yes">
|
|
2084
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2087
2085
|
<span class="cline-any cline-neutral"> </span>
|
|
2088
2086
|
<span class="cline-any cline-neutral"> </span>
|
|
2089
|
-
<span class="cline-any cline-yes">
|
|
2087
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2090
2088
|
<span class="cline-any cline-neutral"> </span>
|
|
2091
|
-
<span class="cline-any cline-yes">
|
|
2089
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2092
2090
|
<span class="cline-any cline-no"> </span>
|
|
2093
2091
|
<span class="cline-any cline-neutral"> </span>
|
|
2094
2092
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2105,19 +2103,18 @@
|
|
|
2105
2103
|
<span class="cline-any cline-neutral"> </span>
|
|
2106
2104
|
<span class="cline-any cline-neutral"> </span>
|
|
2107
2105
|
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
-
<span class="cline-any cline-yes">
|
|
2109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2110
|
-
<span class="cline-any cline-yes">13x</span>
|
|
2106
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2111
2107
|
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2112
2109
|
<span class="cline-any cline-neutral"> </span>
|
|
2113
2110
|
<span class="cline-any cline-neutral"> </span>
|
|
2114
2111
|
<span class="cline-any cline-neutral"> </span>
|
|
2115
2112
|
<span class="cline-any cline-neutral"> </span>
|
|
2116
2113
|
<span class="cline-any cline-neutral"> </span>
|
|
2117
2114
|
<span class="cline-any cline-neutral"> </span>
|
|
2118
|
-
<span class="cline-any cline-yes">
|
|
2115
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2119
2116
|
<span class="cline-any cline-neutral"> </span>
|
|
2120
|
-
<span class="cline-any cline-yes">
|
|
2117
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2121
2118
|
<span class="cline-any cline-no"> </span>
|
|
2122
2119
|
<span class="cline-any cline-neutral"> </span>
|
|
2123
2120
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2136,20 +2133,20 @@
|
|
|
2136
2133
|
<span class="cline-any cline-neutral"> </span>
|
|
2137
2134
|
<span class="cline-any cline-neutral"> </span>
|
|
2138
2135
|
<span class="cline-any cline-neutral"> </span>
|
|
2139
|
-
<span class="cline-any cline-yes">
|
|
2140
|
-
<span class="cline-any cline-yes">
|
|
2136
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2137
|
+
<span class="cline-any cline-yes">19x</span>
|
|
2141
2138
|
<span class="cline-any cline-neutral"> </span>
|
|
2142
|
-
<span class="cline-any cline-yes">
|
|
2143
|
-
<span class="cline-any cline-yes">
|
|
2139
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2140
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2144
2141
|
<span class="cline-any cline-neutral"> </span>
|
|
2145
2142
|
<span class="cline-any cline-neutral"> </span>
|
|
2146
2143
|
<span class="cline-any cline-neutral"> </span>
|
|
2147
2144
|
<span class="cline-any cline-neutral"> </span>
|
|
2148
2145
|
<span class="cline-any cline-neutral"> </span>
|
|
2149
2146
|
<span class="cline-any cline-neutral"> </span>
|
|
2150
|
-
<span class="cline-any cline-yes">
|
|
2147
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2151
2148
|
<span class="cline-any cline-neutral"> </span>
|
|
2152
|
-
<span class="cline-any cline-yes">
|
|
2149
|
+
<span class="cline-any cline-yes">14x</span>
|
|
2153
2150
|
<span class="cline-any cline-neutral"> </span>
|
|
2154
2151
|
<span class="cline-any cline-neutral"> </span>
|
|
2155
2152
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2179,15 +2176,15 @@
|
|
|
2179
2176
|
<span class="cline-any cline-neutral"> </span>
|
|
2180
2177
|
<span class="cline-any cline-neutral"> </span>
|
|
2181
2178
|
<span class="cline-any cline-neutral"> </span>
|
|
2182
|
-
<span class="cline-any cline-yes">
|
|
2183
|
-
<span class="cline-any cline-yes">
|
|
2179
|
+
<span class="cline-any cline-yes">16x</span>
|
|
2180
|
+
<span class="cline-any cline-yes">16x</span>
|
|
2184
2181
|
<span class="cline-any cline-neutral"> </span>
|
|
2185
|
-
<span class="cline-any cline-yes">
|
|
2182
|
+
<span class="cline-any cline-yes">16x</span>
|
|
2186
2183
|
<span class="cline-any cline-yes">3x</span>
|
|
2187
2184
|
<span class="cline-any cline-neutral"> </span>
|
|
2188
2185
|
<span class="cline-any cline-neutral"> </span>
|
|
2189
|
-
<span class="cline-any cline-yes">
|
|
2190
|
-
<span class="cline-any cline-yes">
|
|
2186
|
+
<span class="cline-any cline-yes">13x</span>
|
|
2187
|
+
<span class="cline-any cline-yes">13x</span>
|
|
2191
2188
|
<span class="cline-any cline-neutral"> </span>
|
|
2192
2189
|
<span class="cline-any cline-neutral"> </span>
|
|
2193
2190
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2253,12 +2250,12 @@
|
|
|
2253
2250
|
<span class="cline-any cline-neutral"> </span>
|
|
2254
2251
|
<span class="cline-any cline-neutral"> </span>
|
|
2255
2252
|
<span class="cline-any cline-neutral"> </span>
|
|
2256
|
-
<span class="cline-any cline-
|
|
2257
|
-
<span class="cline-any cline-
|
|
2253
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2254
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2258
2255
|
<span class="cline-any cline-neutral"> </span>
|
|
2259
|
-
<span class="cline-any cline-
|
|
2256
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2260
2257
|
<span class="cline-any cline-neutral"> </span>
|
|
2261
|
-
<span class="cline-any cline-
|
|
2258
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2262
2259
|
<span class="cline-any cline-no"> </span>
|
|
2263
2260
|
<span class="cline-any cline-neutral"> </span>
|
|
2264
2261
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2270,7 +2267,7 @@
|
|
|
2270
2267
|
<span class="cline-any cline-neutral"> </span>
|
|
2271
2268
|
<span class="cline-any cline-neutral"> </span>
|
|
2272
2269
|
<span class="cline-any cline-neutral"> </span>
|
|
2273
|
-
<span class="cline-any cline-
|
|
2270
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2274
2271
|
<span class="cline-any cline-no"> </span>
|
|
2275
2272
|
<span class="cline-any cline-neutral"> </span>
|
|
2276
2273
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2292,7 +2289,7 @@
|
|
|
2292
2289
|
<span class="cline-any cline-neutral"> </span>
|
|
2293
2290
|
<span class="cline-any cline-neutral"> </span>
|
|
2294
2291
|
<span class="cline-any cline-neutral"> </span>
|
|
2295
|
-
<span class="cline-any cline-
|
|
2292
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2296
2293
|
<span class="cline-any cline-neutral"> </span>
|
|
2297
2294
|
<span class="cline-any cline-neutral"> </span>
|
|
2298
2295
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2316,10 +2313,10 @@
|
|
|
2316
2313
|
<span class="cline-any cline-neutral"> </span>
|
|
2317
2314
|
<span class="cline-any cline-neutral"> </span>
|
|
2318
2315
|
<span class="cline-any cline-neutral"> </span>
|
|
2319
|
-
<span class="cline-any cline-
|
|
2316
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2320
2317
|
<span class="cline-any cline-neutral"> </span>
|
|
2321
2318
|
<span class="cline-any cline-neutral"> </span>
|
|
2322
|
-
<span class="cline-any cline-
|
|
2319
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2323
2320
|
<span class="cline-any cline-no"> </span>
|
|
2324
2321
|
<span class="cline-any cline-neutral"> </span>
|
|
2325
2322
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2331,12 +2328,12 @@
|
|
|
2331
2328
|
<span class="cline-any cline-no"> </span>
|
|
2332
2329
|
<span class="cline-any cline-neutral"> </span>
|
|
2333
2330
|
<span class="cline-any cline-neutral"> </span>
|
|
2334
|
-
<span class="cline-any cline-
|
|
2335
|
-
<span class="cline-any cline-
|
|
2331
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2332
|
+
<span class="cline-any cline-yes">42x</span>
|
|
2336
2333
|
<span class="cline-any cline-neutral"> </span>
|
|
2337
2334
|
<span class="cline-any cline-neutral"> </span>
|
|
2338
2335
|
<span class="cline-any cline-neutral"> </span>
|
|
2339
|
-
<span class="cline-any cline-
|
|
2336
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2340
2337
|
<span class="cline-any cline-no"> </span>
|
|
2341
2338
|
<span class="cline-any cline-neutral"> </span>
|
|
2342
2339
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2348,12 +2345,12 @@
|
|
|
2348
2345
|
<span class="cline-any cline-no"> </span>
|
|
2349
2346
|
<span class="cline-any cline-neutral"> </span>
|
|
2350
2347
|
<span class="cline-any cline-neutral"> </span>
|
|
2351
|
-
<span class="cline-any cline-
|
|
2348
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2352
2349
|
<span class="cline-any cline-neutral"> </span>
|
|
2353
2350
|
<span class="cline-any cline-neutral"> </span>
|
|
2354
|
-
<span class="cline-any cline-
|
|
2351
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2355
2352
|
<span class="cline-any cline-neutral"> </span>
|
|
2356
|
-
<span class="cline-any cline-
|
|
2353
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2357
2354
|
<span class="cline-any cline-no"> </span>
|
|
2358
2355
|
<span class="cline-any cline-neutral"> </span>
|
|
2359
2356
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2368,19 +2365,18 @@
|
|
|
2368
2365
|
<span class="cline-any cline-neutral"> </span>
|
|
2369
2366
|
<span class="cline-any cline-neutral"> </span>
|
|
2370
2367
|
<span class="cline-any cline-neutral"> </span>
|
|
2371
|
-
<span class="cline-any cline-
|
|
2372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2373
|
-
<span class="cline-any cline-no"> </span>
|
|
2368
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2374
2369
|
<span class="cline-any cline-neutral"> </span>
|
|
2370
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2375
2371
|
<span class="cline-any cline-neutral"> </span>
|
|
2376
2372
|
<span class="cline-any cline-neutral"> </span>
|
|
2377
2373
|
<span class="cline-any cline-neutral"> </span>
|
|
2378
2374
|
<span class="cline-any cline-neutral"> </span>
|
|
2379
2375
|
<span class="cline-any cline-neutral"> </span>
|
|
2380
2376
|
<span class="cline-any cline-neutral"> </span>
|
|
2381
|
-
<span class="cline-any cline-
|
|
2377
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2382
2378
|
<span class="cline-any cline-neutral"> </span>
|
|
2383
|
-
<span class="cline-any cline-
|
|
2379
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2384
2380
|
<span class="cline-any cline-neutral"> </span>
|
|
2385
2381
|
<span class="cline-any cline-neutral"> </span>
|
|
2386
2382
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2400,14 +2396,14 @@
|
|
|
2400
2396
|
<span class="cline-any cline-neutral"> </span>
|
|
2401
2397
|
<span class="cline-any cline-neutral"> </span>
|
|
2402
2398
|
<span class="cline-any cline-neutral"> </span>
|
|
2403
|
-
<span class="cline-any cline-
|
|
2404
|
-
<span class="cline-any cline-
|
|
2399
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2400
|
+
<span class="cline-any cline-yes">24x</span>
|
|
2405
2401
|
<span class="cline-any cline-neutral"> </span>
|
|
2406
|
-
<span class="cline-any cline-
|
|
2407
|
-
<span class="cline-any cline-
|
|
2402
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2403
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2408
2404
|
<span class="cline-any cline-neutral"> </span>
|
|
2409
|
-
<span class="cline-any cline-
|
|
2410
|
-
<span class="cline-any cline-
|
|
2405
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2406
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2411
2407
|
<span class="cline-any cline-no"> </span>
|
|
2412
2408
|
<span class="cline-any cline-no"> </span>
|
|
2413
2409
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2446,8 +2442,8 @@
|
|
|
2446
2442
|
<span class="cline-any cline-neutral"> </span>
|
|
2447
2443
|
<span class="cline-any cline-neutral"> </span>
|
|
2448
2444
|
<span class="cline-any cline-neutral"> </span>
|
|
2449
|
-
<span class="cline-any cline-
|
|
2450
|
-
<span class="cline-any cline-
|
|
2445
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2446
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2451
2447
|
<span class="cline-any cline-neutral"> </span>
|
|
2452
2448
|
<span class="cline-any cline-neutral"> </span>
|
|
2453
2449
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2457,9 +2453,9 @@
|
|
|
2457
2453
|
<span class="cline-any cline-neutral"> </span>
|
|
2458
2454
|
<span class="cline-any cline-neutral"> </span>
|
|
2459
2455
|
<span class="cline-any cline-neutral"> </span>
|
|
2460
|
-
<span class="cline-any cline-
|
|
2456
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2461
2457
|
<span class="cline-any cline-neutral"> </span>
|
|
2462
|
-
<span class="cline-any cline-
|
|
2458
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2463
2459
|
<span class="cline-any cline-neutral"> </span>
|
|
2464
2460
|
<span class="cline-any cline-neutral"> </span>
|
|
2465
2461
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2467,7 +2463,7 @@
|
|
|
2467
2463
|
<span class="cline-any cline-neutral"> </span>
|
|
2468
2464
|
<span class="cline-any cline-neutral"> </span>
|
|
2469
2465
|
<span class="cline-any cline-neutral"> </span>
|
|
2470
|
-
<span class="cline-any cline-
|
|
2466
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2471
2467
|
<span class="cline-any cline-neutral"> </span>
|
|
2472
2468
|
<span class="cline-any cline-neutral"> </span>
|
|
2473
2469
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2476,9 +2472,9 @@
|
|
|
2476
2472
|
<span class="cline-any cline-neutral"> </span>
|
|
2477
2473
|
<span class="cline-any cline-neutral"> </span>
|
|
2478
2474
|
<span class="cline-any cline-neutral"> </span>
|
|
2479
|
-
<span class="cline-any cline-
|
|
2475
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2480
2476
|
<span class="cline-any cline-neutral"> </span>
|
|
2481
|
-
<span class="cline-any cline-
|
|
2477
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2482
2478
|
<span class="cline-any cline-neutral"> </span>
|
|
2483
2479
|
<span class="cline-any cline-no"> </span>
|
|
2484
2480
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2496,19 +2492,19 @@
|
|
|
2496
2492
|
<span class="cline-any cline-neutral"> </span>
|
|
2497
2493
|
<span class="cline-any cline-neutral"> </span>
|
|
2498
2494
|
<span class="cline-any cline-neutral"> </span>
|
|
2499
|
-
<span class="cline-any cline-
|
|
2500
|
-
<span class="cline-any cline-
|
|
2495
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2496
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2501
2497
|
<span class="cline-any cline-neutral"> </span>
|
|
2502
|
-
<span class="cline-any cline-
|
|
2503
|
-
<span class="cline-any cline-
|
|
2498
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2499
|
+
<span class="cline-any cline-yes">12x</span>
|
|
2504
2500
|
<span class="cline-any cline-neutral"> </span>
|
|
2505
2501
|
<span class="cline-any cline-neutral"> </span>
|
|
2506
2502
|
<span class="cline-any cline-neutral"> </span>
|
|
2507
2503
|
<span class="cline-any cline-neutral"> </span>
|
|
2508
|
-
<span class="cline-any cline-
|
|
2504
|
+
<span class="cline-any cline-yes">2x</span>
|
|
2509
2505
|
<span class="cline-any cline-neutral"> </span>
|
|
2510
2506
|
<span class="cline-any cline-neutral"> </span>
|
|
2511
|
-
<span class="cline-any cline-
|
|
2507
|
+
<span class="cline-any cline-yes">10x</span>
|
|
2512
2508
|
<span class="cline-any cline-neutral"> </span>
|
|
2513
2509
|
<span class="cline-any cline-neutral"> </span>
|
|
2514
2510
|
<span class="cline-any cline-no"> </span>
|
|
@@ -2524,9 +2520,9 @@
|
|
|
2524
2520
|
<span class="cline-any cline-neutral"> </span>
|
|
2525
2521
|
<span class="cline-any cline-neutral"> </span>
|
|
2526
2522
|
<span class="cline-any cline-neutral"> </span>
|
|
2527
|
-
<span class="cline-any cline-
|
|
2523
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2528
2524
|
<span class="cline-any cline-neutral"> </span>
|
|
2529
|
-
<span class="cline-any cline-
|
|
2525
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2530
2526
|
<span class="cline-any cline-neutral"> </span>
|
|
2531
2527
|
<span class="cline-any cline-neutral"> </span>
|
|
2532
2528
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2534,9 +2530,9 @@
|
|
|
2534
2530
|
<span class="cline-any cline-neutral"> </span>
|
|
2535
2531
|
<span class="cline-any cline-neutral"> </span>
|
|
2536
2532
|
<span class="cline-any cline-neutral"> </span>
|
|
2537
|
-
<span class="cline-any cline-
|
|
2533
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2538
2534
|
<span class="cline-any cline-neutral"> </span>
|
|
2539
|
-
<span class="cline-any cline-
|
|
2535
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2540
2536
|
<span class="cline-any cline-neutral"> </span>
|
|
2541
2537
|
<span class="cline-any cline-neutral"> </span>
|
|
2542
2538
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2544,9 +2540,9 @@
|
|
|
2544
2540
|
<span class="cline-any cline-neutral"> </span>
|
|
2545
2541
|
<span class="cline-any cline-neutral"> </span>
|
|
2546
2542
|
<span class="cline-any cline-neutral"> </span>
|
|
2547
|
-
<span class="cline-any cline-
|
|
2543
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2548
2544
|
<span class="cline-any cline-neutral"> </span>
|
|
2549
|
-
<span class="cline-any cline-
|
|
2545
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2550
2546
|
<span class="cline-any cline-neutral"> </span>
|
|
2551
2547
|
<span class="cline-any cline-neutral"> </span>
|
|
2552
2548
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2564,9 +2560,9 @@
|
|
|
2564
2560
|
<span class="cline-any cline-neutral"> </span>
|
|
2565
2561
|
<span class="cline-any cline-neutral"> </span>
|
|
2566
2562
|
<span class="cline-any cline-neutral"> </span>
|
|
2567
|
-
<span class="cline-any cline-
|
|
2563
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2568
2564
|
<span class="cline-any cline-neutral"> </span>
|
|
2569
|
-
<span class="cline-any cline-
|
|
2565
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2570
2566
|
<span class="cline-any cline-neutral"> </span>
|
|
2571
2567
|
<span class="cline-any cline-neutral"> </span>
|
|
2572
2568
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2574,9 +2570,9 @@
|
|
|
2574
2570
|
<span class="cline-any cline-neutral"> </span>
|
|
2575
2571
|
<span class="cline-any cline-neutral"> </span>
|
|
2576
2572
|
<span class="cline-any cline-neutral"> </span>
|
|
2577
|
-
<span class="cline-any cline-
|
|
2573
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2578
2574
|
<span class="cline-any cline-neutral"> </span>
|
|
2579
|
-
<span class="cline-any cline-
|
|
2575
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2580
2576
|
<span class="cline-any cline-neutral"> </span>
|
|
2581
2577
|
<span class="cline-any cline-neutral"> </span>
|
|
2582
2578
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2584,14 +2580,14 @@
|
|
|
2584
2580
|
<span class="cline-any cline-neutral"> </span>
|
|
2585
2581
|
<span class="cline-any cline-neutral"> </span>
|
|
2586
2582
|
<span class="cline-any cline-neutral"> </span>
|
|
2587
|
-
<span class="cline-any cline-
|
|
2583
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2588
2584
|
<span class="cline-any cline-neutral"> </span>
|
|
2589
|
-
<span class="cline-any cline-
|
|
2585
|
+
<span class="cline-any cline-yes">1x</span>
|
|
2590
2586
|
<span class="cline-any cline-neutral"> </span>
|
|
2591
2587
|
<span class="cline-any cline-neutral"> </span>
|
|
2592
2588
|
<span class="cline-any cline-neutral"> </span>
|
|
2593
2589
|
<span class="cline-any cline-yes">1x</span>
|
|
2594
|
-
<span class="cline-any cline-yes">
|
|
2590
|
+
<span class="cline-any cline-yes">17x</span>
|
|
2595
2591
|
<span class="cline-any cline-neutral"> </span>
|
|
2596
2592
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
2597
2593
|
Context,
|
|
@@ -2726,28 +2722,28 @@ function fetchDatafileContent(
|
|
|
2726
2722
|
type FieldType = string | VariableType;
|
|
2727
2723
|
type ValueType = VariableValue;
|
|
2728
2724
|
|
|
2729
|
-
export function
|
|
2730
|
-
|
|
2731
|
-
|
|
2725
|
+
export function getValueByType(value: ValueType, fieldType: FieldType): ValueType {
|
|
2726
|
+
try {
|
|
2727
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (value === undefined) {
|
|
2732
2728
|
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
2733
2729
|
}
|
|
2734
2730
|
|
|
2735
|
-
|
|
2731
|
+
switch (fieldType) {
|
|
2736
2732
|
case "string":
|
|
2737
|
-
<span class="
|
|
2733
|
+
return typeof value === "string" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
2738
2734
|
case "integer":
|
|
2739
|
-
|
|
2740
|
-
case "double"
|
|
2735
|
+
return parseInt(value as string, 10);
|
|
2736
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > case "double":</span>
|
|
2741
2737
|
<span class="cstat-no" title="statement not covered" > return parseFloat(value as string);</span>
|
|
2742
2738
|
case "boolean":
|
|
2743
|
-
|
|
2739
|
+
return value === true;
|
|
2744
2740
|
case "array":
|
|
2745
|
-
<span class="
|
|
2741
|
+
return Array.isArray(value) ? value : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
2746
2742
|
case "object":
|
|
2747
|
-
<span class="
|
|
2743
|
+
return typeof value === "object" ? value : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
2748
2744
|
// @NOTE: `json` is not handled here intentionally
|
|
2749
2745
|
default:
|
|
2750
|
-
|
|
2746
|
+
return value;
|
|
2751
2747
|
}
|
|
2752
2748
|
} catch (e) {
|
|
2753
2749
|
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
@@ -3377,7 +3373,6 @@ export class FeaturevisorInstance {
|
|
|
3377
3373
|
finalContext,
|
|
3378
3374
|
bucketValue,
|
|
3379
3375
|
this.datafileReader,
|
|
3380
|
-
this.logger,
|
|
3381
3376
|
);
|
|
3382
3377
|
|
|
3383
3378
|
if (matchedTraffic) {
|
|
@@ -3511,19 +3506,19 @@ export class FeaturevisorInstance {
|
|
|
3511
3506
|
/**
|
|
3512
3507
|
* Variable
|
|
3513
3508
|
*/
|
|
3514
|
-
|
|
3509
|
+
evaluateVariable(
|
|
3515
3510
|
featureKey: FeatureKey | Feature,
|
|
3516
3511
|
variableKey: VariableKey,
|
|
3517
3512
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3518
3513
|
): Evaluation {
|
|
3519
3514
|
let evaluation: Evaluation;
|
|
3520
3515
|
|
|
3521
|
-
|
|
3522
|
-
const key = <span class="
|
|
3516
|
+
try {
|
|
3517
|
+
const key = typeof featureKey === "string" ? featureKey : <span class="branch-1 cbranch-no" title="branch not covered" >featureKey.key;</span>
|
|
3523
3518
|
|
|
3524
|
-
const flag =
|
|
3519
|
+
const flag = this.evaluateFlag(featureKey, context);
|
|
3525
3520
|
|
|
3526
|
-
|
|
3521
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (flag.enabled === false) {
|
|
3527
3522
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3528
3523
|
featureKey: key,
|
|
3529
3524
|
reason: EvaluationReason.DISABLED,
|
|
@@ -3535,7 +3530,7 @@ export class FeaturevisorInstance {
|
|
|
3535
3530
|
}
|
|
3536
3531
|
|
|
3537
3532
|
// sticky
|
|
3538
|
-
|
|
3533
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (this.stickyFeatures && <span class="branch-1 cbranch-no" title="branch not covered" >this.stickyFeatures[key])</span> {
|
|
3539
3534
|
const variables = <span class="cstat-no" title="statement not covered" >this.stickyFeatures[key].variables;</span>
|
|
3540
3535
|
|
|
3541
3536
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (variables) {</span>
|
|
@@ -3557,11 +3552,11 @@ export class FeaturevisorInstance {
|
|
|
3557
3552
|
}
|
|
3558
3553
|
|
|
3559
3554
|
// initial
|
|
3560
|
-
|
|
3555
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
3561
3556
|
this.statuses &&
|
|
3562
3557
|
!this.statuses.ready &&
|
|
3563
|
-
this.initialFeatures
|
|
3564
|
-
this.initialFeatures[key]
|
|
3558
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > this.initialFeatures </span>&&
|
|
3559
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > this.initialFeatures[key]</span>
|
|
3565
3560
|
) {
|
|
3566
3561
|
const variables = <span class="cstat-no" title="statement not covered" >this.initialFeatures[key].variables;</span>
|
|
3567
3562
|
|
|
@@ -3581,10 +3576,10 @@ export class FeaturevisorInstance {
|
|
|
3581
3576
|
}
|
|
3582
3577
|
}
|
|
3583
3578
|
|
|
3584
|
-
const feature =
|
|
3579
|
+
const feature = this.getFeature(featureKey);
|
|
3585
3580
|
|
|
3586
3581
|
// not found
|
|
3587
|
-
|
|
3582
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!feature) {
|
|
3588
3583
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3589
3584
|
featureKey: key,
|
|
3590
3585
|
reason: EvaluationReason.NOT_FOUND,
|
|
@@ -3596,12 +3591,12 @@ export class FeaturevisorInstance {
|
|
|
3596
3591
|
<span class="cstat-no" title="statement not covered" > return evaluation;</span>
|
|
3597
3592
|
}
|
|
3598
3593
|
|
|
3599
|
-
const variableSchema =
|
|
3600
|
-
? feature.variablesSchema.find(
|
|
3601
|
-
: undefined
|
|
3594
|
+
const variableSchema = Array.isArray(feature.variablesSchema)
|
|
3595
|
+
? feature.variablesSchema.find((v) => v.key === variableKey)
|
|
3596
|
+
: <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
|
|
3602
3597
|
|
|
3603
3598
|
// variable schema not found
|
|
3604
|
-
|
|
3599
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!variableSchema) {
|
|
3605
3600
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3606
3601
|
featureKey: key,
|
|
3607
3602
|
reason: EvaluationReason.NOT_FOUND,
|
|
@@ -3613,12 +3608,12 @@ export class FeaturevisorInstance {
|
|
|
3613
3608
|
<span class="cstat-no" title="statement not covered" > return evaluation;</span>
|
|
3614
3609
|
}
|
|
3615
3610
|
|
|
3616
|
-
const finalContext = <span class="
|
|
3611
|
+
const finalContext = this.interceptContext ? <span class="branch-0 cbranch-no" title="branch not covered" >this.interceptContext(context) </span>: context;
|
|
3617
3612
|
|
|
3618
3613
|
// forced
|
|
3619
|
-
const force =
|
|
3614
|
+
const force = findForceFromFeature(feature, context, this.datafileReader);
|
|
3620
3615
|
|
|
3621
|
-
|
|
3616
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (force && <span class="branch-1 cbranch-no" title="branch not covered" >force.variables </span>&& <span class="branch-2 cbranch-no" title="branch not covered" >typeof force.variables[variableKey] !== "undefined")</span> {
|
|
3622
3617
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3623
3618
|
featureKey: feature.key,
|
|
3624
3619
|
reason: EvaluationReason.FORCED,
|
|
@@ -3633,21 +3628,20 @@ export class FeaturevisorInstance {
|
|
|
3633
3628
|
}
|
|
3634
3629
|
|
|
3635
3630
|
// bucketing
|
|
3636
|
-
const bucketValue =
|
|
3631
|
+
const bucketValue = this.getBucketValue(feature, finalContext);
|
|
3637
3632
|
|
|
3638
|
-
const { matchedTraffic, matchedAllocation } =
|
|
3633
|
+
const { matchedTraffic, matchedAllocation } = getMatchedTrafficAndAllocation(
|
|
3639
3634
|
feature.traffic,
|
|
3640
3635
|
finalContext,
|
|
3641
3636
|
bucketValue,
|
|
3642
3637
|
this.datafileReader,
|
|
3643
|
-
this.logger,
|
|
3644
3638
|
);
|
|
3645
3639
|
|
|
3646
|
-
|
|
3640
|
+
if (matchedTraffic) {
|
|
3647
3641
|
// override from rule
|
|
3648
|
-
|
|
3642
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
3649
3643
|
matchedTraffic.variables &&
|
|
3650
|
-
typeof matchedTraffic.variables[variableKey] !== "undefined"
|
|
3644
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > typeof matchedTraffic.variables[variableKey] !== "undefined"</span>
|
|
3651
3645
|
) {
|
|
3652
3646
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3653
3647
|
featureKey: feature.key,
|
|
@@ -3665,14 +3659,14 @@ export class FeaturevisorInstance {
|
|
|
3665
3659
|
}
|
|
3666
3660
|
|
|
3667
3661
|
// regular allocation
|
|
3668
|
-
|
|
3669
|
-
const variation =
|
|
3662
|
+
if (matchedAllocation && matchedAllocation.variation && Array.isArray(feature.variations)) {
|
|
3663
|
+
const variation = feature.variations.find((v) => v.value === matchedAllocation.variation);
|
|
3670
3664
|
|
|
3671
|
-
|
|
3672
|
-
const variableFromVariation =
|
|
3665
|
+
if (variation && variation.variables) {
|
|
3666
|
+
const variableFromVariation = variation.variables.find((v) => v.key === variableKey);
|
|
3673
3667
|
|
|
3674
|
-
|
|
3675
|
-
|
|
3668
|
+
if (variableFromVariation) {
|
|
3669
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (variableFromVariation.overrides) {
|
|
3676
3670
|
const override = <span class="cstat-no" title="statement not covered" >variableFromVariation.overrides.find(<span class="fstat-no" title="function not covered" >(o</span>) => {</span>
|
|
3677
3671
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (o.conditions) {</span>
|
|
3678
3672
|
<span class="cstat-no" title="statement not covered" > return allConditionsAreMatched(</span>
|
|
@@ -3711,8 +3705,8 @@ export class FeaturevisorInstance {
|
|
|
3711
3705
|
}
|
|
3712
3706
|
}
|
|
3713
3707
|
|
|
3714
|
-
|
|
3715
|
-
|
|
3708
|
+
if (typeof variableFromVariation.value !== "undefined") {
|
|
3709
|
+
evaluation = {
|
|
3716
3710
|
featureKey: feature.key,
|
|
3717
3711
|
reason: EvaluationReason.ALLOCATED,
|
|
3718
3712
|
variableKey,
|
|
@@ -3722,9 +3716,9 @@ export class FeaturevisorInstance {
|
|
|
3722
3716
|
ruleKey: matchedTraffic.key,
|
|
3723
3717
|
};
|
|
3724
3718
|
|
|
3725
|
-
|
|
3719
|
+
this.logger.debug("allocated variable", evaluation);
|
|
3726
3720
|
|
|
3727
|
-
|
|
3721
|
+
return evaluation;
|
|
3728
3722
|
}
|
|
3729
3723
|
}
|
|
3730
3724
|
}
|
|
@@ -3732,7 +3726,7 @@ export class FeaturevisorInstance {
|
|
|
3732
3726
|
}
|
|
3733
3727
|
|
|
3734
3728
|
// fall back to default
|
|
3735
|
-
|
|
3729
|
+
evaluation = {
|
|
3736
3730
|
featureKey: feature.key,
|
|
3737
3731
|
reason: EvaluationReason.DEFAULTED,
|
|
3738
3732
|
variableKey,
|
|
@@ -3741,9 +3735,9 @@ export class FeaturevisorInstance {
|
|
|
3741
3735
|
bucketValue,
|
|
3742
3736
|
};
|
|
3743
3737
|
|
|
3744
|
-
|
|
3738
|
+
this.logger.debug("using default value", evaluation);
|
|
3745
3739
|
|
|
3746
|
-
|
|
3740
|
+
return evaluation;
|
|
3747
3741
|
} catch (e) {
|
|
3748
3742
|
<span class="cstat-no" title="statement not covered" > evaluation = {</span>
|
|
3749
3743
|
featureKey: typeof featureKey === "string" ? featureKey : featureKey.key,
|
|
@@ -3756,24 +3750,24 @@ export class FeaturevisorInstance {
|
|
|
3756
3750
|
}
|
|
3757
3751
|
}
|
|
3758
3752
|
|
|
3759
|
-
|
|
3753
|
+
getVariable(
|
|
3760
3754
|
featureKey: FeatureKey | Feature,
|
|
3761
3755
|
variableKey: string,
|
|
3762
3756
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3763
3757
|
): VariableValue | undefined {
|
|
3764
|
-
|
|
3765
|
-
const evaluation =
|
|
3758
|
+
try {
|
|
3759
|
+
const evaluation = this.evaluateVariable(featureKey, variableKey, context);
|
|
3766
3760
|
|
|
3767
|
-
|
|
3768
|
-
|
|
3761
|
+
if (typeof evaluation.variableValue !== "undefined") {
|
|
3762
|
+
if (
|
|
3769
3763
|
evaluation.variableSchema &&
|
|
3770
3764
|
evaluation.variableSchema.type === "json" &&
|
|
3771
3765
|
typeof evaluation.variableValue === "string"
|
|
3772
3766
|
) {
|
|
3773
|
-
|
|
3767
|
+
return JSON.parse(evaluation.variableValue);
|
|
3774
3768
|
}
|
|
3775
3769
|
|
|
3776
|
-
|
|
3770
|
+
return evaluation.variableValue;
|
|
3777
3771
|
}
|
|
3778
3772
|
|
|
3779
3773
|
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
@@ -3784,34 +3778,34 @@ export class FeaturevisorInstance {
|
|
|
3784
3778
|
}
|
|
3785
3779
|
}
|
|
3786
3780
|
|
|
3787
|
-
|
|
3781
|
+
getVariableBoolean(
|
|
3788
3782
|
featureKey: FeatureKey | Feature,
|
|
3789
3783
|
variableKey: string,
|
|
3790
3784
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3791
3785
|
): boolean | undefined {
|
|
3792
|
-
const variableValue =
|
|
3786
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3793
3787
|
|
|
3794
|
-
|
|
3788
|
+
return getValueByType(variableValue, "boolean") as boolean | undefined;
|
|
3795
3789
|
}
|
|
3796
3790
|
|
|
3797
|
-
|
|
3791
|
+
getVariableString(
|
|
3798
3792
|
featureKey: FeatureKey | Feature,
|
|
3799
3793
|
variableKey: string,
|
|
3800
3794
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3801
3795
|
): string | undefined {
|
|
3802
|
-
const variableValue =
|
|
3796
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3803
3797
|
|
|
3804
|
-
|
|
3798
|
+
return getValueByType(variableValue, "string") as string | undefined;
|
|
3805
3799
|
}
|
|
3806
3800
|
|
|
3807
|
-
|
|
3801
|
+
getVariableInteger(
|
|
3808
3802
|
featureKey: FeatureKey | Feature,
|
|
3809
3803
|
variableKey: string,
|
|
3810
3804
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3811
3805
|
): number | undefined {
|
|
3812
|
-
const variableValue =
|
|
3806
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3813
3807
|
|
|
3814
|
-
|
|
3808
|
+
return getValueByType(variableValue, "integer") as number | undefined;
|
|
3815
3809
|
}
|
|
3816
3810
|
|
|
3817
3811
|
<span class="fstat-no" title="function not covered" > getVariableDouble(</span>
|
|
@@ -3824,34 +3818,34 @@ export class FeaturevisorInstance {
|
|
|
3824
3818
|
<span class="cstat-no" title="statement not covered" > return getValueByType(variableValue, "double") as number | undefined;</span>
|
|
3825
3819
|
}
|
|
3826
3820
|
|
|
3827
|
-
|
|
3821
|
+
getVariableArray(
|
|
3828
3822
|
featureKey: FeatureKey | Feature,
|
|
3829
3823
|
variableKey: string,
|
|
3830
3824
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3831
3825
|
): string[] | undefined {
|
|
3832
|
-
const variableValue =
|
|
3826
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3833
3827
|
|
|
3834
|
-
|
|
3828
|
+
return getValueByType(variableValue, "array") as string[] | undefined;
|
|
3835
3829
|
}
|
|
3836
3830
|
|
|
3837
|
-
|
|
3831
|
+
getVariableObject<T>(
|
|
3838
3832
|
featureKey: FeatureKey | Feature,
|
|
3839
3833
|
variableKey: string,
|
|
3840
3834
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3841
3835
|
): T | undefined {
|
|
3842
|
-
const variableValue =
|
|
3836
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3843
3837
|
|
|
3844
|
-
|
|
3838
|
+
return getValueByType(variableValue, "object") as T | undefined;
|
|
3845
3839
|
}
|
|
3846
3840
|
|
|
3847
|
-
|
|
3841
|
+
getVariableJSON<T>(
|
|
3848
3842
|
featureKey: FeatureKey | Feature,
|
|
3849
3843
|
variableKey: string,
|
|
3850
3844
|
context: Context = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3851
3845
|
): T | undefined {
|
|
3852
|
-
const variableValue =
|
|
3846
|
+
const variableValue = this.getVariable(featureKey, variableKey, context);
|
|
3853
3847
|
|
|
3854
|
-
|
|
3848
|
+
return getValueByType(variableValue, "json") as T | undefined;
|
|
3855
3849
|
}
|
|
3856
3850
|
}
|
|
3857
3851
|
|
|
@@ -3865,7 +3859,7 @@ export function createInstance(options: InstanceOptions): FeaturevisorInstance {
|
|
|
3865
3859
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
3866
3860
|
Code coverage generated by
|
|
3867
3861
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3868
|
-
at 2023-
|
|
3862
|
+
at 2023-09-05T22:33:25.737Z
|
|
3869
3863
|
</div>
|
|
3870
3864
|
<script src="prettify.js"></script>
|
|
3871
3865
|
<script>
|