@featurevisor/core 2.26.1 → 3.0.1
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 +8 -0
- package/coverage/clover.xml +4991 -3130
- package/coverage/coverage-final.json +63 -39
- package/coverage/lcov-report/block-navigation.js +1 -1
- package/coverage/lcov-report/index.html +248 -98
- package/coverage/lcov-report/sorter.js +21 -7
- package/coverage/lcov-report/src/assess-distribution/index.html +116 -0
- package/coverage/lcov-report/src/assess-distribution/index.ts.html +754 -0
- package/coverage/lcov-report/{list → src/benchmark}/index.html +30 -30
- package/coverage/lcov-report/src/benchmark/index.ts.html +793 -0
- package/coverage/lcov-report/{builder → src/builder}/allocator.ts.html +38 -38
- package/coverage/lcov-report/{builder/buildScopedConditions.ts.html → src/builder/applyContextToConditions.ts.html} +80 -65
- package/coverage/lcov-report/{builder/buildScopedDatafile.ts.html → src/builder/applyContextToDatafile.ts.html} +92 -92
- package/coverage/lcov-report/{builder/buildScopedSegments.ts.html → src/builder/applyContextToSegments.ts.html} +103 -67
- package/coverage/lcov-report/{builder → src/builder}/buildDatafile.ts.html +336 -306
- package/coverage/lcov-report/src/builder/buildProject.ts.html +1117 -0
- package/coverage/lcov-report/src/builder/buildRuntimeDatafiles.ts.html +256 -0
- package/coverage/lcov-report/{builder → src/builder}/getFeatureRanges.ts.html +22 -22
- package/coverage/lcov-report/{builder → src/builder}/hashes.ts.html +50 -50
- package/coverage/lcov-report/{builder → src/builder}/index.html +114 -84
- package/coverage/lcov-report/{tester/cliFormat.ts.html → src/builder/index.ts.html} +17 -29
- package/coverage/lcov-report/{builder → src/builder}/mutateVariables.ts.html +55 -55
- package/coverage/lcov-report/{builder → src/builder}/mutator.ts.html +118 -118
- package/coverage/lcov-report/{builder → src/builder}/revision.ts.html +15 -15
- package/coverage/lcov-report/{builder → src/builder}/traffic.ts.html +86 -86
- package/coverage/lcov-report/src/cli/cli.ts.html +400 -0
- package/coverage/lcov-report/{tester → src/cli}/index.html +41 -41
- package/coverage/lcov-report/src/cli/plugins.ts.html +214 -0
- package/coverage/lcov-report/{config → src/config}/index.html +31 -31
- package/coverage/lcov-report/{config → src/config}/index.ts.html +12 -12
- package/coverage/lcov-report/{config → src/config}/projectConfig.ts.html +312 -96
- package/coverage/lcov-report/{datasource → src/datasource}/adapter.ts.html +28 -73
- package/coverage/lcov-report/{datasource → src/datasource}/datasource.ts.html +191 -104
- package/coverage/lcov-report/{datasource → src/datasource}/filesystemAdapter.ts.html +233 -635
- package/coverage/lcov-report/{datasource → src/datasource}/index.html +48 -48
- package/coverage/lcov-report/{datasource → src/datasource}/index.ts.html +14 -14
- package/coverage/lcov-report/src/evaluate/index.html +116 -0
- package/coverage/lcov-report/src/evaluate/index.ts.html +814 -0
- package/coverage/lcov-report/src/find-duplicate-segments/findDuplicateSegments.ts.html +313 -0
- package/coverage/lcov-report/src/find-duplicate-segments/index.html +131 -0
- package/coverage/lcov-report/src/find-duplicate-segments/index.ts.html +307 -0
- package/coverage/lcov-report/src/find-usage/index.html +116 -0
- package/coverage/lcov-report/src/find-usage/index.ts.html +1780 -0
- package/coverage/lcov-report/src/generate-code/index.html +131 -0
- package/coverage/lcov-report/src/generate-code/index.ts.html +403 -0
- package/coverage/lcov-report/{generate-code → src/generate-code}/typescript.ts.html +266 -1361
- package/coverage/lcov-report/{generate-code → src}/index.html +38 -23
- package/coverage/lcov-report/src/info/index.html +116 -0
- package/coverage/lcov-report/src/info/index.ts.html +472 -0
- package/coverage/lcov-report/src/init/index.html +116 -0
- package/coverage/lcov-report/src/init/index.ts.html +280 -0
- package/coverage/lcov-report/{linter → src/linter}/attributeSchema.ts.html +160 -157
- package/coverage/lcov-report/{linter → src/linter}/checkCircularDependency.ts.html +25 -25
- package/coverage/lcov-report/{linter → src/linter}/checkPercentageExceedingSlot.ts.html +42 -42
- package/coverage/lcov-report/{linter → src/linter}/conditionSchema.ts.html +207 -207
- package/coverage/lcov-report/{linter → src/linter}/featureSchema.ts.html +462 -471
- package/coverage/lcov-report/{linter → src/linter}/groupSchema.ts.html +25 -22
- package/coverage/lcov-report/{linter → src/linter}/index.html +129 -99
- package/coverage/lcov-report/src/linter/index.ts.html +88 -0
- package/coverage/lcov-report/{linter → src/linter}/lintProject.ts.html +740 -332
- package/coverage/lcov-report/{linter → src/linter}/mutationNotation.ts.html +130 -130
- package/coverage/lcov-report/{linter → src/linter}/printError.ts.html +27 -27
- package/coverage/lcov-report/{linter → src/linter}/schema.ts.html +153 -150
- package/coverage/lcov-report/{linter → src/linter}/segmentSchema.ts.html +18 -15
- package/coverage/lcov-report/src/linter/targetSchema.ts.html +223 -0
- package/coverage/lcov-report/{linter → src/linter}/testSchema.ts.html +54 -48
- package/coverage/lcov-report/{linter → src/linter}/zodHelpers.ts.html +17 -17
- package/coverage/lcov-report/src/list/index.html +131 -0
- package/coverage/lcov-report/src/list/index.ts.html +2065 -0
- package/coverage/lcov-report/{list → src/list}/matrix.ts.html +43 -58
- package/coverage/lcov-report/src/promoter/index.html +116 -0
- package/coverage/lcov-report/src/promoter/index.ts.html +3883 -0
- package/coverage/lcov-report/src/sets.ts.html +313 -0
- package/coverage/lcov-report/src/targeting.ts.html +403 -0
- package/coverage/lcov-report/src/tester/cliFormat.ts.html +133 -0
- package/coverage/lcov-report/{tester → src/tester}/helpers.ts.html +15 -15
- package/coverage/lcov-report/src/tester/index.html +206 -0
- package/coverage/lcov-report/src/tester/prettyDuration.ts.html +187 -0
- package/coverage/lcov-report/src/tester/printTestResult.ts.html +337 -0
- package/coverage/lcov-report/src/tester/testFeature.ts.html +1186 -0
- package/coverage/lcov-report/src/tester/testProject.ts.html +1018 -0
- package/coverage/lcov-report/src/tester/testSegment.ts.html +316 -0
- package/coverage/lcov-report/{utils → src/utils}/extractKeys.ts.html +68 -68
- package/coverage/lcov-report/{utils → src/utils}/git.ts.html +44 -68
- package/coverage/lcov-report/{utils → src/utils}/index.html +44 -44
- package/coverage/lcov-report/{utils → src/utils}/index.ts.html +14 -14
- package/coverage/lcov-report/{utils → src/utils}/pretty.ts.html +20 -20
- package/coverage/lcov.info +10121 -5723
- package/jest.config.js +13 -4
- package/lib/assess-distribution/index.d.ts +1 -1
- package/lib/assess-distribution/index.js +59 -40
- package/lib/assess-distribution/index.js.map +1 -1
- package/lib/benchmark/index.d.ts +8 -5
- package/lib/benchmark/index.js +82 -65
- package/lib/benchmark/index.js.map +1 -1
- package/lib/builder/applyContextToConditions.d.ts +5 -0
- package/lib/builder/{buildScopedConditions.js → applyContextToConditions.js} +19 -14
- package/lib/builder/applyContextToConditions.js.map +1 -0
- package/lib/builder/applyContextToDatafile.d.ts +2 -0
- package/lib/builder/{buildScopedDatafile.js → applyContextToDatafile.js} +26 -26
- package/lib/builder/applyContextToDatafile.js.map +1 -0
- package/lib/builder/applyContextToSegments.d.ts +5 -0
- package/lib/builder/{buildScopedSegments.js → applyContextToSegments.js} +19 -14
- package/lib/builder/applyContextToSegments.js.map +1 -0
- package/lib/builder/buildDatafile.d.ts +9 -6
- package/lib/builder/buildDatafile.js +86 -51
- package/lib/builder/buildDatafile.js.map +1 -1
- package/lib/builder/buildProject.d.ts +17 -3
- package/lib/builder/buildProject.js +151 -59
- package/lib/builder/buildProject.js.map +1 -1
- package/lib/builder/buildRuntimeDatafiles.d.ts +12 -0
- package/lib/builder/buildRuntimeDatafiles.js +35 -0
- package/lib/builder/buildRuntimeDatafiles.js.map +1 -0
- package/lib/builder/getFeatureRanges.js +34 -1
- package/lib/builder/getFeatureRanges.js.map +1 -1
- package/lib/builder/hashes.js +34 -1
- package/lib/builder/hashes.js.map +1 -1
- package/lib/builder/index.d.ts +0 -1
- package/lib/builder/index.js +0 -1
- package/lib/builder/index.js.map +1 -1
- package/lib/cli/cli.js +0 -4
- package/lib/cli/cli.js.map +1 -1
- package/lib/cli/plugins.js +7 -2
- package/lib/cli/plugins.js.map +1 -1
- package/lib/config/projectConfig.d.ts +17 -17
- package/lib/config/projectConfig.js +101 -15
- package/lib/config/projectConfig.js.map +1 -1
- package/lib/datasource/adapter.d.ts +7 -9
- package/lib/datasource/adapter.js +0 -7
- package/lib/datasource/adapter.js.map +1 -1
- package/lib/datasource/datasource.d.ts +15 -5
- package/lib/datasource/datasource.js +37 -9
- package/lib/datasource/datasource.js.map +1 -1
- package/lib/datasource/filesystemAdapter.d.ts +4 -10
- package/lib/datasource/filesystemAdapter.js +111 -149
- package/lib/datasource/filesystemAdapter.js.map +1 -1
- package/lib/evaluate/index.d.ts +1 -7
- package/lib/evaluate/index.js +81 -67
- package/lib/evaluate/index.js.map +1 -1
- package/lib/find-duplicate-segments/findDuplicateSegments.js +34 -1
- package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
- package/lib/find-duplicate-segments/index.js +21 -13
- package/lib/find-duplicate-segments/index.js.map +1 -1
- package/lib/find-usage/index.js +57 -41
- package/lib/find-usage/index.js.map +1 -1
- package/lib/generate-code/index.d.ts +1 -1
- package/lib/generate-code/index.js +64 -21
- package/lib/generate-code/index.js.map +1 -1
- package/lib/generate-code/typescript.d.ts +1 -1
- package/lib/generate-code/typescript.js +59 -333
- package/lib/generate-code/typescript.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/info/index.js +57 -16
- package/lib/info/index.js.map +1 -1
- package/lib/init/index.d.ts +2 -2
- package/lib/init/index.js +39 -3
- package/lib/init/index.js.map +1 -1
- package/lib/linter/attributeSchema.d.ts +1 -0
- package/lib/linter/attributeSchema.js +1 -0
- package/lib/linter/attributeSchema.js.map +1 -1
- package/lib/linter/conditionSchema.js +5 -5
- package/lib/linter/conditionSchema.js.map +1 -1
- package/lib/linter/featureSchema.d.ts +4 -1
- package/lib/linter/featureSchema.js +15 -13
- package/lib/linter/featureSchema.js.map +1 -1
- package/lib/linter/groupSchema.d.ts +1 -0
- package/lib/linter/groupSchema.js +1 -0
- package/lib/linter/groupSchema.js.map +1 -1
- package/lib/linter/lintProject.d.ts +1 -3
- package/lib/linter/lintProject.js +198 -68
- package/lib/linter/lintProject.js.map +1 -1
- package/lib/linter/schema.js +1 -0
- package/lib/linter/schema.js.map +1 -1
- package/lib/linter/segmentSchema.d.ts +1 -0
- package/lib/linter/segmentSchema.js +1 -0
- package/lib/linter/segmentSchema.js.map +1 -1
- package/lib/linter/targetSchema.d.ts +16 -0
- package/lib/linter/targetSchema.js +40 -0
- package/lib/linter/targetSchema.js.map +1 -0
- package/lib/linter/testSchema.d.ts +4 -3
- package/lib/linter/testSchema.js +9 -4
- package/lib/linter/testSchema.js.map +1 -1
- package/lib/list/index.d.ts +1 -0
- package/lib/list/index.js +131 -12
- package/lib/list/index.js.map +1 -1
- package/lib/list/matrix.js +3 -7
- package/lib/list/matrix.js.map +1 -1
- package/lib/promoter/index.d.ts +50 -0
- package/lib/promoter/index.js +880 -0
- package/lib/promoter/index.js.map +1 -0
- package/lib/sets.d.ts +11 -0
- package/lib/sets.js +81 -0
- package/lib/sets.js.map +1 -0
- package/lib/targeting.d.ts +14 -0
- package/lib/targeting.js +82 -0
- package/lib/targeting.js.map +1 -0
- package/lib/tester/cliFormat.d.ts +7 -1
- package/lib/tester/cliFormat.js +11 -2
- package/lib/tester/cliFormat.js.map +1 -1
- package/lib/tester/printTestResult.js +2 -2
- package/lib/tester/printTestResult.js.map +1 -1
- package/lib/tester/testFeature.d.ts +0 -1
- package/lib/tester/testFeature.js +8 -25
- package/lib/tester/testFeature.js.map +1 -1
- package/lib/tester/testProject.d.ts +2 -3
- package/lib/tester/testProject.js +93 -86
- package/lib/tester/testProject.js.map +1 -1
- package/lib/tester/testSegment.d.ts +1 -1
- package/lib/tester/testSegment.js +3 -21
- package/lib/tester/testSegment.js.map +1 -1
- package/lib/utils/git.js +45 -19
- package/lib/utils/git.js.map +1 -1
- package/package.json +12 -12
- package/src/assess-distribution/index.ts +72 -52
- package/src/benchmark/index.ts +124 -91
- package/src/builder/{buildScopedConditions.spec.ts → applyContextToConditions.spec.ts} +160 -142
- package/src/builder/{buildScopedConditions.ts → applyContextToConditions.ts} +19 -14
- package/src/builder/{buildScopedDatafile.spec.ts → applyContextToDatafile.spec.ts} +141 -81
- package/src/builder/{buildScopedDatafile.ts → applyContextToDatafile.ts} +33 -33
- package/src/builder/{buildScopedSegments.spec.ts → applyContextToSegments.spec.ts} +171 -151
- package/src/builder/{buildScopedSegments.ts → applyContextToSegments.ts} +26 -14
- package/src/builder/buildDatafile.spec.ts +192 -14
- package/src/builder/buildDatafile.ts +74 -64
- package/src/builder/buildProject.ts +171 -86
- package/src/builder/buildRuntimeDatafiles.ts +57 -0
- package/src/builder/index.ts +0 -1
- package/src/cli/cli.ts +0 -5
- package/src/cli/plugins.ts +7 -2
- package/src/config/projectConfig.spec.ts +171 -8
- package/src/config/projectConfig.ts +100 -28
- package/src/datasource/adapter.ts +8 -23
- package/src/datasource/datasource.ts +50 -21
- package/src/datasource/filesystemAdapter.spec.ts +133 -74
- package/src/datasource/filesystemAdapter.ts +93 -227
- package/src/evaluate/index.ts +109 -97
- package/src/find-duplicate-segments/index.ts +34 -16
- package/src/find-usage/index.ts +89 -44
- package/src/generate-code/index.ts +36 -24
- package/src/generate-code/typescript.spec.ts +106 -0
- package/src/generate-code/typescript.ts +33 -398
- package/src/index.ts +2 -1
- package/src/info/index.ts +72 -16
- package/src/init/index.ts +1 -1
- package/src/linter/attributeSchema.ts +1 -0
- package/src/linter/conditionSchema.spec.ts +23 -3
- package/src/linter/conditionSchema.ts +5 -5
- package/src/linter/featureSchema.spec.ts +107 -18
- package/src/linter/featureSchema.ts +25 -28
- package/src/linter/groupSchema.ts +1 -0
- package/src/linter/lintProject.spec.ts +131 -92
- package/src/linter/lintProject.ts +233 -97
- package/src/linter/schema.ts +1 -0
- package/src/linter/segmentSchema.spec.ts +5 -3
- package/src/linter/segmentSchema.ts +1 -0
- package/src/linter/targetSchema.spec.ts +159 -0
- package/src/linter/targetSchema.ts +46 -0
- package/src/linter/testSchema.spec.ts +70 -5
- package/src/linter/testSchema.ts +12 -10
- package/src/list/index.spec.ts +135 -0
- package/src/list/index.ts +188 -12
- package/src/list/matrix.ts +3 -8
- package/src/promoter/index.spec.ts +617 -0
- package/src/promoter/index.ts +1266 -0
- package/src/sets.ts +76 -0
- package/src/targeting.spec.ts +74 -0
- package/src/targeting.ts +106 -0
- package/src/tester/cliFormat.ts +11 -1
- package/src/tester/printTestResult.ts +12 -3
- package/src/tester/testFeature.ts +10 -36
- package/src/tester/testProject.spec.ts +50 -0
- package/src/tester/testProject.ts +89 -140
- package/src/tester/testSegment.ts +5 -22
- package/src/utils/git.ts +13 -21
- package/tsconfig.cjs.json +5 -1
- package/tsconfig.typecheck.json +9 -0
- package/coverage/lcov-report/builder/convertToV1.ts.html +0 -583
- package/lib/builder/allocator.spec.d.ts +0 -1
- package/lib/builder/allocator.spec.js +0 -85
- package/lib/builder/allocator.spec.js.map +0 -1
- package/lib/builder/buildDatafile.spec.d.ts +0 -1
- package/lib/builder/buildDatafile.spec.js +0 -233
- package/lib/builder/buildDatafile.spec.js.map +0 -1
- package/lib/builder/buildScopedConditions.d.ts +0 -5
- package/lib/builder/buildScopedConditions.js.map +0 -1
- package/lib/builder/buildScopedConditions.spec.d.ts +0 -1
- package/lib/builder/buildScopedConditions.spec.js +0 -2167
- package/lib/builder/buildScopedConditions.spec.js.map +0 -1
- package/lib/builder/buildScopedDatafile.d.ts +0 -2
- package/lib/builder/buildScopedDatafile.js.map +0 -1
- package/lib/builder/buildScopedDatafile.spec.d.ts +0 -1
- package/lib/builder/buildScopedDatafile.spec.js +0 -2277
- package/lib/builder/buildScopedDatafile.spec.js.map +0 -1
- package/lib/builder/buildScopedSegments.d.ts +0 -5
- package/lib/builder/buildScopedSegments.js.map +0 -1
- package/lib/builder/buildScopedSegments.spec.d.ts +0 -1
- package/lib/builder/buildScopedSegments.spec.js +0 -1062
- package/lib/builder/buildScopedSegments.spec.js.map +0 -1
- package/lib/builder/convertToV1.d.ts +0 -10
- package/lib/builder/convertToV1.js +0 -119
- package/lib/builder/convertToV1.js.map +0 -1
- package/lib/builder/mutateVariables.spec.d.ts +0 -1
- package/lib/builder/mutateVariables.spec.js +0 -1074
- package/lib/builder/mutateVariables.spec.js.map +0 -1
- package/lib/builder/mutator.spec.d.ts +0 -1
- package/lib/builder/mutator.spec.js +0 -368
- package/lib/builder/mutator.spec.js.map +0 -1
- package/lib/builder/revision.spec.d.ts +0 -1
- package/lib/builder/revision.spec.js +0 -21
- package/lib/builder/revision.spec.js.map +0 -1
- package/lib/builder/traffic.spec.d.ts +0 -1
- package/lib/builder/traffic.spec.js +0 -872
- package/lib/builder/traffic.spec.js.map +0 -1
- package/lib/config/projectConfig.spec.d.ts +0 -1
- package/lib/config/projectConfig.spec.js +0 -24
- package/lib/config/projectConfig.spec.js.map +0 -1
- package/lib/datasource/filesystemAdapter.spec.d.ts +0 -1
- package/lib/datasource/filesystemAdapter.spec.js +0 -88
- package/lib/datasource/filesystemAdapter.spec.js.map +0 -1
- package/lib/generate-code/typescript.spec.d.ts +0 -1
- package/lib/generate-code/typescript.spec.js +0 -78
- package/lib/generate-code/typescript.spec.js.map +0 -1
- package/lib/linter/attributeSchema.spec.d.ts +0 -1
- package/lib/linter/attributeSchema.spec.js +0 -266
- package/lib/linter/attributeSchema.spec.js.map +0 -1
- package/lib/linter/conditionSchema.spec.d.ts +0 -1
- package/lib/linter/conditionSchema.spec.js +0 -380
- package/lib/linter/conditionSchema.spec.js.map +0 -1
- package/lib/linter/featureSchema.spec.d.ts +0 -1
- package/lib/linter/featureSchema.spec.js +0 -1552
- package/lib/linter/featureSchema.spec.js.map +0 -1
- package/lib/linter/lintProject.spec.d.ts +0 -1
- package/lib/linter/lintProject.spec.js +0 -211
- package/lib/linter/lintProject.spec.js.map +0 -1
- package/lib/linter/mutationNotation.spec.d.ts +0 -1
- package/lib/linter/mutationNotation.spec.js +0 -598
- package/lib/linter/mutationNotation.spec.js.map +0 -1
- package/lib/linter/schema.spec.d.ts +0 -1
- package/lib/linter/schema.spec.js +0 -535
- package/lib/linter/schema.spec.js.map +0 -1
- package/lib/linter/segmentSchema.spec.d.ts +0 -1
- package/lib/linter/segmentSchema.spec.js +0 -303
- package/lib/linter/segmentSchema.spec.js.map +0 -1
- package/lib/linter/testSchema.spec.d.ts +0 -1
- package/lib/linter/testSchema.spec.js +0 -162
- package/lib/linter/testSchema.spec.js.map +0 -1
- package/lib/list/matrix.spec.d.ts +0 -1
- package/lib/list/matrix.spec.js +0 -42
- package/lib/list/matrix.spec.js.map +0 -1
- package/lib/site/exportSite.d.ts +0 -2
- package/lib/site/exportSite.js +0 -30
- package/lib/site/exportSite.js.map +0 -1
- package/lib/site/generateHistory.d.ts +0 -3
- package/lib/site/generateHistory.js +0 -31
- package/lib/site/generateHistory.js.map +0 -1
- package/lib/site/generateSiteSearchIndex.d.ts +0 -4
- package/lib/site/generateSiteSearchIndex.js +0 -195
- package/lib/site/generateSiteSearchIndex.js.map +0 -1
- package/lib/site/getLastModifiedFromHistory.d.ts +0 -2
- package/lib/site/getLastModifiedFromHistory.js +0 -18
- package/lib/site/getLastModifiedFromHistory.js.map +0 -1
- package/lib/site/getOwnerAndRepoFromUrl.d.ts +0 -4
- package/lib/site/getOwnerAndRepoFromUrl.js +0 -20
- package/lib/site/getOwnerAndRepoFromUrl.js.map +0 -1
- package/lib/site/getRelativePaths.d.ts +0 -6
- package/lib/site/getRelativePaths.js +0 -15
- package/lib/site/getRelativePaths.js.map +0 -1
- package/lib/site/getRepoDetails.d.ts +0 -8
- package/lib/site/getRepoDetails.js +0 -48
- package/lib/site/getRepoDetails.js.map +0 -1
- package/lib/site/index.d.ts +0 -2
- package/lib/site/index.js +0 -43
- package/lib/site/index.js.map +0 -1
- package/lib/site/serveSite.d.ts +0 -2
- package/lib/site/serveSite.js +0 -54
- package/lib/site/serveSite.js.map +0 -1
- package/lib/tester/helpers.spec.d.ts +0 -1
- package/lib/tester/helpers.spec.js +0 -115
- package/lib/tester/helpers.spec.js.map +0 -1
- package/src/builder/convertToV1.ts +0 -166
- package/src/site/exportSite.ts +0 -42
- package/src/site/generateHistory.ts +0 -40
- package/src/site/generateSiteSearchIndex.ts +0 -258
- package/src/site/getLastModifiedFromHistory.ts +0 -21
- package/src/site/getOwnerAndRepoFromUrl.ts +0 -17
- package/src/site/getRelativePaths.ts +0 -24
- package/src/site/getRepoDetails.ts +0 -62
- package/src/site/index.ts +0 -46
- package/src/site/serveSite.ts +0 -58
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for config/projectConfig.ts</title>
|
|
6
|
+
<title>Code coverage report for src/config/projectConfig.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/config</a> projectConfig.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">62.61% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>67/107</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">75.51% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>37/49</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">62.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">78.31% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>65/83</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
<template id="filterTemplate">
|
|
58
58
|
<div class="quiet">
|
|
59
59
|
Filter:
|
|
60
|
-
<input
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -271,15 +271,88 @@
|
|
|
271
271
|
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
272
|
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
273
|
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
-
<a name='L209'></a><a href='#L209'>209</a
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
|
|
275
347
|
<span class="cline-any cline-neutral"> </span>
|
|
276
348
|
<span class="cline-any cline-neutral"> </span>
|
|
277
349
|
<span class="cline-any cline-yes">5x</span>
|
|
278
350
|
<span class="cline-any cline-neutral"> </span>
|
|
279
351
|
<span class="cline-any cline-yes">5x</span>
|
|
280
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-yes">5x</span>
|
|
281
354
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-
|
|
355
|
+
<span class="cline-any cline-yes">5x</span>
|
|
283
356
|
<span class="cline-any cline-yes">5x</span>
|
|
284
357
|
<span class="cline-any cline-yes">5x</span>
|
|
285
358
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -299,11 +372,10 @@
|
|
|
299
372
|
<span class="cline-any cline-yes">5x</span>
|
|
300
373
|
<span class="cline-any cline-yes">5x</span>
|
|
301
374
|
<span class="cline-any cline-yes">5x</span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-yes">5x</span>
|
|
304
375
|
<span class="cline-any cline-yes">5x</span>
|
|
305
376
|
<span class="cline-any cline-neutral"> </span>
|
|
306
377
|
<span class="cline-any cline-yes">5x</span>
|
|
378
|
+
<span class="cline-any cline-yes">5x</span>
|
|
307
379
|
<span class="cline-any cline-neutral"> </span>
|
|
308
380
|
<span class="cline-any cline-yes">5x</span>
|
|
309
381
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -349,10 +421,10 @@
|
|
|
349
421
|
<span class="cline-any cline-neutral"> </span>
|
|
350
422
|
<span class="cline-any cline-neutral"> </span>
|
|
351
423
|
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-yes">52x</span>
|
|
425
|
+
<span class="cline-any cline-yes">52x</span>
|
|
352
426
|
<span class="cline-any cline-neutral"> </span>
|
|
353
427
|
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-yes">5x</span>
|
|
355
|
-
<span class="cline-any cline-yes">14x</span>
|
|
356
428
|
<span class="cline-any cline-neutral"> </span>
|
|
357
429
|
<span class="cline-any cline-neutral"> </span>
|
|
358
430
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -389,46 +461,114 @@
|
|
|
389
461
|
<span class="cline-any cline-neutral"> </span>
|
|
390
462
|
<span class="cline-any cline-neutral"> </span>
|
|
391
463
|
<span class="cline-any cline-neutral"> </span>
|
|
392
|
-
<span class="cline-any cline-yes">
|
|
393
|
-
<span class="cline-any cline-yes">
|
|
464
|
+
<span class="cline-any cline-yes">52x</span>
|
|
465
|
+
<span class="cline-any cline-yes">52x</span>
|
|
394
466
|
<span class="cline-any cline-neutral"> </span>
|
|
395
|
-
<span class="cline-any cline-yes">
|
|
467
|
+
<span class="cline-any cline-yes">52x</span>
|
|
396
468
|
<span class="cline-any cline-neutral"> </span>
|
|
397
|
-
<span class="cline-any cline-yes">
|
|
398
|
-
<span class="cline-any cline-yes">
|
|
469
|
+
<span class="cline-any cline-yes">52x</span>
|
|
470
|
+
<span class="cline-any cline-yes">1560x</span>
|
|
399
471
|
<span class="cline-any cline-neutral"> </span>
|
|
400
472
|
<span class="cline-any cline-neutral"> </span>
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
473
|
+
<span class="cline-any cline-yes">1560x</span>
|
|
402
474
|
<span class="cline-any cline-no"> </span>
|
|
403
475
|
<span class="cline-any cline-neutral"> </span>
|
|
404
476
|
<span class="cline-any cline-neutral"> </span>
|
|
405
477
|
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-yes">
|
|
478
|
+
<span class="cline-any cline-yes">52x</span>
|
|
407
479
|
<span class="cline-any cline-neutral"> </span>
|
|
408
|
-
<span class="cline-any cline-yes">
|
|
409
|
-
<span class="cline-any cline-yes">
|
|
410
|
-
<span class="cline-any cline-yes">
|
|
480
|
+
<span class="cline-any cline-yes">52x</span>
|
|
481
|
+
<span class="cline-any cline-yes">52x</span>
|
|
482
|
+
<span class="cline-any cline-yes">52x</span>
|
|
411
483
|
<span class="cline-any cline-no"> </span>
|
|
412
484
|
<span class="cline-any cline-neutral"> </span>
|
|
413
485
|
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-yes">
|
|
486
|
+
<span class="cline-any cline-yes">52x</span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-yes">52x</span>
|
|
490
|
+
<span class="cline-any cline-yes">1x</span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-yes">51x</span>
|
|
494
|
+
<span class="cline-any cline-yes">19x</span>
|
|
495
|
+
<span class="cline-any cline-yes">3x</span>
|
|
496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-yes">16x</span>
|
|
501
|
+
<span class="cline-any cline-yes">32x</span>
|
|
502
|
+
<span class="cline-any cline-yes">1x</span>
|
|
503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
506
|
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-yes">47x</span>
|
|
416
508
|
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-yes">2x</span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
516
|
+
<span class="cline-any cline-yes">45x</span>
|
|
517
|
+
<span class="cline-any cline-yes">8x</span>
|
|
418
518
|
<span class="cline-any cline-yes">1x</span>
|
|
419
519
|
<span class="cline-any cline-neutral"> </span>
|
|
420
520
|
<span class="cline-any cline-neutral"> </span>
|
|
421
521
|
<span class="cline-any cline-neutral"> </span>
|
|
422
522
|
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-yes">
|
|
523
|
+
<span class="cline-any cline-yes">7x</span>
|
|
524
|
+
<span class="cline-any cline-yes">8x</span>
|
|
525
|
+
<span class="cline-any cline-yes">1x</span>
|
|
526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
527
|
<span class="cline-any cline-neutral"> </span>
|
|
425
528
|
<span class="cline-any cline-neutral"> </span>
|
|
426
529
|
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-yes">7x</span>
|
|
531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
532
|
+
<span class="cline-any cline-yes">7x</span>
|
|
533
|
+
<span class="cline-any cline-yes">2x</span>
|
|
427
534
|
<span class="cline-any cline-neutral"> </span>
|
|
428
535
|
<span class="cline-any cline-neutral"> </span>
|
|
429
536
|
<span class="cline-any cline-neutral"> </span>
|
|
430
537
|
<span class="cline-any cline-neutral"> </span>
|
|
431
538
|
<span class="cline-any cline-yes">5x</span>
|
|
539
|
+
<span class="cline-any cline-yes">1x</span>
|
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-neutral"> </span>
|
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
545
|
+
<span class="cline-any cline-neutral"> </span>
|
|
546
|
+
<span class="cline-any cline-yes">40x</span>
|
|
547
|
+
<span class="cline-any cline-neutral"> </span>
|
|
548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-yes">44x</span>
|
|
550
|
+
<span class="cline-any cline-yes">44x</span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-yes">44x</span>
|
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
554
|
+
<span class="cline-any cline-neutral"> </span>
|
|
555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-neutral"> </span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
571
|
+
<span class="cline-any cline-no"> </span>
|
|
432
572
|
<span class="cline-any cline-neutral"> </span>
|
|
433
573
|
<span class="cline-any cline-neutral"> </span>
|
|
434
574
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -441,6 +581,8 @@
|
|
|
441
581
|
<span class="cline-any cline-neutral"> </span>
|
|
442
582
|
<span class="cline-any cline-neutral"> </span>
|
|
443
583
|
<span class="cline-any cline-no"> </span>
|
|
584
|
+
<span class="cline-any cline-no"> </span>
|
|
585
|
+
<span class="cline-any cline-no"> </span>
|
|
444
586
|
<span class="cline-any cline-neutral"> </span>
|
|
445
587
|
<span class="cline-any cline-no"> </span>
|
|
446
588
|
<span class="cline-any cline-no"> </span>
|
|
@@ -455,6 +597,8 @@
|
|
|
455
597
|
<span class="cline-any cline-neutral"> </span>
|
|
456
598
|
<span class="cline-any cline-neutral"> </span>
|
|
457
599
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
458
602
|
<span class="cline-any cline-yes">5x</span>
|
|
459
603
|
<span class="cline-any cline-neutral"> </span>
|
|
460
604
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -481,65 +625,63 @@
|
|
|
481
625
|
<span class="cline-any cline-neutral"> </span>
|
|
482
626
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import * as path from "path";
|
|
483
627
|
|
|
484
|
-
import type { BucketBy
|
|
628
|
+
import type { BucketBy } from "@featurevisor/types";
|
|
485
629
|
import { Parser, parsers } from "@featurevisor/parsers";
|
|
486
630
|
|
|
487
631
|
import { FilesystemAdapter } from "../datasource/filesystemAdapter";
|
|
488
632
|
import type { Plugin } from "../cli";
|
|
489
|
-
import
|
|
490
|
-
|
|
491
|
-
export const FEATURES_DIRECTORY_NAME = "features";
|
|
492
|
-
export const SEGMENTS_DIRECTORY_NAME = "segments";
|
|
493
|
-
export const ATTRIBUTES_DIRECTORY_NAME = "attributes";
|
|
494
|
-
export const GROUPS_DIRECTORY_NAME = "groups";
|
|
495
|
-
export const SCHEMAS_DIRECTORY_NAME = "schemas";
|
|
496
|
-
export const
|
|
497
|
-
export const
|
|
498
|
-
export const
|
|
499
|
-
export const
|
|
500
|
-
export const
|
|
501
|
-
export const
|
|
502
|
-
export const
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
export const
|
|
506
|
-
&
|
|
507
|
-
|
|
508
|
-
export const
|
|
509
|
-
export const
|
|
510
|
-
|
|
511
|
-
export const
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
export const
|
|
515
|
-
|
|
516
|
-
export const
|
|
517
|
-
|
|
518
|
-
export interface Scope {
|
|
519
|
-
name: string;
|
|
520
|
-
context: Context;
|
|
521
|
-
tag?: Tag;
|
|
522
|
-
tags?: BuildTags;
|
|
523
|
-
}
|
|
633
|
+
import { CLI_COLOR_CYAN, CLI_FORMAT_BOLD, colorize } from "../tester/cliFormat";
|
|
634
|
+
|
|
635
|
+
export const <span class="cstat-no" title="statement not covered" >FEATURES_DIRECTORY_NAME = "</span>features";
|
|
636
|
+
export const <span class="cstat-no" title="statement not covered" >SEGMENTS_DIRECTORY_NAME = "</span>segments";
|
|
637
|
+
export const <span class="cstat-no" title="statement not covered" >ATTRIBUTES_DIRECTORY_NAME = "</span>attributes";
|
|
638
|
+
export const <span class="cstat-no" title="statement not covered" >GROUPS_DIRECTORY_NAME = "</span>groups";
|
|
639
|
+
export const <span class="cstat-no" title="statement not covered" >SCHEMAS_DIRECTORY_NAME = "</span>schemas";
|
|
640
|
+
export const TARGETS_DIRECTORY_NAME = "targets";
|
|
641
|
+
export const <span class="cstat-no" title="statement not covered" >TESTS_DIRECTORY_NAME = "</span>tests";
|
|
642
|
+
export const <span class="cstat-no" title="statement not covered" >STATE_DIRECTORY_NAME = "</span>.featurevisor";
|
|
643
|
+
export const <span class="cstat-no" title="statement not covered" >DATAFILES_DIRECTORY_NAME = "</span>datafiles";
|
|
644
|
+
export const <span class="cstat-no" title="statement not covered" >DATAFILE_NAME_PATTERN = "</span>featurevisor-%s.json";
|
|
645
|
+
export const <span class="cstat-no" title="statement not covered" >REVISION_FILE_NAME = "</span>REVISION";
|
|
646
|
+
export const <span class="cstat-no" title="statement not covered" >CATALOG_DIRECTORY_NAME = "</span>catalog";
|
|
647
|
+
export const SETS_DIRECTORY_NAME = "sets";
|
|
648
|
+
|
|
649
|
+
export const <span class="cstat-no" title="statement not covered" >CONFIG_MODULE_NAME = "</span>featurevisor.config.js";
|
|
650
|
+
export const <span class="cstat-no" title="statement not covered" >ROOT_DIR_PLACEHOLDER = "</span><rootDir>";
|
|
651
|
+
|
|
652
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_NAMESPACE_CHARACTER = "</span>.";
|
|
653
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_TAGS = [</span>"all"];
|
|
654
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_BUCKET_BY_ATTRIBUTE = "</span>userId";
|
|
655
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_SETS = f</span>alse;
|
|
656
|
+
|
|
657
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_PRETTY_STATE = t</span>rue;
|
|
658
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_PRETTY_DATAFILE = f</span>alse;
|
|
659
|
+
|
|
660
|
+
export const <span class="cstat-no" title="statement not covered" >DEFAULT_PARSER: Parser = "</span>yml";
|
|
524
661
|
|
|
525
662
|
export interface ProjectConfig {
|
|
663
|
+
promotionFlows?: Array<{
|
|
664
|
+
from: string;
|
|
665
|
+
to: string;
|
|
666
|
+
}>;
|
|
667
|
+
namespaceCharacter: string;
|
|
526
668
|
featuresDirectoryPath: string;
|
|
527
669
|
segmentsDirectoryPath: string;
|
|
528
670
|
attributesDirectoryPath: string;
|
|
529
671
|
groupsDirectoryPath: string;
|
|
530
672
|
schemasDirectoryPath: string;
|
|
673
|
+
targetsDirectoryPath: string;
|
|
531
674
|
testsDirectoryPath: string;
|
|
532
675
|
stateDirectoryPath: string;
|
|
533
676
|
datafilesDirectoryPath: string;
|
|
534
677
|
datafileNamePattern: string;
|
|
535
678
|
revisionFileName: string;
|
|
536
|
-
|
|
537
|
-
|
|
679
|
+
catalogDirectoryPath: string;
|
|
680
|
+
setsDirectoryPath: string;
|
|
538
681
|
|
|
539
|
-
environments
|
|
540
|
-
|
|
682
|
+
environments?: string[];
|
|
683
|
+
sets: boolean;
|
|
541
684
|
tags: string[];
|
|
542
|
-
scopes?: Scope[];
|
|
543
685
|
|
|
544
686
|
adapter: any; // @NOTE: type this properly later
|
|
545
687
|
plugins: Plugin[];
|
|
@@ -561,9 +703,11 @@ export interface ProjectConfig {
|
|
|
561
703
|
// rootDirectoryPath: path to the root directory of the project (without ending with a slash)
|
|
562
704
|
export function getProjectConfig(rootDirectoryPath: string): ProjectConfig {
|
|
563
705
|
const baseConfig: ProjectConfig = {
|
|
564
|
-
environments:
|
|
706
|
+
environments: undefined,
|
|
707
|
+
sets: DEFAULT_SETS,
|
|
708
|
+
promotionFlows: undefined,
|
|
709
|
+
namespaceCharacter: DEFAULT_NAMESPACE_CHARACTER,
|
|
565
710
|
tags: DEFAULT_TAGS,
|
|
566
|
-
scopes: [],
|
|
567
711
|
defaultBucketBy: "userId",
|
|
568
712
|
|
|
569
713
|
parser: DEFAULT_PARSER,
|
|
@@ -575,21 +719,21 @@ export function getProjectConfig(rootDirectoryPath: string): ProjectConfig {
|
|
|
575
719
|
adapter: FilesystemAdapter,
|
|
576
720
|
|
|
577
721
|
featuresDirectoryPath: path.join(rootDirectoryPath, FEATURES_DIRECTORY_NAME),
|
|
578
|
-
|
|
722
|
+
setsDirectoryPath: path.join(rootDirectoryPath, SETS_DIRECTORY_NAME),
|
|
579
723
|
segmentsDirectoryPath: path.join(rootDirectoryPath, SEGMENTS_DIRECTORY_NAME),
|
|
580
724
|
attributesDirectoryPath: path.join(rootDirectoryPath, ATTRIBUTES_DIRECTORY_NAME),
|
|
581
725
|
groupsDirectoryPath: path.join(rootDirectoryPath, GROUPS_DIRECTORY_NAME),
|
|
582
726
|
schemasDirectoryPath: path.join(rootDirectoryPath, SCHEMAS_DIRECTORY_NAME),
|
|
727
|
+
targetsDirectoryPath: path.join(rootDirectoryPath, TARGETS_DIRECTORY_NAME),
|
|
583
728
|
testsDirectoryPath: path.join(rootDirectoryPath, TESTS_DIRECTORY_NAME),
|
|
584
729
|
stateDirectoryPath: path.join(rootDirectoryPath, STATE_DIRECTORY_NAME),
|
|
585
730
|
datafilesDirectoryPath: path.join(rootDirectoryPath, DATAFILES_DIRECTORY_NAME),
|
|
586
731
|
datafileNamePattern: DATAFILE_NAME_PATTERN,
|
|
587
732
|
revisionFileName: REVISION_FILE_NAME,
|
|
588
|
-
|
|
733
|
+
catalogDirectoryPath: path.join(rootDirectoryPath, CATALOG_DIRECTORY_NAME),
|
|
589
734
|
|
|
590
735
|
enforceCatchAllRule: false,
|
|
591
736
|
plugins: [],
|
|
592
|
-
splitByEnvironment: false,
|
|
593
737
|
|
|
594
738
|
maxVariableStringLength: undefined,
|
|
595
739
|
maxVariableArrayStringifiedLength: undefined,
|
|
@@ -613,7 +757,7 @@ export function getProjectConfig(rootDirectoryPath: string): ProjectConfig {
|
|
|
613
757
|
|
|
614
758
|
const finalConfig = mergedConfig as ProjectConfig;
|
|
615
759
|
|
|
616
|
-
if (typeof finalConfig.parser === "string") {
|
|
760
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof finalConfig.parser === "string") {
|
|
617
761
|
const allowedParsers = Object.keys(parsers);
|
|
618
762
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (allowedParsers.indexOf(finalConfig.parser) === -1) {
|
|
619
763
|
<span class="cstat-no" title="statement not covered" > throw new Error(`Invalid parser: ${finalConfig.parser}`);</span>
|
|
@@ -622,25 +766,93 @@ export function getProjectConfig(rootDirectoryPath: string): ProjectConfig {
|
|
|
622
766
|
finalConfig.parser = parsers[finalConfig.parser];
|
|
623
767
|
}
|
|
624
768
|
|
|
625
|
-
if (
|
|
769
|
+
if (typeof finalConfig.sets !== "boolean") {
|
|
770
|
+
throw new Error(`Invalid sets: ${finalConfig.sets}. It must be a boolean.`);
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
if (typeof finalConfig.environments !== "undefined") {
|
|
774
|
+
if (!Array.isArray(finalConfig.environments)) {
|
|
775
|
+
throw new Error(
|
|
776
|
+
`Invalid environments: ${finalConfig.environments}. It must be an array of strings when defined.`,
|
|
777
|
+
);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
finalConfig.environments.forEach((environment: unknown, index: number) => {
|
|
781
|
+
if (typeof environment !== "string") {
|
|
782
|
+
throw new Error(`Invalid environments[${index}]: ${environment}. It must be a string.`);
|
|
783
|
+
}
|
|
784
|
+
});
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
if (
|
|
788
|
+
typeof finalConfig.namespaceCharacter !== "string" ||
|
|
789
|
+
finalConfig.namespaceCharacter.length === 0
|
|
790
|
+
) {
|
|
626
791
|
throw new Error(
|
|
627
|
-
|
|
792
|
+
`Invalid namespaceCharacter: ${finalConfig.namespaceCharacter}. It must be a non-empty string.`,
|
|
628
793
|
);
|
|
629
794
|
}
|
|
795
|
+
|
|
796
|
+
if (typeof finalConfig.promotionFlows !== "undefined") {
|
|
797
|
+
if (!Array.isArray(finalConfig.promotionFlows)) {
|
|
798
|
+
throw new Error(
|
|
799
|
+
`Invalid promotionFlows: ${finalConfig.promotionFlows}. It must be an array.`,
|
|
800
|
+
);
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
finalConfig.promotionFlows.forEach((entry: any, index: number) => {
|
|
804
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
805
|
+
throw new Error(
|
|
806
|
+
`Invalid promotionFlows[${index}]: ${entry}. Each entry must be an object with exactly "from" and "to" string fields.`,
|
|
807
|
+
);
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
const keys = Object.keys(entry).sort();
|
|
811
|
+
|
|
812
|
+
if (keys.length !== 2 || keys[0] !== "from" || keys[1] !== "to") {
|
|
813
|
+
throw new Error(
|
|
814
|
+
`Invalid promotionFlows[${index}]: ${JSON.stringify(entry)}. Each entry must contain exactly "from" and "to".`,
|
|
815
|
+
);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
if (typeof entry.from !== "string" || typeof entry.to !== "string") {
|
|
819
|
+
throw new Error(
|
|
820
|
+
`Invalid promotionFlows[${index}]: ${JSON.stringify(entry)}. "from" and "to" must be strings.`,
|
|
821
|
+
);
|
|
822
|
+
}
|
|
823
|
+
});
|
|
824
|
+
}
|
|
630
825
|
|
|
631
826
|
return finalConfig as ProjectConfig;
|
|
632
827
|
}
|
|
633
828
|
|
|
829
|
+
export function getProjectConfigForSet(projectConfig: ProjectConfig, set: string): ProjectConfig {
|
|
830
|
+
const setRootDirectoryPath = path.join(projectConfig.setsDirectoryPath, set);
|
|
831
|
+
|
|
832
|
+
return {
|
|
833
|
+
...projectConfig,
|
|
834
|
+
featuresDirectoryPath: path.join(setRootDirectoryPath, FEATURES_DIRECTORY_NAME),
|
|
835
|
+
segmentsDirectoryPath: path.join(setRootDirectoryPath, SEGMENTS_DIRECTORY_NAME),
|
|
836
|
+
attributesDirectoryPath: path.join(setRootDirectoryPath, ATTRIBUTES_DIRECTORY_NAME),
|
|
837
|
+
groupsDirectoryPath: path.join(setRootDirectoryPath, GROUPS_DIRECTORY_NAME),
|
|
838
|
+
schemasDirectoryPath: path.join(setRootDirectoryPath, SCHEMAS_DIRECTORY_NAME),
|
|
839
|
+
targetsDirectoryPath: path.join(setRootDirectoryPath, TARGETS_DIRECTORY_NAME),
|
|
840
|
+
testsDirectoryPath: path.join(setRootDirectoryPath, TESTS_DIRECTORY_NAME),
|
|
841
|
+
stateDirectoryPath: path.join(projectConfig.stateDirectoryPath, SETS_DIRECTORY_NAME, set),
|
|
842
|
+
datafilesDirectoryPath: path.join(projectConfig.datafilesDirectoryPath, set),
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
|
|
634
846
|
export interface ShowProjectConfigOptions {
|
|
635
847
|
json?: boolean;
|
|
636
848
|
pretty?: boolean;
|
|
637
849
|
}
|
|
638
850
|
|
|
639
|
-
export function <span class="fstat-no" title="function not covered" >showProjectConfig(</span>
|
|
851
|
+
export function <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >showProjectConfig(</span></span>
|
|
640
852
|
projectConfig: ProjectConfig,
|
|
641
853
|
options: ShowProjectConfigOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
642
854
|
) {
|
|
643
|
-
<span class="cstat-no" title="statement not covered" >
|
|
855
|
+
<span class="cstat-no" title="statement not covered" > if (options.json) {</span>
|
|
644
856
|
<span class="cstat-no" title="statement not covered" > console.log(</span>
|
|
645
857
|
options.pretty ? JSON.stringify(projectConfig, null, 2) : JSON.stringify(projectConfig),
|
|
646
858
|
);
|
|
@@ -648,24 +860,28 @@ export function <span class="fstat-no" title="function not covered" >showProject
|
|
|
648
860
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
649
861
|
}
|
|
650
862
|
|
|
651
|
-
<span class="cstat-no" title="statement not covered" > console.log("
|
|
863
|
+
<span class="cstat-no" title="statement not covered" > console.log("");</span>
|
|
864
|
+
<span class="cstat-no" title="statement not covered" > console.log(CLI_FORMAT_BOLD, "Project configuration");</span>
|
|
865
|
+
<span class="cstat-no" title="statement not covered" > console.log("");</span>
|
|
652
866
|
|
|
653
867
|
const keys = <span class="cstat-no" title="statement not covered" >Object.keys(projectConfig);</span>
|
|
654
|
-
const longestKeyLength = <span class="cstat-no" title="statement not covered" >keys.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, key) => (<span class="cstat-no" title="statement not covered" >key.length > acc ? key.length : acc)</span
|
|
868
|
+
const longestKeyLength = <span class="cstat-no" title="statement not covered" >keys.reduce(<span class="fstat-no" title="function not covered" >(a</span>cc, key) => (<span class="cstat-no" title="statement not covered" >key.length > acc ? key.length : acc), 0</span>);</span>
|
|
655
869
|
const ignoreKeys = <span class="cstat-no" title="statement not covered" >["adapter", "parser"];</span>
|
|
656
870
|
|
|
657
871
|
<span class="cstat-no" title="statement not covered" > for (const key of keys) {</span>
|
|
658
|
-
<span class="cstat-no" title="statement not covered" >
|
|
872
|
+
<span class="cstat-no" title="statement not covered" > if (ignoreKeys.indexOf(key) !== -1) {</span>
|
|
659
873
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
660
874
|
}
|
|
661
875
|
|
|
662
|
-
<span class="cstat-no" title="statement not covered" > console.log(
|
|
876
|
+
<span class="cstat-no" title="statement not covered" > console.log(</span>
|
|
877
|
+
` ${colorize(key.padEnd(longestKeyLength, " "), CLI_COLOR_CYAN)}: ${projectConfig[key]}`,
|
|
878
|
+
);
|
|
663
879
|
}
|
|
664
880
|
}
|
|
665
881
|
|
|
666
|
-
export const configPlugin: Plugin = {
|
|
882
|
+
export const <span class="cstat-no" title="statement not covered" >configPlugin: Plugin = {</span>
|
|
667
883
|
command: "config",
|
|
668
|
-
handler: <span class="fstat-no" title="function not covered" >async </span>
|
|
884
|
+
handler: <span class="fstat-no" title="function not covered" >async ({</span> rootDirectoryPath, parsed }) => {
|
|
669
885
|
const projectConfig = <span class="cstat-no" title="statement not covered" >getProjectConfig(rootDirectoryPath);</span>
|
|
670
886
|
<span class="cstat-no" title="statement not covered" > showProjectConfig(projectConfig, {</span>
|
|
671
887
|
json: parsed.json,
|
|
@@ -694,16 +910,16 @@ export const configPlugin: Plugin = {
|
|
|
694
910
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
695
911
|
Code coverage generated by
|
|
696
912
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
697
|
-
at 2026-
|
|
913
|
+
at 2026-07-12T20:35:50.655Z
|
|
698
914
|
</div>
|
|
699
|
-
<script src="
|
|
915
|
+
<script src="../../prettify.js"></script>
|
|
700
916
|
<script>
|
|
701
917
|
window.onload = function () {
|
|
702
918
|
prettyPrint();
|
|
703
919
|
};
|
|
704
920
|
</script>
|
|
705
|
-
<script src="
|
|
706
|
-
<script src="
|
|
921
|
+
<script src="../../sorter.js"></script>
|
|
922
|
+
<script src="../../block-navigation.js"></script>
|
|
707
923
|
</body>
|
|
708
924
|
</html>
|
|
709
925
|
|