@featurevisor/core 2.13.0 → 2.15.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 (121) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/coverage/clover.xml +1499 -1028
  3. package/coverage/coverage-final.json +21 -17
  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 +30 -15
  14. package/coverage/lcov-report/config/index.ts.html +88 -0
  15. package/coverage/lcov-report/config/projectConfig.ts.html +79 -46
  16. package/coverage/lcov-report/datasource/adapter.ts.html +74 -11
  17. package/coverage/lcov-report/datasource/datasource.ts.html +77 -26
  18. package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +693 -69
  19. package/coverage/lcov-report/datasource/index.html +35 -35
  20. package/coverage/lcov-report/datasource/index.ts.html +1 -1
  21. package/coverage/lcov-report/index.html +53 -53
  22. package/coverage/lcov-report/linter/attributeSchema.ts.html +4 -4
  23. package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
  24. package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
  25. package/coverage/lcov-report/linter/conditionSchema.ts.html +7 -7
  26. package/coverage/lcov-report/linter/featureSchema.ts.html +848 -389
  27. package/coverage/lcov-report/linter/groupSchema.ts.html +3 -3
  28. package/coverage/lcov-report/linter/index.html +50 -35
  29. package/coverage/lcov-report/linter/lintProject.ts.html +437 -92
  30. package/coverage/lcov-report/linter/mutationNotation.ts.html +1309 -0
  31. package/coverage/lcov-report/linter/printError.ts.html +9 -9
  32. package/coverage/lcov-report/linter/schema.ts.html +69 -69
  33. package/coverage/lcov-report/linter/segmentSchema.ts.html +3 -3
  34. package/coverage/lcov-report/linter/testSchema.ts.html +10 -10
  35. package/coverage/lcov-report/list/index.html +1 -1
  36. package/coverage/lcov-report/list/matrix.ts.html +1 -1
  37. package/coverage/lcov-report/parsers/index.html +1 -1
  38. package/coverage/lcov-report/parsers/index.ts.html +4 -4
  39. package/coverage/lcov-report/parsers/json.ts.html +2 -2
  40. package/coverage/lcov-report/parsers/yml.ts.html +6 -6
  41. package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
  42. package/coverage/lcov-report/tester/helpers.ts.html +1 -1
  43. package/coverage/lcov-report/tester/index.html +1 -1
  44. package/coverage/lcov-report/utils/git.ts.html +118 -16
  45. package/coverage/lcov-report/utils/index.html +14 -14
  46. package/coverage/lcov.info +2918 -1932
  47. package/lib/builder/buildDatafile.js +8 -3
  48. package/lib/builder/buildDatafile.js.map +1 -1
  49. package/lib/builder/mutateVariables.d.ts +14 -0
  50. package/lib/builder/mutateVariables.js +90 -0
  51. package/lib/builder/mutateVariables.js.map +1 -0
  52. package/lib/builder/mutateVariables.spec.d.ts +1 -0
  53. package/lib/builder/mutateVariables.spec.js +1045 -0
  54. package/lib/builder/mutateVariables.spec.js.map +1 -0
  55. package/lib/builder/mutator.d.ts +20 -0
  56. package/lib/builder/mutator.js +223 -0
  57. package/lib/builder/mutator.js.map +1 -0
  58. package/lib/builder/mutator.spec.d.ts +1 -0
  59. package/lib/builder/mutator.spec.js +368 -0
  60. package/lib/builder/mutator.spec.js.map +1 -0
  61. package/lib/config/projectConfig.d.ts +3 -0
  62. package/lib/config/projectConfig.js +7 -1
  63. package/lib/config/projectConfig.js.map +1 -1
  64. package/lib/config/projectConfig.spec.d.ts +1 -0
  65. package/lib/config/projectConfig.spec.js +24 -0
  66. package/lib/config/projectConfig.spec.js.map +1 -0
  67. package/lib/datasource/adapter.d.ts +7 -0
  68. package/lib/datasource/adapter.js +7 -0
  69. package/lib/datasource/adapter.js.map +1 -1
  70. package/lib/datasource/datasource.d.ts +3 -1
  71. package/lib/datasource/datasource.js +6 -0
  72. package/lib/datasource/datasource.js.map +1 -1
  73. package/lib/datasource/filesystemAdapter.d.ts +8 -0
  74. package/lib/datasource/filesystemAdapter.js +134 -7
  75. package/lib/datasource/filesystemAdapter.js.map +1 -1
  76. package/lib/datasource/filesystemAdapter.spec.d.ts +1 -0
  77. package/lib/datasource/filesystemAdapter.spec.js +88 -0
  78. package/lib/datasource/filesystemAdapter.spec.js.map +1 -0
  79. package/lib/linter/conditionSchema.spec.js +2 -0
  80. package/lib/linter/conditionSchema.spec.js.map +1 -1
  81. package/lib/linter/featureSchema.d.ts +7 -7
  82. package/lib/linter/featureSchema.js +176 -103
  83. package/lib/linter/featureSchema.js.map +1 -1
  84. package/lib/linter/featureSchema.spec.js +167 -0
  85. package/lib/linter/featureSchema.spec.js.map +1 -1
  86. package/lib/linter/lintProject.d.ts +2 -0
  87. package/lib/linter/lintProject.js +85 -8
  88. package/lib/linter/lintProject.js.map +1 -1
  89. package/lib/linter/lintProject.spec.js +37 -0
  90. package/lib/linter/lintProject.spec.js.map +1 -1
  91. package/lib/linter/mutationNotation.d.ts +47 -0
  92. package/lib/linter/mutationNotation.js +381 -0
  93. package/lib/linter/mutationNotation.js.map +1 -0
  94. package/lib/linter/mutationNotation.spec.d.ts +1 -0
  95. package/lib/linter/mutationNotation.spec.js +549 -0
  96. package/lib/linter/mutationNotation.spec.js.map +1 -0
  97. package/lib/linter/segmentSchema.spec.js +2 -0
  98. package/lib/linter/segmentSchema.spec.js.map +1 -1
  99. package/lib/utils/git.js +32 -7
  100. package/lib/utils/git.js.map +1 -1
  101. package/package.json +2 -2
  102. package/src/builder/buildDatafile.ts +29 -3
  103. package/src/builder/mutateVariables.spec.ts +1134 -0
  104. package/src/builder/mutateVariables.ts +105 -0
  105. package/src/builder/mutator.spec.ts +413 -0
  106. package/src/builder/mutator.ts +237 -0
  107. package/src/config/projectConfig.spec.ts +31 -0
  108. package/src/config/projectConfig.ts +11 -0
  109. package/src/datasource/adapter.ts +21 -0
  110. package/src/datasource/datasource.ts +18 -1
  111. package/src/datasource/filesystemAdapter.spec.ts +153 -0
  112. package/src/datasource/filesystemAdapter.ts +216 -8
  113. package/src/linter/conditionSchema.spec.ts +2 -0
  114. package/src/linter/featureSchema.spec.ts +203 -0
  115. package/src/linter/featureSchema.ts +320 -167
  116. package/src/linter/lintProject.spec.ts +74 -0
  117. package/src/linter/lintProject.ts +123 -8
  118. package/src/linter/mutationNotation.spec.ts +642 -0
  119. package/src/linter/mutationNotation.ts +408 -0
  120. package/src/linter/segmentSchema.spec.ts +2 -0
  121. package/src/utils/git.ts +41 -7
