@featurevisor/core 2.14.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.
- package/CHANGELOG.md +11 -0
- package/coverage/clover.xml +774 -652
- package/coverage/coverage-final.json +19 -18
- package/coverage/lcov-report/builder/allocator.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedConditions.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedDatafile.ts.html +1 -1
- package/coverage/lcov-report/builder/buildScopedSegments.ts.html +1 -1
- package/coverage/lcov-report/builder/index.html +1 -1
- package/coverage/lcov-report/builder/mutateVariables.ts.html +1 -1
- package/coverage/lcov-report/builder/mutator.ts.html +1 -1
- package/coverage/lcov-report/builder/revision.ts.html +1 -1
- package/coverage/lcov-report/builder/traffic.ts.html +1 -1
- package/coverage/lcov-report/config/index.html +30 -15
- package/coverage/lcov-report/config/index.ts.html +88 -0
- package/coverage/lcov-report/config/projectConfig.ts.html +79 -46
- package/coverage/lcov-report/datasource/adapter.ts.html +74 -11
- package/coverage/lcov-report/datasource/datasource.ts.html +76 -25
- package/coverage/lcov-report/datasource/filesystemAdapter.ts.html +690 -66
- package/coverage/lcov-report/datasource/index.html +35 -35
- package/coverage/lcov-report/datasource/index.ts.html +1 -1
- package/coverage/lcov-report/index.html +43 -43
- package/coverage/lcov-report/linter/attributeSchema.ts.html +4 -4
- package/coverage/lcov-report/linter/checkCircularDependency.ts.html +1 -1
- package/coverage/lcov-report/linter/checkPercentageExceedingSlot.ts.html +1 -1
- package/coverage/lcov-report/linter/conditionSchema.ts.html +7 -7
- package/coverage/lcov-report/linter/featureSchema.ts.html +152 -164
- package/coverage/lcov-report/linter/groupSchema.ts.html +3 -3
- package/coverage/lcov-report/linter/index.html +34 -34
- package/coverage/lcov-report/linter/lintProject.ts.html +428 -83
- package/coverage/lcov-report/linter/mutationNotation.ts.html +3 -3
- package/coverage/lcov-report/linter/printError.ts.html +9 -9
- package/coverage/lcov-report/linter/schema.ts.html +4 -4
- package/coverage/lcov-report/linter/segmentSchema.ts.html +3 -3
- package/coverage/lcov-report/linter/testSchema.ts.html +6 -6
- package/coverage/lcov-report/list/index.html +1 -1
- package/coverage/lcov-report/list/matrix.ts.html +1 -1
- package/coverage/lcov-report/parsers/index.html +1 -1
- package/coverage/lcov-report/parsers/index.ts.html +4 -4
- package/coverage/lcov-report/parsers/json.ts.html +2 -2
- package/coverage/lcov-report/parsers/yml.ts.html +6 -6
- package/coverage/lcov-report/tester/cliFormat.ts.html +1 -1
- package/coverage/lcov-report/tester/helpers.ts.html +1 -1
- package/coverage/lcov-report/tester/index.html +1 -1
- package/coverage/lcov-report/utils/git.ts.html +118 -16
- package/coverage/lcov-report/utils/index.html +14 -14
- package/coverage/lcov.info +1374 -1107
- package/lib/config/projectConfig.d.ts +3 -0
- package/lib/config/projectConfig.js +7 -1
- package/lib/config/projectConfig.js.map +1 -1
- package/lib/config/projectConfig.spec.d.ts +1 -0
- package/lib/config/projectConfig.spec.js +24 -0
- package/lib/config/projectConfig.spec.js.map +1 -0
- package/lib/datasource/adapter.d.ts +7 -0
- package/lib/datasource/adapter.js +7 -0
- package/lib/datasource/adapter.js.map +1 -1
- package/lib/datasource/datasource.d.ts +3 -1
- package/lib/datasource/datasource.js +6 -0
- package/lib/datasource/datasource.js.map +1 -1
- package/lib/datasource/filesystemAdapter.d.ts +8 -0
- package/lib/datasource/filesystemAdapter.js +134 -7
- package/lib/datasource/filesystemAdapter.js.map +1 -1
- package/lib/datasource/filesystemAdapter.spec.d.ts +1 -0
- package/lib/datasource/filesystemAdapter.spec.js +88 -0
- package/lib/datasource/filesystemAdapter.spec.js.map +1 -0
- package/lib/linter/conditionSchema.spec.js +2 -0
- package/lib/linter/conditionSchema.spec.js.map +1 -1
- package/lib/linter/featureSchema.js +46 -49
- package/lib/linter/featureSchema.js.map +1 -1
- package/lib/linter/featureSchema.spec.js +17 -0
- package/lib/linter/featureSchema.spec.js.map +1 -1
- package/lib/linter/lintProject.d.ts +2 -0
- package/lib/linter/lintProject.js +85 -8
- package/lib/linter/lintProject.js.map +1 -1
- package/lib/linter/lintProject.spec.js +37 -0
- package/lib/linter/lintProject.spec.js.map +1 -1
- package/lib/linter/segmentSchema.spec.js +2 -0
- package/lib/linter/segmentSchema.spec.js.map +1 -1
- package/lib/utils/git.js +32 -7
- package/lib/utils/git.js.map +1 -1
- package/package.json +2 -2
- package/src/config/projectConfig.spec.ts +31 -0
- package/src/config/projectConfig.ts +11 -0
- package/src/datasource/adapter.ts +21 -0
- package/src/datasource/datasource.ts +18 -1
- package/src/datasource/filesystemAdapter.spec.ts +153 -0
- package/src/datasource/filesystemAdapter.ts +216 -8
- package/src/linter/conditionSchema.spec.ts +2 -0
- package/src/linter/featureSchema.spec.ts +21 -0
- package/src/linter/featureSchema.ts +84 -88
- package/src/linter/lintProject.spec.ts +74 -0
- package/src/linter/lintProject.ts +123 -8
- package/src/linter/segmentSchema.spec.ts +2 -0
- package/src/utils/git.ts +41 -7
|
@@ -491,8 +491,8 @@
|
|
|
491
491
|
<span class="cline-any cline-neutral"> </span>
|
|
492
492
|
<span class="cline-any cline-neutral"> </span>
|
|
493
493
|
<span class="cline-any cline-yes">3x</span>
|
|
494
|
-
<span class="cline-any cline-yes">
|
|
495
|
-
<span class="cline-any cline-yes">
|
|
494
|
+
<span class="cline-any cline-yes">689x</span>
|
|
495
|
+
<span class="cline-any cline-yes">689x</span>
|
|
496
496
|
<span class="cline-any cline-neutral"> </span>
|
|
497
497
|
<span class="cline-any cline-neutral"> </span>
|
|
498
498
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1294,7 +1294,7 @@ export function parsePathMapKey(relativePath: string): PathSegment[] | null {
|
|
|
1294
1294
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1295
1295
|
Code coverage generated by
|
|
1296
1296
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1297
|
-
at 2026-02-
|
|
1297
|
+
at 2026-02-25T22:03:15.189Z
|
|
1298
1298
|
</div>
|
|
1299
1299
|
<script src="../prettify.js"></script>
|
|
1300
1300
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">56.25% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>9/16</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">56.25% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>9/16</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -126,9 +126,9 @@
|
|
|
126
126
|
<span class="cline-any cline-neutral"> </span>
|
|
127
127
|
<span class="cline-any cline-neutral"> </span>
|
|
128
128
|
<span class="cline-any cline-yes">1x</span>
|
|
129
|
-
<span class="cline-any cline-yes">
|
|
129
|
+
<span class="cline-any cline-yes">2x</span>
|
|
130
130
|
<span class="cline-any cline-neutral"> </span>
|
|
131
|
-
<span class="cline-any cline-yes">
|
|
131
|
+
<span class="cline-any cline-yes">4x</span>
|
|
132
132
|
<span class="cline-any cline-neutral"> </span>
|
|
133
133
|
<span class="cline-any cline-neutral"> </span>
|
|
134
134
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
<span class="cline-any cline-neutral"> </span>
|
|
145
145
|
<span class="cline-any cline-neutral"> </span>
|
|
146
146
|
<span class="cline-any cline-neutral"> </span>
|
|
147
|
-
<span class="cline-any cline-
|
|
147
|
+
<span class="cline-any cline-yes">3x</span>
|
|
148
148
|
<span class="cline-any cline-neutral"> </span>
|
|
149
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
150
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -195,7 +195,7 @@ export function getLintIssuesFromZodError(e: ZodError): LintIssueFromZod[] {
|
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
return {
|
|
199
199
|
message: issue.message,
|
|
200
200
|
path: issue.path,
|
|
201
201
|
code: issue.code,
|
|
@@ -223,7 +223,7 @@ export function <span class="fstat-no" title="function not covered" >printZodErr
|
|
|
223
223
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
224
224
|
Code coverage generated by
|
|
225
225
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
226
|
-
at 2026-02-
|
|
226
|
+
at 2026-02-25T22:03:15.189Z
|
|
227
227
|
</div>
|
|
228
228
|
<script src="../prettify.js"></script>
|
|
229
229
|
<script>
|
|
@@ -914,7 +914,7 @@
|
|
|
914
914
|
<span class="cline-any cline-neutral"> </span>
|
|
915
915
|
<span class="cline-any cline-neutral"> </span>
|
|
916
916
|
<span class="cline-any cline-yes">3x</span>
|
|
917
|
-
<span class="cline-any cline-yes">
|
|
917
|
+
<span class="cline-any cline-yes">2456x</span>
|
|
918
918
|
<span class="cline-any cline-neutral"> </span>
|
|
919
919
|
<span class="cline-any cline-neutral"> </span>
|
|
920
920
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -937,7 +937,7 @@
|
|
|
937
937
|
<span class="cline-any cline-neutral"> </span>
|
|
938
938
|
<span class="cline-any cline-neutral"> </span>
|
|
939
939
|
<span class="cline-any cline-yes">3x</span>
|
|
940
|
-
<span class="cline-any cline-yes">
|
|
940
|
+
<span class="cline-any cline-yes">103x</span>
|
|
941
941
|
<span class="cline-any cline-yes">320x</span>
|
|
942
942
|
<span class="cline-any cline-neutral"> </span>
|
|
943
943
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -985,7 +985,7 @@
|
|
|
985
985
|
<span class="cline-any cline-yes">320x</span>
|
|
986
986
|
<span class="cline-any cline-neutral"> </span>
|
|
987
987
|
<span class="cline-any cline-neutral"> </span>
|
|
988
|
-
<span class="cline-any cline-yes">
|
|
988
|
+
<span class="cline-any cline-yes">103x</span>
|
|
989
989
|
<span class="cline-any cline-neutral"> </span>
|
|
990
990
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Schema, SchemaKey, Value } from "@featurevisor/types";
|
|
991
991
|
import { z } from "zod";
|
|
@@ -1456,7 +1456,7 @@ export function getSchemaZodSchema(schemaKeys: SchemaKey[] = <span class="branch
|
|
|
1456
1456
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1457
1457
|
Code coverage generated by
|
|
1458
1458
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1459
|
-
at 2026-02-
|
|
1459
|
+
at 2026-02-25T22:03:15.189Z
|
|
1460
1460
|
</div>
|
|
1461
1461
|
<script src="../prettify.js"></script>
|
|
1462
1462
|
<script>
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
<span class="cline-any cline-neutral"> </span>
|
|
84
84
|
<span class="cline-any cline-neutral"> </span>
|
|
85
85
|
<span class="cline-any cline-yes">2x</span>
|
|
86
|
-
<span class="cline-any cline-yes">
|
|
86
|
+
<span class="cline-any cline-yes">23x</span>
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
88
88
|
<span class="cline-any cline-neutral"> </span>
|
|
89
89
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<span class="cline-any cline-neutral"> </span>
|
|
92
92
|
<span class="cline-any cline-neutral"> </span>
|
|
93
93
|
<span class="cline-any cline-neutral"> </span>
|
|
94
|
-
<span class="cline-any cline-yes">
|
|
94
|
+
<span class="cline-any cline-yes">23x</span>
|
|
95
95
|
<span class="cline-any cline-neutral"> </span>
|
|
96
96
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { z } from "zod";
|
|
97
97
|
|
|
@@ -115,7 +115,7 @@ export function getSegmentZodSchema(projectConfig: ProjectConfig, conditionsZodS
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2026-02-
|
|
118
|
+
at 2026-02-25T22:03:15.189Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -227,9 +227,9 @@
|
|
|
227
227
|
<span class="cline-any cline-neutral"> </span>
|
|
228
228
|
<span class="cline-any cline-neutral"> </span>
|
|
229
229
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
230
|
+
<span class="cline-any cline-yes">6x</span>
|
|
231
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-yes">
|
|
232
|
+
<span class="cline-any cline-yes">6x</span>
|
|
233
233
|
<span class="cline-any cline-neutral"> </span>
|
|
234
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
242
|
<span class="cline-any cline-neutral"> </span>
|
|
243
243
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
244
|
+
<span class="cline-any cline-yes">6x</span>
|
|
245
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
247
|
<span class="cline-any cline-yes">18x</span>
|
|
@@ -262,7 +262,7 @@
|
|
|
262
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
263
|
<span class="cline-any cline-neutral"> </span>
|
|
264
264
|
<span class="cline-any cline-neutral"> </span>
|
|
265
|
-
<span class="cline-any cline-yes">
|
|
265
|
+
<span class="cline-any cline-yes">6x</span>
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
267
|
<span class="cline-any cline-neutral"> </span>
|
|
268
268
|
<span class="cline-any cline-yes">67x</span>
|
|
@@ -371,7 +371,7 @@
|
|
|
371
371
|
<span class="cline-any cline-neutral"> </span>
|
|
372
372
|
<span class="cline-any cline-neutral"> </span>
|
|
373
373
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
374
|
+
<span class="cline-any cline-yes">6x</span>
|
|
375
375
|
<span class="cline-any cline-neutral"> </span>
|
|
376
376
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { z } from "zod";
|
|
377
377
|
|
|
@@ -535,7 +535,7 @@ export function getTestsZodSchema(
|
|
|
535
535
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
536
|
Code coverage generated by
|
|
537
537
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
538
|
-
at 2026-02-
|
|
538
|
+
at 2026-02-25T22:03:15.189Z
|
|
539
539
|
</div>
|
|
540
540
|
<script src="../prettify.js"></script>
|
|
541
541
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-02-
|
|
104
|
+
at 2026-02-25T22:03:15.189Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -721,7 +721,7 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
|
|
|
721
721
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
722
722
|
Code coverage generated by
|
|
723
723
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
724
|
-
at 2026-02-
|
|
724
|
+
at 2026-02-25T22:03:15.189Z
|
|
725
725
|
</div>
|
|
726
726
|
<script src="../prettify.js"></script>
|
|
727
727
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-02-
|
|
134
|
+
at 2026-02-25T22:03:15.189Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
86
|
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
87
|
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
89
|
-
<span class="cline-any cline-yes">
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
|
89
|
+
<span class="cline-any cline-yes">3x</span>
|
|
90
90
|
<span class="cline-any cline-neutral"> </span>
|
|
91
91
|
<span class="cline-any cline-neutral"> </span>
|
|
92
92
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
<span class="cline-any cline-neutral"> </span>
|
|
100
100
|
<span class="cline-any cline-neutral"> </span>
|
|
101
101
|
<span class="cline-any cline-neutral"> </span>
|
|
102
|
-
<span class="cline-any cline-yes">
|
|
102
|
+
<span class="cline-any cline-yes">3x</span>
|
|
103
103
|
<span class="cline-any cline-neutral"> </span>
|
|
104
104
|
<span class="cline-any cline-neutral"> </span>
|
|
105
105
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -136,7 +136,7 @@ export type Parser = BuiltInParser | CustomParser;
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2026-02-
|
|
139
|
+
at 2026-02-25T22:03:15.189Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
77
|
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">4x</span>
|
|
80
80
|
<span class="cline-any cline-neutral"> </span>
|
|
81
81
|
<span class="cline-any cline-neutral"> </span>
|
|
82
82
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -103,7 +103,7 @@ export const jsonParser: CustomParser = {
|
|
|
103
103
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
104
104
|
Code coverage generated by
|
|
105
105
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
106
|
-
at 2026-02-
|
|
106
|
+
at 2026-02-25T22:03:15.189Z
|
|
107
107
|
</div>
|
|
108
108
|
<script src="../prettify.js"></script>
|
|
109
109
|
<script>
|
|
@@ -231,11 +231,11 @@
|
|
|
231
231
|
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
232
|
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
233
|
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
-
<a name='L169'></a><a href='#L169'>169</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
|
|
235
235
|
<span class="cline-any cline-neutral"> </span>
|
|
236
|
-
<span class="cline-any cline-yes">
|
|
236
|
+
<span class="cline-any cline-yes">4x</span>
|
|
237
237
|
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-yes">
|
|
238
|
+
<span class="cline-any cline-yes">4x</span>
|
|
239
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
240
|
<span class="cline-any cline-neutral"> </span>
|
|
241
241
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -371,10 +371,10 @@
|
|
|
371
371
|
<span class="cline-any cline-yes">2x</span>
|
|
372
372
|
<span class="cline-any cline-neutral"> </span>
|
|
373
373
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
374
|
+
<span class="cline-any cline-yes">4x</span>
|
|
375
375
|
<span class="cline-any cline-neutral"> </span>
|
|
376
376
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
377
|
+
<span class="cline-any cline-yes">388x</span>
|
|
378
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
380
|
<span class="cline-any cline-yes">7x</span>
|
|
@@ -574,7 +574,7 @@ export const ymlParser: CustomParser = {
|
|
|
574
574
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
575
575
|
Code coverage generated by
|
|
576
576
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
577
|
-
at 2026-02-
|
|
577
|
+
at 2026-02-25T22:03:15.189Z
|
|
578
578
|
</div>
|
|
579
579
|
<script src="../prettify.js"></script>
|
|
580
580
|
<script>
|
|
@@ -88,7 +88,7 @@ export const CLI_FORMAT_BOLD_UNDERLINE = "\x1b[1m\x1b[4m%s\x1b[0m";
|
|
|
88
88
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
89
89
|
Code coverage generated by
|
|
90
90
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
91
|
-
at 2026-02-
|
|
91
|
+
at 2026-02-25T22:03:15.189Z
|
|
92
92
|
</div>
|
|
93
93
|
<script src="../prettify.js"></script>
|
|
94
94
|
<script>
|
|
@@ -298,7 +298,7 @@ export function checkIfArraysAreEqual(arr1: any[], arr2: any[]): boolean {
|
|
|
298
298
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
299
299
|
Code coverage generated by
|
|
300
300
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
301
|
-
at 2026-02-
|
|
301
|
+
at 2026-02-25T22:03:15.189Z
|
|
302
302
|
</div>
|
|
303
303
|
<script src="../prettify.js"></script>
|
|
304
304
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-02-
|
|
119
|
+
at 2026-02-25T22:03:15.189Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">2.
|
|
26
|
+
<span class="strong">2.59% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>2/
|
|
28
|
+
<span class='fraction'>2/77</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/48</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/6</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">2.
|
|
47
|
+
<span class="strong">2.59% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>2/
|
|
49
|
+
<span class='fraction'>2/77</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -195,7 +195,41 @@
|
|
|
195
195
|
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
196
|
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
197
|
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
-
<a name='L133'></a><a href='#L133'>133</a
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
|
199
233
|
<span class="cline-any cline-neutral"> </span>
|
|
200
234
|
<span class="cline-any cline-neutral"> </span>
|
|
201
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -209,6 +243,12 @@
|
|
|
209
243
|
<span class="cline-any cline-neutral"> </span>
|
|
210
244
|
<span class="cline-any cline-neutral"> </span>
|
|
211
245
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-no"> </span>
|
|
247
|
+
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
252
|
<span class="cline-any cline-neutral"> </span>
|
|
213
253
|
<span class="cline-any cline-neutral"> </span>
|
|
214
254
|
<span class="cline-any cline-no"> </span>
|
|
@@ -257,7 +297,7 @@
|
|
|
257
297
|
<span class="cline-any cline-no"> </span>
|
|
258
298
|
<span class="cline-any cline-neutral"> </span>
|
|
259
299
|
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
300
|
+
<span class="cline-any cline-yes">3x</span>
|
|
261
301
|
<span class="cline-any cline-neutral"> </span>
|
|
262
302
|
<span class="cline-any cline-neutral"> </span>
|
|
263
303
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -287,27 +327,55 @@
|
|
|
287
327
|
<span class="cline-any cline-no"> </span>
|
|
288
328
|
<span class="cline-any cline-no"> </span>
|
|
289
329
|
<span class="cline-any cline-no"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-no"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-no"> </span>
|
|
290
336
|
<span class="cline-any cline-no"> </span>
|
|
291
337
|
<span class="cline-any cline-no"> </span>
|
|
292
338
|
<span class="cline-any cline-no"> </span>
|
|
293
339
|
<span class="cline-any cline-no"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
342
|
<span class="cline-any cline-no"> </span>
|
|
295
343
|
<span class="cline-any cline-neutral"> </span>
|
|
296
344
|
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-no"> </span>
|
|
297
347
|
<span class="cline-any cline-no"> </span>
|
|
298
348
|
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
299
352
|
<span class="cline-any cline-neutral"> </span>
|
|
300
353
|
<span class="cline-any cline-neutral"> </span>
|
|
301
354
|
<span class="cline-any cline-no"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
356
|
<span class="cline-any cline-no"> </span>
|
|
303
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
361
|
<span class="cline-any cline-no"> </span>
|
|
305
362
|
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
368
|
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
371
|
<span class="cline-any cline-neutral"> </span>
|
|
308
372
|
<span class="cline-any cline-neutral"> </span>
|
|
309
373
|
<span class="cline-any cline-no"> </span>
|
|
310
374
|
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
379
|
<span class="cline-any cline-no"> </span>
|
|
312
380
|
<span class="cline-any cline-neutral"> </span>
|
|
313
381
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -334,6 +402,12 @@ import type { Commit, EntityDiff, EntityType } from "@featurevisor/types";
|
|
|
334
402
|
import { ProjectConfig } from "../config";
|
|
335
403
|
import { CustomParser } from "../parsers";
|
|
336
404
|
|
|
405
|
+
function <span class="fstat-no" title="function not covered" >isWithinDirectory(</span>directoryPath: string, fileDirectoryPath: string): boolean {
|
|
406
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
407
|
+
fileDirectoryPath === directoryPath || fileDirectoryPath.startsWith(directoryPath + path.sep)
|
|
408
|
+
);
|
|
409
|
+
}
|
|
410
|
+
|
|
337
411
|
function <span class="fstat-no" title="function not covered" >parseGitCommitShowOutput(</span>gitShowOutput: string) {
|
|
338
412
|
const result = <span class="cstat-no" title="statement not covered" >{</span>
|
|
339
413
|
hash: "",
|
|
@@ -412,17 +486,22 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
|
|
|
412
486
|
|
|
413
487
|
// get entity type
|
|
414
488
|
let type: EntityType = <span class="cstat-no" title="statement not covered" >"attribute";</span>
|
|
415
|
-
<span class="cstat-no" title="statement not covered" > if (
|
|
489
|
+
<span class="cstat-no" title="statement not covered" > if (isWithinDirectory(projectConfig.attributesDirectoryPath, relativeDir)) {</span>
|
|
416
490
|
<span class="cstat-no" title="statement not covered" > type = "attribute";</span>
|
|
417
|
-
} else <span class="cstat-no" title="statement not covered" >if (
|
|
491
|
+
} else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.segmentsDirectoryPath, relativeDir)) {</span>
|
|
418
492
|
<span class="cstat-no" title="statement not covered" > type = "segment";</span>
|
|
419
|
-
} else <span class="cstat-no" title="statement not covered" >if (
|
|
493
|
+
} else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.featuresDirectoryPath, relativeDir)) {</span>
|
|
494
|
+
<span class="cstat-no" title="statement not covered" > type = "feature";</span>
|
|
495
|
+
} else <span class="cstat-no" title="statement not covered" >if (</span>
|
|
496
|
+
projectConfig.splitByEnvironment &&
|
|
497
|
+
isWithinDirectory(projectConfig.environmentsDirectoryPath, relativeDir)
|
|
498
|
+
) {
|
|
420
499
|
<span class="cstat-no" title="statement not covered" > type = "feature";</span>
|
|
421
|
-
} else <span class="cstat-no" title="statement not covered" >if (
|
|
500
|
+
} else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.groupsDirectoryPath, relativeDir)) {</span>
|
|
422
501
|
<span class="cstat-no" title="statement not covered" > type = "group";</span>
|
|
423
|
-
} else <span class="cstat-no" title="statement not covered" >if (
|
|
502
|
+
} else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.schemasDirectoryPath, relativeDir)) {</span>
|
|
424
503
|
<span class="cstat-no" title="statement not covered" > type = "schema";</span>
|
|
425
|
-
} else <span class="cstat-no" title="statement not covered" >if (
|
|
504
|
+
} else <span class="cstat-no" title="statement not covered" >if (isWithinDirectory(projectConfig.testsDirectoryPath, relativeDir)) {</span>
|
|
426
505
|
<span class="cstat-no" title="statement not covered" > type = "test";</span>
|
|
427
506
|
} else {
|
|
428
507
|
// unknown type
|
|
@@ -438,7 +517,30 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
|
|
|
438
517
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
439
518
|
}
|
|
440
519
|
|
|
441
|
-
|
|
520
|
+
let key = <span class="cstat-no" title="statement not covered" >fileName.replace(extensionWithDot, "");</span>
|
|
521
|
+
|
|
522
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
523
|
+
type === "feature" &&
|
|
524
|
+
projectConfig.splitByEnvironment &&
|
|
525
|
+
absolutePath.startsWith(projectConfig.environmentsDirectoryPath + path.sep)
|
|
526
|
+
) {
|
|
527
|
+
const featureRelativePath = <span class="cstat-no" title="statement not covered" >absolutePath</span>
|
|
528
|
+
.replace(projectConfig.environmentsDirectoryPath + path.sep, "")
|
|
529
|
+
.split(path.sep)
|
|
530
|
+
.slice(1)
|
|
531
|
+
.join(path.sep)
|
|
532
|
+
.replace(extensionWithDot, "");
|
|
533
|
+
|
|
534
|
+
<span class="cstat-no" title="statement not covered" > key = featureRelativePath.replace(/\\/g, "/");</span>
|
|
535
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
536
|
+
type === "feature" &&
|
|
537
|
+
absolutePath.startsWith(projectConfig.featuresDirectoryPath + path.sep)
|
|
538
|
+
) {
|
|
539
|
+
<span class="cstat-no" title="statement not covered" > key = absolutePath</span>
|
|
540
|
+
.replace(projectConfig.featuresDirectoryPath + path.sep, "")
|
|
541
|
+
.replace(extensionWithDot, "")
|
|
542
|
+
.replace(/\\/g, "/");
|
|
543
|
+
}
|
|
442
544
|
|
|
443
545
|
const entityDiff: EntityDiff = <span class="cstat-no" title="statement not covered" >{</span>
|
|
444
546
|
type,
|
|
@@ -466,7 +568,7 @@ export function <span class="fstat-no" title="function not covered" >getCommit(<
|
|
|
466
568
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
467
569
|
Code coverage generated by
|
|
468
570
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
469
|
-
at 2026-02-
|
|
571
|
+
at 2026-02-25T22:03:15.189Z
|
|
470
572
|
</div>
|
|
471
573
|
<script src="../prettify.js"></script>
|
|
472
574
|
<script>
|