@featurevisor/core 2.24.0 → 2.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/coverage/clover.xml +1499 -1476
  3. package/coverage/coverage-final.json +18 -17
  4. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildDatafile.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  7. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  8. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  9. package/coverage/lcov-report/builder/convertToV1.ts.html +1 -1
  10. package/coverage/lcov-report/builder/getFeatureRanges.ts.html +1 -1
  11. package/coverage/lcov-report/builder/hashes.ts.html +1 -1
  12. package/coverage/lcov-report/builder/index.html +1 -1
  13. package/coverage/lcov-report/builder/mutateVariables.ts.html +1 -1
  14. package/coverage/lcov-report/builder/mutator.ts.html +52 -52
  15. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  16. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  17. package/coverage/lcov-report/config/index.html +1 -1
  18. package/coverage/lcov-report/config/index.ts.html +1 -1
  19. package/coverage/lcov-report/config/projectConfig.ts.html +15 -15
  20. package/coverage/lcov-report/datasource/adapter.ts.html +1 -1
  21. package/coverage/lcov-report/datasource/datasource.ts.html +18 -18
  22. package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +43 -43
  23. package/coverage/lcov-report/datasource/index.html +1 -1
  24. package/coverage/lcov-report/datasource/index.ts.html +1 -1
  25. package/coverage/lcov-report/generate-code/index.html +1 -1
  26. package/coverage/lcov-report/generate-code/typescript.ts.html +1 -1
  27. package/coverage/lcov-report/index.html +18 -18
  28. package/coverage/lcov-report/linter/attributeSchema.ts.html +130 -130
  29. package/coverage/lcov-report/linter/checkCircularDependency.ts.html +11 -11
  30. package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +15 -15
  31. package/coverage/lcov-report/linter/conditionSchema.ts.html +150 -150
  32. package/coverage/lcov-report/linter/featureSchema.ts.html +458 -443
  33. package/coverage/lcov-report/linter/groupSchema.ts.html +24 -27
  34. package/coverage/lcov-report/linter/index.html +83 -68
  35. package/coverage/lcov-report/linter/lintProject.ts.html +158 -158
  36. package/coverage/lcov-report/linter/mutationNotation.ts.html +104 -104
  37. package/coverage/lcov-report/linter/printError.ts.html +79 -28
  38. package/coverage/lcov-report/linter/schema.ts.html +129 -135
  39. package/coverage/lcov-report/linter/segmentSchema.ts.html +15 -9
  40. package/coverage/lcov-report/linter/testSchema.ts.html +67 -94
  41. package/coverage/lcov-report/linter/zodHelpers.ts.html +133 -0
  42. package/coverage/lcov-report/list/index.html +1 -1
  43. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  44. package/coverage/lcov-report/tester/cliFormat.ts.html +6 -6
  45. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  46. package/coverage/lcov-report/tester/index.html +1 -1
  47. package/coverage/lcov-report/utils/extractKeys.ts.html +1 -1
  48. package/coverage/lcov-report/utils/git.ts.html +1 -1
  49. package/coverage/lcov-report/utils/index.html +1 -1
  50. package/coverage/lcov-report/utils/index.ts.html +1 -1
  51. package/coverage/lcov-report/utils/pretty.ts.html +1 -1
  52. package/coverage/lcov.info +3031 -2984
  53. package/lib/linter/attributeSchema.d.ts +19 -352
  54. package/lib/linter/attributeSchema.spec.js.map +1 -1
  55. package/lib/linter/conditionSchema.d.ts +1 -1
  56. package/lib/linter/conditionSchema.js +2 -3
  57. package/lib/linter/conditionSchema.js.map +1 -1
  58. package/lib/linter/conditionSchema.spec.js.map +1 -1
  59. package/lib/linter/featureSchema.d.ts +75 -964
  60. package/lib/linter/featureSchema.js +64 -53
  61. package/lib/linter/featureSchema.js.map +1 -1
  62. package/lib/linter/featureSchema.spec.js +28 -0
  63. package/lib/linter/featureSchema.spec.js.map +1 -1
  64. package/lib/linter/groupSchema.d.ts +4 -28
  65. package/lib/linter/groupSchema.js +3 -5
  66. package/lib/linter/groupSchema.js.map +1 -1
  67. package/lib/linter/lintProject.spec.js +101 -13
  68. package/lib/linter/lintProject.spec.js.map +1 -1
  69. package/lib/linter/printError.js +21 -7
  70. package/lib/linter/printError.js.map +1 -1
  71. package/lib/linter/schema.d.ts +9 -2
  72. package/lib/linter/schema.js +2 -6
  73. package/lib/linter/schema.js.map +1 -1
  74. package/lib/linter/schema.spec.js +3 -2
  75. package/lib/linter/schema.spec.js.map +1 -1
  76. package/lib/linter/segmentSchema.d.ts +1 -9
  77. package/lib/linter/segmentSchema.js +3 -1
  78. package/lib/linter/segmentSchema.js.map +1 -1
  79. package/lib/linter/segmentSchema.spec.js.map +1 -1
  80. package/lib/linter/testSchema.d.ts +16 -222
  81. package/lib/linter/testSchema.js +23 -38
  82. package/lib/linter/testSchema.js.map +1 -1
  83. package/lib/linter/testSchema.spec.d.ts +1 -0
  84. package/lib/linter/testSchema.spec.js +162 -0
  85. package/lib/linter/testSchema.spec.js.map +1 -0
  86. package/lib/linter/zodHelpers.d.ts +2 -0
  87. package/lib/linter/zodHelpers.js +15 -0
  88. package/lib/linter/zodHelpers.js.map +1 -0
  89. package/package.json +4 -3
  90. package/src/linter/attributeSchema.spec.ts +3 -3
  91. package/src/linter/conditionSchema.spec.ts +3 -3
  92. package/src/linter/conditionSchema.ts +4 -4
  93. package/src/linter/featureSchema.spec.ts +39 -4
  94. package/src/linter/featureSchema.ts +82 -77
  95. package/src/linter/groupSchema.ts +11 -12
  96. package/src/linter/lintProject.spec.ts +121 -13
  97. package/src/linter/printError.ts +27 -10
  98. package/src/linter/schema.spec.ts +12 -11
  99. package/src/linter/schema.ts +7 -9
  100. package/src/linter/segmentSchema.spec.ts +5 -5
  101. package/src/linter/segmentSchema.ts +3 -1
  102. package/src/linter/testSchema.spec.ts +193 -0
  103. package/src/linter/testSchema.ts +36 -45
  104. package/src/linter/zodHelpers.ts +16 -0
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.92% </span>
26
+ <span class="strong">74.7% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>190/257</span>
28
+ <span class='fraction'>192/257</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">62.11% </span>
33
+ <span class="strong">63.97% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>100/161</span>
35
+ <span class='fraction'>103/161</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76% </span>
47
+ <span class="strong">76.8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>190/250</span>
49
+ <span class='fraction'>192/250</span>
50
50
  </div>