@@ -120,7 +120,7 @@
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">4x</span>
123
+ <span class="cline-any cline-yes">6x</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -155,7 +155,7 @@
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-yes">4x</span>
158
+ <span class="cline-any cline-yes">6x</span>
159
159
  <span class="cline-any cline-neutral">&nbsp;</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { z } from "zod";
161
161
  &nbsp;
@@ -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-25T22:03:15.189Z
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.18% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>758/1021</span>
28
+ <span class='fraction'>950/1247</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.46% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>468/699</span>
35
+ <span class='fraction'>628/904</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">74.84% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>107/149</span>
42
+ <span class='fraction'>119/159</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.58% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>734/948</span>
49
+ <span class='fraction'>916/1151</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.96" 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.96" class="pct medium">70.96%</td>
147
+ <td data-value="520" class="abs medium">369/520</td>
148
+ <td data-value="61.49" class="pct medium">61.49%</td>
149
+ <td data-value="361" class="abs medium">222/361</td>
150
+ <td data-value="76.38" class="pct medium">76.38%</td>
151
+ <td data-value="72" class="abs medium">55/72</td>
152
+ <td data-value="75.1" class="pct medium">75.1%</td>
153
+ <td data-value="474" class="abs medium">356/474</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
@@ -170,32 +170,47 @@
170
170
 
