@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/
|
|
6
|
+
<title>Code coverage report for src/builder/applyContextToDatafile.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> applyContextToDatafile.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">93.02% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>40/43</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>
|
|
@@ -293,14 +293,14 @@
|
|
|
293
293
|
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
294
|
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
295
|
<a name='L230'></a><a href='#L230'>230</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
296
|
-
<span class="cline-any cline-yes">
|
|
296
|
+
<span class="cline-any cline-yes">3x</span>
|
|
297
297
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
298
|
+
<span class="cline-any cline-yes">3x</span>
|
|
299
|
+
<span class="cline-any cline-yes">3x</span>
|
|
300
300
|
<span class="cline-any cline-neutral"> </span>
|
|
301
301
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-yes">
|
|
303
|
-
<span class="cline-any cline-yes">
|
|
302
|
+
<span class="cline-any cline-yes">61x</span>
|
|
303
|
+
<span class="cline-any cline-yes">34x</span>
|
|
304
304
|
<span class="cline-any cline-neutral"> </span>
|
|
305
305
|
<span class="cline-any cline-neutral"> </span>
|
|
306
306
|
<span class="cline-any cline-yes">27x</span>
|
|
@@ -315,43 +315,43 @@
|
|
|
315
315
|
<span class="cline-any cline-neutral"> </span>
|
|
316
316
|
<span class="cline-any cline-neutral"> </span>
|
|
317
317
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
318
|
+
<span class="cline-any cline-yes">81x</span>
|
|
319
319
|
<span class="cline-any cline-neutral"> </span>
|
|
320
320
|
<span class="cline-any cline-neutral"> </span>
|
|
321
321
|
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
322
|
+
<span class="cline-any cline-yes">80x</span>
|
|
323
323
|
<span class="cline-any cline-neutral"> </span>
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
326
|
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
327
|
+
<span class="cline-any cline-yes">80x</span>
|
|
328
328
|
<span class="cline-any cline-neutral"> </span>
|
|
329
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
330
|
<span class="cline-any cline-neutral"> </span>
|
|
331
|
-
<span class="cline-any cline-yes">
|
|
331
|
+
<span class="cline-any cline-yes">80x</span>
|
|
332
332
|
<span class="cline-any cline-neutral"> </span>
|
|
333
333
|
<span class="cline-any cline-neutral"> </span>
|
|
334
|
-
<span class="cline-any cline-yes">
|
|
335
|
-
<span class="cline-any cline-yes">
|
|
336
|
-
<span class="cline-any cline-yes">
|
|
337
|
-
<span class="cline-any cline-yes">
|
|
334
|
+
<span class="cline-any cline-yes">80x</span>
|
|
335
|
+
<span class="cline-any cline-yes">94x</span>
|
|
336
|
+
<span class="cline-any cline-yes">94x</span>
|
|
337
|
+
<span class="cline-any cline-yes">94x</span>
|
|
338
338
|
<span class="cline-any cline-neutral"> </span>
|
|
339
339
|
<span class="cline-any cline-neutral"> </span>
|
|
340
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
341
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
342
|
+
<span class="cline-any cline-yes">94x</span>
|
|
343
343
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-yes">
|
|
344
|
+
<span class="cline-any cline-yes">94x</span>
|
|
345
|
+
<span class="cline-any cline-yes">66x</span>
|
|
346
346
|
<span class="cline-any cline-neutral"> </span>
|
|
347
347
|
<span class="cline-any cline-neutral"> </span>
|
|
348
348
|
<span class="cline-any cline-neutral"> </span>
|
|
349
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-yes">
|
|
351
|
-
<span class="cline-any cline-yes">
|
|
350
|
+
<span class="cline-any cline-yes">80x</span>
|
|
351
|
+
<span class="cline-any cline-yes">68x</span>
|
|
352
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
353
|
<span class="cline-any cline-neutral"> </span>
|
|
354
|
-
<span class="cline-any cline-yes">
|
|
354
|
+
<span class="cline-any cline-yes">68x</span>
|
|
355
355
|
<span class="cline-any cline-yes">19x</span>
|
|
356
356
|
<span class="cline-any cline-yes">19x</span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -377,18 +377,18 @@
|
|
|
377
377
|
<span class="cline-any cline-neutral"> </span>
|
|
378
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-yes">
|
|
381
|
-
<span class="cline-any cline-yes">
|
|
382
|
-
<span class="cline-any cline-yes">
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
380
|
+
<span class="cline-any cline-yes">68x</span>
|
|
381
|
+
<span class="cline-any cline-yes">68x</span>
|
|
382
|
+
<span class="cline-any cline-yes">68x</span>
|
|
383
|
+
<span class="cline-any cline-yes">50x</span>
|
|
384
384
|
<span class="cline-any cline-neutral"> </span>
|
|
385
385
|
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-yes">
|
|
386
|
+
<span class="cline-any cline-yes">50x</span>
|
|
387
387
|
<span class="cline-any cline-neutral"> </span>
|
|
388
388
|
<span class="cline-any cline-neutral"> </span>
|
|
389
|
-
<span class="cline-any cline-yes">
|
|
390
|
-
<span class="cline-any cline-yes">
|
|
391
|
-
<span class="cline-any cline-yes">
|
|
389
|
+
<span class="cline-any cline-yes">50x</span>
|
|
390
|
+
<span class="cline-any cline-yes">50x</span>
|
|
391
|
+
<span class="cline-any cline-yes">50x</span>
|
|
392
392
|
<span class="cline-any cline-neutral"> </span>
|
|
393
393
|
<span class="cline-any cline-neutral"> </span>
|
|
394
394
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
<span class="cline-any cline-neutral"> </span>
|
|
398
398
|
<span class="cline-any cline-neutral"> </span>
|
|
399
399
|
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-yes">
|
|
400
|
+
<span class="cline-any cline-yes">50x</span>
|
|
401
401
|
<span class="cline-any cline-yes">9x</span>
|
|
402
402
|
<span class="cline-any cline-yes">9x</span>
|
|
403
403
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -437,7 +437,7 @@
|
|
|
437
437
|
<span class="cline-any cline-neutral"> </span>
|
|
438
438
|
<span class="cline-any cline-neutral"> </span>
|
|
439
439
|
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-yes">
|
|
440
|
+
<span class="cline-any cline-yes">68x</span>
|
|
441
441
|
<span class="cline-any cline-yes">21x</span>
|
|
442
442
|
<span class="cline-any cline-neutral"> </span>
|
|
443
443
|
<span class="cline-any cline-yes">21x</span>
|
|
@@ -484,16 +484,16 @@
|
|
|
484
484
|
<span class="cline-any cline-neutral"> </span>
|
|
485
485
|
<span class="cline-any cline-neutral"> </span>
|
|
486
486
|
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-yes">
|
|
488
|
-
<span class="cline-any cline-yes">
|
|
487
|
+
<span class="cline-any cline-yes">68x</span>
|
|
488
|
+
<span class="cline-any cline-yes">68x</span>
|
|
489
489
|
<span class="cline-any cline-neutral"> </span>
|
|
490
490
|
<span class="cline-any cline-neutral"> </span>
|
|
491
491
|
<span class="cline-any cline-neutral"> </span>
|
|
492
|
-
<span class="cline-any cline-yes">
|
|
493
|
-
<span class="cline-any cline-yes">
|
|
494
|
-
<span class="cline-any cline-yes">
|
|
492
|
+
<span class="cline-any cline-yes">68x</span>
|
|
493
|
+
<span class="cline-any cline-yes">50x</span>
|
|
494
|
+
<span class="cline-any cline-yes">50x</span>
|
|
495
495
|
<span class="cline-any cline-neutral"> </span>
|
|
496
|
-
<span class="cline-any cline-yes">
|
|
496
|
+
<span class="cline-any cline-yes">50x</span>
|
|
497
497
|
<span class="cline-any cline-neutral"> </span>
|
|
498
498
|
<span class="cline-any cline-neutral"> </span>
|
|
499
499
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -501,31 +501,31 @@
|
|
|
501
501
|
<span class="cline-any cline-yes">7x</span>
|
|
502
502
|
<span class="cline-any cline-neutral"> </span>
|
|
503
503
|
<span class="cline-any cline-neutral"> </span>
|
|
504
|
-
<span class="cline-any cline-yes">
|
|
505
|
-
<span class="cline-any cline-yes">
|
|
504
|
+
<span class="cline-any cline-yes">50x</span>
|
|
505
|
+
<span class="cline-any cline-yes">43x</span>
|
|
506
506
|
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-yes">
|
|
507
|
+
<span class="cline-any cline-yes">43x</span>
|
|
508
508
|
<span class="cline-any cline-neutral"> </span>
|
|
509
509
|
<span class="cline-any cline-neutral"> </span>
|
|
510
510
|
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-yes">
|
|
511
|
+
<span class="cline-any cline-yes">68x</span>
|
|
512
512
|
<span class="cline-any cline-neutral"> </span>
|
|
513
513
|
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-yes">
|
|
514
|
+
<span class="cline-any cline-yes">68x</span>
|
|
515
515
|
<span class="cline-any cline-neutral"> </span>
|
|
516
516
|
<span class="cline-any cline-neutral"> </span>
|
|
517
517
|
<span class="cline-any cline-neutral"> </span>
|
|
518
|
-
<span class="cline-any cline-yes">
|
|
519
|
-
<span class="cline-any cline-yes">
|
|
518
|
+
<span class="cline-any cline-yes">80x</span>
|
|
519
|
+
<span class="cline-any cline-yes">66x</span>
|
|
520
520
|
<span class="cline-any cline-neutral"> </span>
|
|
521
521
|
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-yes">
|
|
522
|
+
<span class="cline-any cline-yes">80x</span>
|
|
523
523
|
<span class="cline-any cline-neutral"> </span>
|
|
524
524
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { DatafileContent, Context, Traffic } from "@featurevisor/types";
|
|
525
|
-
import {
|
|
525
|
+
import { createFeaturevisor } from "@featurevisor/sdk";
|
|
526
526
|
|
|
527
|
-
import {
|
|
528
|
-
import {
|
|
527
|
+
import { applyContextToConditions } from "./applyContextToConditions";
|
|
528
|
+
import { applyContextToSegments } from "./applyContextToSegments";
|
|
529
529
|
|
|
530
530
|
function parseIfStringified<T>(value: T): T {
|
|
531
531
|
if (typeof value !== "string" || value === "*") {
|
|
@@ -544,40 +544,40 @@ function parseIfStringified<T>(value: T): T {
|
|
|
544
544
|
}
|
|
545
545
|
}
|
|
546
546
|
|
|
547
|
-
export function
|
|
547
|
+
export function applyContextToDatafile(
|
|
548
548
|
originalDatafileContent: DatafileContent,
|
|
549
549
|
context: Context,
|
|
550
550
|
): DatafileContent {
|
|
551
|
-
const
|
|
551
|
+
const originalFeaturevisor = createFeaturevisor({
|
|
552
552
|
datafile: originalDatafileContent,
|
|
553
|
-
|
|
553
|
+
logLevel: "fatal",
|
|
554
554
|
});
|
|
555
555
|
|
|
556
|
-
const
|
|
556
|
+
const contextualDatafileContent: DatafileContent = JSON.parse(
|
|
557
557
|
JSON.stringify(originalDatafileContent),
|
|
558
558
|
);
|
|
559
559
|
|
|
560
560
|
const removeSegments: string[] = [];
|
|
561
561
|
|
|
562
562
|
// segments
|
|
563
|
-
for (const segmentKey in
|
|
564
|
-
const segment =
|
|
563
|
+
for (const segmentKey in contextualDatafileContent.segments) {
|
|
564
|
+
const segment = contextualDatafileContent.segments[segmentKey];
|
|
565
565
|
const originalConditions = segment.conditions;
|
|
566
|
-
const
|
|
567
|
-
|
|
566
|
+
const contextualConditions = applyContextToConditions(
|
|
567
|
+
originalFeaturevisor,
|
|
568
568
|
originalConditions,
|
|
569
569
|
context,
|
|
570
570
|
);
|
|
571
|
-
|
|
571
|
+
contextualDatafileContent.segments[segmentKey].conditions = contextualConditions;
|
|
572
572
|
|
|
573
|
-
if (
|
|
573
|
+
if (contextualConditions === "*") {
|
|
574
574
|
removeSegments.push(segmentKey);
|
|
575
575
|
}
|
|
576
576
|
}
|
|
577
577
|
|
|
578
578
|
// features
|
|
579
|
-
for (const featureKey in
|
|
580
|
-
const feature =
|
|
579
|
+
for (const featureKey in contextualDatafileContent.features) {
|
|
580
|
+
const feature = contextualDatafileContent.features[featureKey];
|
|
581
581
|
|
|
582
582
|
// force
|
|
583
583
|
if (feature.force) {
|
|
@@ -586,8 +586,8 @@ export function buildScopedDatafile(
|
|
|
586
586
|
|
|
587
587
|
// segments
|
|
588
588
|
if (force.segments) {
|
|
589
|
-
feature.force[forceI].segments =
|
|
590
|
-
|
|
589
|
+
feature.force[forceI].segments = applyContextToSegments(
|
|
590
|
+
originalFeaturevisor,
|
|
591
591
|
force.segments,
|
|
592
592
|
context,
|
|
593
593
|
removeSegments,
|
|
@@ -596,8 +596,8 @@ export function buildScopedDatafile(
|
|
|
596
596
|
|
|
597
597
|
// conditions
|
|
598
598
|
if (force.conditions) {
|
|
599
|
-
feature.force[forceI].conditions =
|
|
600
|
-
|
|
599
|
+
feature.force[forceI].conditions = applyContextToConditions(
|
|
600
|
+
originalFeaturevisor,
|
|
601
601
|
force.conditions,
|
|
602
602
|
context,
|
|
603
603
|
);
|
|
@@ -607,18 +607,18 @@ export function buildScopedDatafile(
|
|
|
607
607
|
|
|
608
608
|
// traffic
|
|
609
609
|
const originalTrafficSegments: (string | string[] | object | undefined)[] = [];
|
|
610
|
-
if (feature.traffic) {
|
|
610
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (feature.traffic) {
|
|
611
611
|
for (let trafficI = 0; trafficI < feature.traffic.length; trafficI++) {
|
|
612
612
|
const traffic = feature.traffic[trafficI];
|
|
613
613
|
|
|
614
|
-
// Store original segments before
|
|
614
|
+
// Store original segments before applying context
|
|
615
615
|
originalTrafficSegments[trafficI] = traffic.segments;
|
|
616
616
|
|
|
617
617
|
// segments
|
|
618
|
-
if (traffic.segments) {
|
|
618
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (traffic.segments) {
|
|
619
619
|
const segments = parseIfStringified(traffic.segments);
|
|
620
|
-
feature.traffic[trafficI].segments =
|
|
621
|
-
|
|
620
|
+
feature.traffic[trafficI].segments = applyContextToSegments(
|
|
621
|
+
originalFeaturevisor,
|
|
622
622
|
segments,
|
|
623
623
|
context,
|
|
624
624
|
removeSegments,
|
|
@@ -640,8 +640,8 @@ export function buildScopedDatafile(
|
|
|
640
640
|
// segments
|
|
641
641
|
if (variableOverride.segments) {
|
|
642
642
|
const segments = parseIfStringified(variableOverride.segments);
|
|
643
|
-
variableOverride.segments =
|
|
644
|
-
|
|
643
|
+
variableOverride.segments = applyContextToSegments(
|
|
644
|
+
originalFeaturevisor,
|
|
645
645
|
segments,
|
|
646
646
|
context,
|
|
647
647
|
removeSegments,
|
|
@@ -651,8 +651,8 @@ export function buildScopedDatafile(
|
|
|
651
651
|
// conditions
|
|
652
652
|
if (variableOverride.conditions) {
|
|
653
653
|
const conditions = parseIfStringified(variableOverride.conditions);
|
|
654
|
-
variableOverride.conditions =
|
|
655
|
-
|
|
654
|
+
variableOverride.conditions = applyContextToConditions(
|
|
655
|
+
originalFeaturevisor,
|
|
656
656
|
conditions,
|
|
657
657
|
context,
|
|
658
658
|
);
|
|
@@ -686,8 +686,8 @@ export function buildScopedDatafile(
|
|
|
686
686
|
|
|
687
687
|
// segments
|
|
688
688
|
if (variableOverride.segments) {
|
|
689
|
-
variableOverride.segments =
|
|
690
|
-
|
|
689
|
+
variableOverride.segments = applyContextToSegments(
|
|
690
|
+
originalFeaturevisor,
|
|
691
691
|
variableOverride.segments,
|
|
692
692
|
context,
|
|
693
693
|
removeSegments,
|
|
@@ -696,8 +696,8 @@ export function buildScopedDatafile(
|
|
|
696
696
|
|
|
697
697
|
// conditions
|
|
698
698
|
if (variableOverride.conditions) {
|
|
699
|
-
variableOverride.conditions =
|
|
700
|
-
|
|
699
|
+
variableOverride.conditions = applyContextToConditions(
|
|
700
|
+
originalFeaturevisor,
|
|
701
701
|
variableOverride.conditions,
|
|
702
702
|
context,
|
|
703
703
|
);
|
|
@@ -713,7 +713,7 @@ export function buildScopedDatafile(
|
|
|
713
713
|
}
|
|
714
714
|
|
|
715
715
|
// feature traffic consecutive segments with `*` removal
|
|
716
|
-
if (feature.traffic) {
|
|
716
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (feature.traffic) {
|
|
717
717
|
const newTrafficArray: Traffic[] = [];
|
|
718
718
|
|
|
719
719
|
let lastAddedTraffic: Traffic | undefined;
|
|
@@ -740,15 +740,15 @@ export function buildScopedDatafile(
|
|
|
740
740
|
feature.traffic = newTrafficArray;
|
|
741
741
|
}
|
|
742
742
|
|
|
743
|
-
|
|
743
|
+
contextualDatafileContent.features[featureKey] = feature;
|
|
744
744
|
}
|
|
745
745
|
|
|
746
746
|
// remove segments
|
|
747
747
|
for (const removeSegment of removeSegments) {
|
|
748
|
-
delete
|
|
748
|
+
delete contextualDatafileContent.segments[removeSegment];
|
|
749
749
|
}
|
|
750
750
|
|
|
751
|
-
return
|
|
751
|
+
return contextualDatafileContent;
|
|
752
752
|
}
|
|
753
753
|
</pre></td></tr></table></pre>
|
|
754
754
|
|
|
@@ -757,16 +757,16 @@ export function buildScopedDatafile(
|
|
|
757
757
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
758
758
|
Code coverage generated by
|
|
759
759
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
760
|
-
at 2026-
|
|
760
|
+
at 2026-07-12T20:35:50.655Z
|
|
761
761
|
</div>
|
|
762
|
-
<script src="
|
|
762
|
+
<script src="../../prettify.js"></script>
|
|
763
763
|
<script>
|
|
764
764
|
window.onload = function () {
|
|
765
765
|
prettyPrint();
|
|
766
766
|
};
|
|
767
767
|
</script>
|
|
768
|
-
<script src="
|
|
769
|
-
<script src="
|
|
768
|
+
<script src="../../sorter.js"></script>
|
|
769
|
+
<script src="../../block-navigation.js"></script>
|
|
770
770
|
</body>
|
|
771
771
|
</html>
|
|
772
772
|
|