51
51
 
52
52
 
@@ -866,71 +866,71 @@
866
866
  <span class="cline-any cline-neutral">&nbsp;</span>
867
867
  <span class="cline-any cline-neutral">&nbsp;</span>
868
868
  <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-yes">69x</span>
869
+ <span class="cline-any cline-yes">86x</span>
870
870
  <span class="cline-any cline-neutral">&nbsp;</span>
871
871
  <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-yes">85x</span>
873
- <span class="cline-any cline-yes">77x</span>
872
+ <span class="cline-any cline-yes">106x</span>
873
+ <span class="cline-any cline-yes">96x</span>
874
874
  <span class="cline-any cline-neutral">&nbsp;</span>
875
875
  <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-yes">8x</span>
877
- <span class="cline-any cline-yes">16x</span>
878
- <span class="cline-any cline-yes">16x</span>
879
- <span class="cline-any cline-yes">16x</span>
876
+ <span class="cline-any cline-yes">10x</span>
877
+ <span class="cline-any cline-yes">20x</span>
878
+ <span class="cline-any cline-yes">20x</span>
879
+ <span class="cline-any cline-yes">20x</span>
880
880
  <span class="cline-any cline-neutral">&nbsp;</span>
881
881
  <span class="cline-any cline-neutral">&nbsp;</span>
882
882
  <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-yes">69x</span>
883
+ <span class="cline-any cline-yes">86x</span>
884
884
  <span class="cline-any cline-neutral">&nbsp;</span>
885
885
  <span class="cline-any cline-neutral">&nbsp;</span>
886
886
  <span class="cline-any cline-yes">1x</span>
887
887
  <span class="cline-any cline-neutral">&nbsp;</span>
888
888
  <span class="cline-any cline-neutral">&nbsp;</span>
889
889
  <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-yes">6x</span>
890
+ <span class="cline-any cline-yes">7x</span>
891
891
  <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-yes">6x</span>
893
- <span class="cline-any cline-yes">6x</span>
892
+ <span class="cline-any cline-yes">7x</span>
893
+ <span class="cline-any cline-yes">7x</span>
894
894
  <span class="cline-any cline-neutral">&nbsp;</span>
895
895
  <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-yes">16x</span>
896
+ <span class="cline-any cline-yes">22x</span>
897
897
  <span class="cline-any cline-no">&nbsp;</span>
898
898
  <span class="cline-any cline-neutral">&nbsp;</span>
899
899
  <span class="cline-any cline-neutral">&nbsp;</span>
900
900
  <span class="cline-any cline-neutral">&nbsp;</span>
901
901
  <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-yes">304x</span>
903
- <span class="cline-any cline-yes">304x</span>
902
+ <span class="cline-any cline-yes">428x</span>
903
+ <span class="cline-any cline-yes">428x</span>
904
904
  <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-yes">304x</span>
906
- <span class="cline-any cline-yes">52x</span>
907
- <span class="cline-any cline-yes">252x</span>
908
- <span class="cline-any cline-yes">44x</span>
909
- <span class="cline-any cline-yes">208x</span>
905
+ <span class="cline-any cline-yes">428x</span>
906
+ <span class="cline-any cline-yes">69x</span>
907
+ <span class="cline-any cline-yes">359x</span>
908
+ <span class="cline-any cline-yes">66x</span>
909
+ <span class="cline-any cline-yes">293x</span>
910
+ <span class="cline-any cline-yes">89x</span>
911
+ <span class="cline-any cline-yes">204x</span>
912
+ <span class="cline-any cline-yes">3x</span>
913
+ <span class="cline-any cline-yes">201x</span>
910
914
  <span class="cline-any cline-yes">60x</span>
