@featurevisor/core 2.13.0 → 2.14.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 (80) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/coverage/clover.xml +906 -557
  3. package/coverage/coverage-final.json +11 -8
  4. package/coverage/lcov-report/builder/allocator.ts.html +1 -1
  5. package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
  6. package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
  7. package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
  8. package/coverage/lcov-report/builder/index.html +38 -8
  9. package/coverage/lcov-report/builder/mutateVariables.ts.html +400 -0
  10. package/coverage/lcov-report/builder/mutator.ts.html +796 -0
  11. package/coverage/lcov-report/builder/revision.ts.html +1 -1
  12. package/coverage/lcov-report/builder/traffic.ts.html +1 -1
  13. package/coverage/lcov-report/config/index.html +1 -1
  14. package/coverage/lcov-report/config/projectConfig.ts.html +1 -1
  15. package/coverage/lcov-report/datasource/adapter.ts.html +1 -1
  16. package/coverage/lcov-report/datasource/datasource.ts.html +4 -4
  17. package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +23 -23
  18. package/coverage/lcov-report/datasource/index.html +1 -1
  19. package/coverage/lcov-report/datasource/index.ts.html +1 -1
  20. package/coverage/lcov-report/index.html +28 -28
  21. package/coverage/lcov-report/linter/attributeSchema.ts.html +1 -1
  22. package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
  23. package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
  24. package/coverage/lcov-report/linter/conditionSchema.ts.html +7 -7
  25. package/coverage/lcov-report/linter/featureSchema.ts.html +789 -318
  26. package/coverage/lcov-report/linter/groupSchema.ts.html +1 -1
  27. package/coverage/lcov-report/linter/index.html +34 -19
  28. package/coverage/lcov-report/linter/lintProject.ts.html +25 -25
  29. package/coverage/lcov-report/linter/mutationNotation.ts.html +1309 -0
  30. package/coverage/lcov-report/linter/printError.ts.html +1 -1
  31. package/coverage/lcov-report/linter/schema.ts.html +69 -69
  32. package/coverage/lcov-report/linter/segmentSchema.ts.html +1 -1
  33. package/coverage/lcov-report/linter/testSchema.ts.html +5 -5
  34. package/coverage/lcov-report/list/index.html +1 -1
  35. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  36. package/coverage/lcov-report/parsers/index.html +1 -1
  37. package/coverage/lcov-report/parsers/index.ts.html +1 -1
  38. package/coverage/lcov-report/parsers/json.ts.html +1 -1
  39. package/coverage/lcov-report/parsers/yml.ts.html +2 -2
  40. package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
  41. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/tester/index.html +1 -1
  43. package/coverage/lcov-report/utils/git.ts.html +1 -1
  44. package/coverage/lcov-report/utils/index.html +1 -1
  45. package/coverage/lcov.info +1839 -1120
  46. package/lib/builder/buildDatafile.js +8 -3
  47. package/lib/builder/buildDatafile.js.map +1 -1
  48. package/lib/builder/mutateVariables.d.ts +14 -0
  49. package/lib/builder/mutateVariables.js +90 -0
  50. package/lib/builder/mutateVariables.js.map +1 -0
  51. package/lib/builder/mutateVariables.spec.d.ts +1 -0
  52. package/lib/builder/mutateVariables.spec.js +1045 -0
  53. package/lib/builder/mutateVariables.spec.js.map +1 -0
  54. package/lib/builder/mutator.d.ts +20 -0
  55. package/lib/builder/mutator.js +223 -0
  56. package/lib/builder/mutator.js.map +1 -0
  57. package/lib/builder/mutator.spec.d.ts +1 -0
  58. package/lib/builder/mutator.spec.js +368 -0
  59. package/lib/builder/mutator.spec.js.map +1 -0
  60. package/lib/linter/featureSchema.d.ts +7 -7
  61. package/lib/linter/featureSchema.js +138 -62
  62. package/lib/linter/featureSchema.js.map +1 -1
  63. package/lib/linter/featureSchema.spec.js +150 -0
  64. package/lib/linter/featureSchema.spec.js.map +1 -1
  65. package/lib/linter/mutationNotation.d.ts +47 -0
  66. package/lib/linter/mutationNotation.js +381 -0
  67. package/lib/linter/mutationNotation.js.map +1 -0
  68. package/lib/linter/mutationNotation.spec.d.ts +1 -0
  69. package/lib/linter/mutationNotation.spec.js +549 -0
  70. package/lib/linter/mutationNotation.spec.js.map +1 -0
  71. package/package.json +2 -2
  72. package/src/builder/buildDatafile.ts +29 -3
  73. package/src/builder/mutateVariables.spec.ts +1134 -0
  74. package/src/builder/mutateVariables.ts +105 -0
  75. package/src/builder/mutator.spec.ts +413 -0
  76. package/src/builder/mutator.ts +237 -0
  77. package/src/linter/featureSchema.spec.ts +182 -0
  78. package/src/linter/featureSchema.ts +254 -97
  79. package/src/linter/mutationNotation.spec.ts +642 -0
  80. package/src/linter/mutationNotation.ts +408 -0
