@featurevisor/sdk 2.18.0 → 2.20.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/CHANGELOG.md +19 -0
- package/coverage/clover.xml +328 -312
- package/coverage/coverage-final.json +9 -9
- package/coverage/lcov-report/bucketer.ts.html +16 -16
- package/coverage/lcov-report/child.ts.html +1 -1
- package/coverage/lcov-report/conditions.ts.html +7 -7
- package/coverage/lcov-report/datafileReader.ts.html +55 -55
- package/coverage/lcov-report/emitter.ts.html +2 -2
- package/coverage/lcov-report/evaluate.ts.html +247 -85
- package/coverage/lcov-report/events.ts.html +1 -1
- package/coverage/lcov-report/helpers.ts.html +4 -4
- package/coverage/lcov-report/hooks.ts.html +6 -6
- package/coverage/lcov-report/index.html +25 -25
- package/coverage/lcov-report/instance.ts.html +21 -21
- package/coverage/lcov-report/logger.ts.html +14 -14
- package/coverage/lcov.info +586 -554
- package/dist/evaluate.d.ts +3 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.gz +0 -0
- package/dist/index.mjs.map +1 -1
- package/lib/evaluate.d.ts +3 -1
- package/package.json +3 -3
- package/src/evaluate.ts +78 -24
- package/src/instance.spec.ts +131 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">91.
|
|
26
|
+
<span class="strong">91.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>231/253</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">87.42% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>146/167</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>11/11</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">91.16% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>227/249</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -933,7 +933,61 @@
|
|
|
933
933
|
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
934
|
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
935
|
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
-
<a name='L871'></a><a href='#L871'>871</a
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
937
991
|
<span class="cline-any cline-neutral"> </span>
|
|
938
992
|
<span class="cline-any cline-neutral"> </span>
|
|
939
993
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -971,6 +1025,7 @@
|
|
|
971
1025
|
<span class="cline-any cline-yes">2x</span>
|
|
972
1026
|
<span class="cline-any cline-yes">2x</span>
|
|
973
1027
|
<span class="cline-any cline-yes">2x</span>
|
|
1028
|
+
<span class="cline-any cline-yes">2x</span>
|
|
974
1029
|
<span class="cline-any cline-neutral"> </span>
|
|
975
1030
|
<span class="cline-any cline-neutral"> </span>
|
|
976
1031
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1034,24 +1089,25 @@
|
|
|
1034
1089
|
<span class="cline-any cline-neutral"> </span>
|
|
1035
1090
|
<span class="cline-any cline-neutral"> </span>
|
|
1036
1091
|
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1037
1093
|
<span class="cline-any cline-yes">2x</span>
|
|
1038
|
-
<span class="cline-any cline-yes">
|
|
1039
|
-
<span class="cline-any cline-yes">
|
|
1040
|
-
<span class="cline-any cline-yes">
|
|
1094
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1095
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1096
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1041
1097
|
<span class="cline-any cline-neutral"> </span>
|
|
1042
1098
|
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
-
<span class="cline-any cline-yes">
|
|
1044
|
-
<span class="cline-any cline-yes">
|
|
1099
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1100
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1045
1101
|
<span class="cline-any cline-yes">12x</span>
|
|
1046
1102
|
<span class="cline-any cline-yes">1x</span>
|
|
1047
1103
|
<span class="cline-any cline-neutral"> </span>
|
|
1048
1104
|
<span class="cline-any cline-neutral"> </span>
|
|
1049
1105
|
<span class="cline-any cline-neutral"> </span>
|
|
1050
1106
|
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
-
<span class="cline-any cline-yes">
|
|
1107
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1052
1108
|
<span class="cline-any cline-neutral"> </span>
|
|
1053
1109
|
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
-
<span class="cline-any cline-yes">
|
|
1110
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1055
1111
|
<span class="cline-any cline-neutral"> </span>
|
|
1056
1112
|
<span class="cline-any cline-neutral"> </span>
|
|
1057
1113
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1060,7 +1116,7 @@
|
|
|
1060
1116
|
<span class="cline-any cline-neutral"> </span>
|
|
1061
1117
|
<span class="cline-any cline-neutral"> </span>
|
|
1062
1118
|
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
-
<span class="cline-any cline-yes">
|
|
1119
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1064
1120
|
<span class="cline-any cline-neutral"> </span>
|
|
1065
1121
|
<span class="cline-any cline-neutral"> </span>
|
|
1066
1122
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1069,13 +1125,13 @@
|
|
|
1069
1125
|
<span class="cline-any cline-neutral"> </span>
|
|
1070
1126
|
<span class="cline-any cline-neutral"> </span>
|
|
1071
1127
|
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
-
<span class="cline-any cline-yes">
|
|
1128
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1073
1129
|
<span class="cline-any cline-yes">12x</span>
|
|
1074
1130
|
<span class="cline-any cline-yes">1x</span>
|
|
1075
1131
|
<span class="cline-any cline-neutral"> </span>
|
|
1076
1132
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
1133
|
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-yes">
|
|
1134
|
+
<span class="cline-any cline-yes">146x</span>
|
|
1079
1135
|
<span class="cline-any cline-neutral"> </span>
|
|
1080
1136
|
<span class="cline-any cline-no"> </span>
|
|
1081
1137
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1095,24 +1151,24 @@
|
|
|
1095
1151
|
<span class="cline-any cline-neutral"> </span>
|
|
1096
1152
|
<span class="cline-any cline-yes">2x</span>
|
|
1097
1153
|
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
-
<span class="cline-any cline-yes">
|
|
1154
|
+
<span class="cline-any cline-yes">273x</span>
|
|
1099
1155
|
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
-
<span class="cline-any cline-yes">
|
|
1156
|
+
<span class="cline-any cline-yes">273x</span>
|
|
1101
1157
|
<span class="cline-any cline-neutral"> </span>
|
|
1102
1158
|
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-yes">
|
|
1159
|
+
<span class="cline-any cline-yes">273x</span>
|
|
1104
1160
|
<span class="cline-any cline-neutral"> </span>
|
|
1105
1161
|
<span class="cline-any cline-neutral"> </span>
|
|
1106
1162
|
<span class="cline-any cline-neutral"> </span>
|
|
1107
1163
|
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-yes">
|
|
1164
|
+
<span class="cline-any cline-yes">273x</span>
|
|
1109
1165
|
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
-
<span class="cline-any cline-yes">
|
|
1166
|
+
<span class="cline-any cline-yes">121x</span>
|
|
1111
1167
|
<span class="cline-any cline-neutral"> </span>
|
|
1112
1168
|
<span class="cline-any cline-neutral"> </span>
|
|
1113
1169
|
<span class="cline-any cline-neutral"> </span>
|
|
1114
1170
|
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
-
<span class="cline-any cline-yes">
|
|
1171
|
+
<span class="cline-any cline-yes">121x</span>
|
|
1116
1172
|
<span class="cline-any cline-yes">4x</span>
|
|
1117
1173
|
<span class="cline-any cline-neutral"> </span>
|
|
1118
1174
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1177,7 +1233,7 @@
|
|
|
1177
1233
|
<span class="cline-any cline-neutral"> </span>
|
|
1178
1234
|
<span class="cline-any cline-neutral"> </span>
|
|
1179
1235
|
<span class="cline-any cline-neutral"> </span>
|
|
1180
|
-
<span class="cline-any cline-yes">
|
|
1236
|
+
<span class="cline-any cline-yes">269x</span>
|
|
1181
1237
|
<span class="cline-any cline-neutral"> </span>
|
|
1182
1238
|
<span class="cline-any cline-yes">7x</span>
|
|
1183
1239
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -1239,10 +1295,10 @@
|
|
|
1239
1295
|
<span class="cline-any cline-neutral"> </span>
|
|
1240
1296
|
<span class="cline-any cline-neutral"> </span>
|
|
1241
1297
|
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
-
<span class="cline-any cline-yes">
|
|
1298
|
+
<span class="cline-any cline-yes">262x</span>
|
|
1243
1299
|
<span class="cline-any cline-neutral"> </span>
|
|
1244
1300
|
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
-
<span class="cline-any cline-yes">
|
|
1301
|
+
<span class="cline-any cline-yes">262x</span>
|
|
1246
1302
|
<span class="cline-any cline-yes">11x</span>
|
|
1247
1303
|
<span class="cline-any cline-neutral"> </span>
|
|
1248
1304
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1255,20 +1311,20 @@
|
|
|
1255
1311
|
<span class="cline-any cline-neutral"> </span>
|
|
1256
1312
|
<span class="cline-any cline-neutral"> </span>
|
|
1257
1313
|
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
-
<span class="cline-any cline-yes">
|
|
1314
|
+
<span class="cline-any cline-yes">251x</span>
|
|
1259
1315
|
<span class="cline-any cline-yes">1x</span>
|
|
1260
1316
|
<span class="cline-any cline-neutral"> </span>
|
|
1261
1317
|
<span class="cline-any cline-neutral"> </span>
|
|
1262
1318
|
<span class="cline-any cline-neutral"> </span>
|
|
1263
1319
|
<span class="cline-any cline-neutral"> </span>
|
|
1264
1320
|
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-yes">
|
|
1321
|
+
<span class="cline-any cline-yes">251x</span>
|
|
1322
|
+
<span class="cline-any cline-yes">181x</span>
|
|
1266
1323
|
<span class="cline-any cline-yes">175x</span>
|
|
1267
|
-
<span class="cline-any cline-yes">169x</span>
|
|
1268
1324
|
<span class="cline-any cline-neutral"> </span>
|
|
1269
1325
|
<span class="cline-any cline-neutral"> </span>
|
|
1270
1326
|
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
-
<span class="cline-any cline-yes">
|
|
1327
|
+
<span class="cline-any cline-yes">181x</span>
|
|
1272
1328
|
<span class="cline-any cline-yes">6x</span>
|
|
1273
1329
|
<span class="cline-any cline-neutral"> </span>
|
|
1274
1330
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1281,7 +1337,7 @@
|
|
|
1281
1337
|
<span class="cline-any cline-yes">6x</span>
|
|
1282
1338
|
<span class="cline-any cline-neutral"> </span>
|
|
1283
1339
|
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
-
<span class="cline-any cline-yes">
|
|
1340
|
+
<span class="cline-any cline-yes">175x</span>
|
|
1285
1341
|
<span class="cline-any cline-no"> </span>
|
|
1286
1342
|
<span class="cline-any cline-neutral"> </span>
|
|
1287
1343
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1290,7 +1346,7 @@
|
|
|
1290
1346
|
<span class="cline-any cline-neutral"> </span>
|
|
1291
1347
|
<span class="cline-any cline-neutral"> </span>
|
|
1292
1348
|
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
-
<span class="cline-any cline-yes">
|
|
1349
|
+
<span class="cline-any cline-yes">245x</span>
|
|
1294
1350
|
<span class="cline-any cline-yes">1x</span>
|
|
1295
1351
|
<span class="cline-any cline-neutral"> </span>
|
|
1296
1352
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1305,9 +1361,9 @@
|
|
|
1305
1361
|
<span class="cline-any cline-neutral"> </span>
|
|
1306
1362
|
<span class="cline-any cline-neutral"> </span>
|
|
1307
1363
|
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
-
<span class="cline-any cline-yes">
|
|
1364
|
+
<span class="cline-any cline-yes">244x</span>
|
|
1309
1365
|
<span class="cline-any cline-neutral"> </span>
|
|
1310
|
-
<span class="cline-any cline-yes">
|
|
1366
|
+
<span class="cline-any cline-yes">244x</span>
|
|
1311
1367
|
<span class="cline-any cline-neutral"> </span>
|
|
1312
1368
|
<span class="cline-any cline-yes">14x</span>
|
|
1313
1369
|
<span class="cline-any cline-yes">9x</span>
|
|
@@ -1366,7 +1422,7 @@
|
|
|
1366
1422
|
<span class="cline-any cline-neutral"> </span>
|
|
1367
1423
|
<span class="cline-any cline-neutral"> </span>
|
|
1368
1424
|
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
-
<span class="cline-any cline-yes">
|
|
1425
|
+
<span class="cline-any cline-yes">233x</span>
|
|
1370
1426
|
<span class="cline-any cline-yes">4x</span>
|
|
1371
1427
|
<span class="cline-any cline-neutral"> </span>
|
|
1372
1428
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1429,14 +1485,14 @@
|
|
|
1429
1485
|
<span class="cline-any cline-neutral"> </span>
|
|
1430
1486
|
<span class="cline-any cline-neutral"> </span>
|
|
1431
1487
|
<span class="cline-any cline-neutral"> </span>
|
|
1432
|
-
<span class="cline-any cline-yes">
|
|
1488
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1433
1489
|
<span class="cline-any cline-neutral"> </span>
|
|
1434
1490
|
<span class="cline-any cline-neutral"> </span>
|
|
1435
1491
|
<span class="cline-any cline-neutral"> </span>
|
|
1436
1492
|
<span class="cline-any cline-neutral"> </span>
|
|
1437
1493
|
<span class="cline-any cline-neutral"> </span>
|
|
1438
1494
|
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
-
<span class="cline-any cline-yes">
|
|
1495
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1440
1496
|
<span class="cline-any cline-yes">16x</span>
|
|
1441
1497
|
<span class="cline-any cline-yes">10x</span>
|
|
1442
1498
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1448,9 +1504,9 @@
|
|
|
1448
1504
|
<span class="cline-any cline-neutral"> </span>
|
|
1449
1505
|
<span class="cline-any cline-neutral"> </span>
|
|
1450
1506
|
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
-
<span class="cline-any cline-yes">
|
|
1507
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1452
1508
|
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-yes">
|
|
1509
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1454
1510
|
<span class="cline-any cline-yes">16x</span>
|
|
1455
1511
|
<span class="cline-any cline-yes">2x</span>
|
|
1456
1512
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1464,19 +1520,19 @@
|
|
|
1464
1520
|
<span class="cline-any cline-neutral"> </span>
|
|
1465
1521
|
<span class="cline-any cline-neutral"> </span>
|
|
1466
1522
|
<span class="cline-any cline-neutral"> </span>
|
|
1467
|
-
<span class="cline-any cline-yes">
|
|
1468
|
-
<span class="cline-any cline-yes">
|
|
1523
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1524
|
+
<span class="cline-any cline-yes">104x</span>
|
|
1469
1525
|
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
-
<span class="cline-any cline-yes">
|
|
1471
|
-
<span class="cline-any cline-yes">
|
|
1526
|
+
<span class="cline-any cline-yes">104x</span>
|
|
1527
|
+
<span class="cline-any cline-yes">104x</span>
|
|
1472
1528
|
<span class="cline-any cline-neutral"> </span>
|
|
1473
1529
|
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-yes">
|
|
1530
|
+
<span class="cline-any cline-yes">127x</span>
|
|
1475
1531
|
<span class="cline-any cline-neutral"> </span>
|
|
1476
1532
|
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
-
<span class="cline-any cline-yes">
|
|
1533
|
+
<span class="cline-any cline-yes">231x</span>
|
|
1478
1534
|
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
-
<span class="cline-any cline-yes">
|
|
1535
|
+
<span class="cline-any cline-yes">227x</span>
|
|
1480
1536
|
<span class="cline-any cline-yes">1x</span>
|
|
1481
1537
|
<span class="cline-any cline-neutral"> </span>
|
|
1482
1538
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1494,9 +1550,9 @@
|
|
|
1494
1550
|
<span class="cline-any cline-neutral"> </span>
|
|
1495
1551
|
<span class="cline-any cline-neutral"> </span>
|
|
1496
1552
|
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
-
<span class="cline-any cline-yes">
|
|
1553
|
+
<span class="cline-any cline-yes">226x</span>
|
|
1498
1554
|
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
-
<span class="cline-any cline-yes">
|
|
1555
|
+
<span class="cline-any cline-yes">122x</span>
|
|
1500
1556
|
<span class="cline-any cline-yes">2x</span>
|
|
1501
1557
|
<span class="cline-any cline-yes">2x</span>
|
|
1502
1558
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1536,7 +1592,7 @@
|
|
|
1536
1592
|
<span class="cline-any cline-neutral"> </span>
|
|
1537
1593
|
<span class="cline-any cline-neutral"> </span>
|
|
1538
1594
|
<span class="cline-any cline-neutral"> </span>
|
|
1539
|
-
<span class="cline-any cline-yes">
|
|
1595
|
+
<span class="cline-any cline-yes">120x</span>
|
|
1540
1596
|
<span class="cline-any cline-yes">1x</span>
|
|
1541
1597
|
<span class="cline-any cline-neutral"> </span>
|
|
1542
1598
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1554,8 +1610,8 @@
|
|
|
1554
1610
|
<span class="cline-any cline-neutral"> </span>
|
|
1555
1611
|
<span class="cline-any cline-neutral"> </span>
|
|
1556
1612
|
<span class="cline-any cline-neutral"> </span>
|
|
1557
|
-
<span class="cline-any cline-yes">
|
|
1558
|
-
<span class="cline-any cline-yes">
|
|
1613
|
+
<span class="cline-any cline-yes">119x</span>
|
|
1614
|
+
<span class="cline-any cline-yes">119x</span>
|
|
1559
1615
|
<span class="cline-any cline-neutral"> </span>
|
|
1560
1616
|
<span class="cline-any cline-neutral"> </span>
|
|
1561
1617
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1566,14 +1622,14 @@
|
|
|
1566
1622
|
<span class="cline-any cline-neutral"> </span>
|
|
1567
1623
|
<span class="cline-any cline-neutral"> </span>
|
|
1568
1624
|
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
-
<span class="cline-any cline-yes">
|
|
1625
|
+
<span class="cline-any cline-yes">119x</span>
|
|
1570
1626
|
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
-
<span class="cline-any cline-yes">
|
|
1627
|
+
<span class="cline-any cline-yes">119x</span>
|
|
1572
1628
|
<span class="cline-any cline-neutral"> </span>
|
|
1573
1629
|
<span class="cline-any cline-neutral"> </span>
|
|
1574
1630
|
<span class="cline-any cline-neutral"> </span>
|
|
1575
1631
|
<span class="cline-any cline-neutral"> </span>
|
|
1576
|
-
<span class="cline-any cline-yes">
|
|
1632
|
+
<span class="cline-any cline-yes">104x</span>
|
|
1577
1633
|
<span class="cline-any cline-neutral"> </span>
|
|
1578
1634
|
<span class="cline-any cline-yes">18x</span>
|
|
1579
1635
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -1621,19 +1677,37 @@
|
|
|
1621
1677
|
<span class="cline-any cline-neutral"> </span>
|
|
1622
1678
|
<span class="cline-any cline-neutral"> </span>
|
|
1623
1679
|
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-yes">
|
|
1680
|
+
<span class="cline-any cline-yes">90x</span>
|
|
1625
1681
|
<span class="cline-any cline-neutral"> </span>
|
|
1626
|
-
<span class="cline-any cline-yes">
|
|
1682
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1627
1683
|
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
+
<span class="cline-any cline-yes">86x</span>
|
|
1685
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1628
1686
|
<span class="cline-any cline-neutral"> </span>
|
|
1687
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1688
|
+
<span class="cline-any cline-yes">3x</span>
|
|
1689
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1629
1690
|
<span class="cline-any cline-neutral"> </span>
|
|
1630
1691
|
<span class="cline-any cline-neutral"> </span>
|
|
1631
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1632
1692
|
<span class="cline-any cline-neutral"> </span>
|
|
1633
1693
|
<span class="cline-any cline-neutral"> </span>
|
|
1634
1694
|
<span class="cline-any cline-neutral"> </span>
|
|
1635
1695
|
<span class="cline-any cline-neutral"> </span>
|
|
1636
1696
|
<span class="cline-any cline-neutral"> </span>
|
|
1697
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1698
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1699
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1700
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1704
|
+
<span class="cline-any cline-no"> </span>
|
|
1705
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1706
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1707
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1709
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1710
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1637
1711
|
<span class="cline-any cline-neutral"> </span>
|
|
1638
1712
|
<span class="cline-any cline-neutral"> </span>
|
|
1639
1713
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1641,9 +1715,40 @@
|
|
|
1641
1715
|
<span class="cline-any cline-neutral"> </span>
|
|
1642
1716
|
<span class="cline-any cline-neutral"> </span>
|
|
1643
1717
|
<span class="cline-any cline-neutral"> </span>
|
|
1644
|
-
<span class="cline-any cline-yes">5x</span>
|
|
1645
1718
|
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-
|
|
1719
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1720
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1723
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1724
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1725
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1726
|
+
<span class="cline-any cline-yes">2x</span>
|
|
1727
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1728
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
+
<span class="cline-any cline-yes">84x</span>
|
|
1732
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1735
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1737
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1738
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1740
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1741
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1742
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1647
1752
|
<span class="cline-any cline-neutral"> </span>
|
|
1648
1753
|
<span class="cline-any cline-neutral"> </span>
|
|
1649
1754
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1686,6 +1791,9 @@
|
|
|
1686
1791
|
<span class="cline-any cline-yes">9x</span>
|
|
1687
1792
|
<span class="cline-any cline-yes">4x</span>
|
|
1688
1793
|
<span class="cline-any cline-neutral"> </span>
|
|
1794
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1796
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1689
1797
|
<span class="cline-any cline-neutral"> </span>
|
|
1690
1798
|
<span class="cline-any cline-neutral"> </span>
|
|
1691
1799
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1840,7 +1948,8 @@ export enum EvaluationReason {
|
|
|
1840
1948
|
VARIABLE_NOT_FOUND = "variable_not_found", // variable's schema is not defined in the feature
|
|
1841
1949
|
VARIABLE_DEFAULT = "variable_default", // default variable value used
|
|
1842
1950
|
VARIABLE_DISABLED = "variable_disabled", // feature is disabled, and variable's disabledValue is used
|
|
1843
|
-
|
|
1951
|
+
VARIABLE_OVERRIDE_VARIATION = "variable_override_variation", // variable overridden from inside a variation
|
|
1952
|
+
VARIABLE_OVERRIDE_RULE = "variable_override_rule", // variable overridden from inside a rule
|
|
1844
1953
|
|
|
1845
1954
|
// common
|
|
1846
1955
|
NO_MATCH = "no_match", // no rules matched
|
|
@@ -1880,6 +1989,7 @@ export interface Evaluation {
|
|
|
1880
1989
|
variableKey?: VariableKey;
|
|
1881
1990
|
variableValue?: VariableValue;
|
|
1882
1991
|
variableSchema?: ResolvedVariableSchema;
|
|
1992
|
+
variableOverrideIndex?: number;
|
|
1883
1993
|
}
|
|
1884
1994
|
|
|
1885
1995
|
export interface EvaluateDependencies {
|
|
@@ -2493,27 +2603,76 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2493
2603
|
// variable
|
|
2494
2604
|
if (type === "variable" && variableKey) {
|
|
2495
2605
|
// override from rule
|
|
2496
|
-
if (
|
|
2497
|
-
|
|
2498
|
-
matchedTraffic.
|
|
2499
|
-
|
|
2500
|
-
) {
|
|
2501
|
-
evaluation = {
|
|
2502
|
-
type,
|
|
2503
|
-
featureKey,
|
|
2504
|
-
reason: EvaluationReason.RULE,
|
|
2505
|
-
bucketKey,
|
|
2506
|
-
bucketValue,
|
|
2507
|
-
ruleKey: matchedTraffic.key,
|
|
2508
|
-
traffic: matchedTraffic,
|
|
2509
|
-
variableKey,
|
|
2510
|
-
variableSchema,
|
|
2511
|
-
variableValue: matchedTraffic.variables[variableKey],
|
|
2512
|
-
};
|
|
2606
|
+
if (matchedTraffic) {
|
|
2607
|
+
// "variableOverrides"
|
|
2608
|
+
if (matchedTraffic.variableOverrides && matchedTraffic.variableOverrides[variableKey]) {
|
|
2609
|
+
const overrides = matchedTraffic.variableOverrides[variableKey];
|
|
2513
2610
|
|
|
2514
|
-
|
|
2611
|
+
const overrideIndex = overrides.findIndex((o) => {
|
|
2612
|
+
if (o.conditions) {
|
|
2613
|
+
return datafileReader.allConditionsAreMatched(
|
|
2614
|
+
typeof o.conditions === "string" && <span class="branch-1 cbranch-no" title="branch not covered" >o.conditions !== "*"</span>
|
|
2615
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >JSON.parse(o.conditions)</span>
|
|
2616
|
+
: o.conditions,
|
|
2617
|
+
context,
|
|
2618
|
+
);
|
|
2619
|
+
}
|
|
2515
2620
|
|
|
2516
|
-
|
|
2621
|
+
if (o.segments) {
|
|
2622
|
+
return datafileReader.allSegmentsAreMatched(
|
|
2623
|
+
datafileReader.parseSegmentsIfStringified(o.segments),
|
|
2624
|
+
context,
|
|
2625
|
+
);
|
|
2626
|
+
}
|
|
2627
|
+
|
|
2628
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2629
|
+
});
|
|
2630
|
+
|
|
2631
|
+
if (overrideIndex !== -1) {
|
|
2632
|
+
const override = overrides[overrideIndex];
|
|
2633
|
+
|
|
2634
|
+
evaluation = {
|
|
2635
|
+
type,
|
|
2636
|
+
featureKey,
|
|
2637
|
+
reason: EvaluationReason.VARIABLE_OVERRIDE_RULE,
|
|
2638
|
+
bucketKey,
|
|
2639
|
+
bucketValue,
|
|
2640
|
+
ruleKey: matchedTraffic<span class="branch-0 cbranch-no" title="branch not covered" >?.k</span>ey,
|
|
2641
|
+
traffic: matchedTraffic,
|
|
2642
|
+
variableKey,
|
|
2643
|
+
variableSchema,
|
|
2644
|
+
variableValue: override.value,
|
|
2645
|
+
variableOverrideIndex: overrideIndex,
|
|
2646
|
+
};
|
|
2647
|
+
|
|
2648
|
+
logger.debug("variable override from rule", evaluation);
|
|
2649
|
+
|
|
2650
|
+
return evaluation;
|
|
2651
|
+
}
|
|
2652
|
+
}
|
|
2653
|
+
|
|
2654
|
+
// from "variables"
|
|
2655
|
+
if (
|
|
2656
|
+
matchedTraffic.variables &&
|
|
2657
|
+
typeof matchedTraffic.variables[variableKey] !== "undefined"
|
|
2658
|
+
) {
|
|
2659
|
+
evaluation = {
|
|
2660
|
+
type,
|
|
2661
|
+
featureKey,
|
|
2662
|
+
reason: EvaluationReason.RULE,
|
|
2663
|
+
bucketKey,
|
|
2664
|
+
bucketValue,
|
|
2665
|
+
ruleKey: matchedTraffic.key,
|
|
2666
|
+
traffic: matchedTraffic,
|
|
2667
|
+
variableKey,
|
|
2668
|
+
variableSchema,
|
|
2669
|
+
variableValue: matchedTraffic.variables[variableKey],
|
|
2670
|
+
};
|
|
2671
|
+
|
|
2672
|
+
logger.debug("override from rule", evaluation);
|
|
2673
|
+
|
|
2674
|
+
return evaluation;
|
|
2675
|
+
}
|
|
2517
2676
|
}
|
|
2518
2677
|
|
|
2519
2678
|
// check variations
|
|
@@ -2533,7 +2692,7 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2533
2692
|
if (variation && variation.variableOverrides && variation.variableOverrides[variableKey]) {
|
|
2534
2693
|
const overrides = variation.variableOverrides[variableKey];
|
|
2535
2694
|
|
|
2536
|
-
const
|
|
2695
|
+
const overrideIndex = overrides.findIndex((o) => {
|
|
2537
2696
|
if (o.conditions) {
|
|
2538
2697
|
return datafileReader.allConditionsAreMatched(
|
|
2539
2698
|
typeof o.conditions === "string" && <span class="branch-1 cbranch-no" title="branch not covered" >o.conditions !== "*"</span>
|
|
@@ -2553,11 +2712,13 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2553
2712
|
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2554
2713
|
});
|
|
2555
2714
|
|
|
2556
|
-
if (
|
|
2715
|
+
if (overrideIndex !== -1) {
|
|
2716
|
+
const override = overrides[overrideIndex];
|
|
2717
|
+
|
|
2557
2718
|
evaluation = {
|
|
2558
2719
|
type,
|
|
2559
2720
|
featureKey,
|
|
2560
|
-
reason: EvaluationReason.
|
|
2721
|
+
reason: EvaluationReason.VARIABLE_OVERRIDE_VARIATION,
|
|
2561
2722
|
bucketKey,
|
|
2562
2723
|
bucketValue,
|
|
2563
2724
|
ruleKey: matchedTraffic<span class="branch-0 cbranch-no" title="branch not covered" >?.k</span>ey,
|
|
@@ -2565,9 +2726,10 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2565
2726
|
variableKey,
|
|
2566
2727
|
variableSchema,
|
|
2567
2728
|
variableValue: override.value,
|
|
2729
|
+
variableOverrideIndex: overrideIndex,
|
|
2568
2730
|
};
|
|
2569
2731
|
|
|
2570
|
-
logger.debug("variable override", evaluation);
|
|
2732
|
+
logger.debug("variable override from variation", evaluation);
|
|
2571
2733
|
|
|
2572
2734
|
return evaluation;
|
|
2573
2735
|
}
|
|
@@ -2680,7 +2842,7 @@ export function evaluate(options: EvaluateOptions): Evaluation {
|
|
|
2680
2842
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2681
2843
|
Code coverage generated by
|
|
2682
2844
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2683
|
-
at 2026-
|
|
2845
|
+
at 2026-03-01T23:07:55.967Z
|
|
2684
2846
|
</div>
|
|
2685
2847
|
<script src="prettify.js"></script>
|
|
2686
2848
|
<script>
|