911
- <span class="cline-any cline-yes">148x</span>
912
- <span class="cline-any cline-yes">2x</span>
913
- <span class="cline-any cline-yes">146x</span>
914
- <span class="cline-any cline-yes">40x</span>
915
915
  <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-yes">106x</span>
916
+ <span class="cline-any cline-yes">141x</span>
917
917
  <span class="cline-any cline-neutral">&nbsp;</span>
918
918
  <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-yes">304x</span>
919
+ <span class="cline-any cline-yes">428x</span>
920
920
  <span class="cline-any cline-no">&nbsp;</span>
921
921
  <span class="cline-any cline-neutral">&nbsp;</span>
922
922
  <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-yes">304x</span>
923
+ <span class="cline-any cline-yes">428x</span>
924
924
  <span class="cline-any cline-neutral">&nbsp;</span>
925
925
  <span class="cline-any cline-neutral">&nbsp;</span>
926
926
  <span class="cline-any cline-neutral">&nbsp;</span>
927
927
  <span class="cline-any cline-neutral">&nbsp;</span>
928
928
  <span class="cline-any cline-neutral">&nbsp;</span>
929
929
  <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-yes">3x</span>
930
+ <span class="cline-any cline-yes">4x</span>
931
931
  <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-yes">3x</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-yes">4x</span>
933
+ <span class="cline-any cline-yes">1x</span>
934
934
  <span class="cline-any cline-neutral">&nbsp;</span>
935
935
  <span class="cline-any cline-neutral">&nbsp;</span>
936
936
  <span class="cline-any cline-yes">3x</span>
@@ -966,8 +966,8 @@
966
966
  <span class="cline-any cline-neutral">&nbsp;</span>
967
967
  <span class="cline-any cline-neutral">&nbsp;</span>
968
968
  <span class="cline-any cline-neutral">&nbsp;</span>
969
+ <span class="cline-any cline-yes">4x</span>
969
970
  <span class="cline-any cline-yes">3x</span>
970
- <span class="cline-any cline-yes">2x</span>
971
971
  <span class="cline-any cline-neutral">&nbsp;</span>
972
972
  <span class="cline-any cline-yes">1x</span>
973
973
  <span class="cline-any cline-yes">1x</span>
@@ -993,7 +993,7 @@
993
993
  <span class="cline-any cline-neutral">&nbsp;</span>
994
994
  <span class="cline-any cline-neutral">&nbsp;</span>
995
995
  <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-yes">6x</span>
996
+ <span class="cline-any cline-yes">9x</span>
997
997
  <span class="cline-any cline-neutral">&nbsp;</span>
998
998
  <span class="cline-any cline-neutral">&nbsp;</span>
999
999
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1073,32 +1073,32 @@
1073
1073
  <span class="cline-any cline-neutral">&nbsp;</span>
1074
1074
  <span class="cline-any cline-neutral">&nbsp;</span>
1075
1075
  <span class="cline-any cline-neutral">&nbsp;</span>
1076
- <span class="cline-any cline-yes">2x</span>
1076
+ <span class="cline-any cline-yes">5x</span>
1077
1077
  <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-yes">2x</span>
1078
+ <span class="cline-any cline-yes">5x</span>
1079
1079
  <span class="cline-any cline-neutral">&nbsp;</span>
1080
1080
  <span class="cline-any cline-neutral">&nbsp;</span>
1081
1081
  <span class="cline-any cline-neutral">&nbsp;</span>
1082
1082
  <span class="cline-any cline-neutral">&nbsp;</span>
1083
1083
  <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-yes">2x</span>
1085
- <span class="cline-any cline-yes">2x</span>
1084
+ <span class="cline-any cline-yes">5x</span>
1085
+ <span class="cline-any cline-yes">5x</span>
1086
1086
  <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-yes">4x</span>
1087
+ <span class="cline-any cline-yes">7x</span>
1088
1088
  <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-yes">4x</span>
1089
+ <span class="cline-any cline-yes">7x</span>
1090
1090
  <span class="cline-any cline-neutral">&nbsp;</span>
1091
1091
  <span class="cline-any cline-neutral">&nbsp;</span>
1092
1092
  <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-yes">4x</span>
1093
+ <span class="cline-any cline-yes">7x</span>
1094
1094
  <span class="cline-any cline-neutral">&nbsp;</span>
1095
1095
  <span class="cline-any cline-neutral">&nbsp;</span>
1096
1096
  <span class="cline-any cline-neutral">&nbsp;</span>
1097
1097
  <span class="cline-any cline-neutral">&nbsp;</span>
1098
- <span class="cline-any cline-yes">4x</span>
1099
- <span class="cline-any cline-yes">4x</span>
1098
+ <span class="cline-any cline-yes">7x</span>
1099
+ <span class="cline-any cline-yes">7x</span>
1100
1100
  <span class="cline-any cline-neutral">&nbsp;</span>
