@featurevisor/core 2.7.0 → 2.8.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 (76) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/coverage/clover.xml +110 -443
  3. package/coverage/coverage-final.json +3 -9
  4. package/coverage/lcov-report/{src/builder → builder}/allocator.ts.html +10 -10
  5. package/coverage/lcov-report/{src/builder → builder}/buildScopedConditions.ts.html +10 -10
  6. package/coverage/lcov-report/{src/builder → builder}/buildScopedDatafile.ts.html +10 -10
  7. package/coverage/lcov-report/{src/builder → builder}/buildScopedSegments.ts.html +10 -10
  8. package/coverage/lcov-report/{src/builder → builder}/index.html +10 -10
  9. package/coverage/lcov-report/{src/builder → builder}/revision.ts.html +10 -10
  10. package/coverage/lcov-report/{src/builder → builder}/traffic.ts.html +10 -10
  11. package/coverage/lcov-report/index.html +27 -57
  12. package/coverage/lcov-report/{src/list → list}/index.html +10 -10
  13. package/coverage/lcov-report/{src/list → list}/matrix.ts.html +10 -10
  14. package/coverage/lcov-report/{lib/tester → parsers}/index.html +41 -26
  15. package/coverage/lcov-report/parsers/json.ts.html +118 -0
  16. package/coverage/lcov-report/parsers/yml.ts.html +589 -0
  17. package/coverage/lcov-report/{src/tester → tester}/helpers.ts.html +10 -10
  18. package/coverage/lcov-report/{src/tester → tester}/index.html +10 -10
  19. package/coverage/lcov.info +198 -858
  20. package/jest.config.js +1 -0
  21. package/lib/config/index.d.ts +0 -1
  22. package/lib/config/index.js +0 -1
  23. package/lib/config/index.js.map +1 -1
  24. package/lib/config/projectConfig.d.ts +1 -1
  25. package/lib/config/projectConfig.js +1 -1
  26. package/lib/config/projectConfig.js.map +1 -1
  27. package/lib/datasource/datasource.js.map +1 -1
  28. package/lib/datasource/filesystemAdapter.js +1 -1
  29. package/lib/datasource/filesystemAdapter.js.map +1 -1
  30. package/lib/index.d.ts +1 -0
  31. package/lib/index.js +1 -0
  32. package/lib/index.js.map +1 -1
  33. package/lib/linter/conditionSchema.js +45 -6
  34. package/lib/linter/conditionSchema.js.map +1 -1
  35. package/lib/{config/parsers.d.ts → parsers/index.d.ts} +5 -5
  36. package/lib/parsers/index.js +15 -0
  37. package/lib/parsers/index.js.map +1 -0
  38. package/lib/parsers/json.d.ts +2 -0
  39. package/lib/parsers/json.js +13 -0
  40. package/lib/parsers/json.js.map +1 -0
  41. package/lib/parsers/json.spec.d.ts +1 -0
  42. package/lib/parsers/json.spec.js +35 -0
  43. package/lib/parsers/json.spec.js.map +1 -0
  44. package/lib/parsers/yml.d.ts +2 -0
  45. package/lib/parsers/yml.js +154 -0
  46. package/lib/parsers/yml.js.map +1 -0
  47. package/lib/parsers/yml.spec.d.ts +1 -0
  48. package/lib/parsers/yml.spec.js +143 -0
  49. package/lib/parsers/yml.spec.js.map +1 -0
  50. package/lib/utils/git.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/config/index.ts +0 -1
  53. package/src/config/projectConfig.ts +1 -1
  54. package/src/datasource/datasource.ts +2 -1
  55. package/src/datasource/filesystemAdapter.ts +3 -2
  56. package/src/index.ts +1 -0
  57. package/src/linter/conditionSchema.ts +43 -6
  58. package/src/parsers/index.ts +22 -0
  59. package/src/parsers/json.spec.ts +36 -0
  60. package/src/parsers/json.ts +11 -0
  61. package/src/parsers/yml.spec.ts +174 -0
  62. package/src/parsers/yml.ts +168 -0
  63. package/src/utils/git.ts +2 -1
  64. package/coverage/lcov-report/lib/builder/allocator.js.html +0 -196
  65. package/coverage/lcov-report/lib/builder/buildScopedConditions.js.html +0 -373
  66. package/coverage/lcov-report/lib/builder/buildScopedDatafile.js.html +0 -403
  67. package/coverage/lcov-report/lib/builder/buildScopedSegments.js.html +0 -379
  68. package/coverage/lcov-report/lib/builder/index.html +0 -191
  69. package/coverage/lcov-report/lib/builder/revision.js.html +0 -148
  70. package/coverage/lcov-report/lib/builder/traffic.js.html +0 -493
  71. package/coverage/lcov-report/lib/list/index.html +0 -116
  72. package/coverage/lcov-report/lib/list/matrix.js.html +0 -532
  73. package/coverage/lcov-report/lib/tester/helpers.js.html +0 -295
  74. package/lib/config/parsers.js +0 -32
  75. package/lib/config/parsers.js.map +0 -1
  76. package/src/config/parsers.ts +0 -40
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.8.0](https://github.com/featurevisor/featurevisor/compare/v2.7.0...v2.8.0) (2026-02-08)
7
+
8
+
9
+ ### Features
10
+
11
+ * YAML parser to preserve comments and ordering when writing ([#385](https://github.com/featurevisor/featurevisor/issues/385)) ([01daaec](https://github.com/featurevisor/featurevisor/commit/01daaec7a7e872c528b30a886a92894a6adbfac3))
12
+
13
+
14
+
15
+
16
+
6
17
  # [2.7.0](https://github.com/featurevisor/featurevisor/compare/v2.6.7...v2.7.0) (2026-02-05)
7
18
 
8
19
 
@@ -1,445 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1770332200832" clover="3.2.0">
3
- <project timestamp="1770332200832" name="All files">
4
- <metrics statements="806" coveredstatements="654" conditionals="437" coveredconditionals="334" methods="116" coveredmethods="100" elements="1359" coveredelements="1088" complexity="0" loc="806" ncloc="806" packages="6" files="16" classes="16"/>
5
- <package name="lib.builder">
6
- <metrics statements="276" coveredstatements="268" conditionals="173" coveredconditionals="151" methods="46" coveredmethods="46"/>
7
- <file name="allocator.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/allocator.js">
8
- <metrics statements="28" coveredstatements="28" conditionals="8" coveredconditionals="8" methods="2" coveredmethods="2"/>
9
- <line num="2" count="2" type="stmt"/>
10
- <line num="3" count="2" type="stmt"/>
11
- <line num="4" count="2" type="stmt"/>
12
- <line num="6" count="37" type="stmt"/>
13
- <line num="7" count="37" type="stmt"/>
14
- <line num="8" count="37" type="stmt"/>
15
- <line num="9" count="37" type="cond" truecount="2" falsecount="0"/>
16
- <line num="10" count="39" type="stmt"/>
17
- <line num="11" count="39" type="stmt"/>
18
- <line num="12" count="39" type="stmt"/>
19
- <line num="13" count="39" type="stmt"/>
20
- <line num="14" count="39" type="stmt"/>
21
- <line num="15" count="39" type="stmt"/>
22
- <line num="17" count="37" type="stmt"/>
23
- <line num="20" count="38" type="cond" truecount="2" falsecount="0"/>
24
- <line num="21" count="4" type="stmt"/>
25
- <line num="23" count="34" type="stmt"/>
26
- <line num="24" count="34" type="stmt"/>
27
- <line num="25" count="34" type="stmt"/>
28
- <line num="26" count="34" type="cond" truecount="2" falsecount="0"/>
29
- <line num="27" count="40" type="stmt"/>
30
- <line num="28" count="40" type="stmt"/>
31
- <line num="29" count="40" type="stmt"/>
32
- <line num="30" count="40" type="cond" truecount="2" falsecount="0"/>
33
- <line num="31" count="27" type="stmt"/>
34
- <line num="33" count="40" type="stmt"/>
35
- <line num="34" count="40" type="stmt"/>
36
- <line num="36" count="34" type="stmt"/>
37
- </file>
38
- <file name="buildScopedConditions.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/buildScopedConditions.js">
39
- <metrics statements="54" coveredstatements="54" conditionals="36" coveredconditionals="34" methods="15" coveredmethods="15"/>
40
- <line num="2" count="2" type="stmt"/>
41
- <line num="3" count="2" type="stmt"/>
42
- <line num="4" count="2" type="stmt"/>
43
- <line num="5" count="2" type="stmt"/>
44
- <line num="7" count="121" type="stmt"/>
45
- <line num="8" count="121" type="stmt"/>
46
- <line num="9" count="121" type="stmt"/>
47
- <line num="12" count="453" type="cond" truecount="2" falsecount="0"/>
48
- <line num="13" count="201" type="stmt"/>
49
- <line num="15" count="252" type="cond" truecount="2" falsecount="0"/>
50
- <line num="17" count="109" type="stmt"/>
51
- <line num="19" count="109" type="stmt"/>
52
- <line num="21" count="90" type="cond" truecount="2" falsecount="0"/>
53
- <line num="22" count="57" type="stmt"/>
54
- <line num="24" count="33" type="stmt"/>
55
- <line num="26" count="162" type="cond" truecount="1" falsecount="1"/>
56
- <line num="27" count="162" type="cond" truecount="2" falsecount="0"/>
57
- <line num="28" count="97" type="stmt"/>
58
- <line num="29" count="97" type="stmt"/>
59
- <line num="31" count="38" type="cond" truecount="2" falsecount="0"/>
60
- <line num="32" count="18" type="stmt"/>
61
- <line num="34" count="20" type="stmt"/>
62
- <line num="38" count="124" type="cond" truecount="2" falsecount="0"/>
63
- <line num="39" count="69" type="stmt"/>
64
- <line num="40" count="69" type="stmt"/>
65
- <line num="42" count="28" type="cond" truecount="2" falsecount="0"/>
66
- <line num="43" count="5" type="stmt"/>
67
- <line num="45" count="23" type="stmt"/>
68
- <line num="49" count="96" type="cond" truecount="2" falsecount="0"/>
69
- <line num="50" count="30" type="stmt"/>
70
- <line num="51" count="30" type="stmt"/>
71
- <line num="53" count="13" type="cond" truecount="2" falsecount="0"/>
72
- <line num="54" count="7" type="stmt"/>
73
- <line num="56" count="6" type="stmt"/>
74
- <line num="61" count="83" type="stmt"/>
75
- <line num="64" count="395" type="cond" truecount="2" falsecount="0"/>
76
- <line num="65" count="7" type="stmt"/>
77
- <line num="67" count="388" type="cond" truecount="2" falsecount="0"/>
78
- <line num="68" count="104" type="stmt"/>
79
- <line num="70" count="296" type="cond" truecount="1" falsecount="1"/>
80
- <line num="72" count="296" type="cond" truecount="2" falsecount="0"/>
81
- <line num="73" count="219" type="stmt"/>
82
- <line num="74" count="219" type="cond" truecount="2" falsecount="0"/>
83
- <line num="75" count="142" type="stmt"/>
84
- <line num="79" count="154" type="cond" truecount="2" falsecount="0"/>
85
- <line num="80" count="36" type="stmt"/>
86
- <line num="81" count="68" type="stmt"/>
87
- <line num="84" count="118" type="cond" truecount="2" falsecount="0"/>
88
- <line num="85" count="29" type="stmt"/>
89
- <line num="86" count="54" type="stmt"/>
90
- <line num="89" count="89" type="cond" truecount="2" falsecount="0"/>
91
- <line num="90" count="12" type="stmt"/>
92
- <line num="91" count="16" type="stmt"/>
93
- <line num="95" count="77" type="stmt"/>
94
- </file>
95
- <file name="buildScopedDatafile.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/buildScopedDatafile.js">
96
- <metrics statements="61" coveredstatements="61" conditionals="29" coveredconditionals="26" methods="1" coveredmethods="1"/>
97
- <line num="2" count="1" type="stmt"/>
98
- <line num="3" count="1" type="stmt"/>
99
- <line num="4" count="1" type="stmt"/>
100
- <line num="5" count="1" type="stmt"/>
101
- <line num="6" count="1" type="stmt"/>
102
- <line num="8" count="68" type="stmt"/>
103
- <line num="12" count="68" type="stmt"/>
104
- <line num="13" count="68" type="stmt"/>
105
- <line num="15" count="68" type="stmt"/>
106
- <line num="16" count="77" type="stmt"/>
107
- <line num="17" count="77" type="stmt"/>
108
- <line num="18" count="77" type="stmt"/>
109
- <line num="19" count="77" type="stmt"/>
110
- <line num="20" count="77" type="cond" truecount="2" falsecount="0"/>
111
- <line num="21" count="52" type="stmt"/>
112
- <line num="25" count="68" type="stmt"/>
113
- <line num="26" count="56" type="stmt"/>
114
- <line num="28" count="56" type="cond" truecount="2" falsecount="0"/>
115
- <line num="29" count="19" type="stmt"/>
116
- <line num="30" count="19" type="stmt"/>
117
- <line num="32" count="19" type="cond" truecount="2" falsecount="0"/>
118
- <line num="33" count="13" type="stmt"/>
119
- <line num="36" count="19" type="cond" truecount="2" falsecount="0"/>
120
- <line num="37" count="7" type="stmt"/>
121
- <line num="42" count="56" type="stmt"/>
122
- <line num="43" count="56" type="cond" truecount="1" falsecount="1"/>
123
- <line num="44" count="56" type="stmt"/>
124
- <line num="45" count="33" type="stmt"/>
125
- <line num="47" count="33" type="stmt"/>
126
- <line num="49" count="33" type="cond" truecount="1" falsecount="1"/>
127
- <line num="50" count="33" type="stmt"/>
128
- <line num="55" count="56" type="cond" truecount="2" falsecount="0"/>
129
- <line num="56" count="21" type="stmt"/>
130
- <line num="57" count="21" type="stmt"/>
131
- <line num="58" count="21" type="stmt"/>
132
- <line num="60" count="21" type="cond" truecount="2" falsecount="0"/>
133
- <line num="61" count="20" type="stmt"/>
134
- <line num="62" count="20" type="stmt"/>
135
- <line num="63" count="20" type="stmt"/>
136
- <line num="64" count="21" type="stmt"/>
137
- <line num="66" count="21" type="cond" truecount="2" falsecount="0"/>
138
- <line num="67" count="16" type="stmt"/>
139
- <line num="70" count="21" type="cond" truecount="2" falsecount="0"/>
140
- <line num="71" count="5" type="stmt"/>
141
- <line num="73" count="21" type="stmt"/>
142
- <line num="77" count="21" type="stmt"/>
143
- <line num="81" count="56" type="cond" truecount="1" falsecount="1"/>
144
- <line num="82" count="56" type="stmt"/>
145
- <line num="84" count="56" type="stmt"/>
146
- <line num="85" count="33" type="stmt"/>
147
- <line num="86" count="33" type="stmt"/>
148
- <line num="87" count="33" type="cond" truecount="5" falsecount="0"/>
149
- <line num="90" count="6" type="stmt"/>
150
- <line num="92" count="33" type="cond" truecount="2" falsecount="0"/>
151
- <line num="93" count="27" type="stmt"/>
152
- <line num="94" count="27" type="stmt"/>
153
- <line num="97" count="56" type="stmt"/>
154
- <line num="99" count="56" type="stmt"/>
155
- <line num="102" count="68" type="stmt"/>
156
- <line num="103" count="52" type="stmt"/>
157
- <line num="105" count="68" type="stmt"/>
158
- </file>
159
- <file name="buildScopedSegments.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/buildScopedSegments.js">
160
- <metrics statements="56" coveredstatements="56" conditionals="40" coveredconditionals="38" methods="15" coveredmethods="15"/>
161
- <line num="2" count="2" type="stmt"/>
162
- <line num="3" count="2" type="stmt"/>
163
- <line num="4" count="2" type="stmt"/>
164
- <line num="5" count="2" type="stmt"/>
165
- <line num="7" count="96" type="stmt"/>
166
- <line num="8" count="96" type="stmt"/>
167
- <line num="9" count="96" type="stmt"/>
168
- <line num="12" count="356" type="cond" truecount="2" falsecount="0"/>
169
- <line num="13" count="192" type="stmt"/>
170
- <line num="15" count="164" type="cond" truecount="2" falsecount="0"/>
171
- <line num="17" count="39" type="stmt"/>
172
- <line num="19" count="39" type="stmt"/>
173
- <line num="21" count="18" type="cond" truecount="2" falsecount="0"/>
174
- <line num="22" count="9" type="stmt"/>
175
- <line num="24" count="9" type="stmt"/>
176
- <line num="26" count="146" type="cond" truecount="2" falsecount="0"/>
177
- <line num="27" count="78" type="cond" truecount="2" falsecount="0"/>
178
- <line num="28" count="95" type="stmt"/>
179
- <line num="29" count="95" type="stmt"/>
180
- <line num="31" count="37" type="cond" truecount="2" falsecount="0"/>
181
- <line num="32" count="19" type="stmt"/>
182
- <line num="34" count="18" type="stmt"/>
183
- <line num="38" count="41" type="cond" truecount="2" falsecount="0"/>
184
- <line num="39" count="69" type="stmt"/>
185
- <line num="40" count="69" type="stmt"/>
186
- <line num="42" count="28" type="cond" truecount="2" falsecount="0"/>
187
- <line num="43" count="6" type="stmt"/>
188
- <line num="45" count="22" type="stmt"/>
189
- <line num="49" count="13" type="cond" truecount="1" falsecount="1"/>
190
- <line num="50" count="30" type="stmt"/>
191
- <line num="51" count="30" type="stmt"/>
192
- <line num="53" count="13" type="cond" truecount="2" falsecount="0"/>
193
- <line num="54" count="7" type="stmt"/>
194
- <line num="56" count="6" type="stmt"/>
195
- <line num="61" count="68" type="stmt"/>
196
- <line num="64" count="334" type="cond" truecount="2" falsecount="0"/>
197
- <line num="65" count="15" type="stmt"/>
198
- <line num="67" count="319" type="cond" truecount="2" falsecount="0"/>
199
- <line num="68" count="45" type="stmt"/>
200
- <line num="70" count="296" type="cond" truecount="2" falsecount="0"/>
201
- <line num="71" count="217" type="cond" truecount="2" falsecount="0"/>
202
- <line num="72" count="75" type="stmt"/>
203
- <line num="74" count="142" type="stmt"/>
204
- <line num="75" count="142" type="cond" truecount="2" falsecount="0"/>
205
- <line num="76" count="67" type="stmt"/>
206
- <line num="79" count="154" type="cond" truecount="2" falsecount="0"/>
207
- <line num="81" count="79" type="cond" truecount="2" falsecount="0"/>
208
- <line num="82" count="35" type="stmt"/>
209
- <line num="83" count="71" type="stmt"/>
210
- <line num="86" count="44" type="cond" truecount="2" falsecount="0"/>
211
- <line num="87" count="31" type="stmt"/>
212
- <line num="88" count="61" type="stmt"/>
213
- <line num="91" count="13" type="cond" truecount="1" falsecount="1"/>
214
- <line num="92" count="13" type="stmt"/>
215
- <line num="93" count="18" type="stmt"/>
216
- <line num="97" count="75" type="stmt"/>
217
- </file>
218
- <file name="revision.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/revision.js">
219
- <metrics statements="11" coveredstatements="10" conditionals="8" coveredconditionals="7" methods="1" coveredmethods="1"/>
220
- <line num="2" count="1" type="stmt"/>
221
- <line num="3" count="1" type="stmt"/>
222
- <line num="6" count="7" type="cond" truecount="4" falsecount="0"/>
223
- <line num="7" count="2" type="stmt"/>
224
- <line num="10" count="5" type="cond" truecount="2" falsecount="0"/>
225
- <line num="11" count="2" type="stmt"/>
226
- <line num="14" count="3" type="stmt"/>
227
- <line num="15" count="3" type="stmt"/>
228
- <line num="16" count="3" type="cond" truecount="1" falsecount="1"/>
229
- <line num="17" count="3" type="stmt"/>
230
- <line num="20" count="0" type="stmt"/>
231
- </file>
232
- <file name="traffic.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/builder/traffic.js">
233
- <metrics statements="66" coveredstatements="59" conditionals="52" coveredconditionals="38" methods="12" coveredmethods="12"/>
234
- <line num="2" count="1" type="stmt"/>
235
- <line num="3" count="1" type="stmt"/>
236
- <line num="4" count="1" type="stmt"/>
237
- <line num="5" count="1" type="stmt"/>
238
- <line num="6" count="1" type="stmt"/>
239
- <line num="7" count="1" type="stmt"/>
240
- <line num="8" count="1" type="stmt"/>
241
- <line num="11" count="13" type="cond" truecount="4" falsecount="0"/>
242
- <line num="12" count="4" type="cond" truecount="3" falsecount="1"/>
243
- <line num="15" count="4" type="stmt"/>
244
- <line num="18" count="0" type="stmt"/>
245
- <line num="20" count="9" type="cond" truecount="1" falsecount="1"/>
246
- <line num="21" count="21" type="stmt"/>
247
- <line num="23" count="22" type="stmt"/>
248
- <line num="30" count="13" type="cond" truecount="2" falsecount="0"/>
249
- <line num="31" count="4" type="stmt"/>
250
- <line num="33" count="9" type="stmt"/>
251
- <line num="34" count="9" type="stmt"/>
252
- <line num="38" count="13" type="cond" truecount="2" falsecount="0"/>
253
- <line num="39" count="4" type="stmt"/>
254
- <line num="41" count="9" type="cond" truecount="1" falsecount="1"/>
255
- <line num="42" count="9" type="stmt"/>
256
- <line num="44" count="0" type="stmt"/>
257
- <line num="53" count="13" type="stmt"/>
258
- <line num="55" count="13" type="cond" truecount="2" falsecount="2"/>
259
- <line num="56" count="13" type="stmt"/>
260
- <line num="57" count="13" type="stmt"/>
261
- <line num="58" count="13" type="stmt"/>
262
- <line num="66" count="13" type="cond" truecount="1" falsecount="1"/>
263
- <line num="67" count="0" type="stmt"/>
264
- <line num="69" count="13" type="cond" truecount="1" falsecount="1"/>
265
- <line num="70" count="0" type="stmt"/>
266
- <line num="73" count="13" type="stmt"/>
267
- <line num="74" count="13" type="stmt"/>
268
- <line num="75" count="13" type="stmt"/>
269
- <line num="76" count="13" type="stmt"/>
270
- <line num="77" count="13" type="cond" truecount="5" falsecount="0"/>
271
- <line num="85" count="13" type="stmt"/>
272
- <line num="86" count="13" type="cond" truecount="5" falsecount="0"/>
273
- <line num="88" count="1" type="stmt"/>
274
- <line num="89" count="1" type="stmt"/>
275
- <line num="90" count="2" type="stmt"/>
276
- <line num="94" count="2" type="stmt"/>
277
- <line num="95" count="2" type="stmt"/>
278
- <line num="97" count="1" type="stmt"/>
279
- <line num="99" count="13" type="cond" truecount="1" falsecount="1"/>
280
- <line num="100" count="13" type="stmt"/>
281
- <line num="101" count="30" type="stmt"/>
282
- <line num="102" count="30" type="cond" truecount="2" falsecount="2"/>
283
- <line num="104" count="0" type="stmt"/>
284
- <line num="106" count="30" type="stmt"/>
285
- <line num="107" count="30" type="cond" truecount="2" falsecount="0"/>
286
- <line num="110" count="30" type="stmt"/>
287
- <line num="111" count="30" type="stmt"/>
288
- <line num="112" count="26" type="cond" truecount="1" falsecount="1"/>
289
- <line num="113" count="26" type="stmt"/>
290
- <line num="119" count="30" type="stmt"/>
291
- <line num="122" count="13" type="cond" truecount="1" falsecount="1"/>
292
- <line num="123" count="13" type="stmt"/>
293
- <line num="124" count="28" type="cond" truecount="3" falsecount="1"/>
294
- <line num="125" count="0" type="stmt"/>
295
- <line num="127" count="28" type="stmt"/>
296
- <line num="129" count="13" type="cond" truecount="1" falsecount="1"/>
297
- <line num="130" count="0" type="stmt"/>
298
- <line num="133" count="13" type="stmt"/>
299
- <line num="135" count="13" type="stmt"/>
300
- </file>
301
- </package>
302
- <package name="lib.list">
303
- <metrics statements="85" coveredstatements="20" conditionals="43" coveredconditionals="4" methods="10" coveredmethods="2"/>
304
- <file name="matrix.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/list/matrix.js">
305
- <metrics statements="85" coveredstatements="20" conditionals="43" coveredconditionals="4" methods="10" coveredmethods="2"/>
306
- <line num="2" count="1" type="stmt"/>
307
- <line num="3" count="1" type="stmt"/>
308
- <line num="4" count="1" type="stmt"/>
309
- <line num="5" count="1" type="stmt"/>
310
- <line num="6" count="1" type="stmt"/>
311
- <line num="7" count="1" type="stmt"/>
312
- <line num="8" count="1" type="stmt"/>
313
- <line num="10" count="10" type="stmt"/>
314
- <line num="11" count="10" type="stmt"/>
315
- <line num="12" count="10" type="stmt"/>
316
- <line num="13" count="20" type="stmt"/>
317
- <line num="14" count="20" type="cond" truecount="2" falsecount="0"/>
318
- <line num="15" count="12" type="stmt"/>
319
- <line num="18" count="8" type="stmt"/>
320
- <line num="23" count="3" type="stmt"/>
321
- <line num="24" count="3" type="cond" truecount="2" falsecount="0"/>
322
- <line num="25" count="1" type="stmt"/>
323
- <line num="27" count="2" type="stmt"/>
324
- <line num="28" count="2" type="stmt"/>
325
- <line num="29" count="2" type="stmt"/>
326
- <line num="32" count="0" type="cond" truecount="0" falsecount="2"/>
327
- <line num="33" count="0" type="stmt"/>
328
- <line num="35" count="0" type="cond" truecount="0" falsecount="2"/>
329
- <line num="36" count="0" type="stmt"/>
330
- <line num="39" count="0" type="cond" truecount="0" falsecount="5"/>
331
- <line num="40" count="0" type="stmt"/>
332
- <line num="41" count="0" type="stmt"/>
333
- <line num="44" count="0" type="stmt"/>
334
- <line num="46" count="0" type="stmt"/>
335
- <line num="52" count="0" type="stmt"/>
336
- <line num="54" count="0" type="stmt"/>
337
- <line num="56" count="0" type="cond" truecount="0" falsecount="2"/>
338
- <line num="57" count="0" type="stmt"/>
339
- <line num="58" count="0" type="stmt"/>
340
- <line num="61" count="0" type="stmt"/>
341
- <line num="62" count="0" type="cond" truecount="0" falsecount="2"/>
342
- <line num="63" count="0" type="stmt"/>
343
- <line num="69" count="0" type="cond" truecount="0" falsecount="2"/>
344
- <line num="70" count="0" type="stmt"/>
345
- <line num="73" count="0" type="cond" truecount="0" falsecount="2"/>
346
- <line num="74" count="0" type="stmt"/>
347
- <line num="77" count="0" type="cond" truecount="0" falsecount="2"/>
348
- <line num="78" count="0" type="stmt"/>
349
- <line num="80" count="0" type="stmt"/>
350
- <line num="83" count="0" type="cond" truecount="0" falsecount="2"/>
351
- <line num="84" count="0" type="stmt"/>
352
- <line num="86" count="0" type="cond" truecount="0" falsecount="2"/>
353
- <line num="87" count="0" type="stmt"/>
354
- <line num="89" count="0" type="cond" truecount="0" falsecount="2"/>
355
- <line num="90" count="0" type="stmt"/>
356
- <line num="93" count="0" type="stmt"/>
357
- <line num="95" count="0" type="stmt"/>
358
- <line num="96" count="0" type="stmt"/>
359
- <line num="98" count="0" type="stmt"/>
360
- <line num="99" count="0" type="stmt"/>
361
- <line num="100" count="0" type="stmt"/>
362
- <line num="101" count="0" type="stmt"/>
363
- <line num="102" count="0" type="stmt"/>
364
- <line num="104" count="0" type="cond" truecount="0" falsecount="2"/>
365
- <line num="105" count="0" type="stmt"/>
366
- <line num="107" count="0" type="cond" truecount="0" falsecount="2"/>
367
- <line num="108" count="0" type="stmt"/>
368
- <line num="111" count="0" type="stmt"/>
369
- <line num="113" count="0" type="stmt"/>
370
- <line num="114" count="0" type="stmt"/>
371
- <line num="116" count="0" type="stmt"/>
372
- <line num="122" count="0" type="stmt"/>
373
- <line num="124" count="0" type="stmt"/>
374
- <line num="125" count="0" type="stmt"/>
375
- <line num="126" count="0" type="stmt"/>
376
- <line num="129" count="0" type="cond" truecount="0" falsecount="2"/>
377
- <line num="130" count="0" type="stmt"/>
378
- <line num="132" count="0" type="stmt"/>
379
- <line num="135" count="0" type="cond" truecount="0" falsecount="2"/>
380
- <line num="136" count="0" type="stmt"/>
381
- <line num="137" count="0" type="cond" truecount="0" falsecount="2"/>
382
- <line num="138" count="0" type="stmt"/>
383
- <line num="140" count="0" type="stmt"/>
384
- <line num="141" count="0" type="stmt"/>
385
- <line num="142" count="0" type="stmt"/>
386
- <line num="143" count="0" type="stmt"/>
387
- <line num="144" count="0" type="stmt"/>
388
- <line num="145" count="0" type="cond" truecount="0" falsecount="2"/>
389
- <line num="146" count="0" type="stmt"/>
390
- <line num="148" count="0" type="stmt"/>
391
- </file>
392
- </package>
393
- <package name="lib.tester">
394
- <metrics statements="43" coveredstatements="40" conditionals="50" coveredconditionals="47" methods="2" coveredmethods="2"/>
395
- <file name="helpers.js" path="/home/runner/work/featurevisor/featurevisor/packages/core/lib/tester/helpers.js">
396
- <metrics statements="43" coveredstatements="40" conditionals="50" coveredconditionals="47" methods="2" coveredmethods="2"/>
397
- <line num="2" count="1" type="stmt"/>
398
- <line num="3" count="1" type="stmt"/>
399
- <line num="4" count="1" type="stmt"/>
400
- <line num="6" count="23" type="cond" truecount="1" falsecount="1"/>
401
- <line num="7" count="0" type="stmt"/>
402
- <line num="9" count="23" type="cond" truecount="5" falsecount="1"/>
403
- <line num="10" count="0" type="stmt"/>
404
- <line num="12" count="23" type="stmt"/>
405
- <line num="13" count="23" type="stmt"/>
406
- <line num="14" count="23" type="cond" truecount="2" falsecount="0"/>
407
- <line num="15" count="3" type="stmt"/>
408
- <line num="17" count="20" type="stmt"/>
409
- <line num="18" count="24" type="cond" truecount="2" falsecount="0"/>
410
- <line num="19" count="1" type="stmt"/>
411
- <line num="21" count="23" type="stmt"/>
412
- <line num="22" count="23" type="stmt"/>
413
- <line num="23" count="23" type="cond" truecount="4" falsecount="0"/>
414
- <line num="24" count="4" type="cond" truecount="2" falsecount="0"/>
415
- <line num="25" count="1" type="stmt"/>
416
- <line num="28" count="19" type="cond" truecount="4" falsecount="0"/>
417
- <line num="29" count="4" type="cond" truecount="2" falsecount="0"/>
418
- <line num="30" count="2" type="stmt"/>
419
- <line num="33" count="15" type="cond" truecount="2" falsecount="0"/>
420
- <line num="34" count="4" type="stmt"/>
421
- <line num="37" count="12" type="stmt"/>
422
- <line num="40" count="29" type="cond" truecount="1" falsecount="1"/>
423
- <line num="41" count="0" type="stmt"/>
424
- <line num="43" count="29" type="cond" truecount="4" falsecount="0"/>
425
- <line num="44" count="3" type="stmt"/>
426
- <line num="46" count="26" type="cond" truecount="2" falsecount="0"/>
427
- <line num="47" count="3" type="stmt"/>
428
- <line num="49" count="23" type="stmt"/>
429
- <line num="50" count="44" type="stmt"/>
430
- <line num="51" count="44" type="stmt"/>
431
- <line num="52" count="44" type="cond" truecount="4" falsecount="0"/>
432
- <line num="53" count="4" type="cond" truecount="2" falsecount="0"/>
433
- <line num="54" count="1" type="stmt"/>
434
- <line num="57" count="40" type="cond" truecount="6" falsecount="0"/>
435
- <line num="61" count="6" type="cond" truecount="2" falsecount="0"/>
436
- <line num="62" count="2" type="stmt"/>
437
- <line num="65" count="34" type="cond" truecount="2" falsecount="0"/>
438
- <line num="66" count="6" type="stmt"/>
439
- <line num="69" count="14" type="stmt"/>
440
- </file>
441
- </package>
442
- <package name="src.builder">
2
+ <coverage generated="1770569303624" clover="3.2.0">
3
+ <project timestamp="1770569303624" name="All files">
4
+ <metrics statements="497" coveredstatements="416" conditionals="232" coveredconditionals="179" methods="70" coveredmethods="62" elements="799" coveredelements="657" complexity="0" loc="497" ncloc="497" packages="4" files="10" classes="10"/>
5
+ <package name="builder">
443
6
  <metrics statements="276" coveredstatements="268" conditionals="104" coveredconditionals="95" methods="46" coveredmethods="46"/>
444
7
  <file name="allocator.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/builder/allocator.ts">
445
8
  <metrics statements="27" coveredstatements="27" conditionals="6" coveredconditionals="6" methods="2" coveredmethods="2"/>
@@ -736,7 +299,7 @@
736
299
  <line num="190" count="13" type="stmt"/>
737
300
  </file>
738
301
  </package>
739
- <package name="src.list">
302
+ <package name="list">
740
303
  <metrics statements="84" coveredstatements="19" conditionals="30" coveredconditionals="3" methods="10" coveredmethods="2"/>
741
304
  <file name="matrix.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/list/matrix.ts">
742
305
  <metrics statements="84" coveredstatements="19" conditionals="30" coveredconditionals="3" methods="10" coveredmethods="2"/>
@@ -826,7 +389,111 @@
826
389
  <line num="216" count="0" type="stmt"/>
827
390
  </file>
828
391
  </package>
829
- <package name="src.tester">
392
+ <package name="parsers">
393
+ <metrics statements="95" coveredstatements="90" conditionals="61" coveredconditionals="47" methods="12" coveredmethods="12"/>
394
+ <file name="json.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/parsers/json.ts">
395
+ <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
396
+ <line num="3" count="1" type="stmt"/>
397
+ <line num="6" count="3" type="stmt"/>
398
+ <line num="9" count="2" type="stmt"/>
399
+ </file>
400
+ <file name="yml.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/parsers/yml.ts">
401
+ <metrics statements="92" coveredstatements="87" conditionals="61" coveredconditionals="47" methods="10" coveredmethods="10"/>
402
+ <line num="1" count="1" type="stmt"/>
403
+ <line num="3" count="1" type="stmt"/>
404
+ <line num="5" count="1" type="stmt"/>
405
+ <line num="10" count="8" type="cond" truecount="0" falsecount="1"/>
406
+ <line num="11" count="8" type="cond" truecount="1" falsecount="0"/>
407
+ <line num="12" count="8" type="stmt"/>
408
+ <line num="14" count="0" type="cond" truecount="0" falsecount="2"/>
409
+ <line num="18" count="5" type="cond" truecount="0" falsecount="1"/>
410
+ <line num="19" count="5" type="cond" truecount="1" falsecount="0"/>
411
+ <line num="20" count="5" type="stmt"/>
412
+ <line num="23" count="5" type="stmt"/>
413
+ <line num="24" count="5" type="cond" truecount="5" falsecount="0"/>
414
+ <line num="25" count="5" type="stmt"/>
415
+ <line num="26" count="5" type="cond" truecount="1" falsecount="0"/>
416
+ <line num="27" count="5" type="cond" truecount="0" falsecount="1"/>
417
+ <line num="32" count="1" type="cond" truecount="3" falsecount="0"/>
418
+ <line num="36" count="1" type="cond" truecount="3" falsecount="0"/>
419
+ <line num="40" count="3" type="cond" truecount="0" falsecount="1"/>
420
+ <line num="41" count="3" type="stmt"/>
421
+ <line num="42" count="3" type="cond" truecount="1" falsecount="0"/>
422
+ <line num="43" count="0" type="cond" truecount="0" falsecount="1"/>
423
+ <line num="44" count="0" type="stmt"/>
424
+ <line num="48" count="3" type="stmt"/>
425
+ <line num="56" count="10" type="cond" truecount="3" falsecount="0"/>
426
+ <line num="57" count="8" type="stmt"/>
427
+ <line num="58" count="8" type="stmt"/>
428
+ <line num="59" count="8" type="cond" truecount="1" falsecount="0"/>
429
+ <line num="60" count="5" type="cond" truecount="1" falsecount="0"/>
430
+ <line num="61" count="5" type="cond" truecount="0" falsecount="1"/>
431
+ <line num="63" count="8" type="stmt"/>
432
+ <line num="65" count="2" type="cond" truecount="1" falsecount="0"/>
433
+ <line num="66" count="1" type="cond" truecount="1" falsecount="1"/>
434
+ <line num="67" count="1" type="stmt"/>
435
+ <line num="68" count="1" type="cond" truecount="3" falsecount="0"/>
436
+ <line num="69" count="1" type="stmt"/>
437
+ <line num="70" count="3" type="stmt"/>
438
+ <line num="73" count="1" type="stmt"/>
439
+ <line num="74" count="1" type="stmt"/>
440
+ <line num="75" count="3" type="stmt"/>
441
+ <line num="76" count="3" type="stmt"/>
442
+ <line num="77" count="3" type="stmt"/>
443
+ <line num="79" count="1" type="stmt"/>
444
+ <line num="82" count="1" type="cond" truecount="1" falsecount="1"/>
445
+ <line num="83" count="1" type="stmt"/>
446
+ <line num="84" count="1" type="cond" truecount="1" falsecount="0"/>
447
+ <line num="85" count="1" type="cond" truecount="1" falsecount="1"/>
448
+ <line num="86" count="2" type="stmt"/>
449
+ <line num="87" count="2" type="cond" truecount="1" falsecount="0"/>
450
+ <line num="90" count="1" type="stmt"/>
451
+ <line num="91" count="1" type="stmt"/>
452
+ <line num="92" count="1" type="stmt"/>
453
+ <line num="93" count="2" type="stmt"/>
454
+ <line num="94" count="2" type="cond" truecount="2" falsecount="0"/>
455
+ <line num="95" count="2" type="stmt"/>
456
+ <line num="96" count="2" type="stmt"/>
457
+ <line num="97" count="2" type="cond" truecount="1" falsecount="0"/>
458
+ <line num="98" count="2" type="stmt"/>
459
+ <line num="100" count="1" type="stmt"/>
460
+ <line num="101" count="1" type="stmt"/>
461
+ <line num="102" count="1" type="cond" truecount="3" falsecount="0"/>
462
+ <line num="103" count="1" type="cond" truecount="0" falsecount="1"/>
463
+ <line num="104" count="1" type="cond" truecount="0" falsecount="1"/>
464
+ <line num="106" count="1" type="stmt"/>
465
+ <line num="116" count="2" type="stmt"/>
466
+ <line num="117" count="2" type="cond" truecount="2" falsecount="1"/>
467
+ <line num="118" count="0" type="stmt"/>
468
+ <line num="119" count="0" type="stmt"/>
469
+ <line num="122" count="2" type="stmt"/>
470
+ <line num="123" count="2" type="stmt"/>
471
+ <line num="124" count="2" type="stmt"/>
472
+ <line num="125" count="6" type="stmt"/>
473
+ <line num="126" count="6" type="cond" truecount="1" falsecount="0"/>
474
+ <line num="129" count="2" type="stmt"/>
475
+ <line num="130" count="2" type="stmt"/>
476
+ <line num="131" count="5" type="stmt"/>
477
+ <line num="132" count="5" type="stmt"/>
478
+ <line num="133" count="5" type="stmt"/>
479
+ <line num="134" count="5" type="cond" truecount="1" falsecount="0"/>
480
+ <line num="135" count="5" type="stmt"/>
481
+ <line num="138" count="2" type="stmt"/>
482
+ <line num="141" count="1" type="stmt"/>
483
+ <line num="144" count="3" type="stmt"/>
484
+ <line num="147" count="7" type="cond" truecount="3" falsecount="0"/>
485
+ <line num="148" count="3" type="stmt"/>
486
+ <line num="151" count="4" type="stmt"/>
487
+ <line num="152" count="4" type="cond" truecount="1" falsecount="0"/>
488
+ <line num="153" count="1" type="stmt"/>
489
+ <line num="157" count="3" type="cond" truecount="4" falsecount="0"/>
490
+ <line num="158" count="1" type="stmt"/>
491
+ <line num="161" count="2" type="stmt"/>
492
+ <line num="165" count="2" type="stmt"/>
493
+ <line num="166" count="2" type="stmt"/>
494
+ </file>
495
+ </package>
496
+ <package name="tester">
830
497
  <metrics statements="42" coveredstatements="39" conditionals="37" coveredconditionals="34" methods="2" coveredmethods="2"/>
831
498
  <file name="helpers.ts" path="/home/runner/work/featurevisor/featurevisor/packages/core/src/tester/helpers.ts">
832
499
  <metrics statements="42" coveredstatements="39" conditionals="37" coveredconditionals="34" methods="2" coveredmethods="2"/>