@@ -211,7 +211,7 @@ export function getGroupZodSchema(
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
214
- at 2026-02-23T20:40:14.947Z
214
+ at 2026-02-24T19:50:30.107Z
215
215
  </div>
216
216
  <script src="../prettify.js"></script>
217
217
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">74.24% </span>
26
+ <span class="strong">76.3% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>758/1021</span>
28
+ <span class='fraction'>921/1207</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.95% </span>
33
+ <span class="strong">69.13% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>468/699</span>
35
+ <span class='fraction'>589/852</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">71.81% </span>
40
+ <span class="strong">73.41% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>107/149</span>
42
+ <span class='fraction'>116/158</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.42% </span>
47
+ <span class="strong">79.76% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>734/948</span>
49
+ <span class='fraction'>887/1112</span>
50
50
  </div>
51
51
 
52
52
 
@@ -140,17 +140,17 @@
140
140
 
141
141
  <tr>
142
142
  <td class="file medium" data-value="featureSchema.ts"><a href="featureSchema.ts.html">featureSchema.ts</a></td>
143
- <td data-value="69.79" class="pic medium">
144
- <div class="chart"><div class="cover-fill" style="width: 69%"></div><div class="cover-empty" style="width: 31%"></div></div>
143
+ <td data-value="70.82" class="pic medium">
144
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
145
145
  </td>
146
- <td data-value="69.79" class="pct medium">69.79%</td>
147
- <td data-value="480" class="abs medium">335/480</td>
148
- <td data-value="59.94" class="pct medium">59.94%</td>
149
- <td data-value="337" class="abs medium">202/337</td>
150
- <td data-value="74.64" class="pct medium">74.64%</td>
151
- <td data-value="71" class="abs medium">53/71</td>
152
- <td data-value="74.02" class="pct medium">74.02%</td>
153
- <td data-value="435" class="abs medium">322/435</td>
146
+ <td data-value="70.82" class="pct medium">70.82%</td>
147
+ <td data-value="521" class="abs medium">369/521</td>
148
+ <td data-value="61.28" class="pct medium">61.28%</td>
149
+ <td data-value="359" class="abs medium">220/359</td>
150
+ <td data-value="75" class="pct medium">75%</td>
151
+ <td data-value="72" class="abs medium">54/72</td>
152
+ <td data-value="74.94" class="pct medium">74.94%</td>
153
+ <td data-value="475" class="abs medium">356/475</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
@@ -183,6 +183,21 @@
183
183
  <td data-value="192" class="abs medium">145/192</td>
184
184
  </tr>
185
185
 
186
+ <tr>
187
+ <td class="file high" data-value="mutationNotation.ts"><a href="mutationNotation.ts.html">mutationNotation.ts</a></td>
188
+ <td data-value="88.96" class="pic high">
189
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
190
+ </td>
191
+ <td data-value="88.96" class="pct high">88.96%</td>
192
+ <td data-value="145" class="abs high">129/145</td>
193
+ <td data-value="78.62" class="pct medium">78.62%</td>
194
+ <td data-value="131" class="abs medium">103/131</td>
195
+ <td data-value="100" class="pct high">100%</td>
196
+ <td data-value="8" class="abs high">8/8</td>
197
+ <td data-value="95.96" class="pct high">95.96%</td>
198
+ <td data-value="124" class="abs high">119/124</td>
199
+ </tr>
200
+
186
201
  <tr>
187
202
  <td class="file medium" data-value="printError.ts"><a href="printError.ts.html">printError.ts</a></td>
188
203
  <td data-value="50" class="pic medium">
@@ -251,7 +266,7 @@
251
266
  <div class='footer quiet pad2 space-top1 center small'>
252
267
  Code coverage generated by
253
268
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at 2026-02-23T20:40:14.947Z
269
+ at 2026-02-24T19:50:30.107Z
255
270
  </div>
256
271
  <script src="../prettify.js"></script>
257
272
  <script>
@@ -723,28 +723,28 @@
723
723
  <span class="cline-any cline-neutral">&nbsp;</span>
724
724
  <span class="cline-any cline-neutral">&nbsp;</span>
725
725
  <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-yes">236x</span>
727
- <span class="cline-any cline-yes">236x</span>
726
+ <span class="cline-any cline-yes">241x</span>
727
+ <span class="cline-any cline-yes">241x</span>
728
728
  <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-yes">236x</span>
729
+ <span class="cline-any cline-yes">241x</span>
730
730
  <span class="cline-any cline-yes">34x</span>
731
- <span class="cline-any cline-yes">202x</span>
731
+ <span class="cline-any cline-yes">207x</span>
732
732
  <span class="cline-any cline-yes">32x</span>
733
- <span class="cline-any cline-yes">170x</span>
734
- <span class="cline-any cline-yes">46x</span>
735
- <span class="cline-any cline-yes">124x</span>
733
+ <span class="cline-any cline-yes">175x</span>
734
+ <span class="cline-any cline-yes">48x</span>
735
+ <span class="cline-any cline-yes">127x</span>
736
736
  <span class="cline-any cline-yes">2x</span>
737
- <span class="cline-any cline-yes">122x</span>
737
+ <span class="cline-any cline-yes">125x</span>
738
738
  <span class="cline-any cline-yes">40x</span>
739
739
  <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-yes">82x</span>
740
+ <span class="cline-any cline-yes">85x</span>
741
741
  <span class="cline-any cline-neutral">&nbsp;</span>
742
742
  <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-yes">236x</span>
743
+ <span class="cline-any cline-yes">241x</span>
744
744
  <span class="cline-any cline-no">&nbsp;</span>
745
745
  <span class="cline-any cline-neutral">&nbsp;</span>
746
746
  <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-yes">236x</span>
747
+ <span class="cline-any cline-yes">241x</span>
748
748
  <span class="cline-any cline-neutral">&nbsp;</span>
749
749
  <span class="cline-any cline-neutral">&nbsp;</span>
750
750
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -976,9 +976,9 @@
976
976
  <span class="cline-any cline-neutral">&nbsp;</span>
977
977
  <span class="cline-any cline-neutral">&nbsp;</span>
978
978
  <span class="cline-any cline-yes">2x</span>
979
- <span class="cline-any cline-yes">46x</span>
979
+ <span class="cline-any cline-yes">48x</span>
980
980
  <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-yes">46x</span>
981
+ <span class="cline-any cline-yes">48x</span>
982
982
  <span class="cline-any cline-no">&nbsp;</span>
983
983
  <span class="cline-any cline-neutral">&nbsp;</span>
984
984
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -991,19 +991,19 @@
991
991
  <span class="cline-any cline-neutral">&nbsp;</span>
992
992
  <span class="cline-any cline-neutral">&nbsp;</span>
993
993
  <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-yes">46x</span>
995
- <span class="cline-any cline-yes">46x</span>
994
+ <span class="cline-any cline-yes">48x</span>
995
+ <span class="cline-any cline-yes">48x</span>
996
996
  <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-yes">46x</span>
997
+ <span class="cline-any cline-yes">48x</span>
998
998
  <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-yes">46x</span>
999
+ <span class="cline-any cline-yes">48x</span>
1000
1000
  <span class="cline-any cline-no">&nbsp;</span>
1001
1001
  <span class="cline-any cline-neutral">&nbsp;</span>
1002
1002
  <span class="cline-any cline-neutral">&nbsp;</span>
1003
1003
  <span class="cline-any cline-no">&nbsp;</span>
1004
1004
  <span class="cline-any cline-neutral">&nbsp;</span>
1005
1005
  <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-yes">46x</span>
1006
+ <span class="cline-any cline-yes">48x</span>
1007
1007
  <span class="cline-any cline-yes">2x</span>
1008
1008
  <span class="cline-any cline-yes">2x</span>
1009
1009
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1131,9 +1131,9 @@
1131
1131
  <span class="cline-any cline-neutral">&nbsp;</span>
1132
1132
  <span class="cline-any cline-neutral">&nbsp;</span>
1133
1133
  <span class="cline-any cline-yes">3x</span>
1134
- <span class="cline-any cline-yes">82x</span>
1134
+ <span class="cline-any cline-yes">85x</span>
1135
1135
  <span class="cline-any cline-neutral">&nbsp;</span>
1136
- <span class="cline-any cline-yes">82x</span>
1136
+ <span class="cline-any cline-yes">85x</span>
1137
1137
  <span class="cline-any cline-no">&nbsp;</span>
1138
1138
  <span class="cline-any cline-neutral">&nbsp;</span>
1139
1139
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1144,12 +1144,12 @@
1144
1144
  <span class="cline-any cline-neutral">&nbsp;</span>
1145
1145
  <span class="cline-any cline-neutral">&nbsp;</span>
1146
1146
  <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-yes">82x</span>
1148
- <span class="cline-any cline-yes">82x</span>
1147
+ <span class="cline-any cline-yes">85x</span>
1148
+ <span class="cline-any cline-yes">85x</span>
1149
1149
  <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-yes">82x</span>
1150
+ <span class="cline-any cline-yes">85x</span>
1151
1151
  <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-yes">82x</span>
1152
+ <span class="cline-any cline-yes">85x</span>
1153
1153
  <span class="cline-any cline-yes">1x</span>
1154
1154
  <span class="cline-any cline-neutral">&nbsp;</span>
1155
1155
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1825,7 +1825,7 @@ export const lintPlugin: Plugin = {
1825
1825
  <div class='footer quiet pad2 space-top1 center small'>
1826
1826
  Code coverage generated by
1827
1827
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1828
- at 2026-02-23T20:40:14.947Z
1828
+ at 2026-02-24T19:50:30.107Z
1829
1829
  </div>
1830
1830
  <script src="../prettify.js"></script>
1831
1831
  <script>