1101
- <span class="cline-any cline-yes">4x</span>
1101
+ <span class="cline-any cline-yes">7x</span>
1102
1102
  <span class="cline-any cline-neutral">&nbsp;</span>
1103
1103
  <span class="cline-any cline-neutral">&nbsp;</span>
1104
1104
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1110,7 +1110,7 @@
1110
1110
  <span class="cline-any cline-neutral">&nbsp;</span>
1111
1111
  <span class="cline-any cline-neutral">&nbsp;</span>
1112
1112
  <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-yes">2x</span>
1113
+ <span class="cline-any cline-yes">5x</span>
1114
1114
  <span class="cline-any cline-no">&nbsp;</span>
1115
1115
  <span class="cline-any cline-no">&nbsp;</span>
1116
1116
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1142,51 +1142,51 @@
1142
1142
  <span class="cline-any cline-neutral">&nbsp;</span>
1143
1143
  <span class="cline-any cline-neutral">&nbsp;</span>
1144
1144
  <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-yes">6x</span>
1145
+ <span class="cline-any cline-yes">7x</span>
1146
1146
  <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-yes">6x</span>
1147
+ <span class="cline-any cline-yes">7x</span>
1148
1148
  <span class="cline-any cline-no">&nbsp;</span>
1149
1149
  <span class="cline-any cline-no">&nbsp;</span>
1150
1150
  <span class="cline-any cline-no">&nbsp;</span>
1151
1151
  <span class="cline-any cline-neutral">&nbsp;</span>
1152
1152
  <span class="cline-any cline-neutral">&nbsp;</span>
1153
1153
  <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-yes">6x</span>
1155
- <span class="cline-any cline-yes">6x</span>
1156
- <span class="cline-any cline-yes">6x</span>
1157
- <span class="cline-any cline-yes">80x</span>
1158
- <span class="cline-any cline-yes">80x</span>
1154
+ <span class="cline-any cline-yes">7x</span>
1155
+ <span class="cline-any cline-yes">7x</span>
1156
+ <span class="cline-any cline-yes">7x</span>
1157
+ <span class="cline-any cline-yes">100x</span>
1158
+ <span class="cline-any cline-yes">100x</span>
1159
1159
  <span class="cline-any cline-neutral">&nbsp;</span>
1160
1160
  <span class="cline-any cline-neutral">&nbsp;</span>
1161
1161
  <span class="cline-any cline-neutral">&nbsp;</span>
1162
1162
  <span class="cline-any cline-neutral">&nbsp;</span>
1163
1163
  <span class="cline-any cline-neutral">&nbsp;</span>
1164
1164
  <span class="cline-any cline-neutral">&nbsp;</span>
1165
- <span class="cline-any cline-yes">6x</span>
1166
- <span class="cline-any cline-yes">6x</span>
1167
- <span class="cline-any cline-yes">6x</span>
1165
+ <span class="cline-any cline-yes">7x</span>
1166
+ <span class="cline-any cline-yes">7x</span>
1167
+ <span class="cline-any cline-yes">7x</span>
1168
1168
  <span class="cline-any cline-neutral">&nbsp;</span>
1169
- <span class="cline-any cline-yes">6x</span>
1170
- <span class="cline-any cline-yes">69x</span>
1171
- <span class="cline-any cline-yes">69x</span>
1169
+ <span class="cline-any cline-yes">7x</span>
1170
+ <span class="cline-any cline-yes">86x</span>
1171
+ <span class="cline-any cline-yes">86x</span>
1172
1172
  <span class="cline-any cline-neutral">&nbsp;</span>
1173
1173
  <span class="cline-any cline-neutral">&nbsp;</span>
1174
1174
  <span class="cline-any cline-neutral">&nbsp;</span>
1175
1175
  <span class="cline-any cline-neutral">&nbsp;</span>
1176
1176
  <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-yes">6x</span>
1178
- <span class="cline-any cline-yes">3x</span>
1177
+ <span class="cline-any cline-yes">7x</span>
1178
+ <span class="cline-any cline-yes">4x</span>
1179
1179
  <span class="cline-any cline-neutral">&nbsp;</span>
1180
1180
  <span class="cline-any cline-no">&nbsp;</span>
1181
1181
  <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-yes">3x</span>
1183
- <span class="cline-any cline-yes">3x</span>
1182
+ <span class="cline-any cline-yes">4x</span>
1183
+ <span class="cline-any cline-yes">4x</span>
1184
1184
  <span class="cline-any cline-neutral">&nbsp;</span>
1185
1185
  <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-yes">3x</span>
1187
- <span class="cline-any cline-yes">52x</span>
1186
+ <span class="cline-any cline-yes">4x</span>
1187
+ <span class="cline-any cline-yes">69x</span>
1188
1188
  <span class="cline-any cline-neutral">&nbsp;</span>
1189
- <span class="cline-any cline-yes">52x</span>
1189
+ <span class="cline-any cline-yes">69x</span>
1190
1190
  <span class="cline-any cline-yes">1x</span>
1191
1191
  <span class="cline-any cline-neutral">&nbsp;</span>
1192
1192
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1197,11 +1197,11 @@
1197
1197
  <span class="cline-any cline-neutral">&nbsp;</span>