171
171
  <tr>
172
172
  <td class="file medium" data-value="lintProject.ts"><a href="lintProject.ts.html">lintProject.ts</a></td>
173
- <td data-value="73.23" class="pic medium">
174
- <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
173
+ <td data-value="72.38" class="pic medium">
174
+ <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
175
+ </td>
176
+ <td data-value="72.38" class="pct medium">72.38%</td>
177
+ <td data-value="239" class="abs medium">173/239</td>
178
+ <td data-value="61.68" class="pct medium">61.68%</td>
179
+ <td data-value="154" class="abs medium">95/154</td>
180
+ <td data-value="52.63" class="pct medium">52.63%</td>
181
+ <td data-value="19" class="abs medium">10/19</td>
182
+ <td data-value="74.56" class="pct medium">74.56%</td>
183
+ <td data-value="232" class="abs medium">173/232</td>
184
+ </tr>
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>
175
190
  </td>
176
- <td data-value="73.23" class="pct medium">73.23%</td>
177
- <td data-value="198" class="abs medium">145/198</td>
178
- <td data-value="55.76" class="pct medium">55.76%</td>
179
- <td data-value="104" class="abs medium">58/104</td>
180
- <td data-value="44.44" class="pct low">44.44%</td>
181
- <td data-value="18" class="abs low">8/18</td>
182
- <td data-value="75.52" class="pct medium">75.52%</td>
183
- <td data-value="192" class="abs medium">145/192</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>
184
199
  </tr>
185
200
 
186
201
  <tr>
187
202
  <td class="file medium" data-value="printError.ts"><a href="printError.ts.html">printError.ts</a></td>
188
- <td data-value="50" class="pic medium">
189
- <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
203
+ <td data-value="56.25" class="pic medium">
204
+ <div class="chart"><div class="cover-fill" style="width: 56%"></div><div class="cover-empty" style="width: 44%"></div></div>
190
205
  </td>
191
- <td data-value="50" class="pct medium">50%</td>
192
- <td data-value="16" class="abs medium">8/16</td>
206
+ <td data-value="56.25" class="pct medium">56.25%</td>
207
+ <td data-value="16" class="abs medium">9/16</td>
193
208
  <td data-value="57.14" class="pct medium">57.14%</td>
194
209
  <td data-value="7" class="abs medium">4/7</td>
195
210
  <td data-value="50" class="pct medium">50%</td>
196
211
  <td data-value="4" class="abs medium">2/4</td>
197
- <td data-value="50" class="pct medium">50%</td>
198
- <td data-value="16" class="abs medium">8/16</td>
212
+ <td data-value="56.25" class="pct medium">56.25%</td>
213
+ <td data-value="16" class="abs medium">9/16</td>
199
214
  </tr>
200
215
 
201
216
  <tr>
@@ -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-25T22:03:15.189Z
255
270
  </div>
256
271
  <script src="../prettify.js"></script>
257
272
  <script>