@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 builder/allocator.ts</title>
|
|
6
|
+
<title>Code coverage report for src/builder/allocator.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,7 +19,7 @@
|
|
|
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/builder</a> allocator.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>8/8</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -57,7 +57,7 @@
|
|
|
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>
|
|
@@ -110,48 +110,48 @@
|
|
|
110
110
|
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
111
|
<a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
112
112
|
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-yes">
|
|
114
|
-
<span class="cline-any cline-yes">
|
|
113
|
+
<span class="cline-any cline-yes">46x</span>
|
|
114
|
+
<span class="cline-any cline-yes">45x</span>
|
|
115
115
|
<span class="cline-any cline-neutral"> </span>
|
|
116
|
-
<span class="cline-any cline-yes">
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
118
|
-
<span class="cline-any cline-yes">
|
|
119
|
-
<span class="cline-any cline-yes">
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
116
|
+
<span class="cline-any cline-yes">45x</span>
|
|
117
|
+
<span class="cline-any cline-yes">45x</span>
|
|
118
|
+
<span class="cline-any cline-yes">45x</span>
|
|
119
|
+
<span class="cline-any cline-yes">46x</span>
|
|
120
|
+
<span class="cline-any cline-yes">46x</span>
|
|
121
121
|
<span class="cline-any cline-neutral"> </span>
|
|
122
|
-
<span class="cline-any cline-yes">
|
|
123
|
-
<span class="cline-any cline-yes">
|
|
124
|
-
<span class="cline-any cline-yes">
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
122
|
+
<span class="cline-any cline-yes">46x</span>
|
|
123
|
+
<span class="cline-any cline-yes">46x</span>
|
|
124
|
+
<span class="cline-any cline-yes">46x</span>
|
|
125
|
+
<span class="cline-any cline-yes">46x</span>
|
|
126
126
|
<span class="cline-any cline-neutral"> </span>
|
|
127
127
|
<span class="cline-any cline-neutral"> </span>
|
|
128
|
-
<span class="cline-any cline-yes">
|
|
128
|
+
<span class="cline-any cline-yes">45x</span>
|
|
129
129
|
<span class="cline-any cline-neutral"> </span>
|
|
130
130
|
<span class="cline-any cline-neutral"> </span>
|
|
131
|
-
<span class="cline-any cline-yes">
|
|
131
|
+
<span class="cline-any cline-yes">48x</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>
|
|
135
|
-
<span class="cline-any cline-yes">
|
|
136
|
-
<span class="cline-any cline-yes">
|
|
135
|
+
<span class="cline-any cline-yes">47x</span>
|
|
136
|
+
<span class="cline-any cline-yes">5x</span>
|
|
137
137
|
<span class="cline-any cline-neutral"> </span>
|
|
138
138
|
<span class="cline-any cline-neutral"> </span>
|
|
139
|
-
<span class="cline-any cline-yes">
|
|
139
|
+
<span class="cline-any cline-yes">42x</span>
|
|
140
140
|
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-yes">
|
|
142
|
-
<span class="cline-any cline-yes">
|
|
143
|
-
<span class="cline-any cline-yes">
|
|
144
|
-
<span class="cline-any cline-yes">
|
|
145
|
-
<span class="cline-any cline-yes">
|
|
146
|
-
<span class="cline-any cline-yes">
|
|
147
|
-
<span class="cline-any cline-yes">
|
|
141
|
+
<span class="cline-any cline-yes">42x</span>
|
|
142
|
+
<span class="cline-any cline-yes">42x</span>
|
|
143
|
+
<span class="cline-any cline-yes">42x</span>
|
|
144
|
+
<span class="cline-any cline-yes">48x</span>
|
|
145
|
+
<span class="cline-any cline-yes">48x</span>
|
|
146
|
+
<span class="cline-any cline-yes">48x</span>
|
|
147
|
+
<span class="cline-any cline-yes">48x</span>
|
|
148
148
|
<span class="cline-any cline-yes">27x</span>
|
|
149
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
-
<span class="cline-any cline-yes">
|
|
151
|
-
<span class="cline-any cline-yes">
|
|
150
|
+
<span class="cline-any cline-yes">48x</span>
|
|
151
|
+
<span class="cline-any cline-yes">48x</span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
154
|
-
<span class="cline-any cline-yes">
|
|
154
|
+
<span class="cline-any cline-yes">42x</span>
|
|
155
155
|
<span class="cline-any cline-neutral"> </span>
|
|
156
156
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type { Range, Percentage } from "@featurevisor/types";
|
|
157
157
|
|
|
@@ -205,16 +205,16 @@ export function getUpdatedAvailableRangesAfterFilling(
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
208
|
-
at 2026-
|
|
208
|
+
at 2026-07-12T20:35:50.655Z
|
|
209
209
|
</div>
|
|
210
|
-
<script src="
|
|
210
|
+
<script src="../../prettify.js"></script>
|
|
211
211
|
<script>
|
|
212
212
|
window.onload = function () {
|
|
213
213
|
prettyPrint();
|
|
214
214
|
};
|
|
215
215
|
</script>
|
|
216
|
-
<script src="
|
|
217
|
-
<script src="
|
|
216
|
+
<script src="../../sorter.js"></script>
|
|
217
|
+
<script src="../../block-navigation.js"></script>
|
|
218
218
|
</body>
|
|
219
219
|
</html>
|
|
220
220
|
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for builder/
|
|
6
|
+
<title>Code coverage report for src/builder/applyContextToConditions.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,20 +19,20 @@
|
|
|
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/builder</a> applyContextToConditions.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>63/63</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">94.44% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>34/36</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>54/54</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -57,7 +57,7 @@
|
|
|
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>
|
|
@@ -197,50 +197,56 @@
|
|
|
197
197
|
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
198
|
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
199
|
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
-
<a name='L135'></a><a href='#L135'>135</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
201
206
|
<span class="cline-any cline-neutral"> </span>
|
|
202
207
|
<span class="cline-any cline-neutral"> </span>
|
|
203
208
|
<span class="cline-any cline-neutral"> </span>
|
|
204
209
|
<span class="cline-any cline-neutral"> </span>
|
|
205
210
|
<span class="cline-any cline-neutral"> </span>
|
|
206
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-yes">4x</span>
|
|
207
213
|
<span class="cline-any cline-neutral"> </span>
|
|
208
214
|
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-yes">
|
|
215
|
+
<span class="cline-any cline-yes">143x</span>
|
|
210
216
|
<span class="cline-any cline-neutral"> </span>
|
|
211
217
|
<span class="cline-any cline-neutral"> </span>
|
|
212
218
|
<span class="cline-any cline-neutral"> </span>
|
|
213
219
|
<span class="cline-any cline-neutral"> </span>
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
215
|
-
<span class="cline-any cline-yes">
|
|
220
|
+
<span class="cline-any cline-yes">142x</span>
|
|
221
|
+
<span class="cline-any cline-yes">142x</span>
|
|
216
222
|
<span class="cline-any cline-neutral"> </span>
|
|
217
|
-
<span class="cline-any cline-yes">
|
|
223
|
+
<span class="cline-any cline-yes">142x</span>
|
|
218
224
|
<span class="cline-any cline-neutral"> </span>
|
|
219
225
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-yes">
|
|
226
|
+
<span class="cline-any cline-yes">28x</span>
|
|
221
227
|
<span class="cline-any cline-neutral"> </span>
|
|
222
228
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-yes">
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
229
|
+
<span class="cline-any cline-yes">496x</span>
|
|
230
|
+
<span class="cline-any cline-yes">219x</span>
|
|
225
231
|
<span class="cline-any cline-neutral"> </span>
|
|
226
232
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-yes">
|
|
233
|
+
<span class="cline-any cline-yes">277x</span>
|
|
228
234
|
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-yes">
|
|
235
|
+
<span class="cline-any cline-yes">129x</span>
|
|
230
236
|
<span class="cline-any cline-neutral"> </span>
|
|
231
237
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-yes">
|
|
238
|
+
<span class="cline-any cline-yes">129x</span>
|
|
233
239
|
<span class="cline-any cline-neutral"> </span>
|
|
234
240
|
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-yes">
|
|
236
|
-
<span class="cline-any cline-yes">
|
|
241
|
+
<span class="cline-any cline-yes">110x</span>
|
|
242
|
+
<span class="cline-any cline-yes">73x</span>
|
|
237
243
|
<span class="cline-any cline-neutral"> </span>
|
|
238
244
|
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-yes">
|
|
245
|
+
<span class="cline-any cline-yes">37x</span>
|
|
240
246
|
<span class="cline-any cline-neutral"> </span>
|
|
241
247
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">
|
|
243
|
-
<span class="cline-any cline-yes">
|
|
248
|
+
<span class="cline-any cline-yes">167x</span>
|
|
249
|
+
<span class="cline-any cline-yes">167x</span>
|
|
244
250
|
<span class="cline-any cline-yes">99x</span>
|
|
245
251
|
<span class="cline-any cline-yes">99x</span>
|
|
246
252
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -254,7 +260,7 @@
|
|
|
254
260
|
<span class="cline-any cline-neutral"> </span>
|
|
255
261
|
<span class="cline-any cline-neutral"> </span>
|
|
256
262
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">128x</span>
|
|
258
264
|
<span class="cline-any cline-yes">69x</span>
|
|
259
265
|
<span class="cline-any cline-yes">69x</span>
|
|
260
266
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -268,68 +274,72 @@
|
|
|
268
274
|
<span class="cline-any cline-neutral"> </span>
|
|
269
275
|
<span class="cline-any cline-neutral"> </span>
|
|
270
276
|
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-yes">
|
|
277
|
+
<span class="cline-any cline-yes">100x</span>
|
|
272
278
|
<span class="cline-any cline-yes">30x</span>
|
|
273
279
|
<span class="cline-any cline-yes">30x</span>
|
|
274
280
|
<span class="cline-any cline-neutral"> </span>
|
|
275
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
284
|
<span class="cline-any cline-yes">13x</span>
|
|
277
|
-
<span class="cline-any cline-yes">
|
|
285
|
+
<span class="cline-any cline-yes">5x</span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
288
|
<span class="cline-any cline-neutral"> </span>
|
|
279
289
|
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-yes">
|
|
290
|
+
<span class="cline-any cline-yes">8x</span>
|
|
281
291
|
<span class="cline-any cline-neutral"> </span>
|
|
282
292
|
<span class="cline-any cline-neutral"> </span>
|
|
283
293
|
<span class="cline-any cline-neutral"> </span>
|
|
284
294
|
<span class="cline-any cline-neutral"> </span>
|
|
285
295
|
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-yes">
|
|
296
|
+
<span class="cline-any cline-yes">87x</span>
|
|
287
297
|
<span class="cline-any cline-neutral"> </span>
|
|
288
298
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
299
|
+
<span class="cline-any cline-yes">33x</span>
|
|
290
300
|
<span class="cline-any cline-neutral"> </span>
|
|
291
301
|
<span class="cline-any cline-neutral"> </span>
|
|
292
302
|
<span class="cline-any cline-neutral"> </span>
|
|
293
303
|
<span class="cline-any cline-neutral"> </span>
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
304
|
+
<span class="cline-any cline-yes">438x</span>
|
|
295
305
|
<span class="cline-any cline-yes">7x</span>
|
|
296
306
|
<span class="cline-any cline-neutral"> </span>
|
|
297
307
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
308
|
+
<span class="cline-any cline-yes">431x</span>
|
|
309
|
+
<span class="cline-any cline-yes">124x</span>
|
|
300
310
|
<span class="cline-any cline-neutral"> </span>
|
|
301
311
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-yes">
|
|
312
|
+
<span class="cline-any cline-yes">319x</span>
|
|
303
313
|
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-yes">
|
|
305
|
-
<span class="cline-any cline-yes">
|
|
314
|
+
<span class="cline-any cline-yes">319x</span>
|
|
315
|
+
<span class="cline-any cline-yes">241x</span>
|
|
306
316
|
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-yes">
|
|
308
|
-
<span class="cline-any cline-yes">
|
|
317
|
+
<span class="cline-any cline-yes">241x</span>
|
|
318
|
+
<span class="cline-any cline-yes">160x</span>
|
|
309
319
|
<span class="cline-any cline-neutral"> </span>
|
|
310
320
|
<span class="cline-any cline-neutral"> </span>
|
|
311
321
|
<span class="cline-any cline-neutral"> </span>
|
|
312
322
|
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-yes">
|
|
323
|
+
<span class="cline-any cline-yes">159x</span>
|
|
314
324
|
<span class="cline-any cline-yes">37x</span>
|
|
315
325
|
<span class="cline-any cline-yes">70x</span>
|
|
316
326
|
<span class="cline-any cline-neutral"> </span>
|
|
317
327
|
<span class="cline-any cline-neutral"> </span>
|
|
318
328
|
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-yes">
|
|
329
|
+
<span class="cline-any cline-yes">122x</span>
|
|
320
330
|
<span class="cline-any cline-yes">29x</span>
|
|
321
331
|
<span class="cline-any cline-yes">54x</span>
|
|
322
332
|
<span class="cline-any cline-neutral"> </span>
|
|
323
333
|
<span class="cline-any cline-neutral"> </span>
|
|
324
334
|
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-yes">
|
|
335
|
+
<span class="cline-any cline-yes">93x</span>
|
|
326
336
|
<span class="cline-any cline-yes">12x</span>
|
|
327
337
|
<span class="cline-any cline-yes">16x</span>
|
|
328
338
|
<span class="cline-any cline-neutral"> </span>
|
|
329
339
|
<span class="cline-any cline-neutral"> </span>
|
|
330
340
|
<span class="cline-any cline-neutral"> </span>
|
|
331
341
|
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">81x</span>
|
|
333
343
|
<span class="cline-any cline-neutral"> </span>
|
|
334
344
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import type {
|
|
335
345
|
Condition,
|
|
@@ -338,15 +348,16 @@
|
|
|
338
348
|
NotCondition,
|
|
339
349
|
Context,
|
|
340
350
|
} from "@featurevisor/types";
|
|
341
|
-
import
|
|
351
|
+
import { allConditionsAreMatched } from "@featurevisor/sdk";
|
|
352
|
+
import type { Featurevisor } from "@featurevisor/sdk";
|
|
342
353
|
|
|
343
|
-
export function
|
|
344
|
-
|
|
354
|
+
export function applyContextToConditions(
|
|
355
|
+
featurevisor: Featurevisor,
|
|
345
356
|
conditions: Condition | Condition[],
|
|
346
357
|
context: Context,
|
|
347
358
|
): Condition | Condition[] {
|
|
348
|
-
const
|
|
349
|
-
const removed = removeRedundantConditions(
|
|
359
|
+
const withContextApplied = applyContextToCondition(featurevisor, conditions, context);
|
|
360
|
+
const removed = removeRedundantConditions(withContextApplied);
|
|
350
361
|
|
|
351
362
|
return removed;
|
|
352
363
|
}
|
|
@@ -373,7 +384,7 @@ export function removeRedundantConditions(
|
|
|
373
384
|
return filtered;
|
|
374
385
|
}
|
|
375
386
|
|
|
376
|
-
if (typeof conditions === "object") {
|
|
387
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof conditions === "object") {
|
|
377
388
|
if ("and" in conditions) {
|
|
378
389
|
const processed = conditions.and.map((c) => removeRedundantConditions(c)) as Condition[];
|
|
379
390
|
const filtered = processed.filter((c) => c !== "*");
|
|
@@ -406,9 +417,13 @@ export function removeRedundantConditions(
|
|
|
406
417
|
const processed = conditions.not.map((c) => removeRedundantConditions(c)) as Condition[];
|
|
407
418
|
const filtered = processed.filter((c) => c !== "*");
|
|
408
419
|
|
|
409
|
-
//
|
|
420
|
+
// `not` negates the implicit AND of its children. Matched children are true
|
|
421
|
+
// and can be removed: not(true && X) becomes not(X). If every child was
|
|
422
|
+
// true, keep not("*") so it remains an always-false expression.
|
|
410
423
|
if (filtered.length === 0) {
|
|
411
|
-
return
|
|
424
|
+
return {
|
|
425
|
+
not: ["*"],
|
|
426
|
+
} as NotCondition;
|
|
412
427
|
}
|
|
413
428
|
|
|
414
429
|
return {
|
|
@@ -420,8 +435,8 @@ export function removeRedundantConditions(
|
|
|
420
435
|
return conditions;
|
|
421
436
|
}
|
|
422
437
|
|
|
423
|
-
export function
|
|
424
|
-
|
|
438
|
+
export function applyContextToCondition(
|
|
439
|
+
featurevisor: Featurevisor,
|
|
425
440
|
condition: Condition | Condition[],
|
|
426
441
|
context: Context,
|
|
427
442
|
): Condition | Condition[] {
|
|
@@ -430,13 +445,13 @@ export function buildScopedCondition(
|
|
|
430
445
|
}
|
|
431
446
|
|
|
432
447
|
if (Array.isArray(condition)) {
|
|
433
|
-
return condition.map((c) =>
|
|
448
|
+
return condition.map((c) => applyContextToCondition(featurevisor, c, context)) as Condition[];
|
|
434
449
|
}
|
|
435
450
|
|
|
436
|
-
if (typeof condition === "object") {
|
|
451
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof condition === "object") {
|
|
437
452
|
// plain condition
|
|
438
453
|
if ("attribute" in condition) {
|
|
439
|
-
const matched =
|
|
454
|
+
const matched = allConditionsAreMatched(condition, context);
|
|
440
455
|
|
|
441
456
|
if (matched) {
|
|
442
457
|
return "*";
|
|
@@ -446,19 +461,19 @@ export function buildScopedCondition(
|
|
|
446
461
|
// AND, OR, NOT conditions
|
|
447
462
|
if ("and" in condition) {
|
|
448
463
|
return {
|
|
449
|
-
and: condition.and.map((c) =>
|
|
464
|
+
and: condition.and.map((c) => applyContextToCondition(featurevisor, c, context)),
|
|
450
465
|
} as AndCondition;
|
|
451
466
|
}
|
|
452
467
|
|
|
453
468
|
if ("or" in condition) {
|
|
454
469
|
return {
|
|
455
|
-
or: condition.or.map((c) =>
|
|
470
|
+
or: condition.or.map((c) => applyContextToCondition(featurevisor, c, context)),
|
|
456
471
|
} as OrCondition;
|
|
457
472
|
}
|
|
458
473
|
|
|
459
474
|
if ("not" in condition) {
|
|
460
475
|
return {
|
|
461
|
-
not: condition.not.map((c) =>
|
|
476
|
+
not: condition.not.map((c) => applyContextToCondition(featurevisor, c, context)),
|
|
462
477
|
} as NotCondition;
|
|
463
478
|
}
|
|
464
479
|
}
|
|
@@ -472,16 +487,16 @@ export function buildScopedCondition(
|
|
|
472
487
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
473
488
|
Code coverage generated by
|
|
474
489
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
475
|
-
at 2026-
|
|
490
|
+
at 2026-07-12T20:35:50.655Z
|
|
476
491
|
</div>
|
|
477
|
-
<script src="
|
|
492
|
+
<script src="../../prettify.js"></script>
|
|
478
493
|
<script>
|
|
479
494
|
window.onload = function () {
|
|
480
495
|
prettyPrint();
|
|
481
496
|
};
|
|
482
497
|
</script>
|
|
483
|
-
<script src="
|
|
484
|
-
<script src="
|
|
498
|
+
<script src="../../sorter.js"></script>
|
|
499
|
+
<script src="../../block-navigation.js"></script>
|
|
485
500
|
</body>
|
|
486
501
|
</html>
|
|
487
502
|
|