1198
1198
  <span class="cline-any cline-neutral">&nbsp;</span>
1199
1199
  <span class="cline-any cline-neutral">&nbsp;</span>
1200
- <span class="cline-any cline-yes">52x</span>
1201
- <span class="cline-any cline-yes">52x</span>
1202
- <span class="cline-any cline-yes">52x</span>
1200
+ <span class="cline-any cline-yes">69x</span>
1201
+ <span class="cline-any cline-yes">69x</span>
1202
+ <span class="cline-any cline-yes">69x</span>
1203
1203
  <span class="cline-any cline-neutral">&nbsp;</span>
1204
- <span class="cline-any cline-yes">52x</span>
1204
+ <span class="cline-any cline-yes">69x</span>
1205
1205
  <span class="cline-any cline-no">&nbsp;</span>
1206
1206
  <span class="cline-any cline-neutral">&nbsp;</span>
1207
1207
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1210,33 +1210,33 @@
1210
1210
  <span class="cline-any cline-neutral">&nbsp;</span>
1211
1211
  <span class="cline-any cline-neutral">&nbsp;</span>
1212
1212
  <span class="cline-any cline-neutral">&nbsp;</span>
1213
- <span class="cline-any cline-yes">6x</span>
1214
- <span class="cline-any cline-yes">6x</span>
1215
- <span class="cline-any cline-yes">69x</span>
1216
- <span class="cline-any cline-yes">69x</span>
1213
+ <span class="cline-any cline-yes">7x</span>
1214
+ <span class="cline-any cline-yes">7x</span>
1215
+ <span class="cline-any cline-yes">86x</span>
1216
+ <span class="cline-any cline-yes">86x</span>
1217
1217
  <span class="cline-any cline-no">&nbsp;</span>
1218
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1219
1219
  <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-yes">69x</span>
1220
+ <span class="cline-any cline-yes">86x</span>
1221
1221
  <span class="cline-any cline-neutral">&nbsp;</span>
1222
- <span class="cline-any cline-yes">6x</span>
1222
+ <span class="cline-any cline-yes">7x</span>
1223
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1224
1224
  <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-yes">6x</span>
1226
- <span class="cline-any cline-yes">6x</span>
1227
- <span class="cline-any cline-yes">6x</span>
1225
+ <span class="cline-any cline-yes">7x</span>
1226
+ <span class="cline-any cline-yes">7x</span>
1227
+ <span class="cline-any cline-yes">7x</span>
1228
1228
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-yes">6x</span>
1230
- <span class="cline-any cline-yes">2x</span>
1229
+ <span class="cline-any cline-yes">7x</span>
1230
+ <span class="cline-any cline-yes">3x</span>
1231
1231
  <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-yes">2x</span>
1233
- <span class="cline-any cline-yes">2x</span>
1232
+ <span class="cline-any cline-yes">3x</span>
1233
+ <span class="cline-any cline-yes">3x</span>
1234
1234
  <span class="cline-any cline-neutral">&nbsp;</span>
1235
1235
  <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-yes">2x</span>
1237
- <span class="cline-any cline-yes">44x</span>
1236
+ <span class="cline-any cline-yes">3x</span>
1237
+ <span class="cline-any cline-yes">66x</span>
1238
1238
  <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-yes">44x</span>
1239
+ <span class="cline-any cline-yes">66x</span>
1240
1240
  <span class="cline-any cline-no">&nbsp;</span>
1241
1241
  <span class="cline-any cline-neutral">&nbsp;</span>
1242
1242
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1247,12 +1247,12 @@
1247
1247
  <span class="cline-any cline-neutral">&nbsp;</span>
1248
1248
  <span class="cline-any cline-neutral">&nbsp;</span>
1249
1249
  <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-yes">44x</span>
1251
- <span class="cline-any cline-yes">44x</span>
1252
- <span class="cline-any cline-yes">44x</span>
1250
+ <span class="cline-any cline-yes">66x</span>
1251
+ <span class="cline-any cline-yes">66x</span>
1252
+ <span class="cline-any cline-yes">66x</span>
1253
1253
  <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-yes">44x</span>
1255
- <span class="cline-any cline-no">&nbsp;</span>
1254
+ <span class="cline-any cline-yes">66x</span>
1255
+ <span class="cline-any cline-yes">1x</span>
1256
1256
  <span class="cline-any cline-neutral">&nbsp;</span>
1257
1257
  <span class="cline-any cline-neutral">&nbsp;</span>
1258
1258
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1261,8 +1261,8 @@
1261
1261
  <span class="cline-any cline-neutral">&nbsp;</span>
1262
1262
  <span class="cline-any cline-neutral">&nbsp;</span>
1263
1263
  <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-yes">6x</span>
1265
- <span class="cline-any cline-yes">6x</span>
1264
+ <span class="cline-any cline-yes">7x</span>
1265
+ <span class="cline-any cline-yes">7x</span>
1266
1266
  <span class="cline-any cline-neutral">&nbsp;</span>
1267
1267
  <span class="cline-any cline-neutral">&nbsp;</span>
1268
1268
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1272,17 +1272,17 @@
1272
1272
  <span class="cline-any cline-neutral">&nbsp;</span>
1273
1273
  <span class="cline-any cline-neutral">&nbsp;</span>
