@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 generate-code/typescript.ts</title>
|
|
6
|
+
<title>Code coverage report for src/generate-code/typescript.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/generate-code</a> typescript.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">88.
|
|
26
|
+
<span class="strong">88.55% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>209/236</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">74.4% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>125/168</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">93.93% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>31/33</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">90.
|
|
47
|
+
<span class="strong">90.17% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>202/224</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>
|
|
@@ -671,372 +671,7 @@
|
|
|
671
671
|
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
672
|
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
673
|
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
-
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
-
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
-
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
-
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
-
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
-
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
-
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
-
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
-
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
-
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
-
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
-
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
-
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
-
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
-
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
-
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
-
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
-
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
-
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
-
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
-
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
-
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
-
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
-
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
-
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
-
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
-
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
-
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
-
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
-
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
-
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
-
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
-
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
-
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
-
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
-
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
-
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
-
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
-
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
-
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
-
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
-
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
-
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
-
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
-
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
-
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
-
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
-
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
-
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
-
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
-
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
-
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
-
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
-
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
-
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
-
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
-
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
-
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
-
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
-
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
-
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
-
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
-
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
-
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
-
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
-
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
-
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
-
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
-
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
-
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
-
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
-
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
-
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
-
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
-
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
-
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
-
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
-
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
-
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
-
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
-
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
-
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
-
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
-
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
-
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
-
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
-
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
-
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
-
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
-
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
-
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
-
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
-
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
-
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
-
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
-
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
-
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
-
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
-
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
-
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
-
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
-
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
-
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
-
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
-
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
-
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
-
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
-
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
-
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
-
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
-
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
-
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
-
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
-
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
-
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
-
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
-
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
-
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
-
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
-
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
-
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
-
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
-
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
-
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
-
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
-
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
-
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
-
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
-
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
-
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
-
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
-
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
-
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
-
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
-
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
-
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
-
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
-
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
-
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
-
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
-
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
-
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
-
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
-
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
-
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
-
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
-
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
-
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
-
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
-
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
-
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
-
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
-
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
-
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
-
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
-
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
-
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
-
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
-
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
-
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
-
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
-
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
-
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
-
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
-
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
-
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
-
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
-
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
-
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
-
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
-
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
-
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
-
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
-
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
-
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
-
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
-
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
-
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
-
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
-
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
-
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
-
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
-
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
-
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
-
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
-
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
-
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
-
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
-
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
-
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
-
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
-
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
-
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
-
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
-
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
-
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
-
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
-
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
-
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
-
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
-
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
-
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
-
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
-
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
-
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
-
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
-
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
-
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
-
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
-
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
-
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
-
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
-
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
-
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
-
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
-
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
-
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
-
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
-
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
-
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
-
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
-
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
-
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
-
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
-
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
-
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
-
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
-
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
-
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
-
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
-
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
-
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
-
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
-
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
-
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
-
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
-
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
-
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
-
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
-
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
-
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
-
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
-
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
-
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
-
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
-
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
-
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
-
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
-
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
-
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
-
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
-
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
-
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
-
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
-
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
-
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
-
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
-
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
-
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
-
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
-
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
-
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
-
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
-
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
-
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
-
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
-
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
-
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
-
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
-
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
-
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
-
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
-
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
-
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
-
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
-
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
-
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
-
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
-
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
-
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
-
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
-
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
-
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
-
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
-
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
-
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
-
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
-
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
-
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
-
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
-
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
-
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
-
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
-
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
-
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
-
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
-
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
-
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
-
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
-
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
-
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
-
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
-
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
-
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
-
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
-
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
-
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
-
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
-
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
-
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
-
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
-
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
-
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
-
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
-
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
-
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
-
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
-
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
-
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
-
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
-
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
-
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
-
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
-
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
-
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
-
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
-
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
-
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
-
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
-
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
-
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
-
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
-
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
-
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
-
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
-
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
-
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
-
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
-
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
-
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
-
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
-
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
-
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
-
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
-
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
-
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
-
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
-
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
-
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
-
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
-
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
-
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
-
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
-
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
-
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
-
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
-
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
-
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
-
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
-
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
-
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
-
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
-
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
-
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
-
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
-
<a name='L974'></a><a href='#L974'>974</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
1040
675
|
<span class="cline-any cline-yes">1x</span>
|
|
1041
676
|
<span class="cline-any cline-neutral"> </span>
|
|
1042
677
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1047,6 +682,7 @@
|
|
|
1047
682
|
<span class="cline-any cline-neutral"> </span>
|
|
1048
683
|
<span class="cline-any cline-neutral"> </span>
|
|
1049
684
|
<span class="cline-any cline-neutral"> </span>
|
|
685
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1050
686
|
<span class="cline-any cline-neutral"> </span>
|
|
1051
687
|
<span class="cline-any cline-neutral"> </span>
|
|
1052
688
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1055,37 +691,12 @@
|
|
|
1055
691
|
<span class="cline-any cline-neutral"> </span>
|
|
1056
692
|
<span class="cline-any cline-neutral"> </span>
|
|
1057
693
|
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
-
<span class="cline-any cline-yes">
|
|
1059
|
-
<span class="cline-any cline-
|
|
1060
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1065
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1067
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
-
<span class="cline-any cline-no"> </span>
|
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
-
<span class="cline-any cline-no"> </span>
|
|
1071
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1072
|
-
<span class="cline-any cline-no"> </span>
|
|
1073
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
-
<span class="cline-any cline-no"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-no"> </span>
|
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-no"> </span>
|
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-yes">37x</span>
|
|
1084
|
-
<span class="cline-any cline-yes">37x</span>
|
|
694
|
+
<span class="cline-any cline-yes">44x</span>
|
|
695
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1085
696
|
<span class="cline-any cline-neutral"> </span>
|
|
1086
697
|
<span class="cline-any cline-neutral"> </span>
|
|
1087
698
|
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-yes">
|
|
699
|
+
<span class="cline-any cline-yes">443x</span>
|
|
1089
700
|
<span class="cline-any cline-neutral"> </span>
|
|
1090
701
|
<span class="cline-any cline-neutral"> </span>
|
|
1091
702
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1093,12 +704,12 @@
|
|
|
1093
704
|
<span class="cline-any cline-neutral"> </span>
|
|
1094
705
|
<span class="cline-any cline-neutral"> </span>
|
|
1095
706
|
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
-
<span class="cline-any cline-yes">
|
|
1097
|
-
<span class="cline-any cline-yes">
|
|
1098
|
-
<span class="cline-any cline-yes">
|
|
1099
|
-
<span class="cline-any cline-yes">
|
|
707
|
+
<span class="cline-any cline-yes">98x</span>
|
|
708
|
+
<span class="cline-any cline-yes">98x</span>
|
|
709
|
+
<span class="cline-any cline-yes">98x</span>
|
|
710
|
+
<span class="cline-any cline-yes">98x</span>
|
|
1100
711
|
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-yes">
|
|
712
|
+
<span class="cline-any cline-yes">98x</span>
|
|
1102
713
|
<span class="cline-any cline-no"> </span>
|
|
1103
714
|
<span class="cline-any cline-no"> </span>
|
|
1104
715
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1119,21 +730,21 @@
|
|
|
1119
730
|
<span class="cline-any cline-no"> </span>
|
|
1120
731
|
<span class="cline-any cline-neutral"> </span>
|
|
1121
732
|
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
-
<span class="cline-any cline-yes">
|
|
1123
|
-
<span class="cline-any cline-yes">
|
|
1124
|
-
<span class="cline-any cline-yes">
|
|
733
|
+
<span class="cline-any cline-yes">98x</span>
|
|
734
|
+
<span class="cline-any cline-yes">90x</span>
|
|
735
|
+
<span class="cline-any cline-yes">90x</span>
|
|
1125
736
|
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
-
<span class="cline-any cline-yes">
|
|
1127
|
-
<span class="cline-any cline-yes">
|
|
1128
|
-
<span class="cline-any cline-yes">
|
|
737
|
+
<span class="cline-any cline-yes">193x</span>
|
|
738
|
+
<span class="cline-any cline-yes">193x</span>
|
|
739
|
+
<span class="cline-any cline-yes">193x</span>
|
|
1129
740
|
<span class="cline-any cline-neutral"> </span>
|
|
1130
741
|
<span class="cline-any cline-neutral"> </span>
|
|
1131
742
|
<span class="cline-any cline-neutral"> </span>
|
|
1132
743
|
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
-
<span class="cline-any cline-yes">
|
|
744
|
+
<span class="cline-any cline-yes">90x</span>
|
|
1134
745
|
<span class="cline-any cline-neutral"> </span>
|
|
1135
746
|
<span class="cline-any cline-neutral"> </span>
|
|
1136
|
-
<span class="cline-any cline-yes">
|
|
747
|
+
<span class="cline-any cline-yes">8x</span>
|
|
1137
748
|
<span class="cline-any cline-yes">2x</span>
|
|
1138
749
|
<span class="cline-any cline-neutral"> </span>
|
|
1139
750
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1142,593 +753,244 @@
|
|
|
1142
753
|
<span class="cline-any cline-yes">2x</span>
|
|
1143
754
|
<span class="cline-any cline-neutral"> </span>
|
|
1144
755
|
<span class="cline-any cline-neutral"> </span>
|
|
1145
|
-
<span class="cline-any cline-yes">
|
|
756
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1146
757
|
<span class="cline-any cline-neutral"> </span>
|
|
1147
758
|
<span class="cline-any cline-neutral"> </span>
|
|
1148
759
|
<span class="cline-any cline-neutral"> </span>
|
|
1149
|
-
<span class="cline-any cline-yes">
|
|
1150
|
-
<span class="cline-any cline-yes">
|
|
760
|
+
<span class="cline-any cline-yes">12x</span>
|
|
761
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1151
762
|
<span class="cline-any cline-neutral"> </span>
|
|
1152
763
|
<span class="cline-any cline-neutral"> </span>
|
|
1153
|
-
<span class="cline-any cline-yes">
|
|
764
|
+
<span class="cline-any cline-yes">98x</span>
|
|
1154
765
|
<span class="cline-any cline-neutral"> </span>
|
|
1155
766
|
<span class="cline-any cline-neutral"> </span>
|
|
1156
767
|
<span class="cline-any cline-neutral"> </span>
|
|
1157
768
|
<span class="cline-any cline-neutral"> </span>
|
|
1158
769
|
<span class="cline-any cline-neutral"> </span>
|
|
1159
770
|
<span class="cline-any cline-neutral"> </span>
|
|
1160
|
-
<span class="cline-any cline-yes">
|
|
771
|
+
<span class="cline-any cline-yes">490x</span>
|
|
1161
772
|
<span class="cline-any cline-no"> </span>
|
|
1162
773
|
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
-
<span class="cline-any cline-yes">
|
|
1164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-yes">490x</span>
|
|
1165
775
|
<span class="cline-any cline-neutral"> </span>
|
|
1166
776
|
<span class="cline-any cline-neutral"> </span>
|
|
1167
777
|
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
-
<span class="cline-any cline-yes">26x</span>
|
|
1169
|
-
<span class="cline-any cline-yes">26x</span>
|
|
1170
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1171
|
-
<span class="cline-any cline-no"> </span>
|
|
1172
|
-
<span class="cline-any cline-no"> </span>
|
|
1173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1174
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1175
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1176
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1177
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1178
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1179
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1180
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1181
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1182
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1184
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1186
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1191
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1192
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1193
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
-
<span class="cline-any cline-yes">390x</span>
|
|
1199
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
-
<span class="cline-any cline-yes">379x</span>
|
|
1202
|
-
<span class="cline-any cline-yes">379x</span>
|
|
1203
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1204
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1205
778
|
<span class="cline-any cline-neutral"> </span>
|
|
779
|
+
<span class="cline-any cline-yes">55x</span>
|
|
780
|
+
<span class="cline-any cline-yes">55x</span>
|
|
1206
781
|
<span class="cline-any cline-yes">4x</span>
|
|
1207
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1208
|
-
<span class="cline-any cline-yes">375x</span>
|
|
1209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
-
<span class="cline-any cline-yes">375x</span>
|
|
1211
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1213
|
-
<span class="cline-any cline-yes">375x</span>
|
|
1214
|
-
<span class="cline-any cline-yes">375x</span>
|
|
1215
782
|
<span class="cline-any cline-no"> </span>
|
|
1216
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1217
|
-
<span class="cline-any cline-yes">375x</span>
|
|
1218
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1219
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1222
|
-
<span class="cline-any cline-yes">156x</span>
|
|
1223
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1224
783
|
<span class="cline-any cline-no"> </span>
|
|
1225
784
|
<span class="cline-any cline-neutral"> </span>
|
|
1226
785
|
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
-
<span class="cline-any cline-yes">58x</span>
|
|
1228
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1229
|
-
<span class="cline-any cline-yes">41x</span>
|
|
1230
|
-
<span class="cline-any cline-yes">37x</span>
|
|
1231
|
-
<span class="cline-any cline-yes">37x</span>
|
|
1232
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1234
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
-
<span class="cline-any cline-yes">86x</span>
|
|
1236
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
-
<span class="cline-any cline-no"> </span>
|
|
1239
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1248
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1249
|
-
<span class="cline-any cline-yes">279x</span>
|
|
1250
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1251
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
-
<span class="cline-any cline-yes">255x</span>
|
|
1253
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1267
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1274
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1275
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1276
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1278
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1279
|
-
<span class="cline-any cline-yes">29x</span>
|
|
1280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1289
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1290
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1291
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1296
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1300
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1302
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1303
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1304
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1305
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1306
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1307
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1308
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1309
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1310
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1312
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1318
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1319
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1320
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1322
|
-
<span class="cline-any cline-yes">85x</span>
|
|
1323
|
-
<span class="cline-any cline-yes">85x</span>
|
|
1324
|
-
<span class="cline-any cline-yes">85x</span>
|
|
1325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
-
<span class="cline-any cline-yes">85x</span>
|
|
1327
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
-
<span class="cline-any cline-yes">84x</span>
|
|
1332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
-
<span class="cline-any cline-yes">84x</span>
|
|
1335
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1336
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1337
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1339
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1340
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1341
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1343
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1344
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1345
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1346
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1347
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1349
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1354
|
-
<span class="cline-any cline-yes">83x</span>
|
|
1355
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1356
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1357
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1358
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1359
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1360
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1361
|
-
<span class="cline-any cline-yes">25x</span>
|
|
1362
786
|
<span class="cline-any cline-neutral"> </span>
|
|
1363
787
|
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
-
<span class="cline-any cline-
|
|
1365
|
-
<span class="cline-any cline-yes">
|
|
1366
|
-
<span class="cline-any cline-yes">
|
|
1367
|
-
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-yes">18x</span>
|
|
789
|
+
<span class="cline-any cline-yes">18x</span>
|
|
790
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1368
791
|
<span class="cline-any cline-yes">45x</span>
|
|
1369
792
|
<span class="cline-any cline-yes">45x</span>
|
|
1370
793
|
<span class="cline-any cline-yes">45x</span>
|
|
1371
|
-
<span class="cline-any cline-yes">900x</span>
|
|
1372
794
|
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
-
<span class="cline-any cline-yes">
|
|
1374
|
-
<span class="cline-any cline-yes">45x</span>
|
|
795
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1375
796
|
<span class="cline-any cline-neutral"> </span>
|
|
1376
797
|
<span class="cline-any cline-neutral"> </span>
|
|
1377
798
|
<span class="cline-any cline-neutral"> </span>
|
|
1378
799
|
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
-
<span class="cline-any cline-yes">23x</span>
|
|
1380
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1381
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1382
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1383
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1384
800
|
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1386
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1387
|
-
<span class="cline-any cline-yes">40x</span>
|
|
1388
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1390
|
-
<span class="cline-any cline-no"> </span>
|
|
1391
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1392
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1393
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1394
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1395
|
-
<span class="cline-any cline-yes">23x</span>
|
|
1396
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
-
<span class="cline-any cline-yes">23x</span>
|
|
1399
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1401
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1402
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
-
<span class="cline-any cline-yes">58x</span>
|
|
1405
|
-
<span class="cline-any cline-yes">15x</span>
|
|
1406
|
-
<span class="cline-any cline-yes">15x</span>
|
|
1407
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1409
801
|
<span class="cline-any cline-neutral"> </span>
|
|
1410
802
|
<span class="cline-any cline-neutral"> </span>
|
|
1411
803
|
<span class="cline-any cline-neutral"> </span>
|
|
1412
804
|
<span class="cline-any cline-neutral"> </span>
|
|
1413
805
|
<span class="cline-any cline-neutral"> </span>
|
|
1414
|
-
<span class="cline-any cline-yes">12x</span>
|
|
1415
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1416
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1417
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1423
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1424
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1425
|
-
<span class="cline-any cline-yes">10x</span>
|
|
1426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1431
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1433
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1434
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1435
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1436
|
-
<span class="cline-any cline-yes">180x</span>
|
|
1437
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1439
|
-
<span class="cline-any cline-yes">9x</span>
|
|
1440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1444
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1446
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1448
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1449
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1455
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1456
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1457
|
-
<span class="cline-any cline-yes">120x</span>
|
|
1458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1460
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1461
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1465
806
|
<span class="cline-any cline-neutral"> </span>
|
|
1466
807
|
<span class="cline-any cline-neutral"> </span>
|
|
1467
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1468
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1471
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1473
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1475
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1476
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1478
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1481
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1483
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1488
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1490
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1491
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1492
|
-
<span class="cline-any cline-yes">43x</span>
|
|
1493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1494
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1495
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
-
<span class="cline-any cline-yes">536x</span>
|
|
1504
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
-
<span class="cline-any cline-yes">537x</span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
-
<span class="cline-any cline-yes">536x</span>
|
|
1509
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1513
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1515
|
-
<span class="cline-any cline-no"> </span>
|
|
1516
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
-
<span class="cline-any cline-yes">34x</span>
|
|
1519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1522
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1523
|
-
<span class="cline-any cline-yes">15x</span>
|
|
1524
808
|
<span class="cline-any cline-neutral"> </span>
|
|
809
|
+
<span class="cline-any cline-yes">514x</span>
|
|
810
|
+
<span class="cline-any cline-yes">24x</span>
|
|
1525
811
|
<span class="cline-any cline-neutral"> </span>
|
|
1526
|
-
<span class="cline-any cline-yes">
|
|
812
|
+
<span class="cline-any cline-yes">490x</span>
|
|
813
|
+
<span class="cline-any cline-yes">490x</span>
|
|
814
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1527
815
|
<span class="cline-any cline-yes">26x</span>
|
|
1528
816
|
<span class="cline-any cline-neutral"> </span>
|
|
817
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1529
818
|
<span class="cline-any cline-neutral"> </span>
|
|
1530
|
-
<span class="cline-any cline-yes">
|
|
1531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1535
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1538
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1539
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1540
|
-
<span class="cline-any cline-yes">28x</span>
|
|
1541
|
-
<span class="cline-any cline-yes">28x</span>
|
|
1542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1546
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
819
|
+
<span class="cline-any cline-yes">477x</span>
|
|
1550
820
|
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
-
<span class="cline-any cline-yes">
|
|
1552
|
-
<span class="cline-any cline-yes">24x</span>
|
|
1553
|
-
<span class="cline-any cline-yes">24x</span>
|
|
821
|
+
<span class="cline-any cline-yes">477x</span>
|
|
1554
822
|
<span class="cline-any cline-neutral"> </span>
|
|
1555
823
|
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
-
<span class="cline-any cline-yes">
|
|
1557
|
-
<span class="cline-any cline-yes">
|
|
824
|
+
<span class="cline-any cline-yes">477x</span>
|
|
825
|
+
<span class="cline-any cline-yes">477x</span>
|
|
1558
826
|
<span class="cline-any cline-no"> </span>
|
|
1559
827
|
<span class="cline-any cline-neutral"> </span>
|
|
828
|
+
<span class="cline-any cline-yes">477x</span>
|
|
1560
829
|
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
-
<span class="cline-any cline-yes">
|
|
1562
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
-
<span class="cline-any cline-yes">84x</span>
|
|
830
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1566
831
|
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
-
<span class="cline-any cline-yes">84x</span>
|
|
1568
|
-
<span class="cline-any cline-yes">84x</span>
|
|
1569
|
-
<span class="cline-any cline-yes">1680x</span>
|
|
1570
|
-
<span class="cline-any cline-yes">4x</span>
|
|
1571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
-
<span class="cline-any cline-yes">84x</span>
|
|
1576
832
|
<span class="cline-any cline-neutral"> </span>
|
|
833
|
+
<span class="cline-any cline-yes">230x</span>
|
|
1577
834
|
<span class="cline-any cline-neutral"> </span>
|
|
835
|
+
<span class="cline-any cline-no"> </span>
|
|
1578
836
|
<span class="cline-any cline-neutral"> </span>
|
|
1579
837
|
<span class="cline-any cline-neutral"> </span>
|
|
838
|
+
<span class="cline-any cline-yes">66x</span>
|
|
1580
839
|
<span class="cline-any cline-neutral"> </span>
|
|
840
|
+
<span class="cline-any cline-yes">51x</span>
|
|
841
|
+
<span class="cline-any cline-yes">44x</span>
|
|
842
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1581
843
|
<span class="cline-any cline-neutral"> </span>
|
|
844
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1582
845
|
<span class="cline-any cline-neutral"> </span>
|
|
846
|
+
<span class="cline-any cline-yes">98x</span>
|
|
1583
847
|
<span class="cline-any cline-neutral"> </span>
|
|
1584
848
|
<span class="cline-any cline-neutral"> </span>
|
|
1585
|
-
<span class="cline-any cline-
|
|
1586
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1587
|
-
<span class="cline-any cline-yes">20x</span>
|
|
849
|
+
<span class="cline-any cline-no"> </span>
|
|
1588
850
|
<span class="cline-any cline-neutral"> </span>
|
|
1589
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1590
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1591
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1592
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1593
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1594
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1595
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1596
851
|
<span class="cline-any cline-neutral"> </span>
|
|
1597
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1598
852
|
<span class="cline-any cline-neutral"> </span>
|
|
1599
853
|
<span class="cline-any cline-neutral"> </span>
|
|
1600
854
|
<span class="cline-any cline-neutral"> </span>
|
|
1601
855
|
<span class="cline-any cline-neutral"> </span>
|
|
1602
856
|
<span class="cline-any cline-neutral"> </span>
|
|
1603
857
|
<span class="cline-any cline-neutral"> </span>
|
|
1604
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1605
858
|
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
-
<span class="cline-any cline-
|
|
1607
|
-
<span class="cline-any cline-yes">
|
|
1608
|
-
<span class="cline-any cline-yes">340x</span>
|
|
859
|
+
<span class="cline-any cline-neutral"> </span>
|
|
860
|
+
<span class="cline-any cline-yes">102x</span>
|
|
1609
861
|
<span class="cline-any cline-no"> </span>
|
|
1610
862
|
<span class="cline-any cline-neutral"> </span>
|
|
863
|
+
<span class="cline-any cline-yes">102x</span>
|
|
1611
864
|
<span class="cline-any cline-neutral"> </span>
|
|
1612
865
|
<span class="cline-any cline-neutral"> </span>
|
|
1613
866
|
<span class="cline-any cline-neutral"> </span>
|
|
1614
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1615
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1616
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1617
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1618
867
|
<span class="cline-any cline-neutral"> </span>
|
|
868
|
+
<span class="cline-any cline-yes">296x</span>
|
|
1619
869
|
<span class="cline-any cline-neutral"> </span>
|
|
1620
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1621
870
|
<span class="cline-any cline-neutral"> </span>
|
|
871
|
+
<span class="cline-any cline-yes">296x</span>
|
|
1622
872
|
<span class="cline-any cline-neutral"> </span>
|
|
873
|
+
<span class="cline-any cline-yes">296x</span>
|
|
1623
874
|
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1625
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1626
875
|
<span class="cline-any cline-neutral"> </span>
|
|
1627
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1628
876
|
<span class="cline-any cline-neutral"> </span>
|
|
877
|
+
<span class="cline-any cline-yes">29x</span>
|
|
1629
878
|
<span class="cline-any cline-neutral"> </span>
|
|
879
|
+
<span class="cline-any cline-yes">29x</span>
|
|
880
|
+
<span class="cline-any cline-no"> </span>
|
|
1630
881
|
<span class="cline-any cline-neutral"> </span>
|
|
1631
882
|
<span class="cline-any cline-neutral"> </span>
|
|
883
|
+
<span class="cline-any cline-yes">29x</span>
|
|
1632
884
|
<span class="cline-any cline-neutral"> </span>
|
|
1633
885
|
<span class="cline-any cline-neutral"> </span>
|
|
1634
886
|
<span class="cline-any cline-neutral"> </span>
|
|
887
|
+
<span class="cline-any cline-yes">44x</span>
|
|
888
|
+
<span class="cline-any cline-yes">26x</span>
|
|
1635
889
|
<span class="cline-any cline-neutral"> </span>
|
|
1636
890
|
<span class="cline-any cline-neutral"> </span>
|
|
891
|
+
<span class="cline-any cline-yes">18x</span>
|
|
892
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1637
893
|
<span class="cline-any cline-neutral"> </span>
|
|
1638
894
|
<span class="cline-any cline-neutral"> </span>
|
|
895
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1639
896
|
<span class="cline-any cline-neutral"> </span>
|
|
1640
897
|
<span class="cline-any cline-neutral"> </span>
|
|
1641
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1642
898
|
<span class="cline-any cline-neutral"> </span>
|
|
1643
899
|
<span class="cline-any cline-neutral"> </span>
|
|
1644
900
|
<span class="cline-any cline-neutral"> </span>
|
|
1645
901
|
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1647
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1648
902
|
<span class="cline-any cline-neutral"> </span>
|
|
903
|
+
<span class="cline-any cline-yes">138x</span>
|
|
904
|
+
<span class="cline-any cline-yes">138x</span>
|
|
905
|
+
<span class="cline-any cline-yes">40x</span>
|
|
906
|
+
<span class="cline-any cline-yes">40x</span>
|
|
1649
907
|
<span class="cline-any cline-neutral"> </span>
|
|
1650
908
|
<span class="cline-any cline-neutral"> </span>
|
|
1651
909
|
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
-
<span class="cline-any cline-yes">
|
|
1653
|
-
<span class="cline-any cline-yes">1x</span>
|
|
910
|
+
<span class="cline-any cline-yes">138x</span>
|
|
1654
911
|
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1656
912
|
<span class="cline-any cline-neutral"> </span>
|
|
1657
913
|
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1659
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1660
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1661
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1662
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1663
914
|
<span class="cline-any cline-neutral"> </span>
|
|
1664
915
|
<span class="cline-any cline-neutral"> </span>
|
|
916
|
+
<span class="cline-any cline-yes">36x</span>
|
|
917
|
+
<span class="cline-any cline-yes">36x</span>
|
|
918
|
+
<span class="cline-any cline-yes">36x</span>
|
|
1665
919
|
<span class="cline-any cline-neutral"> </span>
|
|
1666
920
|
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
-
<span class="cline-any cline-yes">
|
|
1668
|
-
<span class="cline-any cline-yes">
|
|
1669
|
-
<span class="cline-any cline-
|
|
1670
|
-
<span class="cline-any cline-
|
|
1671
|
-
<span class="cline-any cline-
|
|
1672
|
-
<span class="cline-any cline-yes">
|
|
921
|
+
<span class="cline-any cline-yes">102x</span>
|
|
922
|
+
<span class="cline-any cline-yes">102x</span>
|
|
923
|
+
<span class="cline-any cline-no"> </span>
|
|
924
|
+
<span class="cline-any cline-neutral"> </span>
|
|
925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
926
|
+
<span class="cline-any cline-yes">102x</span>
|
|
1673
927
|
<span class="cline-any cline-yes">1x</span>
|
|
1674
928
|
<span class="cline-any cline-neutral"> </span>
|
|
1675
929
|
<span class="cline-any cline-neutral"> </span>
|
|
930
|
+
<span class="cline-any cline-yes">101x</span>
|
|
1676
931
|
<span class="cline-any cline-neutral"> </span>
|
|
932
|
+
<span class="cline-any cline-yes">101x</span>
|
|
933
|
+
<span class="cline-any cline-yes">101x</span>
|
|
934
|
+
<span class="cline-any cline-yes">2020x</span>
|
|
935
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1677
936
|
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1679
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1680
|
-
<span class="cline-any cline-yes">20x</span>
|
|
1681
937
|
<span class="cline-any cline-neutral"> </span>
|
|
1682
938
|
<span class="cline-any cline-neutral"> </span>
|
|
1683
939
|
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
-
<span class="cline-any cline-yes">
|
|
1685
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1686
|
-
<span class="cline-any cline-yes">1x</span>
|
|
940
|
+
<span class="cline-any cline-yes">101x</span>
|
|
1687
941
|
<span class="cline-any cline-neutral"> </span>
|
|
1688
942
|
<span class="cline-any cline-neutral"> </span>
|
|
1689
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1690
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1691
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1692
943
|
<span class="cline-any cline-neutral"> </span>
|
|
1693
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1694
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1695
944
|
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1697
|
-
<span class="cline-any cline-no"> </span>
|
|
1698
945
|
<span class="cline-any cline-neutral"> </span>
|
|
1699
946
|
<span class="cline-any cline-neutral"> </span>
|
|
1700
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1701
947
|
<span class="cline-any cline-neutral"> </span>
|
|
1702
948
|
<span class="cline-any cline-neutral"> </span>
|
|
1703
949
|
<span class="cline-any cline-neutral"> </span>
|
|
950
|
+
<span class="cline-any cline-yes">4x</span>
|
|
951
|
+
<span class="cline-any cline-yes">4x</span>
|
|
952
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1704
953
|
<span class="cline-any cline-neutral"> </span>
|
|
954
|
+
<span class="cline-any cline-yes">4x</span>
|
|
955
|
+
<span class="cline-any cline-yes">4x</span>
|
|
956
|
+
<span class="cline-any cline-yes">80x</span>
|
|
957
|
+
<span class="cline-any cline-yes">80x</span>
|
|
958
|
+
<span class="cline-any cline-yes">80x</span>
|
|
959
|
+
<span class="cline-any cline-yes">80x</span>
|
|
960
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1705
961
|
<span class="cline-any cline-neutral"> </span>
|
|
1706
|
-
<span class="cline-any cline-yes">
|
|
962
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1707
963
|
<span class="cline-any cline-neutral"> </span>
|
|
1708
964
|
<span class="cline-any cline-neutral"> </span>
|
|
1709
965
|
<span class="cline-any cline-neutral"> </span>
|
|
1710
966
|
<span class="cline-any cline-neutral"> </span>
|
|
1711
|
-
<span class="cline-any cline-yes">17x</span>
|
|
1712
967
|
<span class="cline-any cline-neutral"> </span>
|
|
1713
968
|
<span class="cline-any cline-neutral"> </span>
|
|
1714
|
-
<span class="cline-any cline-yes">
|
|
969
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1715
970
|
<span class="cline-any cline-neutral"> </span>
|
|
971
|
+
<span class="cline-any cline-yes">4x</span>
|
|
972
|
+
<span class="cline-any cline-yes">68x</span>
|
|
973
|
+
<span class="cline-any cline-yes">1360x</span>
|
|
974
|
+
<span class="cline-any cline-no"> </span>
|
|
1716
975
|
<span class="cline-any cline-neutral"> </span>
|
|
1717
976
|
<span class="cline-any cline-neutral"> </span>
|
|
1718
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1719
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1720
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1721
977
|
<span class="cline-any cline-neutral"> </span>
|
|
1722
978
|
<span class="cline-any cline-neutral"> </span>
|
|
979
|
+
<span class="cline-any cline-yes">4x</span>
|
|
980
|
+
<span class="cline-any cline-yes">4x</span>
|
|
981
|
+
<span class="cline-any cline-yes">68x</span>
|
|
982
|
+
<span class="cline-any cline-yes">68x</span>
|
|
983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
984
|
+
<span class="cline-any cline-neutral"> </span>
|
|
985
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1723
986
|
<span class="cline-any cline-neutral"> </span>
|
|
1724
987
|
<span class="cline-any cline-neutral"> </span>
|
|
1725
988
|
<span class="cline-any cline-yes">1x</span>
|
|
1726
989
|
<span class="cline-any cline-yes">1x</span>
|
|
1727
990
|
<span class="cline-any cline-neutral"> </span>
|
|
1728
|
-
<span class="cline-any cline-yes">
|
|
991
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1729
992
|
<span class="cline-any cline-neutral"> </span>
|
|
1730
993
|
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1732
994
|
<span class="cline-any cline-neutral"> </span>
|
|
1733
995
|
<span class="cline-any cline-neutral"> </span>
|
|
1734
996
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1736,177 +998,188 @@
|
|
|
1736
998
|
<span class="cline-any cline-neutral"> </span>
|
|
1737
999
|
<span class="cline-any cline-neutral"> </span>
|
|
1738
1000
|
<span class="cline-any cline-neutral"> </span>
|
|
1739
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1740
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1741
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1742
1001
|
<span class="cline-any cline-neutral"> </span>
|
|
1743
1002
|
<span class="cline-any cline-neutral"> </span>
|
|
1744
1003
|
<span class="cline-any cline-neutral"> </span>
|
|
1745
1004
|
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
-
<span class="cline-any cline-yes">
|
|
1005
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1747
1006
|
<span class="cline-any cline-neutral"> </span>
|
|
1748
1007
|
<span class="cline-any cline-neutral"> </span>
|
|
1749
1008
|
<span class="cline-any cline-neutral"> </span>
|
|
1750
1009
|
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1011
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1012
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1751
1013
|
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1015
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1752
1016
|
<span class="cline-any cline-yes">1x</span>
|
|
1753
1017
|
<span class="cline-any cline-neutral"> </span>
|
|
1754
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1755
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1756
1018
|
<span class="cline-any cline-neutral"> </span>
|
|
1757
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1758
|
-
<span class="cline-any cline-no"> </span>
|
|
1759
1019
|
<span class="cline-any cline-neutral"> </span>
|
|
1760
1020
|
<span class="cline-any cline-neutral"> </span>
|
|
1761
|
-
<span class="cline-any cline-yes">
|
|
1762
|
-
<span class="cline-any cline-no"> </span>
|
|
1763
|
-
<span class="cline-any cline-no"> </span>
|
|
1764
|
-
<span class="cline-any cline-no"> </span>
|
|
1765
|
-
<span class="cline-any cline-no"> </span>
|
|
1021
|
+
<span class="cline-any cline-yes">5x</span>
|
|
1766
1022
|
<span class="cline-any cline-neutral"> </span>
|
|
1767
1023
|
<span class="cline-any cline-neutral"> </span>
|
|
1768
1024
|
<span class="cline-any cline-neutral"> </span>
|
|
1769
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1770
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1771
1025
|
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1772
1027
|
<span class="cline-any cline-neutral"> </span>
|
|
1773
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1774
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1775
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1776
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1777
1028
|
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
-
<span class="cline-any cline-yes">
|
|
1779
|
-
<span class="cline-any cline-yes">
|
|
1780
|
-
<span class="cline-any cline-yes">
|
|
1029
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1030
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1031
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1032
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1033
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1781
1034
|
<span class="cline-any cline-neutral"> </span>
|
|
1782
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1783
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1784
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1785
1035
|
<span class="cline-any cline-neutral"> </span>
|
|
1786
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1787
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1788
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1789
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1790
1036
|
<span class="cline-any cline-neutral"> </span>
|
|
1791
1037
|
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1039
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1040
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1041
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1042
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1043
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1044
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1792
1045
|
<span class="cline-any cline-neutral"> </span>
|
|
1793
1046
|
<span class="cline-any cline-neutral"> </span>
|
|
1794
1047
|
<span class="cline-any cline-neutral"> </span>
|
|
1795
1048
|
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1050
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1051
|
+
<span class="cline-any cline-yes">80x</span>
|
|
1796
1052
|
<span class="cline-any cline-neutral"> </span>
|
|
1797
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1798
1053
|
<span class="cline-any cline-neutral"> </span>
|
|
1799
1054
|
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1056
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1057
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1800
1058
|
<span class="cline-any cline-neutral"> </span>
|
|
1801
1059
|
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1061
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1062
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1802
1063
|
<span class="cline-any cline-neutral"> </span>
|
|
1803
|
-
<span class="cline-any cline-yes">
|
|
1804
|
-
<span class="cline-any cline-yes">
|
|
1064
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1065
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1805
1066
|
<span class="cline-any cline-neutral"> </span>
|
|
1806
|
-
<span class="cline-any cline-yes">
|
|
1067
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1068
|
+
<span class="cline-any cline-no"> </span>
|
|
1807
1069
|
<span class="cline-any cline-neutral"> </span>
|
|
1808
1070
|
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1809
1072
|
<span class="cline-any cline-neutral"> </span>
|
|
1810
1073
|
<span class="cline-any cline-neutral"> </span>
|
|
1811
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1812
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1813
|
-
<span class="cline-any cline-yes">109x</span>
|
|
1814
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1815
1074
|
<span class="cline-any cline-neutral"> </span>
|
|
1816
1075
|
<span class="cline-any cline-neutral"> </span>
|
|
1817
1076
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1818
1078
|
<span class="cline-any cline-neutral"> </span>
|
|
1819
|
-
<span class="cline-any cline-yes">106x</span>
|
|
1820
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1821
1079
|
<span class="cline-any cline-neutral"> </span>
|
|
1822
1080
|
<span class="cline-any cline-neutral"> </span>
|
|
1823
1081
|
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1824
1083
|
<span class="cline-any cline-neutral"> </span>
|
|
1825
|
-
<span class="cline-any cline-yes">105x</span>
|
|
1826
|
-
<span class="cline-any cline-yes">55x</span>
|
|
1827
1084
|
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1828
1086
|
<span class="cline-any cline-neutral"> </span>
|
|
1829
1087
|
<span class="cline-any cline-neutral"> </span>
|
|
1830
1088
|
<span class="cline-any cline-neutral"> </span>
|
|
1089
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1090
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1091
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1831
1092
|
<span class="cline-any cline-neutral"> </span>
|
|
1832
|
-
<span class="cline-any cline-yes">50x</span>
|
|
1833
1093
|
<span class="cline-any cline-neutral"> </span>
|
|
1834
1094
|
<span class="cline-any cline-neutral"> </span>
|
|
1835
1095
|
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1097
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1836
1098
|
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
+
<span class="cline-any cline-yes">68x</span>
|
|
1837
1100
|
<span class="cline-any cline-neutral"> </span>
|
|
1838
1101
|
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1839
1103
|
<span class="cline-any cline-neutral"> </span>
|
|
1840
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1841
|
-
<span class="cline-any cline-yes">13x</span>
|
|
1842
1104
|
<span class="cline-any cline-neutral"> </span>
|
|
1843
1105
|
<span class="cline-any cline-neutral"> </span>
|
|
1844
1106
|
<span class="cline-any cline-neutral"> </span>
|
|
1845
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1846
1107
|
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1848
1108
|
<span class="cline-any cline-neutral"> </span>
|
|
1849
1109
|
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1111
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1112
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1850
1113
|
<span class="cline-any cline-neutral"> </span>
|
|
1851
1114
|
<span class="cline-any cline-neutral"> </span>
|
|
1852
1115
|
<span class="cline-any cline-neutral"> </span>
|
|
1853
1116
|
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1854
1118
|
<span class="cline-any cline-neutral"> </span>
|
|
1855
1119
|
<span class="cline-any cline-neutral"> </span>
|
|
1856
1120
|
<span class="cline-any cline-neutral"> </span>
|
|
1857
1121
|
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1858
1123
|
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1125
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1859
1126
|
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1128
|
+
<span class="cline-any cline-no"> </span>
|
|
1860
1129
|
<span class="cline-any cline-neutral"> </span>
|
|
1861
1130
|
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1132
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1133
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1134
|
+
<span class="cline-any cline-yes">93x</span>
|
|
1862
1135
|
<span class="cline-any cline-neutral"> </span>
|
|
1863
|
-
<span class="cline-any cline-yes">
|
|
1864
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1865
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1136
|
+
<span class="cline-any cline-yes">128x</span>
|
|
1866
1137
|
<span class="cline-any cline-neutral"> </span>
|
|
1867
1138
|
<span class="cline-any cline-neutral"> </span>
|
|
1868
1139
|
<span class="cline-any cline-neutral"> </span>
|
|
1869
1140
|
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
+
<span class="cline-any cline-yes">84x</span>
|
|
1870
1142
|
<span class="cline-any cline-neutral"> </span>
|
|
1871
1143
|
<span class="cline-any cline-neutral"> </span>
|
|
1144
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1872
1145
|
<span class="cline-any cline-neutral"> </span>
|
|
1873
1146
|
<span class="cline-any cline-neutral"> </span>
|
|
1874
|
-
<span class="cline-any cline-yes">
|
|
1875
|
-
<span class="cline-any cline-yes">
|
|
1147
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1148
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1876
1149
|
<span class="cline-any cline-neutral"> </span>
|
|
1877
|
-
<span class="cline-any cline-yes">
|
|
1878
|
-
<span class="cline-any cline-yes">
|
|
1150
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1151
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1879
1152
|
<span class="cline-any cline-neutral"> </span>
|
|
1880
|
-
<span class="cline-any cline-yes">
|
|
1881
|
-
<span class="cline-any cline-yes">
|
|
1153
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1154
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1882
1155
|
<span class="cline-any cline-neutral"> </span>
|
|
1883
1156
|
<span class="cline-any cline-neutral"> </span>
|
|
1884
|
-
<span class="cline-any cline-yes">
|
|
1885
|
-
<span class="cline-any cline-yes">
|
|
1886
|
-
<span class="cline-any cline-yes">
|
|
1157
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1158
|
+
<span class="cline-any cline-yes">17x</span>
|
|
1159
|
+
<span class="cline-any cline-yes">138x</span>
|
|
1887
1160
|
<span class="cline-any cline-neutral"> </span>
|
|
1888
1161
|
<span class="cline-any cline-neutral"> </span>
|
|
1889
1162
|
<span class="cline-any cline-neutral"> </span>
|
|
1890
1163
|
<span class="cline-any cline-neutral"> </span>
|
|
1891
|
-
<span class="cline-any cline-yes">
|
|
1892
|
-
<span class="cline-any cline-yes">
|
|
1164
|
+
<span class="cline-any cline-yes">138x</span>
|
|
1165
|
+
<span class="cline-any cline-yes">138x</span>
|
|
1893
1166
|
<span class="cline-any cline-neutral"> </span>
|
|
1894
1167
|
<span class="cline-any cline-neutral"> </span>
|
|
1895
1168
|
<span class="cline-any cline-neutral"> </span>
|
|
1896
|
-
<span class="cline-any cline-yes">
|
|
1897
|
-
<span class="cline-any cline-yes">
|
|
1169
|
+
<span class="cline-any cline-yes">44x</span>
|
|
1170
|
+
<span class="cline-any cline-yes">23x</span>
|
|
1898
1171
|
<span class="cline-any cline-neutral"> </span>
|
|
1899
1172
|
<span class="cline-any cline-neutral"> </span>
|
|
1900
|
-
<span class="cline-any cline-yes">
|
|
1173
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1901
1174
|
<span class="cline-any cline-neutral"> </span>
|
|
1902
1175
|
<span class="cline-any cline-neutral"> </span>
|
|
1903
1176
|
<span class="cline-any cline-neutral"> </span>
|
|
1904
|
-
<span class="cline-any cline-yes">
|
|
1177
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1905
1178
|
<span class="cline-any cline-neutral"> </span>
|
|
1906
1179
|
<span class="cline-any cline-neutral"> </span>
|
|
1907
1180
|
<span class="cline-any cline-neutral"> </span>
|
|
1908
1181
|
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
-
<span class="cline-any cline-yes">
|
|
1182
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1910
1183
|
<span class="cline-any cline-neutral"> </span>
|
|
1911
1184
|
<span class="cline-any cline-neutral"> </span>
|
|
1912
1185
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1922,11 +1195,11 @@
|
|
|
1922
1195
|
<span class="cline-any cline-neutral"> </span>
|
|
1923
1196
|
<span class="cline-any cline-neutral"> </span>
|
|
1924
1197
|
<span class="cline-any cline-neutral"> </span>
|
|
1925
|
-
<span class="cline-any cline-yes">
|
|
1926
|
-
<span class="cline-any cline-yes">
|
|
1927
|
-
<span class="cline-any cline-yes">
|
|
1198
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1199
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1200
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1928
1201
|
<span class="cline-any cline-neutral"> </span>
|
|
1929
|
-
<span class="cline-any cline-yes">
|
|
1202
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1930
1203
|
<span class="cline-any cline-neutral"> </span>
|
|
1931
1204
|
<span class="cline-any cline-neutral"> </span>
|
|
1932
1205
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1950,15 +1223,14 @@
|
|
|
1950
1223
|
<span class="cline-any cline-neutral"> </span>
|
|
1951
1224
|
<span class="cline-any cline-neutral"> </span>
|
|
1952
1225
|
<span class="cline-any cline-neutral"> </span>
|
|
1953
|
-
<span class="cline-any cline-yes">
|
|
1954
|
-
<span class="cline-any cline-yes">
|
|
1955
|
-
<span class="cline-any cline-yes">
|
|
1226
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1227
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1228
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1956
1229
|
<span class="cline-any cline-neutral"> </span>
|
|
1957
1230
|
<span class="cline-any cline-neutral"> </span>
|
|
1958
1231
|
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1959
1233
|
<span class="cline-any cline-yes">1x</span>
|
|
1960
|
-
<span class="cline-any cline-no"> </span>
|
|
1961
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1962
1234
|
<span class="cline-any cline-neutral"> </span>
|
|
1963
1235
|
<span class="cline-any cline-neutral"> </span>
|
|
1964
1236
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1986,28 +1258,26 @@
|
|
|
1986
1258
|
<span class="cline-any cline-neutral"> </span>
|
|
1987
1259
|
<span class="cline-any cline-neutral"> </span>
|
|
1988
1260
|
<span class="cline-any cline-neutral"> </span>
|
|
1989
|
-
<span class="cline-any cline-no"> </span>
|
|
1990
|
-
<span class="cline-any cline-no"> </span>
|
|
1991
|
-
<span class="cline-any cline-no"> </span>
|
|
1992
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1993
1261
|
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1264
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1994
1265
|
<span class="cline-any cline-neutral"> </span>
|
|
1995
1266
|
<span class="cline-any cline-neutral"> </span>
|
|
1996
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1997
1267
|
<span class="cline-any cline-neutral"> </span>
|
|
1998
1268
|
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1999
1270
|
<span class="cline-any cline-neutral"> </span>
|
|
2000
1271
|
<span class="cline-any cline-neutral"> </span>
|
|
2001
1272
|
<span class="cline-any cline-neutral"> </span>
|
|
2002
1273
|
<span class="cline-any cline-neutral"> </span>
|
|
2003
1274
|
<span class="cline-any cline-neutral"> </span>
|
|
2004
1275
|
<span class="cline-any cline-neutral"> </span>
|
|
2005
|
-
<span class="cline-any cline-yes">27x</span>
|
|
2006
1276
|
<span class="cline-any cline-neutral"> </span>
|
|
2007
1277
|
<span class="cline-any cline-neutral"> </span>
|
|
2008
|
-
<span class="cline-any cline-yes">
|
|
2009
|
-
<span class="cline-any cline-yes">
|
|
2010
|
-
<span class="cline-any cline-yes">
|
|
1278
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1279
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1280
|
+
<span class="cline-any cline-yes">4x</span>
|
|
2011
1281
|
<span class="cline-any cline-neutral"> </span>
|
|
2012
1282
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import * as fs from "fs";
|
|
2013
1283
|
import * as path from "path";
|
|
@@ -2020,36 +1290,12 @@ import type {
|
|
|
2020
1290
|
VariableSchemaWithInline,
|
|
2021
1291
|
} from "@featurevisor/types";
|
|
2022
1292
|
import { Dependencies } from "../dependencies";
|
|
1293
|
+
import { normalizeOptionValues, resolveTargets, targetIncludesFeature } from "../targeting";
|
|
2023
1294
|
|
|
2024
1295
|
export interface TypeScriptGenerationOptions {
|
|
2025
1296
|
tag?: string | string[];
|
|
1297
|
+
target?: string | string[];
|
|
2026
1298
|
react?: boolean;
|
|
2027
|
-
individualFeatures?: boolean;
|
|
2028
|
-
}
|
|
2029
|
-
|
|
2030
|
-
function convertFeaturevisorTypeToTypeScriptType(featurevisorType: string): string {
|
|
2031
|
-
switch (featurevisorType) {
|
|
2032
|
-
case "boolean":
|
|
2033
|
-
return "boolean";
|
|
2034
|
-
case "string":
|
|
2035
|
-
return "string";
|
|
2036
|
-
case "integer":
|
|
2037
|
-
return "number";
|
|
2038
|
-
case "double":
|
|
2039
|
-
return "number";
|
|
2040
|
-
<span class="branch-4 cbranch-no" title="branch not covered" > case "date":</span>
|
|
2041
|
-
<span class="cstat-no" title="statement not covered" > return "Date | string";</span>
|
|
2042
|
-
<span class="branch-5 cbranch-no" title="branch not covered" > case "semver":</span>
|
|
2043
|
-
<span class="cstat-no" title="statement not covered" > return "string";</span>
|
|
2044
|
-
<span class="branch-6 cbranch-no" title="branch not covered" > case "array":</span>
|
|
2045
|
-
<span class="cstat-no" title="statement not covered" > return "string[]";</span>
|
|
2046
|
-
<span class="branch-7 cbranch-no" title="branch not covered" > case "object":</span>
|
|
2047
|
-
<span class="cstat-no" title="statement not covered" > return "Record<string, unknown>";</span>
|
|
2048
|
-
<span class="branch-8 cbranch-no" title="branch not covered" > case "json":</span>
|
|
2049
|
-
<span class="cstat-no" title="statement not covered" > return "unknown";</span>
|
|
2050
|
-
<span class="branch-9 cbranch-no" title="branch not covered" > default:</span>
|
|
2051
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(`Unknown type: ${featurevisorType}`);</span>
|
|
2052
|
-
}
|
|
2053
1299
|
}
|
|
2054
1300
|
|
|
2055
1301
|
function shouldWrapArrayItemType(typeName: string): boolean {
|
|
@@ -2140,8 +1386,8 @@ function resolveSchema(schema: Schema, schemasByKey: Record<string, Schema>
|
|
|
2140
1386
|
function constToLiteralType(constVal: unknown): string | null {
|
|
2141
1387
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (constVal === null || constVal === undefined) <span class="cstat-no" title="statement not covered" >return null;</span>
|
|
2142
1388
|
if (typeof constVal === "string") return JSON.stringify(constVal);
|
|
2143
|
-
if (typeof constVal === "number") return String(constVal);
|
|
2144
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1389
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof constVal === "number") return String(constVal);
|
|
1390
|
+
<span class="cstat-no" title="statement not covered" > if (typeof constVal === "boolean") <span class="cstat-no" title="statement not covered" >return constVal ? "true" : "false";</span></span>
|
|
2145
1391
|
<span class="cstat-no" title="statement not covered" > return null;</span>
|
|
2146
1392
|
}
|
|
2147
1393
|
|
|
@@ -2219,258 +1465,12 @@ function getEffectiveVariableSchema(
|
|
|
2219
1465
|
variableSchema: VariableSchema,
|
|
2220
1466
|
schemasByKey: Record<string, Schema>,
|
|
2221
1467
|
): VariableSchemaWithInline | Schema | undefined {
|
|
2222
|
-
if ("schema" in variableSchema && variableSchema.schema) {
|
|
2223
|
-
return schemasByKey[variableSchema.schema]
|
|
1468
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if ("schema" in variableSchema && <span class="branch-1 cbranch-no" title="branch not covered" >variableSchema.schema)</span> {
|
|
1469
|
+
<span class="cstat-no" title="statement not covered" > return schemasByKey[variableSchema.schema];</span>
|
|
2224
1470
|
}
|
|
2225
1471
|
return variableSchema as VariableSchemaWithInline;
|
|
2226
1472
|
}
|
|
2227
1473
|
|
|
2228
|
-
/**
|
|
2229
|
-
* Generates TypeScript type/interface declarations and metadata for a variable.
|
|
2230
|
-
* Returns declarations to emit (interface or type alias) plus the type name and generic to use in the getter.
|
|
2231
|
-
* When isLiteralType is true, the getter return must be asserted so the SDK's primitive return type matches the literal.
|
|
2232
|
-
* When schemaTypeNames is provided, direct schema refs and schema refs in array items use those type names and schemaTypesUsed is populated.
|
|
2233
|
-
*/
|
|
2234
|
-
function generateVariableTypeDeclarations(
|
|
2235
|
-
variableKey: string,
|
|
2236
|
-
variableSchema: VariableSchema,
|
|
2237
|
-
schemasByKey: Record<string, Schema>,
|
|
2238
|
-
schemaTypeNames?: Record<string, string>,
|
|
2239
|
-
): {
|
|
2240
|
-
declarations: string[];
|
|
2241
|
-
returnTypeName: string;
|
|
2242
|
-
genericArg: string;
|
|
2243
|
-
isLiteralType?: boolean;
|
|
2244
|
-
useGetVariable?: boolean;
|
|
2245
|
-
schemaTypesUsed: string[];
|
|
2246
|
-
} {
|
|
2247
|
-
const typeName = getPascalCase(variableKey) + "Variable";
|
|
2248
|
-
const itemTypeName = getPascalCase(variableKey) + "VariableItem";
|
|
2249
|
-
const schemaTypesUsed: string[] = [];
|
|
2250
|
-
|
|
2251
|
-
const addSchemaUsed = (name: string) => {
|
|
2252
|
-
if (name && !schemaTypesUsed.includes(name)) schemaTypesUsed.push(name);
|
|
2253
|
-
};
|
|
2254
|
-
|
|
2255
|
-
// Direct schema reference: emit type alias to schema type and reuse it
|
|
2256
|
-
if (
|
|
2257
|
-
schemaTypeNames &&
|
|
2258
|
-
"schema" in variableSchema &&
|
|
2259
|
-
variableSchema.schema &&
|
|
2260
|
-
schemasByKey[variableSchema.schema]
|
|
2261
|
-
) {
|
|
2262
|
-
const schemaKey = variableSchema.schema;
|
|
2263
|
-
const schemaTypeName = schemaTypeNames[schemaKey];
|
|
2264
|
-
const resolvedSchema = resolveSchema(schemasByKey[schemaKey], schemasByKey);
|
|
2265
|
-
const isOneOf =
|
|
2266
|
-
resolvedSchema.oneOf &&
|
|
2267
|
-
Array.isArray(resolvedSchema.oneOf) &&
|
|
2268
|
-
resolvedSchema.oneOf.length > 0 &&
|
|
2269
|
-
!resolvedSchema.type;
|
|
2270
|
-
const isLiteralSchema =
|
|
2271
|
-
resolvedSchema.const !== undefined ||
|
|
2272
|
-
(resolvedSchema.enum && Array.isArray(resolvedSchema.enum) && resolvedSchema.enum.length > 0);
|
|
2273
|
-
addSchemaUsed(schemaTypeName);
|
|
2274
|
-
// getVariableArray<T> expects T to be the element type, not the full array type
|
|
2275
|
-
let genericArg = schemaTypeName;
|
|
2276
|
-
if (resolvedSchema.type === "array" && resolvedSchema.items) {
|
|
2277
|
-
const itemsSchema = resolvedSchema.items as Schema;
|
|
2278
|
-
if ("schema" in itemsSchema && itemsSchema.schema && schemaTypeNames[itemsSchema.schema]) {
|
|
2279
|
-
genericArg = schemaTypeNames[itemsSchema.schema];
|
|
2280
|
-
addSchemaUsed(genericArg);
|
|
2281
|
-
} else {
|
|
2282
|
-
genericArg = schemaToTypeScriptType(itemsSchema, schemasByKey, schemaTypeNames);
|
|
2283
|
-
}
|
|
2284
|
-
}
|
|
2285
|
-
return {
|
|
2286
|
-
declarations: [`${INDENT_NS}export type ${typeName} = ${schemaTypeName};`],
|
|
2287
|
-
returnTypeName: schemaTypeName,
|
|
2288
|
-
genericArg,
|
|
2289
|
-
useGetVariable: isOneOf,
|
|
2290
|
-
isLiteralType: isOneOf || isLiteralSchema,
|
|
2291
|
-
schemaTypesUsed,
|
|
2292
|
-
};
|
|
2293
|
-
}
|
|
2294
|
-
|
|
2295
|
-
const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
|
|
2296
|
-
const type = effective?.type;
|
|
2297
|
-
const declarations: string[] = [];
|
|
2298
|
-
|
|
2299
|
-
if (type === "json") {
|
|
2300
|
-
return { declarations: [], returnTypeName: "T", genericArg: "T", schemaTypesUsed };
|
|
2301
|
-
}
|
|
2302
|
-
|
|
2303
|
-
const effectiveOneOf =
|
|
2304
|
-
effective && "oneOf" in effective && Array.isArray((effective as Schema).oneOf)
|
|
2305
|
-
? (effective as Schema).oneOf
|
|
2306
|
-
: undefined;
|
|
2307
|
-
if (effectiveOneOf && effectiveOneOf.length > 0 && !type) {
|
|
2308
|
-
const unionType = effectiveOneOf
|
|
2309
|
-
.map((branch) => schemaToTypeScriptType(branch as Schema, schemasByKey, schemaTypeNames))
|
|
2310
|
-
.join(" | ");
|
|
2311
|
-
if (schemaTypeNames) {
|
|
2312
|
-
Object.values(schemaTypeNames).forEach((n) => {
|
|
2313
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (unionType.includes(n)) <span class="cstat-no" title="statement not covered" >addSchemaUsed(n);</span>
|
|
2314
|
-
});
|
|
2315
|
-
}
|
|
2316
|
-
declarations.push(`${INDENT_NS}export type ${typeName} = ${unionType};`);
|
|
2317
|
-
return {
|
|
2318
|
-
declarations,
|
|
2319
|
-
returnTypeName: typeName,
|
|
2320
|
-
genericArg: typeName,
|
|
2321
|
-
isLiteralType: true,
|
|
2322
|
-
useGetVariable: true,
|
|
2323
|
-
schemaTypesUsed,
|
|
2324
|
-
};
|
|
2325
|
-
}
|
|
2326
|
-
|
|
2327
|
-
if (type === "object") {
|
|
2328
|
-
const resolvedEffective =
|
|
2329
|
-
effective && ("properties" in effective || "additionalProperties" in effective)
|
|
2330
|
-
? (resolveSchema(effective as Schema, schemasByKey) as Schema)
|
|
2331
|
-
: undefined;
|
|
2332
|
-
const props = resolvedEffective?.properties;
|
|
2333
|
-
const additional = resolvedEffective?.additionalProperties;
|
|
2334
|
-
if (
|
|
2335
|
-
(props && typeof props === "object" && Object.keys(props).length > 0) ||
|
|
2336
|
-
(additional && typeof additional === "object")
|
|
2337
|
-
) {
|
|
2338
|
-
const requiredSet = new Set(resolvedEffective?.required || []);
|
|
2339
|
-
const entries = Object.entries(props ?? {})
|
|
2340
|
-
.map(([k, v]) => {
|
|
2341
|
-
const propType = schemaToTypeScriptType(v as Schema, schemasByKey, schemaTypeNames);
|
|
2342
|
-
if (schemaTypeNames)
|
|
2343
|
-
Object.values(schemaTypeNames).forEach((n) => {
|
|
2344
|
-
if (propType.includes(n)) addSchemaUsed(n);
|
|
2345
|
-
});
|
|
2346
|
-
const optional = !requiredSet.has(k);
|
|
2347
|
-
return optional
|
|
2348
|
-
? `${INDENT_NS_BODY}${formatObjectKey(k)}?: ${propType};`
|
|
2349
|
-
: `${INDENT_NS_BODY}${formatObjectKey(k)}: ${propType};`;
|
|
2350
|
-
})
|
|
2351
|
-
.filter(Boolean);
|
|
2352
|
-
if (additional && typeof additional === "object") {
|
|
2353
|
-
const additionalType = schemaToTypeScriptType(
|
|
2354
|
-
additional as Schema,
|
|
2355
|
-
schemasByKey,
|
|
2356
|
-
schemaTypeNames,
|
|
2357
|
-
);
|
|
2358
|
-
if (schemaTypeNames)
|
|
2359
|
-
Object.values(schemaTypeNames).forEach((n) => {
|
|
2360
|
-
if (additionalType.includes(n)) addSchemaUsed(n);
|
|
2361
|
-
});
|
|
2362
|
-
const propUnion = Object.entries(props ?? {})
|
|
2363
|
-
.map(<span class="fstat-no" title="function not covered" >([</span>, v]) => <span class="cstat-no" title="statement not covered" >schemaToTypeScriptType(v as Schema, schemasByKey, schemaTypeNames))</span>
|
|
2364
|
-
.join(" | ");
|
|
2365
|
-
const indexType = [additionalType, propUnion].filter(Boolean).join(" | ");
|
|
2366
|
-
entries.push(`${INDENT_NS_BODY}[key: string]: ${indexType};`);
|
|
2367
|
-
}
|
|
2368
|
-
declarations.push(
|
|
2369
|
-
`${INDENT_NS}export interface ${typeName} {\n${entries.join("\n")}\n${INDENT_NS}}`,
|
|
2370
|
-
);
|
|
2371
|
-
return { declarations, returnTypeName: typeName, genericArg: typeName, schemaTypesUsed };
|
|
2372
|
-
}
|
|
2373
|
-
declarations.push(`${INDENT_NS}export type ${typeName} = Record<string, unknown>;`);
|
|
2374
|
-
return { declarations, returnTypeName: typeName, genericArg: typeName, schemaTypesUsed };
|
|
2375
|
-
}
|
|
2376
|
-
|
|
2377
|
-
if (type === "array") {
|
|
2378
|
-
const itemsSchema = effective && "items" in effective ? (effective.items as Schema) : undefined;
|
|
2379
|
-
if (itemsSchema) {
|
|
2380
|
-
const itemsRef =
|
|
2381
|
-
schemaTypeNames &&
|
|
2382
|
-
"schema" in itemsSchema &&
|
|
2383
|
-
itemsSchema.schema &&
|
|
2384
|
-
schemasByKey[itemsSchema.schema]
|
|
2385
|
-
? schemaTypeNames[itemsSchema.schema]
|
|
2386
|
-
: null;
|
|
2387
|
-
if (itemsRef) {
|
|
2388
|
-
addSchemaUsed(itemsRef);
|
|
2389
|
-
declarations.push(`${INDENT_NS}export type ${itemTypeName} = ${itemsRef};`);
|
|
2390
|
-
return {
|
|
2391
|
-
declarations,
|
|
2392
|
-
returnTypeName: `${itemTypeName}[]`,
|
|
2393
|
-
genericArg: itemTypeName,
|
|
2394
|
-
schemaTypesUsed,
|
|
2395
|
-
};
|
|
2396
|
-
}
|
|
2397
|
-
const resolvedItems = resolveSchema(itemsSchema, schemasByKey);
|
|
2398
|
-
if (
|
|
2399
|
-
resolvedItems.type === "object" &&
|
|
2400
|
-
resolvedItems.properties &&
|
|
2401
|
-
Object.keys(resolvedItems.properties).length > 0
|
|
2402
|
-
) {
|
|
2403
|
-
const requiredSet = new Set(resolvedItems.required || []);
|
|
2404
|
-
const entries = Object.entries(resolvedItems.properties)
|
|
2405
|
-
.map(([k, v]) => {
|
|
2406
|
-
const propType = schemaToTypeScriptType(v as Schema, schemasByKey, schemaTypeNames);
|
|
2407
|
-
if (schemaTypeNames)
|
|
2408
|
-
Object.values(schemaTypeNames).forEach((n) => {
|
|
2409
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (propType.includes(n)) <span class="cstat-no" title="statement not covered" >addSchemaUsed(n);</span>
|
|
2410
|
-
});
|
|
2411
|
-
const optional = !requiredSet.has(k);
|
|
2412
|
-
return optional
|
|
2413
|
-
? `${INDENT_NS_BODY}${k}?: ${propType};`
|
|
2414
|
-
: <span class="branch-1 cbranch-no" title="branch not covered" >`${INDENT_NS_BODY}${k}: ${propType};`;</span>
|
|
2415
|
-
})
|
|
2416
|
-
.join("\n");
|
|
2417
|
-
declarations.push(
|
|
2418
|
-
`${INDENT_NS}export interface ${itemTypeName} {\n${entries}\n${INDENT_NS}}`,
|
|
2419
|
-
);
|
|
2420
|
-
return {
|
|
2421
|
-
declarations,
|
|
2422
|
-
returnTypeName: `${itemTypeName}[]`,
|
|
2423
|
-
genericArg: itemTypeName,
|
|
2424
|
-
schemaTypesUsed,
|
|
2425
|
-
};
|
|
2426
|
-
}
|
|
2427
|
-
const itemType = schemaToTypeScriptType(resolvedItems, schemasByKey, schemaTypeNames);
|
|
2428
|
-
if (schemaTypeNames)
|
|
2429
|
-
Object.values(schemaTypeNames).forEach((n) => {
|
|
2430
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (itemType.includes(n)) <span class="cstat-no" title="statement not covered" >addSchemaUsed(n);</span>
|
|
2431
|
-
});
|
|
2432
|
-
declarations.push(`${INDENT_NS}export type ${itemTypeName} = ${itemType};`);
|
|
2433
|
-
return {
|
|
2434
|
-
declarations,
|
|
2435
|
-
returnTypeName: `${itemTypeName}[]`,
|
|
2436
|
-
genericArg: itemTypeName,
|
|
2437
|
-
schemaTypesUsed,
|
|
2438
|
-
};
|
|
2439
|
-
}
|
|
2440
|
-
declarations.push(`${INDENT_NS}export type ${itemTypeName} = string;`);
|
|
2441
|
-
return {
|
|
2442
|
-
declarations,
|
|
2443
|
-
returnTypeName: `${itemTypeName}[]`,
|
|
2444
|
-
genericArg: itemTypeName,
|
|
2445
|
-
schemaTypesUsed,
|
|
2446
|
-
};
|
|
2447
|
-
}
|
|
2448
|
-
|
|
2449
|
-
// primitive: boolean, string, integer, double (or unknown when schema ref unresolved)
|
|
2450
|
-
// When schema has primitive const or enum, emit literal or union type
|
|
2451
|
-
const effectiveConst =
|
|
2452
|
-
effective && "const" in effective && (effective as Schema).const !== undefined
|
|
2453
|
-
? (effective as Schema).const
|
|
2454
|
-
: undefined;
|
|
2455
|
-
const effectiveEnum =
|
|
2456
|
-
effective && "enum" in effective && Array.isArray((effective as Schema).enum)
|
|
2457
|
-
? (effective as Schema).enum
|
|
2458
|
-
: undefined;
|
|
2459
|
-
const literalType = effectiveConst !== undefined ? constToLiteralType(effectiveConst) : null;
|
|
2460
|
-
const enumUnion =
|
|
2461
|
-
effectiveEnum && effectiveEnum.length > 0 ? enumToUnionType(effectiveEnum) : null;
|
|
2462
|
-
const primitiveType =
|
|
2463
|
-
literalType ?? enumUnion ?? (type ? convertFeaturevisorTypeToTypeScriptType(type) : <span class="branch-1 cbranch-no" title="branch not covered" >"unknown")</span>;
|
|
2464
|
-
declarations.push(`${INDENT_NS}export type ${typeName} = ${primitiveType};`);
|
|
2465
|
-
return {
|
|
2466
|
-
declarations,
|
|
2467
|
-
returnTypeName: typeName,
|
|
2468
|
-
genericArg: typeName,
|
|
2469
|
-
isLiteralType: literalType !== null || enumUnion !== null,
|
|
2470
|
-
schemaTypesUsed,
|
|
2471
|
-
};
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
1474
|
function getPascalCase(str) {
|
|
2475
1475
|
// Remove special characters and split the string into an array of words
|
|
2476
1476
|
const words = str.replace(/[^a-zA-Z0-9]/g, " ").split(" ");
|
|
@@ -2510,7 +1510,7 @@ function getVariableTypeForFeaturesMap(
|
|
|
2510
1510
|
): { typeName: string; schemaTypesUsed: string[] } {
|
|
2511
1511
|
const schemaTypesUsed: string[] = [];
|
|
2512
1512
|
const addSchemaUsed = (name: string) => {
|
|
2513
|
-
if (name && !schemaTypesUsed.includes(name)) {
|
|
1513
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (name && !schemaTypesUsed.includes(name)) {
|
|
2514
1514
|
schemaTypesUsed.push(name);
|
|
2515
1515
|
}
|
|
2516
1516
|
};
|
|
@@ -2537,7 +1537,7 @@ function getVariableTypeForFeaturesMap(
|
|
|
2537
1537
|
|
|
2538
1538
|
const typeName = schemaToTypeScriptType(effective as Schema, schemasByKey, schemaTypeNames);
|
|
2539
1539
|
|
|
2540
|
-
if (schemaTypeNames) {
|
|
1540
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (schemaTypeNames) {
|
|
2541
1541
|
Object.values(schemaTypeNames).forEach((name) => {
|
|
2542
1542
|
if (typeName.includes(name)) {
|
|
2543
1543
|
addSchemaUsed(name);
|
|
@@ -2593,21 +1593,20 @@ function generateAttributesFileContent(
|
|
|
2593
1593
|
return `${importLine}${lines.join("\n")}\n`;
|
|
2594
1594
|
}
|
|
2595
1595
|
|
|
2596
|
-
// Indentation for generated namespace content (2 spaces per level)
|
|
2597
1596
|
const INDENT_NS = " ";
|
|
2598
1597
|
const INDENT_NS_BODY = " ";
|
|
2599
1598
|
|
|
2600
1599
|
const instanceSnippet = `
|
|
2601
|
-
import {
|
|
1600
|
+
import type { Featurevisor } from "@featurevisor/sdk";
|
|
2602
1601
|
|
|
2603
|
-
let _instance:
|
|
1602
|
+
let _instance: Featurevisor;
|
|
2604
1603
|
|
|
2605
|
-
export function setInstance(instance:
|
|
1604
|
+
export function setInstance(instance: Featurevisor) {
|
|
2606
1605
|
_instance = instance;
|
|
2607
1606
|
}
|
|
2608
1607
|
|
|
2609
|
-
export function getInstance():
|
|
2610
|
-
return _instance as
|
|
1608
|
+
export function getInstance(): Featurevisor {
|
|
1609
|
+
return _instance as Featurevisor;
|
|
2611
1610
|
}
|
|
2612
1611
|
`.trimStart();
|
|
2613
1612
|
|
|
@@ -2616,14 +1615,21 @@ export async function generateTypeScriptCodeForProject(
|
|
|
2616
1615
|
outputPath: string,
|
|
2617
1616
|
options: TypeScriptGenerationOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
2618
1617
|
) {
|
|
2619
|
-
const { rootDirectoryPath, datasource } = deps;
|
|
2620
|
-
const selectedTags = options.tag
|
|
2621
|
-
? <span class="branch-0 cbranch-no" title="branch not covered" >Array.isArray(options.tag)</span>
|
|
2622
|
-
? options.tag
|
|
2623
|
-
: [options.tag]
|
|
2624
|
-
: [];
|
|
1618
|
+
const { rootDirectoryPath, projectConfig, datasource } = deps;
|
|
1619
|
+
const selectedTags = normalizeOptionValues(options.tag);
|
|
2625
1620
|
const shouldGenerateReact = Boolean(options.react);
|
|
2626
|
-
|
|
1621
|
+
|
|
1622
|
+
const unknownTag = selectedTags.find((tag) => !projectConfig.tags.includes(tag));
|
|
1623
|
+
if (unknownTag) {
|
|
1624
|
+
throw new Error(
|
|
1625
|
+
`Unknown tag "${unknownTag}". Available tags: ${projectConfig.tags.join(", ") || <span class="branch-1 cbranch-no" title="branch not covered" >"none"}.</span>`,
|
|
1626
|
+
);
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
const selectedTargets = await resolveTargets(datasource, options.target, {
|
|
1630
|
+
defaultToAll: false,
|
|
1631
|
+
requireTargets: false,
|
|
1632
|
+
});
|
|
2627
1633
|
|
|
2628
1634
|
console.log("\nGenerating TypeScript code...\n");
|
|
2629
1635
|
|
|
@@ -2639,7 +1645,7 @@ export async function generateTypeScriptCodeForProject(
|
|
|
2639
1645
|
}
|
|
2640
1646
|
const schemaKeys = Object.keys(schemasByKey);
|
|
2641
1647
|
const hasSchemasFile = schemaKeys.length > 0;
|
|
2642
|
-
if (hasSchemasFile) {
|
|
1648
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (hasSchemasFile) {
|
|
2643
1649
|
const schemasContent = generateSchemasFileContent(schemaKeys, schemasByKey);
|
|
2644
1650
|
const schemasFilePath = path.join(outputPath, "schemas.ts");
|
|
2645
1651
|
fs.writeFileSync(schemasFilePath, schemasContent);
|
|
@@ -2721,7 +1727,6 @@ ${attributeProperties}
|
|
|
2721
1727
|
const parsedFeatures: {
|
|
2722
1728
|
featureKey: string;
|
|
2723
1729
|
parsedFeature: ParsedFeature;
|
|
2724
|
-
namespaceValue: string;
|
|
2725
1730
|
}[] = [];
|
|
2726
1731
|
|
|
2727
1732
|
for (const featureKey of featureFiles) {
|
|
@@ -2731,117 +1736,20 @@ ${attributeProperties}
|
|
|
2731
1736
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
2732
1737
|
}
|
|
2733
1738
|
|
|
2734
|
-
<span class="
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
1739
|
+
const featureTags = Array.isArray(parsedFeature.tags) ? parsedFeature.tags : <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
1740
|
+
const matchesSelectedTag = selectedTags.some((tag) => featureTags.includes(tag));
|
|
1741
|
+
const matchesSelectedTarget = selectedTargets.some((target) =>
|
|
1742
|
+
targetIncludesFeature(target, featureKey, parsedFeature),
|
|
1743
|
+
);
|
|
1744
|
+
if (
|
|
1745
|
+
(selectedTags.length > 0 || selectedTargets.length > 0) &&
|
|
1746
|
+
!matchesSelectedTag &&
|
|
1747
|
+
!matchesSelectedTarget
|
|
1748
|
+
) {
|
|
1749
|
+
continue;
|
|
2740
1750
|
}
|
|
2741
1751
|
|
|
2742
|
-
|
|
2743
|
-
parsedFeatures.push({ featureKey, parsedFeature, namespaceValue });
|
|
2744
|
-
}
|
|
2745
|
-
|
|
2746
|
-
const featureNamespaces: string[] = [];
|
|
2747
|
-
if (shouldGenerateIndividualFeatures) {
|
|
2748
|
-
for (const { featureKey, parsedFeature, namespaceValue } of parsedFeatures) {
|
|
2749
|
-
featureNamespaces.push(namespaceValue);
|
|
2750
|
-
|
|
2751
|
-
let variableTypeDeclarations = "";
|
|
2752
|
-
let variableMethods = "";
|
|
2753
|
-
const featureSchemaTypesUsed = new Set<string>();
|
|
2754
|
-
|
|
2755
|
-
if (parsedFeature.variablesSchema) {
|
|
2756
|
-
const variableKeys = Object.keys(parsedFeature.variablesSchema);
|
|
2757
|
-
const allDeclarations: string[] = [];
|
|
2758
|
-
|
|
2759
|
-
for (const variableKey of variableKeys) {
|
|
2760
|
-
const variableSchema = parsedFeature.variablesSchema[variableKey];
|
|
2761
|
-
const effective = getEffectiveVariableSchema(variableSchema, schemasByKey);
|
|
2762
|
-
const variableType = effective?.type;
|
|
2763
|
-
const {
|
|
2764
|
-
declarations,
|
|
2765
|
-
returnTypeName,
|
|
2766
|
-
genericArg,
|
|
2767
|
-
isLiteralType,
|
|
2768
|
-
useGetVariable,
|
|
2769
|
-
schemaTypesUsed,
|
|
2770
|
-
} = generateVariableTypeDeclarations(
|
|
2771
|
-
variableKey,
|
|
2772
|
-
variableSchema,
|
|
2773
|
-
schemasByKey,
|
|
2774
|
-
hasSchemasFile ? schemaTypeNames : <span class="branch-1 cbranch-no" title="branch not covered" >undefined,</span>
|
|
2775
|
-
);
|
|
2776
|
-
schemaTypesUsed.forEach((t) => featureSchemaTypesUsed.add(t));
|
|
2777
|
-
allDeclarations.push(...declarations);
|
|
2778
|
-
|
|
2779
|
-
const internalMethodName = `getVariable${
|
|
2780
|
-
variableType === "json" ? "JSON" : getPascalCase(variableType ?? "string")
|
|
2781
|
-
}`;
|
|
2782
|
-
|
|
2783
|
-
const hasGeneric =
|
|
2784
|
-
variableType === "json" || variableType === "array" || variableType === "object";
|
|
2785
|
-
const literalAssertion = isLiteralType ? ` as ${returnTypeName} | null` : "";
|
|
2786
|
-
if (useGetVariable) {
|
|
2787
|
-
variableMethods += `
|
|
2788
|
-
|
|
2789
|
-
${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
|
|
2790
|
-
${INDENT_NS_BODY}return getInstance().getVariable(key, "${variableKey}", context)${literalAssertion};
|
|
2791
|
-
${INDENT_NS}}`;
|
|
2792
|
-
} else if (variableType === "json") {
|
|
2793
|
-
variableMethods += `
|
|
2794
|
-
|
|
2795
|
-
${INDENT_NS}export function get${getPascalCase(variableKey)}<T = unknown>(context: Context = {}): T | null {
|
|
2796
|
-
${INDENT_NS_BODY}return getInstance().${internalMethodName}<T>(key, "${variableKey}", context);
|
|
2797
|
-
${INDENT_NS}}`;
|
|
2798
|
-
} else if (hasGeneric) {
|
|
2799
|
-
variableMethods += `
|
|
2800
|
-
|
|
2801
|
-
${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
|
|
2802
|
-
${INDENT_NS_BODY}return getInstance().${internalMethodName}<${genericArg}>(key, "${variableKey}", context);
|
|
2803
|
-
${INDENT_NS}}`;
|
|
2804
|
-
} else {
|
|
2805
|
-
variableMethods += `
|
|
2806
|
-
|
|
2807
|
-
${INDENT_NS}export function get${getPascalCase(variableKey)}(context: Context = {}): ${returnTypeName} | null {
|
|
2808
|
-
${INDENT_NS_BODY}return getInstance().${internalMethodName}(key, "${variableKey}", context)${literalAssertion};
|
|
2809
|
-
${INDENT_NS}}`;
|
|
2810
|
-
}
|
|
2811
|
-
}
|
|
2812
|
-
|
|
2813
|
-
if (allDeclarations.length > 0) {
|
|
2814
|
-
variableTypeDeclarations = "\n\n" + allDeclarations.join("\n\n");
|
|
2815
|
-
}
|
|
2816
|
-
}
|
|
2817
|
-
|
|
2818
|
-
const schemasImportLine = formatTypeImport([...featureSchemaTypesUsed].sort(), "./schemas");
|
|
2819
|
-
|
|
2820
|
-
const featureContent = `
|
|
2821
|
-
import { Context } from "./context";
|
|
2822
|
-
import { getInstance } from "./instance";
|
|
2823
|
-
${schemasImportLine}export namespace ${namespaceValue} {
|
|
2824
|
-
${INDENT_NS}export const key = "${featureKey}";${variableTypeDeclarations}
|
|
2825
|
-
|
|
2826
|
-
${INDENT_NS}export function isEnabled(context: Context = {}) {
|
|
2827
|
-
${INDENT_NS_BODY}return getInstance().isEnabled(key, context);
|
|
2828
|
-
${INDENT_NS}}
|
|
2829
|
-
|
|
2830
|
-
${INDENT_NS}export function getVariation(context: Context = {}) {
|
|
2831
|
-
${INDENT_NS_BODY}return getInstance().getVariation(key, context);
|
|
2832
|
-
${INDENT_NS}}${variableMethods}
|
|
2833
|
-
}
|
|
2834
|
-
`.trimStart();
|
|
2835
|
-
|
|
2836
|
-
const featureNamespaceFilePath = path.join(outputPath, `${namespaceValue}.ts`);
|
|
2837
|
-
fs.writeFileSync(featureNamespaceFilePath, featureContent);
|
|
2838
|
-
console.log(
|
|
2839
|
-
`Feature ${featureKey} file written at: ${getRelativePath(
|
|
2840
|
-
rootDirectoryPath,
|
|
2841
|
-
featureNamespaceFilePath,
|
|
2842
|
-
)}`,
|
|
2843
|
-
);
|
|
2844
|
-
}
|
|
1752
|
+
parsedFeatures.push({ featureKey, parsedFeature });
|
|
2845
1753
|
}
|
|
2846
1754
|
|
|
2847
1755
|
const featuresTypeSchemasUsed = new Set<string>();
|
|
@@ -2929,8 +1837,8 @@ export function getVariable<F extends FeatureKey, V extends VariableKey<F&
|
|
|
2929
1837
|
`Functions file written at: ${getRelativePath(rootDirectoryPath, functionsFilePath)}`,
|
|
2930
1838
|
);
|
|
2931
1839
|
|
|
2932
|
-
|
|
2933
|
-
const reactFileContent =
|
|
1840
|
+
if (shouldGenerateReact) {
|
|
1841
|
+
const reactFileContent = `
|
|
2934
1842
|
import {
|
|
2935
1843
|
useFlag as useFlagOriginal,
|
|
2936
1844
|
useVariation as useVariationOriginal,
|
|
@@ -2959,9 +1867,9 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F&
|
|
|
2959
1867
|
return useVariableOriginal(featureKey, variableKey, context) as VariableType<F, V> | null;
|
|
2960
1868
|
}
|
|
2961
1869
|
`.trimStart();
|
|
2962
|
-
const reactFilePath =
|
|
2963
|
-
|
|
2964
|
-
|
|
1870
|
+
const reactFilePath = path.join(outputPath, "react.ts");
|
|
1871
|
+
fs.writeFileSync(reactFilePath, reactFileContent);
|
|
1872
|
+
console.log(`React file written at: ${getRelativePath(rootDirectoryPath, reactFilePath)}`);
|
|
2965
1873
|
}
|
|
2966
1874
|
|
|
2967
1875
|
// index
|
|
@@ -2973,10 +1881,7 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F&
|
|
|
2973
1881
|
...(hasSchemasFile ? [`export * from "./schemas";`] : <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>,
|
|
2974
1882
|
`export * from "./features";`,
|
|
2975
1883
|
`export * from "./functions";`,
|
|
2976
|
-
...(shouldGenerateReact ?
|
|
2977
|
-
...featureNamespaces.map((featureNamespace) => {
|
|
2978
|
-
return `export * from "./${featureNamespace}";`;
|
|
2979
|
-
}),
|
|
1884
|
+
...(shouldGenerateReact ? [`export * from "./react";`] : []),
|
|
2980
1885
|
].join("\n") + "\n";
|
|
2981
1886
|
const indexFilePath = path.join(outputPath, "index.ts");
|
|
2982
1887
|
fs.writeFileSync(indexFilePath, indexContent);
|
|
@@ -2989,16 +1894,16 @@ export function useVariable<F extends FeatureKey, V extends VariableKey<F&
|
|
|
2989
1894
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2990
1895
|
Code coverage generated by
|
|
2991
1896
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2992
|
-
at 2026-
|
|
1897
|
+
at 2026-07-12T20:35:50.655Z
|
|
2993
1898
|
</div>
|
|
2994
|
-
<script src="
|
|
1899
|
+
<script src="../../prettify.js"></script>
|
|
2995
1900
|
<script>
|
|
2996
1901
|
window.onload = function () {
|
|
2997
1902
|
prettyPrint();
|
|
2998
1903
|
};
|
|
2999
1904
|
</script>
|
|
3000
|
-
<script src="
|
|
3001
|
-
<script src="
|
|
1905
|
+
<script src="../../sorter.js"></script>
|
|
1906
|
+
<script src="../../block-navigation.js"></script>
|
|
3002
1907
|
</body>
|
|
3003
1908
|
</html>
|
|
3004
1909
|
|