1274
1274
  <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-yes">6x</span>
1276
- <span class="cline-any cline-yes">4x</span>
1275
+ <span class="cline-any cline-yes">7x</span>
1276
+ <span class="cline-any cline-yes">5x</span>
1277
1277
  <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-yes">4x</span>
1279
- <span class="cline-any cline-yes">4x</span>
1278
+ <span class="cline-any cline-yes">5x</span>
1279
+ <span class="cline-any cline-yes">5x</span>
1280
1280
  <span class="cline-any cline-neutral">&nbsp;</span>
1281
1281
  <span class="cline-any cline-neutral">&nbsp;</span>
1282
- <span class="cline-any cline-yes">4x</span>
1283
- <span class="cline-any cline-yes">56x</span>
1282
+ <span class="cline-any cline-yes">5x</span>
1283
+ <span class="cline-any cline-yes">83x</span>
1284
1284
  <span class="cline-any cline-neutral">&nbsp;</span>
1285
- <span class="cline-any cline-yes">56x</span>
1285
+ <span class="cline-any cline-yes">83x</span>
1286
1286
  <span class="cline-any cline-no">&nbsp;</span>
1287
1287
  <span class="cline-any cline-neutral">&nbsp;</span>
1288
1288
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1295,21 +1295,21 @@
1295
1295
  <span class="cline-any cline-neutral">&nbsp;</span>
1296
1296
  <span class="cline-any cline-neutral">&nbsp;</span>
1297
1297
  <span class="cline-any cline-neutral">&nbsp;</span>
1298
- <span class="cline-any cline-yes">56x</span>
1299
- <span class="cline-any cline-yes">56x</span>
1298
+ <span class="cline-any cline-yes">83x</span>
1299
+ <span class="cline-any cline-yes">83x</span>
1300
1300
  <span class="cline-any cline-neutral">&nbsp;</span>
1301
- <span class="cline-any cline-yes">55x</span>
1301
+ <span class="cline-any cline-yes">82x</span>
1302
1302
  <span class="cline-any cline-neutral">&nbsp;</span>
1303
- <span class="cline-any cline-yes">55x</span>
1304
- <span class="cline-any cline-yes">1x</span>
1303
+ <span class="cline-any cline-yes">82x</span>
1304
+ <span class="cline-any cline-yes">2x</span>
1305
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1306
1306
  <span class="cline-any cline-neutral">&nbsp;</span>
1307
1307
  <span class="cline-any cline-yes">1x</span>
1308
1308
  <span class="cline-any cline-neutral">&nbsp;</span>
1309
1309
  <span class="cline-any cline-neutral">&nbsp;</span>
1310
- <span class="cline-any cline-yes">56x</span>
1311
- <span class="cline-any cline-yes">2x</span>
1312
- <span class="cline-any cline-yes">2x</span>
1310
+ <span class="cline-any cline-yes">83x</span>
1311
+ <span class="cline-any cline-yes">3x</span>
1312
+ <span class="cline-any cline-yes">3x</span>
1313
1313
  <span class="cline-any cline-neutral">&nbsp;</span>
1314
1314
  <span class="cline-any cline-no">&nbsp;</span>
1315
1315
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1324,20 +1324,20 @@
1324
1324
  <span class="cline-any cline-neutral">&nbsp;</span>
1325
1325
  <span class="cline-any cline-neutral">&nbsp;</span>
1326
1326
  <span class="cline-any cline-neutral">&nbsp;</span>
1327
- <span class="cline-any cline-yes">6x</span>
1328
- <span class="cline-any cline-yes">6x</span>
1327
+ <span class="cline-any cline-yes">7x</span>
1328
+ <span class="cline-any cline-yes">7x</span>
1329
1329
  <span class="cline-any cline-neutral">&nbsp;</span>
1330
- <span class="cline-any cline-yes">6x</span>
1331
- <span class="cline-any cline-yes">2x</span>
1330
+ <span class="cline-any cline-yes">7x</span>
1331
+ <span class="cline-any cline-yes">3x</span>
1332
1332
  <span class="cline-any cline-neutral">&nbsp;</span>
1333
- <span class="cline-any cline-yes">2x</span>
1334
- <span class="cline-any cline-yes">2x</span>
1333
+ <span class="cline-any cline-yes">3x</span>
1334
+ <span class="cline-any cline-yes">3x</span>
1335
1335
  <span class="cline-any cline-neutral">&nbsp;</span>
1336
1336
  <span class="cline-any cline-neutral">&nbsp;</span>
1337
- <span class="cline-any cline-yes">2x</span>
1338
- <span class="cline-any cline-yes">2x</span>
1337
+ <span class="cline-any cline-yes">3x</span>
1338
+ <span class="cline-any cline-yes">3x</span>
1339
1339
  <span class="cline-any cline-neutral">&nbsp;</span>
1340
- <span class="cline-any cline-yes">2x</span>
1340
+ <span class="cline-any cline-yes">3x</span>
1341
1341
  <span class="cline-any cline-no">&nbsp;</span>
1342
1342
  <span class="cline-any cline-neutral">&nbsp;</span>
1343
1343
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1350,21 +1350,21 @@
1350
1350
  <span class="cline-any cline-neutral">&nbsp;</span>
1351
1351
  <span class="cline-any cline-neutral">&nbsp;</span>
1352
1352
  <span class="cline-any cline-neutral">&nbsp;</span>
1353
- <span class="cline-any cline-yes">2x</span>
1354
- <span class="cline-any cline-yes">2x</span>
1353
+ <span class="cline-any cline-yes">3x</span>
1354
+ <span class="cline-any cline-yes">3x</span>
1355
1355
  <span class="cline-any cline-neutral">&nbsp;</span>
1356
- <span class="cline-any cline-yes">2x</span>
1356
+ <span class="cline-any cline-yes">3x</span>
1357
1357
  <span class="cline-any cline-neutral">&nbsp;</span>
1358
- <span class="cline-any cline-yes">2x</span>
1358
+ <span class="cline-any cline-yes">3x</span>
1359
1359
  <span class="cline-any cline-no">&nbsp;</span>
1360
1360
  <span class="cline-any cline-neutral">&nbsp;</span>
1361
1361
  <span class="cline-any cline-neutral">&nbsp;</span>
1362
1362
  <span class="cline-any cline-no">&nbsp;</span>
1363
1363
  <span class="cline-any cline-neutral">&nbsp;</span>
1364
1364
  <span class="cline-any cline-neutral">&nbsp;</span>
1365
- <span class="cline-any cline-yes">2x</span>
1366
- <span class="cline-any cline-yes">2x</span>
1367
- <span class="cline-any cline-yes">2x</span>
1365
+ <span class="cline-any cline-yes">3x</span>
1366
+ <span class="cline-any cline-yes">3x</span>
1367
+ <span class="cline-any cline-yes">3x</span>
1368
1368
  <span class="cline-any cline-neutral">&nbsp;</span>
1369
1369
  <span class="cline-any cline-no">&nbsp;</span>
1370
1370
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1381,19 +1381,19 @@
1381
1381
  <span class="cline-any cline-neutral">&nbsp;</span>
1382
1382
  <span class="cline-any cline-neutral">&nbsp;</span>
1383
1383
  <span class="cline-any cline-neutral">&nbsp;</span>
1384
- <span class="cline-any cline-yes">6x</span>
1384
+ <span class="cline-any cline-yes">7x</span>
1385
1385
  <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-yes">6x</span>
1387
- <span class="cline-any cline-yes">2x</span>
1386
+ <span class="cline-any cline-yes">7x</span>
1387
+ <span class="cline-any cline-yes">3x</span>
1388
1388
  <span class="cline-any cline-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-yes">2x</span>
1390
- <span class="cline-any cline-yes">2x</span>
1389
+ <span class="cline-any cline-yes">3x</span>
1390
+ <span class="cline-any cline-yes">3x</span>
1391
1391
  <span class="cline-any cline-neutral">&nbsp;</span>
1392
1392
  <span class="cline-any cline-neutral">&nbsp;</span>
1393
- <span class="cline-any cline-yes">2x</span>
1394
- <span class="cline-any cline-yes">40x</span>
1393
+ <span class="cline-any cline-yes">3x</span>
1394
+ <span class="cline-any cline-yes">60x</span>
1395
1395
  <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-yes">40x</span>
1396
+ <span class="cline-any cline-yes">60x</span>
1397
1397
  <span class="cline-any cline-no">&nbsp;</span>
1398
1398
  <span class="cline-any cline-neutral">&nbsp;</span>
1399
1399
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1404,12 +1404,12 @@
1404
1404
  <span class="cline-any cline-neutral">&nbsp;</span>
1405
1405
  <span class="cline-any cline-neutral">&nbsp;</span>
1406
1406
  <span class="cline-any cline-neutral">&nbsp;</span>
1407
- <span class="cline-any cline-yes">40x</span>
1408
- <span class="cline-any cline-yes">40x</span>
1407
+ <span class="cline-any cline-yes">60x</span>
1408
+ <span class="cline-any cline-yes">60x</span>
1409
1409
  <span class="cline-any cline-neutral">&nbsp;</span>
1410
- <span class="cline-any cline-yes">40x</span>
1410
+ <span class="cline-any cline-yes">60x</span>
1411
1411
  <span class="cline-any cline-neutral">&nbsp;</span>
1412
- <span class="cline-any cline-yes">40x</span>
1412
+ <span class="cline-any cline-yes">60x</span>
1413
1413
  <span class="cline-any cline-no">&nbsp;</span>
1414
1414
  <span class="cline-any cline-neutral">&nbsp;</span>
1415
1415
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1419,25 +1419,25 @@
1419
1419
  <span class="cline-any cline-neutral">&nbsp;</span>
1420
1420
  <span class="cline-any cline-neutral">&nbsp;</span>
1421
1421
  <span class="cline-any cline-neutral">&nbsp;</span>
1422
- <span class="cline-any cline-yes">6x</span>
1422
+ <span class="cline-any cline-yes">7x</span>
1423
1423
  <span class="cline-any cline-neutral">&nbsp;</span>
1424
- <span class="cline-any cline-yes">6x</span>
1424
+ <span class="cline-any cline-yes">7x</span>
1425
1425
  <span class="cline-any cline-neutral">&nbsp;</span>
1426
1426
  <span class="cline-any cline-neutral">&nbsp;</span>
1427
1427
  <span class="cline-any cline-neutral">&nbsp;</span>
1428
1428
  <span class="cline-any cline-neutral">&nbsp;</span>
1429
1429
  <span class="cline-any cline-neutral">&nbsp;</span>
1430
- <span class="cline-any cline-yes">6x</span>
1431
- <span class="cline-any cline-yes">3x</span>
1430
+ <span class="cline-any cline-yes">7x</span>
1431
+ <span class="cline-any cline-yes">4x</span>
1432
1432
  <span class="cline-any cline-neutral">&nbsp;</span>
1433
- <span class="cline-any cline-yes">3x</span>
1434
- <span class="cline-any cline-yes">3x</span>
1433
+ <span class="cline-any cline-yes">4x</span>
1434
+ <span class="cline-any cline-yes">4x</span>
1435
1435
  <span class="cline-any cline-neutral">&nbsp;</span>
1436
1436
  <span class="cline-any cline-neutral">&nbsp;</span>
1437
- <span class="cline-any cline-yes">3x</span>
1438
- <span class="cline-any cline-yes">106x</span>
1437
+ <span class="cline-any cline-yes">4x</span>
1438
+ <span class="cline-any cline-yes">141x</span>
1439
1439
  <span class="cline-any cline-neutral">&nbsp;</span>
1440
- <span class="cline-any cline-yes">106x</span>
1440
+ <span class="cline-any cline-yes">141x</span>
1441
1441
  <span class="cline-any cline-no">&nbsp;</span>
1442
1442
  <span class="cline-any cline-neutral">&nbsp;</span>
1443
1443
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1448,13 +1448,13 @@
1448
1448
  <span class="cline-any cline-neutral">&nbsp;</span>
1449
1449
  <span class="cline-any cline-neutral">&nbsp;</span>
1450
1450
  <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-yes">106x</span>
1452
- <span class="cline-any cline-yes">106x</span>
1451
+ <span class="cline-any cline-yes">141x</span>
1452
+ <span class="cline-any cline-yes">141x</span>
1453
1453
  <span class="cline-any cline-neutral">&nbsp;</span>
1454
- <span class="cline-any cline-yes">106x</span>
1454
+ <span class="cline-any cline-yes">141x</span>
1455
1455
  <span class="cline-any cline-neutral">&nbsp;</span>
1456
- <span class="cline-any cline-yes">106x</span>
1457
- <span class="cline-any cline-yes">1x</span>
1456
+ <span class="cline-any cline-yes">141x</span>
1457
+ <span class="cline-any cline-yes">2x</span>
1458
1458
  <span class="cline-any cline-neutral">&nbsp;</span>
1459
1459
  <span class="cline-any cline-neutral">&nbsp;</span>
1460
1460
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1462,7 +1462,7 @@
1462
1462
  <span class="cline-any cline-neutral">&nbsp;</span>
1463
1463
  <span class="cline-any cline-neutral">&nbsp;</span>
1464
1464
  <span class="cline-any cline-neutral">&nbsp;</span>
1465
- <span class="cline-any cline-yes">6x</span>
1465
+ <span class="cline-any cline-yes">7x</span>
1466
1466
  <span class="cline-any cline-neutral">&nbsp;</span>
1467
1467
  <span class="cline-any cline-neutral">&nbsp;</span>
1468
1468
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1666,8 +1666,8 @@ export async function lintProject(
1666
1666
  ): Promise&lt;string&gt; {
1667
1667
  const defaultPath = getFullPathFromKey("feature", featureKey);
1668
1668
  &nbsp;
1669
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!projectConfig.splitByEnvironment) {
1670
- <span class="cstat-no" title="statement not covered" > return defaultPath;</span>
1669
+ if (!projectConfig.splitByEnvironment) {
1670
+ return defaultPath;
1671
1671
  }
1672
1672
  &nbsp;
1673
1673
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(projectConfig.environments)) {
@@ -1988,8 +1988,8 @@ export async function lintProject(
1988
1988
  const parsed = await datasource.readSegment(key);
1989
1989
  const result = segmentZodSchema.safeParse(parsed);
1990
1990
  &nbsp;
1991
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!result.success &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >"error" in result)</span> {
1992
- <span class="cstat-no" title="statement not covered" > await reportZodValidationError("segment", key, fullPath, result.error);</span>
1991
+ if (!result.success &amp;&amp; "error" in result) {
1992
+ await reportZodValidationError("segment", key, fullPath, result.error);
1993
1993
  }
1994
1994
  } catch (error) {
1995
1995
  <span class="cstat-no" title="statement not covered" > await reportThrownError("segment", key, fullPath, error);</span>
@@ -2281,7 +2281,7 @@ export const lintPlugin: Plugin = {
2281
2281
  <div class='footer quiet pad2 space-top1 center small'>
2282
2282
  Code coverage generated by
2283
2283
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2284
- at 2026-04-16T19:04:15.682Z
2284
+ at 2026-04-16T19:50:48.735Z
2285
2285
  </div>
2286
2286
  <script src="../prettify.js"></script>
2287
2287
  <script>