scanoss 0.7.9 → 0.7.11
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/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/.circleci/config.yml +0 -64
- package/.cspell.json +0 -36
- package/.editorconfig +0 -15
- package/.eslintrc.json +0 -37
- package/.github/workflows/reuse.yml +0 -15
- package/.github/workflows/scanoss.yml +0 -24
- package/.gitignore +0 -10
- package/.idea/.gitignore +0 -5
- package/.idea/codeStyles/Project.xml +0 -61
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/scanoss.js.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.idea/workspace.xml +0 -313
- package/.nyc_output/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +0 -1
- package/.nyc_output/processinfo/3da9f448-90e4-4399-887b-e4fd1b8d7052.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/.prettierignore +0 -2
- package/.reuse/dep5 +0 -16
- package/.vscode/extensions.json +0 -8
- package/.vscode/launch.json +0 -29
- package/.vscode/settings.json +0 -7
- package/LICENSES/CC0-1.0.txt +0 -121
- package/LICENSES/MIT.txt +0 -9
- package/assets/ReportHTMLTemplate/index.html +0 -1181
- package/build/main/package.json +0 -120
- package/build/main/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
- package/build/main/sdk/filters/DefaultFilterForDependencies.js +0 -145
- package/build/main/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
- package/build/main/sdk/filters/DefaultFilterForScanning.js +0 -194
- package/build/main/sdk/filters/filtering.d.ts +0 -32
- package/build/main/sdk/filters/filtering.js +0 -228
- package/build/main/src/cli/bin/cli-bin.d.ts +0 -2
- package/build/main/src/cli/bin/cli-bin.js +0 -68
- package/build/main/src/cli/commands/dep.d.ts +0 -1
- package/build/main/src/cli/commands/dep.js +0 -38
- package/build/main/src/cli/commands/helpers.d.ts +0 -2
- package/build/main/src/cli/commands/helpers.js +0 -25
- package/build/main/src/cli/commands/scan.d.ts +0 -1
- package/build/main/src/cli/commands/scan.js +0 -138
- package/build/main/src/cli/commands/wfp.d.ts +0 -1
- package/build/main/src/cli/commands/wfp.js +0 -54
- package/build/main/src/index.d.ts +0 -14
- package/build/main/src/index.js +0 -30
- package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
- package/build/main/src/sdk/DataLayer/DataLayerTypes.js +0 -5
- package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
- package/build/main/src/sdk/DataLayer/DataProviderManager.js +0 -24
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -164
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -37
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -148
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -33
- package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
- package/build/main/src/sdk/Decompress/DecompressionManager.js +0 -73
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -22
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -24
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +0 -18
- package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
- package/build/main/src/sdk/Dependencies/DependencyScanner.js +0 -96
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +0 -10
- package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
- package/build/main/src/sdk/Dependencies/DependencyTypes.js +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -102
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -95
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -97
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -183
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -187
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -58
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -64
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -132
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -19
- package/build/main/src/sdk/Report/Report.d.ts +0 -8
- package/build/main/src/sdk/Report/Report.js +0 -26
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +0 -145
- package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
- package/build/main/src/sdk/filters/DefaultFilterForScanning.js +0 -194
- package/build/main/src/sdk/filters/filtering.d.ts +0 -32
- package/build/main/src/sdk/filters/filtering.js +0 -228
- package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
- package/build/main/src/sdk/grpc/GrpcDependencyService.js +0 -86
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -43
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -160
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -33
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -32
- package/build/main/src/sdk/scanner/Fingerprint.d.ts +0 -16
- package/build/main/src/sdk/scanner/Fingerprint.js +0 -78
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +0 -27
- package/build/main/src/sdk/scanner/Scanner.d.ts +0 -46
- package/build/main/src/sdk/scanner/Scanner.js +0 -283
- package/build/main/src/sdk/scanner/ScannerCfg.d.ts +0 -16
- package/build/main/src/sdk/scanner/ScannerCfg.js +0 -30
- package/build/main/src/sdk/scanner/ScannerTypes.d.ts +0 -121
- package/build/main/src/sdk/scanner/ScannerTypes.js +0 -48
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -31
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -492
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -68
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -139
- package/build/main/src/sdk/tree/File.d.ts +0 -7
- package/build/main/src/sdk/tree/File.js +0 -24
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +0 -21
- package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
- package/build/main/src/sdk/tree/Filters/DependencyFilter.js +0 -17
- package/build/main/src/sdk/tree/Filters/Filter.d.ts +0 -4
- package/build/main/src/sdk/tree/Filters/Filter.js +0 -6
- package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
- package/build/main/src/sdk/tree/Filters/ScanFilter.js +0 -17
- package/build/main/src/sdk/tree/Folder.d.ts +0 -12
- package/build/main/src/sdk/tree/Folder.js +0 -58
- package/build/main/src/sdk/tree/Node.d.ts +0 -17
- package/build/main/src/sdk/tree/Node.js +0 -25
- package/build/main/src/sdk/tree/Tree.d.ts +0 -18
- package/build/main/src/sdk/tree/Tree.js +0 -70
- package/build/module/package.json +0 -120
- package/build/module/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
- package/build/module/sdk/filters/DefaultFilterForDependencies.js +0 -143
- package/build/module/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
- package/build/module/sdk/filters/DefaultFilterForScanning.js +0 -192
- package/build/module/sdk/filters/filtering.d.ts +0 -32
- package/build/module/sdk/filters/filtering.js +0 -203
- package/build/module/src/cli/bin/cli-bin.d.ts +0 -2
- package/build/module/src/cli/bin/cli-bin.js +0 -67
- package/build/module/src/cli/commands/dep.d.ts +0 -1
- package/build/module/src/cli/commands/dep.js +0 -32
- package/build/module/src/cli/commands/helpers.d.ts +0 -2
- package/build/module/src/cli/commands/helpers.js +0 -19
- package/build/module/src/cli/commands/scan.d.ts +0 -1
- package/build/module/src/cli/commands/scan.js +0 -135
- package/build/module/src/cli/commands/wfp.d.ts +0 -1
- package/build/module/src/cli/commands/wfp.js +0 -48
- package/build/module/src/index.d.ts +0 -14
- package/build/module/src/index.js +0 -19
- package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +0 -108
- package/build/module/src/sdk/DataLayer/DataLayerTypes.js +0 -5
- package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +0 -7
- package/build/module/src/sdk/DataLayer/DataProviderManager.js +0 -21
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +0 -13
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +0 -159
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +0 -9
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +0 -34
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +0 -18
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +0 -145
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +0 -11
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +0 -30
- package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +0 -12
- package/build/module/src/sdk/Decompress/DecompressionManager.js +0 -67
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +0 -5
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +0 -16
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +0 -5
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +0 -18
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +0 -10
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +0 -15
- package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +0 -11
- package/build/module/src/sdk/Dependencies/DependencyScanner.js +0 -93
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -4
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +0 -7
- package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +0 -21
- package/build/module/src/sdk/Dependencies/DependencyTypes.js +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +0 -16
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +0 -8
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +0 -96
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +0 -87
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +0 -3
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +0 -88
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +0 -180
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +0 -13
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +0 -175
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +0 -3
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +0 -49
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +0 -57
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +0 -3
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +0 -125
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +0 -2
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +0 -15
- package/build/module/src/sdk/Report/Report.d.ts +0 -8
- package/build/module/src/sdk/Report/Report.js +0 -20
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +0 -16
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +0 -143
- package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +0 -16
- package/build/module/src/sdk/filters/DefaultFilterForScanning.js +0 -192
- package/build/module/src/sdk/filters/filtering.d.ts +0 -32
- package/build/module/src/sdk/filters/filtering.js +0 -203
- package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +0 -11
- package/build/module/src/sdk/grpc/GrpcDependencyService.js +0 -64
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -2
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -1
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -404
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -39
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -98
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -1
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1197
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -19
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -66
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -1
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -14
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +0 -19
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +0 -37
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +0 -20
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +0 -135
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +0 -12
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +0 -30
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +0 -10
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +0 -26
- package/build/module/src/sdk/scanner/Fingerprint.d.ts +0 -16
- package/build/module/src/sdk/scanner/Fingerprint.js +0 -54
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +0 -15
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +0 -24
- package/build/module/src/sdk/scanner/Scanner.d.ts +0 -46
- package/build/module/src/sdk/scanner/Scanner.js +0 -275
- package/build/module/src/sdk/scanner/ScannerCfg.d.ts +0 -16
- package/build/module/src/sdk/scanner/ScannerCfg.js +0 -27
- package/build/module/src/sdk/scanner/ScannerTypes.d.ts +0 -121
- package/build/module/src/sdk/scanner/ScannerTypes.js +0 -46
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +0 -9
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +0 -28
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +0 -20
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +0 -486
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +0 -35
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +0 -65
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +0 -21
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +0 -132
- package/build/module/src/sdk/tree/File.d.ts +0 -7
- package/build/module/src/sdk/tree/File.js +0 -19
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +0 -7
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +0 -18
- package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +0 -7
- package/build/module/src/sdk/tree/Filters/DependencyFilter.js +0 -14
- package/build/module/src/sdk/tree/Filters/Filter.d.ts +0 -4
- package/build/module/src/sdk/tree/Filters/Filter.js +0 -3
- package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +0 -7
- package/build/module/src/sdk/tree/Filters/ScanFilter.js +0 -14
- package/build/module/src/sdk/tree/Folder.d.ts +0 -12
- package/build/module/src/sdk/tree/Folder.js +0 -53
- package/build/module/src/sdk/tree/Node.d.ts +0 -17
- package/build/module/src/sdk/tree/Node.js +0 -22
- package/build/module/src/sdk/tree/Tree.d.ts +0 -18
- package/build/module/src/sdk/tree/Tree.js +0 -64
- package/package-lock.json +0 -17116
- package/src/cli/bin/cli-bin.ts +0 -81
- package/src/cli/commands/dep.ts +0 -37
- package/src/cli/commands/helpers.ts +0 -19
- package/src/cli/commands/scan.ts +0 -173
- package/src/cli/commands/wfp.ts +0 -60
- package/src/index.ts +0 -31
- package/src/sdk/DataLayer/DataLayerTypes.ts +0 -129
- package/src/sdk/DataLayer/DataProviderManager.ts +0 -27
- package/src/sdk/DataLayer/DataProviders/ComponentDataProvider.ts +0 -195
- package/src/sdk/DataLayer/DataProviders/DependencyDataProvider.ts +0 -48
- package/src/sdk/DataLayer/DataProviders/LicenseDataProvider.ts +0 -184
- package/src/sdk/DataLayer/DataProviders/SummaryDataProvider.ts +0 -47
- package/src/sdk/Decompress/DecompressionManager.ts +0 -91
- package/src/sdk/Decompress/Decompressor/DecompressTgz.ts +0 -20
- package/src/sdk/Decompress/Decompressor/DecompressZips.ts +0 -21
- package/src/sdk/Decompress/Decompressor/Decompressor.ts +0 -20
- package/src/sdk/Dependencies/DependencyScanner.ts +0 -108
- package/src/sdk/Dependencies/DependencyScannerCfg.ts +0 -7
- package/src/sdk/Dependencies/DependencyTypes.ts +0 -24
- package/src/sdk/Dependencies/LocalDependency/DependencyTypes.ts +0 -21
- package/src/sdk/Dependencies/LocalDependency/LocalDependency.ts +0 -111
- package/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.ts +0 -115
- package/src/sdk/Dependencies/LocalDependency/parsers/golangParser.ts +0 -130
- package/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.ts +0 -209
- package/src/sdk/Dependencies/LocalDependency/parsers/npmParser.ts +0 -227
- package/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.ts +0 -64
- package/src/sdk/Dependencies/LocalDependency/parsers/pyParser.ts +0 -58
- package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +0 -174
- package/src/sdk/Dependencies/LocalDependency/parsers/utils.ts +0 -15
- package/src/sdk/FileCount/FileCount.ts +0 -81
- package/src/sdk/FileCount/FileCountFilter.ts +0 -14
- package/src/sdk/FileCount/Interfaces.ts +0 -23
- package/src/sdk/Filtering/DefaultFilterForDependencies.ts +0 -148
- package/src/sdk/Filtering/DefaultFilterForScanning.ts +0 -206
- package/src/sdk/Filtering/Filtering.ts +0 -273
- package/src/sdk/Report/Report.ts +0 -30
- package/src/sdk/grpc/GrpcDependencyService.ts +0 -72
- package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -1
- package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +0 -1
- package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -79
- package/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +0 -482
- package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -30
- package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +0 -109
- package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -206
- package/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +0 -1489
- package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +0 -25
- package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +0 -73
- package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +0 -6
- package/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +0 -15
- package/src/sdk/scanner/Dispatcher/DispatchableItem.ts +0 -62
- package/src/sdk/scanner/Dispatcher/Dispatcher.ts +0 -173
- package/src/sdk/scanner/Dispatcher/DispatcherResponse.ts +0 -40
- package/src/sdk/scanner/Dispatcher/GlobalControllerAborter.ts +0 -33
- package/src/sdk/scanner/Fingerprint.ts +0 -82
- package/src/sdk/scanner/Scannable/ScannableItem.ts +0 -43
- package/src/sdk/scanner/Scanner.ts +0 -360
- package/src/sdk/scanner/ScannerCfg.ts +0 -43
- package/src/sdk/scanner/ScannerTypes.ts +0 -127
- package/src/sdk/scanner/WfpProvider/FingerprintPackage.ts +0 -34
- package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +0 -516
- package/src/sdk/scanner/WfpProvider/WfpProvider.ts +0 -105
- package/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts +0 -184
- package/src/sdk/tree/File.ts +0 -22
- package/src/sdk/tree/Filters/DecompressionFilter.ts +0 -22
- package/src/sdk/tree/Filters/DependencyFilter.ts +0 -22
- package/src/sdk/tree/Filters/Filter.ts +0 -5
- package/src/sdk/tree/Filters/ScanFilter.ts +0 -22
- package/src/sdk/tree/Folder.ts +0 -57
- package/src/sdk/tree/Node.ts +0 -39
- package/src/sdk/tree/Tree.ts +0 -82
- package/tests/scanoss.sh +0 -56
- package/tests/sdk/DataLayer/DataProviders/ComponentDataProvider.spec.ts +0 -176
- package/tests/sdk/DataLayer/DataProviders/DependencyDataProvider.spec.ts +0 -51
- package/tests/sdk/DataLayer/DataProviders/SummaryDataProvider.spec.ts +0 -35
- package/tests/sdk/DataLayer/DataProviders/samples/results-with-dep.json +0 -665
- package/tests/sdk/DataLayer/DataProviders/samples/results.json +0 -556
- package/tests/sdk/DataLayer/samples/simple/results-with-dep.json +0 -665
- package/tests/sdk/DataLayer/samples/simple-1/output1.json +0 -1196
- package/tests/sdk/Dependencies/LocalDependency/LocalDependency.spec.ts +0 -24
- package/tests/sdk/Dependencies/LocalDependency/Parsers/buildGradle.spec.ts +0 -48
- package/tests/sdk/Dependencies/LocalDependency/Parsers/golangParser.spec.ts +0 -146
- package/tests/sdk/Dependencies/LocalDependency/Parsers/npmParser.spec.ts +0 -135
- package/tests/sdk/Dependencies/LocalDependency/Parsers/nugetParser.spec.ts +0 -73
- package/tests/sdk/Dependencies/LocalDependency/Parsers/pomParser.spec.ts +0 -45
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile +0 -6
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/1/Gemfile~ +0 -0
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile +0 -3
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/2/Gemfile~ +0 -6
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile +0 -7
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/3/Gemfile~ +0 -6
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile +0 -31
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile/4/Gemfile~ +0 -7
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/1/Gemfile.lock +0 -180
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock +0 -60
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/Gemfile.lock/2/Gemfile.lock~ +0 -0
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/1/go.sum +0 -119
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/go.sum/depJSON.sh +0 -23
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/1/build.gradle +0 -26
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/gradle/2/build.gradle +0 -16
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/NoDependencies.csproj +0 -115
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore-2.csproj +0 -18
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/netcore.csproj +0 -14
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/nuget/packageConfig-1/packages.config +0 -5
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/1/pom.xml +0 -670
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/pom.xml/2/pom.xml +0 -780
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/generate_expected_output.sh +0 -4
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock +0 -50
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1/yarn.lock-expected +0 -13
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock +0 -27
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1-complex/yarn.lock-expected +0 -8
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/scancode-out.json +0 -149662
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock +0 -8409
- package/tests/sdk/Dependencies/LocalDependency/Parsers/samples/yarn-lock/v1_2/yarn.lock-expected +0 -1153
- package/tests/sdk/FileCount/FileCount.spec.ts +0 -35
- package/tests/sdk/FileCount/samples/16557/.y.ts +0 -27
- package/tests/sdk/FileCount/samples/16557/.z.ts +0 -129
- package/tests/sdk/FileCount/samples/16557/files/a.ts +0 -195
- package/tests/sdk/FileCount/samples/16557/files/b.ts +0 -184
- package/tests/sdk/FileCount/samples/16557/files/c.ts +0 -47
- package/tests/sdk/FileCount/samples/22036/files/a.ts +0 -195
- package/tests/sdk/FileCount/samples/22036/files/b.ts +0 -184
- package/tests/sdk/FileCount/samples/22036/files/c.ts +0 -47
- package/tests/sdk/FileCount/samples/22036/files/d.ts +0 -48
- package/tests/sdk/FileCount/samples/22036/y.ts +0 -27
- package/tests/sdk/FileCount/samples/22036/z.ts +0 -129
- package/tests/sdk/Scanner/WfpProvider/WfpCalculator/WfpCalculator.spec.ts +0 -102
- package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file1.c +0 -41
- package/tests/sdk/Scanner/WfpProvider/WfpCalculator/samples/file2.go +0 -87
- package/tests/sdk/Scanner/WfpProvider/WfpSplitter/WfpSplitter.spec.ts +0 -35
- package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp +0 -68
- package/tests/sdk/Scanner/WfpProvider/WfpSplitter/samples/wfp.wfp~ +0 -68
- package/tsconfig.json +0 -31
- package/tsconfig.module.json +0 -11
- package/yarn.lock +0 -5481
|
@@ -1,1181 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
-
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
|
|
9
|
-
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
|
10
|
-
<title>SCANOSS Detected Report</title>
|
|
11
|
-
</head>
|
|
12
|
-
|
|
13
|
-
<style>
|
|
14
|
-
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
|
15
|
-
|
|
16
|
-
:root {
|
|
17
|
-
--primary: #6366F1;
|
|
18
|
-
--dark: #18181B;
|
|
19
|
-
--bg-color: rgba(241, 245, 249, 1);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
body {
|
|
23
|
-
max-width: 1200px;
|
|
24
|
-
margin: 0 auto;
|
|
25
|
-
background: var(--bg-color);
|
|
26
|
-
color: var(--dark);
|
|
27
|
-
font-family: 'Space Grotesk', sans-serif;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.nav-link {
|
|
32
|
-
display: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.nav-link.visible {
|
|
36
|
-
display: inline-block;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
header {
|
|
40
|
-
display: flex;
|
|
41
|
-
flex-direction: column;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
footer {
|
|
45
|
-
font-size: 12px;
|
|
46
|
-
color: gray;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.header-title {
|
|
50
|
-
display: flex;
|
|
51
|
-
flex-direction: row;
|
|
52
|
-
justify-content: space-between;
|
|
53
|
-
width: 100%;
|
|
54
|
-
margin-top: 15px;
|
|
55
|
-
margin-bottom: 16px;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.project-name-container {
|
|
59
|
-
display: flex;
|
|
60
|
-
justify-content: center;
|
|
61
|
-
align-items: center;
|
|
62
|
-
font-size: 48px;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.header-title img {
|
|
66
|
-
height: 55px;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
h1,
|
|
70
|
-
h2,
|
|
71
|
-
h3,
|
|
72
|
-
h4,
|
|
73
|
-
h5 {
|
|
74
|
-
color: #656df1;
|
|
75
|
-
font-weight: 400;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.primary {
|
|
79
|
-
color: var(--primary) !important;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
#date {
|
|
83
|
-
margin-top: 0;
|
|
84
|
-
color: darkgray;
|
|
85
|
-
font-size: 14px;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.divider {
|
|
89
|
-
border-bottom: 1px solid rgba(228, 228, 231, 1);
|
|
90
|
-
margin: 10px 0;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.divider.big {
|
|
94
|
-
margin: 25px 0;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.text-center {
|
|
98
|
-
text-align: center;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.main-container {
|
|
102
|
-
width: 100%;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.scan-summary {
|
|
106
|
-
display: flex;
|
|
107
|
-
justify-content: center;
|
|
108
|
-
gap: 15px;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.license-table-container {
|
|
112
|
-
width: 100%;
|
|
113
|
-
height: 700px;
|
|
114
|
-
display: flex;
|
|
115
|
-
flex-direction: row;
|
|
116
|
-
justify-content: center;
|
|
117
|
-
align-items: flex-start;
|
|
118
|
-
padding-left: 4%;
|
|
119
|
-
padding-right: 7%;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
.pie-chart-container {
|
|
123
|
-
margin: 0 auto;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
.incompatible-license-table td:first-child {
|
|
128
|
-
text-align: left;
|
|
129
|
-
font-size: 14px;
|
|
130
|
-
font-weight: 500;
|
|
131
|
-
line-height: 20px;
|
|
132
|
-
letter-spacing: 0em;
|
|
133
|
-
text-align: left;
|
|
134
|
-
color: var(--dark);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.incompatible-license-table th {
|
|
138
|
-
font-size: 18px;
|
|
139
|
-
font-weight: 400;
|
|
140
|
-
line-height: 23px;
|
|
141
|
-
color: #A1A1AA;
|
|
142
|
-
border-color: #E4E4E7;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.incompatible-license-table th:first-child {
|
|
146
|
-
text-align: left;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.table td,
|
|
150
|
-
.table th {
|
|
151
|
-
padding: 0.15rem;
|
|
152
|
-
text-align: center;
|
|
153
|
-
vertical-align: middle;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
table {
|
|
157
|
-
width: 100%;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
th {
|
|
161
|
-
font-size: 13px;
|
|
162
|
-
font-weight: bold;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
tr {
|
|
166
|
-
font-size: 11px;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
.color-reference {
|
|
170
|
-
width: 15px;
|
|
171
|
-
height: 15px;
|
|
172
|
-
display: block;
|
|
173
|
-
border-radius: 2px;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
.table-striped tbody tr:nth-of-type(odd) {
|
|
178
|
-
background-color: rgb(105 101 101 / 5%);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
.button-solid {
|
|
184
|
-
border: none;
|
|
185
|
-
background-color: transparent;
|
|
186
|
-
margin-right: 0;
|
|
187
|
-
padding: 10px 0 10px 10px;
|
|
188
|
-
color: #656df1;
|
|
189
|
-
font-size: 12px;
|
|
190
|
-
font-weight: 600;
|
|
191
|
-
line-height: 15px;
|
|
192
|
-
letter-spacing: 0em;
|
|
193
|
-
text-align: right;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
.button-solid:focus,
|
|
198
|
-
#drop-down-license-detail-btn:focus {
|
|
199
|
-
border: none;
|
|
200
|
-
outline: none;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.hide {
|
|
204
|
-
display: none;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
.label {
|
|
209
|
-
display: flex;
|
|
210
|
-
justify-content: left;
|
|
211
|
-
align-items: center;
|
|
212
|
-
width: 100%;
|
|
213
|
-
color: rgb(0 0 0 / 51%);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
p {
|
|
217
|
-
margin-top: 0;
|
|
218
|
-
margin-bottom: 0;
|
|
219
|
-
text-align: left;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.drop-down-license-detail-container button {
|
|
223
|
-
display: flex;
|
|
224
|
-
justify-content: center;
|
|
225
|
-
width: 100%;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
.license-info-detail {
|
|
229
|
-
display: flex;
|
|
230
|
-
justify-content: space-around;
|
|
231
|
-
width: 100%;
|
|
232
|
-
padding: 6px 0;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
.license-ref {
|
|
236
|
-
width: 90%;
|
|
237
|
-
display: flex;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
.license-component-button-container {
|
|
241
|
-
width: 40%;
|
|
242
|
-
display: flex;
|
|
243
|
-
align-items: center;
|
|
244
|
-
justify-content: flex-end;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
.license-info-container {
|
|
248
|
-
display: flex;
|
|
249
|
-
width: 85%;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
.color-reference-container {
|
|
253
|
-
width: 14%;
|
|
254
|
-
align-items: center;
|
|
255
|
-
justify-content: center;
|
|
256
|
-
display: flex;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
.info-container {
|
|
260
|
-
display: flex;
|
|
261
|
-
justify-content: center;
|
|
262
|
-
align-items: center;
|
|
263
|
-
width: 85%;
|
|
264
|
-
height: 30px;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.info {
|
|
268
|
-
display: flex;
|
|
269
|
-
flex-direction: column;
|
|
270
|
-
width: 100%;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
.info.big {
|
|
274
|
-
width: auto;
|
|
275
|
-
margin: 0 15px;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
.info.big .label {
|
|
279
|
-
font-weight: 400;
|
|
280
|
-
font-size: 20px;
|
|
281
|
-
color: rgb(113, 113, 122);
|
|
282
|
-
justify-content: center;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
.info.big .value {
|
|
286
|
-
font-weight: 600;
|
|
287
|
-
font-size: 64px;
|
|
288
|
-
line-height: 64px;
|
|
289
|
-
justify-content: center;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
.info .label {
|
|
293
|
-
display: flex;
|
|
294
|
-
justify-content: flex-start;
|
|
295
|
-
width: 100%;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
.info .value {
|
|
299
|
-
display: flex;
|
|
300
|
-
justify-content: flex-start;
|
|
301
|
-
text-align: left;
|
|
302
|
-
width: 100%;
|
|
303
|
-
color: rgb(24, 24, 27);
|
|
304
|
-
font-size: 16px;
|
|
305
|
-
font-weight: 500;
|
|
306
|
-
line-height: 26px;
|
|
307
|
-
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
.info .value.small {
|
|
311
|
-
font-size: 16px;
|
|
312
|
-
font-weight: 400;
|
|
313
|
-
line-height: 20px;
|
|
314
|
-
color: rgb(24, 24, 27)
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
.row-license-info-container {
|
|
318
|
-
display: flex;
|
|
319
|
-
width: 100%;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
td.cell-info-container {
|
|
323
|
-
width: 30%;
|
|
324
|
-
display: flex;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
td.cell-info-container:last-child {
|
|
328
|
-
justify-content: right;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
td.cell-info-container:last-child {
|
|
332
|
-
justify-content: right;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
td.cell-info-container.index {
|
|
336
|
-
width: 10%;
|
|
337
|
-
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
.row-info-container {
|
|
341
|
-
display: flex;
|
|
342
|
-
justify-content: center;
|
|
343
|
-
align-items: center;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
.detected-license-report-table-container,
|
|
347
|
-
.incompatibilities-table-container {
|
|
348
|
-
margin: 0px;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
.incompatible-license-container {
|
|
352
|
-
margin: 10px 0;
|
|
353
|
-
min-height: 20px;
|
|
354
|
-
align-items: center;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
.license-block {
|
|
358
|
-
margin: 2px;
|
|
359
|
-
font-size: 12px;
|
|
360
|
-
background-color: #dfdedd;
|
|
361
|
-
display: flex;
|
|
362
|
-
flex-flow: wrap;
|
|
363
|
-
justify-content: center;
|
|
364
|
-
align-items: center;
|
|
365
|
-
padding: 5px;
|
|
366
|
-
border-radius: 3px;
|
|
367
|
-
font-weight: bold;
|
|
368
|
-
|
|
369
|
-
-webkit-print-color-adjust: exact !important;
|
|
370
|
-
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
.incompatible-license-container {
|
|
374
|
-
display: flex;
|
|
375
|
-
flex-flow: wrap;
|
|
376
|
-
flex-direction: row;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
#incompatible-license {
|
|
380
|
-
vertical-align: baseline;
|
|
381
|
-
border-top: 1px solid #fafafa;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
.incompatible-ref {
|
|
385
|
-
background-color: #dc3545;
|
|
386
|
-
color: white;
|
|
387
|
-
-webkit-print-color-adjust: exact !important;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
table.main-table>thead {
|
|
391
|
-
position: sticky;
|
|
392
|
-
top: 0;
|
|
393
|
-
background: var(--bg-color);
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
table.main-table td,
|
|
397
|
-
table.main-table th {
|
|
398
|
-
text-align: left;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
.table.main-table>:not(:first-child) {
|
|
402
|
-
border-top: 0 !important;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
table.main-table th {
|
|
406
|
-
padding: .5rem;
|
|
407
|
-
font-size: 18px;
|
|
408
|
-
font-weight: 400;
|
|
409
|
-
line-height: 23px;
|
|
410
|
-
color: #A1A1AA;
|
|
411
|
-
border-color: #E4E4E7;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
table.main-table td {
|
|
416
|
-
padding: .5rem;
|
|
417
|
-
vertical-align: top;
|
|
418
|
-
font-size: 14px;
|
|
419
|
-
font-weight: 400;
|
|
420
|
-
line-height: 20px;
|
|
421
|
-
letter-spacing: 0em;
|
|
422
|
-
text-align: left;
|
|
423
|
-
color: var(--dark);
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
table.main-table tr.subheader {
|
|
427
|
-
position: sticky;
|
|
428
|
-
top: 36px;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
table.main-table tr.subheader td {
|
|
432
|
-
background-color: #efeff5;
|
|
433
|
-
font-size: 12px;
|
|
434
|
-
font-weight: 600;
|
|
435
|
-
color: rgb(40, 40, 43)
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
table.main-table td:first-child {
|
|
439
|
-
font-weight: 600;
|
|
440
|
-
}
|
|
441
|
-
</style>
|
|
442
|
-
|
|
443
|
-
<body>
|
|
444
|
-
<header>
|
|
445
|
-
<div class="header-title">
|
|
446
|
-
<img
|
|
447
|
-
src="data:image/png;base64,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">
|
|
448
|
-
<div>
|
|
449
|
-
<h5>Detected Report</h5>
|
|
450
|
-
<h5 id="date"></h5>
|
|
451
|
-
</div>
|
|
452
|
-
</div>
|
|
453
|
-
<section class="project-name-container">
|
|
454
|
-
<h1 id='project-name'></h1>
|
|
455
|
-
</section>
|
|
456
|
-
<div class="divider mt-3 mb-5"></div>
|
|
457
|
-
|
|
458
|
-
<div class="scan-summary"></div>
|
|
459
|
-
|
|
460
|
-
<div class="divider mt-5"></div>
|
|
461
|
-
</header>
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
<nav>
|
|
465
|
-
<div class="nav nav-pills d-flex justify-content-center mb-5" id="nav-tab" role="tablist">
|
|
466
|
-
<button class="nav-link active" id="nav-licenses-tab" data-bs-toggle="tab" data-bs-target="#nav-licenses"
|
|
467
|
-
type="button" role="tab" aria-controls="nav-licenses" aria-selected="true">Licenses</button>
|
|
468
|
-
<button class="nav-link" id="nav-components-tab" data-bs-toggle="tab" data-bs-target="#nav-components"
|
|
469
|
-
type="button" role="tab" aria-controls="nav-components" aria-selected="false">Components</button>
|
|
470
|
-
<button class="nav-link" id="nav-vulnerabilities-tab" data-bs-toggle="tab" data-bs-target="#nav-vulnerabilities"
|
|
471
|
-
type="button" role="tab" aria-controls="nav-vulnerabilities" aria-selected="false">Vulnerabilities</button>
|
|
472
|
-
<button class="nav-link" id="nav-dependencies-tab" data-bs-toggle="tab" data-bs-target="#nav-dependencies"
|
|
473
|
-
type="button" role="tab" aria-controls="nav-dependencies" aria-selected="false">Dependencies</button>
|
|
474
|
-
<button class="nav-link" id="nav-copyrights-tab" data-bs-toggle="tab" data-bs-target="#nav-copyrights"
|
|
475
|
-
type="button" role="tab" aria-controls="nav-copyrights" aria-selected="false">Copyrights</button>
|
|
476
|
-
<button class="nav-link" id="nav-cryptography-tab" data-bs-toggle="tab" data-bs-target="#nav-cryptography"
|
|
477
|
-
type="button" role="tab" aria-controls="nav-cryptography" aria-selected="false">Cryptography</button>
|
|
478
|
-
<button class="nav-link" id="nav-quality-tab" data-bs-toggle="tab" data-bs-target="#nav-quality"
|
|
479
|
-
type="button" role="tab" aria-controls="nav-quality" aria-selected="false">Quality</button>
|
|
480
|
-
<button class="nav-link" id="nav-health-tab" data-bs-toggle="tab" data-bs-target="#nav-health"
|
|
481
|
-
type="button" role="tab" aria-controls="nav-health" aria-selected="false">Health</button>
|
|
482
|
-
<button class="nav-link" id="nav-summary-tab" data-bs-toggle="tab" data-bs-target="#nav-summary" type="button"
|
|
483
|
-
role="tab" aria-controls="nav-summary" aria-selected="false">Summary</button>
|
|
484
|
-
</div>
|
|
485
|
-
</nav>
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
<main class="main-container">
|
|
489
|
-
|
|
490
|
-
<div class="tab-content" id="nav-tabContent">
|
|
491
|
-
|
|
492
|
-
<!-- licenses -->
|
|
493
|
-
<div class="tab-pane fade show active" id="nav-licenses" role="tabpanel" aria-labelledby="nav-licenses-tab"
|
|
494
|
-
tabindex="0">
|
|
495
|
-
<section class="mt-5">
|
|
496
|
-
<div class="pie-chart-container">
|
|
497
|
-
<div>
|
|
498
|
-
<canvas id="myChart"></canvas>
|
|
499
|
-
</div>
|
|
500
|
-
</div>
|
|
501
|
-
</section>
|
|
502
|
-
<section class="mt-5">
|
|
503
|
-
<div class="detected-license-report-table-container">
|
|
504
|
-
<table class="table">
|
|
505
|
-
<tbody id="body-license-detail-table">
|
|
506
|
-
</tbody>
|
|
507
|
-
</table>
|
|
508
|
-
</div>
|
|
509
|
-
</section>
|
|
510
|
-
<section class="mt-5">
|
|
511
|
-
<h4>License obligations</h4>
|
|
512
|
-
<div class="incompatibilities-table-container">
|
|
513
|
-
<table class="table incompatible-license-table main-table">
|
|
514
|
-
<thead>
|
|
515
|
-
<tr>
|
|
516
|
-
<th>License</th>
|
|
517
|
-
<th>Copyleft</th>
|
|
518
|
-
<th>Incompatible Licenses</th>
|
|
519
|
-
</tr>
|
|
520
|
-
</thead>
|
|
521
|
-
<tbody id="incompatible-license">
|
|
522
|
-
</tbody>
|
|
523
|
-
</table>
|
|
524
|
-
</div>
|
|
525
|
-
</section>
|
|
526
|
-
</div>
|
|
527
|
-
|
|
528
|
-
<!-- components -->
|
|
529
|
-
<section class="tab-pane fade" id="nav-components" role="tabpanel" aria-labelledby="nav-components-tab"
|
|
530
|
-
tabindex="0">
|
|
531
|
-
<table id="table-components" class="table main-table">
|
|
532
|
-
<thead>
|
|
533
|
-
<tr>
|
|
534
|
-
<th>Component</th>
|
|
535
|
-
<th>PURL</th>
|
|
536
|
-
<th>Detected Versions</th>
|
|
537
|
-
<th>URL</th>
|
|
538
|
-
</tr>
|
|
539
|
-
</thead>
|
|
540
|
-
<tbody>
|
|
541
|
-
</tbody>
|
|
542
|
-
</table>
|
|
543
|
-
|
|
544
|
-
<template id="tpl-component-row">
|
|
545
|
-
<tr>
|
|
546
|
-
<td></td>
|
|
547
|
-
<td></td>
|
|
548
|
-
<td></td>
|
|
549
|
-
<td></td>
|
|
550
|
-
</tr>
|
|
551
|
-
</template>
|
|
552
|
-
</section>
|
|
553
|
-
|
|
554
|
-
<!-- vulnerabilities -->
|
|
555
|
-
<section class="tab-pane fade" id="nav-vulnerabilities" role="tabpanel" aria-labelledby="nav-vulnerabilities-tab"
|
|
556
|
-
tabindex="0">
|
|
557
|
-
<table id="table-vulnerabilities" class="table main-table">
|
|
558
|
-
<thead>
|
|
559
|
-
<tr>
|
|
560
|
-
<th>Component</th>
|
|
561
|
-
<th>Version</th>
|
|
562
|
-
<th>CVE</th>
|
|
563
|
-
<th>Severity</th>
|
|
564
|
-
<th>Published</th>
|
|
565
|
-
<th>Patched</th>
|
|
566
|
-
<th>Summary</th>
|
|
567
|
-
</tr>
|
|
568
|
-
</thead>
|
|
569
|
-
<tbody>
|
|
570
|
-
</tbody>
|
|
571
|
-
</table>
|
|
572
|
-
|
|
573
|
-
<template id="tpl-vulnerabilities-row">
|
|
574
|
-
<tr>
|
|
575
|
-
<td></td>
|
|
576
|
-
<td></td>
|
|
577
|
-
<td></td>
|
|
578
|
-
<td></td>
|
|
579
|
-
<td></td>
|
|
580
|
-
<td></td>
|
|
581
|
-
<td></td>
|
|
582
|
-
</tr>
|
|
583
|
-
</template>
|
|
584
|
-
</section>
|
|
585
|
-
|
|
586
|
-
<!-- dependencies -->
|
|
587
|
-
<section class="tab-pane fade" id="nav-dependencies" role="tabpanel" aria-labelledby="nav-dependencies-tab"
|
|
588
|
-
tabindex="0">
|
|
589
|
-
<table id="table-dependencies" class="table main-table">
|
|
590
|
-
<thead>
|
|
591
|
-
<tr>
|
|
592
|
-
<th>Dependency</th>
|
|
593
|
-
<th>PURL</th>
|
|
594
|
-
<th>Version</th>
|
|
595
|
-
<th>License</th>
|
|
596
|
-
</tr>
|
|
597
|
-
</thead>
|
|
598
|
-
<tbody>
|
|
599
|
-
</tbody>
|
|
600
|
-
</table>
|
|
601
|
-
|
|
602
|
-
<template id="tpl-dependencies-row">
|
|
603
|
-
<tr>
|
|
604
|
-
<td></td>
|
|
605
|
-
<td></td>
|
|
606
|
-
<td></td>
|
|
607
|
-
<td></td>
|
|
608
|
-
</tr>
|
|
609
|
-
</template>
|
|
610
|
-
</section>
|
|
611
|
-
|
|
612
|
-
<!-- copyright -->
|
|
613
|
-
<section class="tab-pane fade" id="nav-copyrights" role="tabpanel" aria-labelledby="nav-copyrights-tab"
|
|
614
|
-
tabindex="0">
|
|
615
|
-
<table id="table-copyrights" class="table main-table">
|
|
616
|
-
<thead>
|
|
617
|
-
<tr>
|
|
618
|
-
<th>Component</th>
|
|
619
|
-
<th>Version</th>
|
|
620
|
-
<th>Copyright</th>
|
|
621
|
-
</tr>
|
|
622
|
-
</thead>
|
|
623
|
-
<tbody>
|
|
624
|
-
</tbody>
|
|
625
|
-
</table>
|
|
626
|
-
|
|
627
|
-
<template id="tpl-copyrights-row">
|
|
628
|
-
<tr>
|
|
629
|
-
<td></td>
|
|
630
|
-
<td></td>
|
|
631
|
-
<td></td>
|
|
632
|
-
</tr>
|
|
633
|
-
</template>
|
|
634
|
-
</section>
|
|
635
|
-
|
|
636
|
-
<!-- cryptography -->
|
|
637
|
-
<section class="tab-pane fade" id="nav-cryptography" role="tabpanel" aria-labelledby="nav-cryptography-tab"
|
|
638
|
-
tabindex="0">
|
|
639
|
-
<table id="table-cryptography" class="table main-table">
|
|
640
|
-
<thead>
|
|
641
|
-
<tr>
|
|
642
|
-
<th>Component</th>
|
|
643
|
-
<th>Version</th>
|
|
644
|
-
<th>Cryptography</th>
|
|
645
|
-
</tr>
|
|
646
|
-
</thead>
|
|
647
|
-
<tbody>
|
|
648
|
-
</tbody>
|
|
649
|
-
</table>
|
|
650
|
-
|
|
651
|
-
<template id="tpl-cryptography-row">
|
|
652
|
-
<tr>
|
|
653
|
-
<td></td>
|
|
654
|
-
<td></td>
|
|
655
|
-
<td></td>
|
|
656
|
-
</tr>
|
|
657
|
-
</template>
|
|
658
|
-
</section>
|
|
659
|
-
|
|
660
|
-
<!-- quality -->
|
|
661
|
-
<section class="tab-pane fade" id="nav-quality" role="tabpanel" aria-labelledby="nav-quality-tab"
|
|
662
|
-
tabindex="0">
|
|
663
|
-
<table id="table-quality" class="table main-table">
|
|
664
|
-
<thead>
|
|
665
|
-
<tr>
|
|
666
|
-
<th>Component</th>
|
|
667
|
-
<th>Version</th>
|
|
668
|
-
<th>Quality</th>
|
|
669
|
-
</tr>
|
|
670
|
-
</thead>
|
|
671
|
-
<tbody>
|
|
672
|
-
</tbody>
|
|
673
|
-
</table>
|
|
674
|
-
|
|
675
|
-
<template id="tpl-quality-row">
|
|
676
|
-
<tr>
|
|
677
|
-
<td></td>
|
|
678
|
-
<td></td>
|
|
679
|
-
<td></td>
|
|
680
|
-
</tr>
|
|
681
|
-
</template>
|
|
682
|
-
</section>
|
|
683
|
-
|
|
684
|
-
<!-- health -->
|
|
685
|
-
<section class="tab-pane fade" id="nav-health" role="tabpanel" aria-labelledby="nav-health-tab"
|
|
686
|
-
tabindex="0">
|
|
687
|
-
<table id="table-health" class="table main-table">
|
|
688
|
-
<thead>
|
|
689
|
-
<tr>
|
|
690
|
-
<th>Component</th>
|
|
691
|
-
<th>PURL</th>
|
|
692
|
-
<th>Creation Date</th>
|
|
693
|
-
<th>Issues</th>
|
|
694
|
-
<th>Last Push</th>
|
|
695
|
-
<th>Last Update</th>
|
|
696
|
-
<th>Watchers</th>
|
|
697
|
-
<th>Country</th>
|
|
698
|
-
<th>Forks</th>
|
|
699
|
-
</tr>
|
|
700
|
-
</thead>
|
|
701
|
-
<tbody>
|
|
702
|
-
</tbody>
|
|
703
|
-
</table>
|
|
704
|
-
|
|
705
|
-
<template id="tpl-health-row">
|
|
706
|
-
<tr>
|
|
707
|
-
<td></td>
|
|
708
|
-
<td></td>
|
|
709
|
-
<td></td>
|
|
710
|
-
<td></td>
|
|
711
|
-
<td></td>
|
|
712
|
-
<td></td>
|
|
713
|
-
<td></td>
|
|
714
|
-
<td></td>
|
|
715
|
-
<td></td>
|
|
716
|
-
</tr>
|
|
717
|
-
</template>
|
|
718
|
-
</section>
|
|
719
|
-
|
|
720
|
-
<!-- summary -->
|
|
721
|
-
<div class="tab-pane fade" id="nav-summary" role="tabpanel" aria-labelledby="nav-summary-tab" tabindex="0">
|
|
722
|
-
SUMMARY
|
|
723
|
-
</div>
|
|
724
|
-
</div>
|
|
725
|
-
</main>
|
|
726
|
-
|
|
727
|
-
<div class="divider mt-5"></div>
|
|
728
|
-
|
|
729
|
-
<footer class="mb-2 text-center">
|
|
730
|
-
<p class="text-center">Reported generated by <a href="https://github.com/scanoss/scanoss.js"
|
|
731
|
-
target="_blank">scanoss.js</a></p>
|
|
732
|
-
<p class="text-center"><a href="https://www.scanoss.com" target="_blank">www.scanoss.com</a></p>
|
|
733
|
-
</footer>
|
|
734
|
-
|
|
735
|
-
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js"
|
|
736
|
-
integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8"
|
|
737
|
-
crossorigin="anonymous"></script>
|
|
738
|
-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
739
|
-
<script>
|
|
740
|
-
addEventListener('DOMContentLoaded', (event) => {
|
|
741
|
-
const entryData = '#DATA';
|
|
742
|
-
const data = JSON.parse(entryData);
|
|
743
|
-
let pieChartDataEntry = {
|
|
744
|
-
labels: [],
|
|
745
|
-
components: []
|
|
746
|
-
};
|
|
747
|
-
|
|
748
|
-
data.licenses.forEach((l) => {
|
|
749
|
-
pieChartDataEntry.labels.push(l.label);
|
|
750
|
-
pieChartDataEntry.components.push(l.value);
|
|
751
|
-
});
|
|
752
|
-
|
|
753
|
-
const color = [
|
|
754
|
-
'#E8B34B',
|
|
755
|
-
'#E22C2C',
|
|
756
|
-
'#5754D0',
|
|
757
|
-
'#9F69C0',
|
|
758
|
-
'#FE7F10',
|
|
759
|
-
'#E56399',
|
|
760
|
-
'#E637BF',
|
|
761
|
-
'#474647',
|
|
762
|
-
'#153243',
|
|
763
|
-
'#2DE1C2',
|
|
764
|
-
'#F05365',
|
|
765
|
-
'#A2D729',
|
|
766
|
-
'#3C91E6',
|
|
767
|
-
'#FA824C',
|
|
768
|
-
'#C94277',
|
|
769
|
-
'#E56B6F',
|
|
770
|
-
'#F71735',
|
|
771
|
-
'#011627',
|
|
772
|
-
'#724E91',
|
|
773
|
-
'#7D451B',
|
|
774
|
-
'#9BE564',
|
|
775
|
-
];
|
|
776
|
-
|
|
777
|
-
function init() {
|
|
778
|
-
|
|
779
|
-
setupNavigation();
|
|
780
|
-
|
|
781
|
-
renderHeader();
|
|
782
|
-
renderLicensesTable();
|
|
783
|
-
renderComponentTable();
|
|
784
|
-
renderDependenciesTable();
|
|
785
|
-
renderVulnerabilitiesTable();
|
|
786
|
-
renderCopyrightTable();
|
|
787
|
-
renderCryptographyTable();
|
|
788
|
-
renderQualityTable();
|
|
789
|
-
renderHealthTable();
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
init();
|
|
793
|
-
|
|
794
|
-
function setupNavigation(componentList) {
|
|
795
|
-
const showTab = (id) => document.querySelector('.nav-link#' + id).classList.add('visible');
|
|
796
|
-
|
|
797
|
-
const existVersionKey = (key, componentList) => {
|
|
798
|
-
for (const component of componentList) {
|
|
799
|
-
for (const version of component.versions) {
|
|
800
|
-
if (version && version[key]) return true;
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
return false;
|
|
804
|
-
};
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
const existComponentKey = (key, componentList) => {
|
|
808
|
-
for (const component of componentList) {
|
|
809
|
-
if (component[key]) return true;
|
|
810
|
-
}
|
|
811
|
-
return false;
|
|
812
|
-
};
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
if (data.licenses) showTab('nav-licenses-tab');
|
|
816
|
-
if (data.component) showTab('nav-components-tab');
|
|
817
|
-
if (data.dependencies) showTab('nav-dependencies-tab');
|
|
818
|
-
if (data.vulnerabilities) showTab('nav-vulnerabilities-tab');
|
|
819
|
-
if (existVersionKey('copyrights', data.component)) showTab('nav-copyrights-tab');
|
|
820
|
-
if (existVersionKey('cryptography', data.component)) showTab('nav-cryptography-tab');
|
|
821
|
-
if (existVersionKey('quality', data.component)) showTab('nav-quality-tab');
|
|
822
|
-
if (existComponentKey('health', data.component)) showTab('nav-health-tab');
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
function renderHeader() {
|
|
826
|
-
|
|
827
|
-
// date
|
|
828
|
-
const d = document.querySelector('#date');
|
|
829
|
-
d.innerHTML += new Date(data.summary.timestamp).toLocaleDateString();
|
|
830
|
-
|
|
831
|
-
// project name
|
|
832
|
-
const p = document.querySelector('#project-name');
|
|
833
|
-
p.innerHTML += data.summary.projectName ? data.summary.projectName : '-';
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
// summary
|
|
837
|
-
const s = document.querySelector('.scan-summary');
|
|
838
|
-
s.innerHTML += `
|
|
839
|
-
<div class="info big">
|
|
840
|
-
<div class="value primary">${data.summary.totalFiles}</div>
|
|
841
|
-
<div class="label">Files Scanned</div>
|
|
842
|
-
</div>
|
|
843
|
-
<div class="info big">
|
|
844
|
-
<div class="value">${data.summary.matchedFiles}</div>
|
|
845
|
-
<div class="label">Matched</div>
|
|
846
|
-
</div>
|
|
847
|
-
<div class="info big">
|
|
848
|
-
<div class="value">${data.summary.noMatchFiles}</div>
|
|
849
|
-
<div class="label">No Matches</div>
|
|
850
|
-
</div>
|
|
851
|
-
`;
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
function renderLicensesTable() {
|
|
855
|
-
|
|
856
|
-
function dropDown(id) {
|
|
857
|
-
const nodes = document.getElementsByClassName(id);
|
|
858
|
-
for (let i = 0; i < nodes.length; i += 1) {
|
|
859
|
-
if (nodes[i].classList.contains('hide')) {
|
|
860
|
-
nodes[i].classList.remove('hide');
|
|
861
|
-
nodes[i].classList.add('show');
|
|
862
|
-
} else {
|
|
863
|
-
nodes[i].classList.remove('show');
|
|
864
|
-
nodes[i].classList.add('hide');
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
function addButtonListener() {
|
|
870
|
-
const btn = document.querySelectorAll('.button-solid');
|
|
871
|
-
btn.forEach((button) => {
|
|
872
|
-
button.addEventListener('click', (event) => {
|
|
873
|
-
dropDown(event.target.id);
|
|
874
|
-
});
|
|
875
|
-
});
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
function pieChart() {
|
|
879
|
-
const data = {
|
|
880
|
-
labels: pieChartDataEntry.labels,
|
|
881
|
-
datasets: [
|
|
882
|
-
{
|
|
883
|
-
backgroundColor: color,
|
|
884
|
-
borderColor: 'rgb(255, 255, 255)',
|
|
885
|
-
data: pieChartDataEntry.components,
|
|
886
|
-
},
|
|
887
|
-
],
|
|
888
|
-
};
|
|
889
|
-
const config = {
|
|
890
|
-
type: 'doughnut',
|
|
891
|
-
data,
|
|
892
|
-
options: {
|
|
893
|
-
responsive: true,
|
|
894
|
-
maintainAspectRatio: false,
|
|
895
|
-
elements: {
|
|
896
|
-
arc: {
|
|
897
|
-
borderWidth: 1,
|
|
898
|
-
},
|
|
899
|
-
},
|
|
900
|
-
plugins: {
|
|
901
|
-
legend: {
|
|
902
|
-
display: true,
|
|
903
|
-
position: 'right',
|
|
904
|
-
},
|
|
905
|
-
},
|
|
906
|
-
},
|
|
907
|
-
};
|
|
908
|
-
const myChart = new Chart(document.getElementById('myChart'), config);
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
function licenseDetail() {
|
|
912
|
-
const body = document.querySelector('#body-license-detail-table');
|
|
913
|
-
data.licenses.forEach((l, index) => {
|
|
914
|
-
body.innerHTML += `
|
|
915
|
-
<tr>
|
|
916
|
-
<td>
|
|
917
|
-
<div class="license-info-detail">
|
|
918
|
-
<div class="license-ref">
|
|
919
|
-
<div class="license-info-container">
|
|
920
|
-
<div class="info-container">
|
|
921
|
-
<div class="info">
|
|
922
|
-
<div class="label">
|
|
923
|
-
License
|
|
924
|
-
</div>
|
|
925
|
-
<div class="value">
|
|
926
|
-
${l.label}
|
|
927
|
-
</div>
|
|
928
|
-
</div>
|
|
929
|
-
</div>
|
|
930
|
-
</div>
|
|
931
|
-
</div>
|
|
932
|
-
<div class="license-component-button-container">
|
|
933
|
-
<button class="button-solid" id="${l.label}"> ${l.value} component found ▼</button>
|
|
934
|
-
</div>
|
|
935
|
-
</div>
|
|
936
|
-
</td>
|
|
937
|
-
</tr>`;
|
|
938
|
-
|
|
939
|
-
body.innerHTML += `<tr class="${l.label} hide">
|
|
940
|
-
<td colspan="2">
|
|
941
|
-
<table>
|
|
942
|
-
${l.components.map((c, index) => {
|
|
943
|
-
return `<tr class="row-license-info-container">
|
|
944
|
-
<td class="cell-info-container index">
|
|
945
|
-
<div class="row-info-container">
|
|
946
|
-
<div class="info">
|
|
947
|
-
<div class="value small">
|
|
948
|
-
${index + 1}
|
|
949
|
-
</div>
|
|
950
|
-
</div>
|
|
951
|
-
</div>
|
|
952
|
-
</td>
|
|
953
|
-
<td class="cell-info-container">
|
|
954
|
-
<div class="row-info-container">
|
|
955
|
-
<div class="info">
|
|
956
|
-
<div class="label">
|
|
957
|
-
Component
|
|
958
|
-
</div>
|
|
959
|
-
<div class="value small">
|
|
960
|
-
${c.name}
|
|
961
|
-
</div>
|
|
962
|
-
</div>
|
|
963
|
-
</div>
|
|
964
|
-
</td>
|
|
965
|
-
<td class="cell-info-container">
|
|
966
|
-
<div class="row-info-container">
|
|
967
|
-
<div class="info">
|
|
968
|
-
<div class="label">
|
|
969
|
-
Purl
|
|
970
|
-
</div>
|
|
971
|
-
<div class="value small">
|
|
972
|
-
${decodeURIComponent(c.purl)}
|
|
973
|
-
</div>
|
|
974
|
-
</div>
|
|
975
|
-
</div>
|
|
976
|
-
</td>
|
|
977
|
-
<td class="cell-info-container">
|
|
978
|
-
<div class="row-info-container">
|
|
979
|
-
<div class="info">
|
|
980
|
-
<div class="label">
|
|
981
|
-
${c.versions.length > 1 ? 'Versions' : 'Version'}
|
|
982
|
-
</div>
|
|
983
|
-
<div class="value small">
|
|
984
|
-
${c.versions.toString()}
|
|
985
|
-
</div>
|
|
986
|
-
</div>
|
|
987
|
-
</div>
|
|
988
|
-
</td>
|
|
989
|
-
</tr>`
|
|
990
|
-
}).join(' ')}
|
|
991
|
-
</table>
|
|
992
|
-
</td>
|
|
993
|
-
</tr>`;
|
|
994
|
-
});
|
|
995
|
-
|
|
996
|
-
addButtonListener();
|
|
997
|
-
}
|
|
998
|
-
|
|
999
|
-
function incompatibleLicenses() {
|
|
1000
|
-
const licenseMapper = new Set();
|
|
1001
|
-
data.licenses.forEach((l) => licenseMapper.add(l.label));
|
|
1002
|
-
const body = document.querySelector('#incompatible-license');
|
|
1003
|
-
data.licenses.forEach((l) => {
|
|
1004
|
-
body.innerHTML += `
|
|
1005
|
-
<tr>
|
|
1006
|
-
<td>${l.label}</td>
|
|
1007
|
-
<td>${l.copyleft === true ? '✔' : '✖'}</td>
|
|
1008
|
-
<td><div class="incompatible-license-container">${l.incompatibleWith.map((i) => {
|
|
1009
|
-
return `<div class="license-block ${licenseMapper.has(i) === true ? 'incompatible-ref' : ''}">
|
|
1010
|
-
<p>${i}</p>
|
|
1011
|
-
</div>`;
|
|
1012
|
-
}).join(' ')}</div></td>
|
|
1013
|
-
</tr>`;
|
|
1014
|
-
});
|
|
1015
|
-
}
|
|
1016
|
-
|
|
1017
|
-
pieChart();
|
|
1018
|
-
licenseDetail();
|
|
1019
|
-
incompatibleLicenses()
|
|
1020
|
-
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
|
-
function renderComponentTable() {
|
|
1024
|
-
const template = document.querySelector("#tpl-component-row");
|
|
1025
|
-
const table = document.querySelector("#table-components tbody");
|
|
1026
|
-
|
|
1027
|
-
const { component: componentData } = data;
|
|
1028
|
-
|
|
1029
|
-
if (!componentData) return false;
|
|
1030
|
-
|
|
1031
|
-
for (const component of componentData) {
|
|
1032
|
-
const clon = template.content.cloneNode(true);
|
|
1033
|
-
clon.querySelector('td:nth-child(1)').innerHTML = component.name;
|
|
1034
|
-
clon.querySelector('td:nth-child(2)').innerHTML = decodeURIComponent(component.key);
|
|
1035
|
-
clon.querySelector('td:nth-child(3)').innerHTML = component.versions?.map(item => item.version).join(', ');
|
|
1036
|
-
clon.querySelector('td:nth-child(4)').innerHTML = component.url ? `<a href="${component.url}" target="_blank">${decodeURIComponent(component.url)}</a>` : '-';
|
|
1037
|
-
table.appendChild(clon);
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
|
-
function renderDependenciesTable() {
|
|
1042
|
-
const template = document.querySelector("#tpl-dependencies-row");
|
|
1043
|
-
const table = document.querySelector("#table-dependencies tbody");
|
|
1044
|
-
|
|
1045
|
-
const { dependencies: dependencyData } = data;
|
|
1046
|
-
|
|
1047
|
-
if (!dependencyData) return false;
|
|
1048
|
-
|
|
1049
|
-
for (const depData of dependencyData) {
|
|
1050
|
-
table.innerHTML += `<tr class="subheader"> <td colspan='4'> ${depData.dependencies?.length} ${depData.dependencies?.length == 1 ? 'dependency' : 'dependencies'} found in <span class="primary">${depData.file}</span> </td> </tr>`;
|
|
1051
|
-
for (const dependency of depData.dependencies) {
|
|
1052
|
-
const clon = template.content.cloneNode(true);
|
|
1053
|
-
clon.querySelector('td:nth-child(1)').innerHTML = dependency.component || '-';
|
|
1054
|
-
clon.querySelector('td:nth-child(2)').innerHTML = decodeURIComponent(dependency.purl);
|
|
1055
|
-
clon.querySelector('td:nth-child(3)').innerHTML = dependency.version;
|
|
1056
|
-
clon.querySelector('td:nth-child(4)').innerHTML = dependency.licenses?.map(item => item.name).join(', ');
|
|
1057
|
-
table.appendChild(clon);
|
|
1058
|
-
}
|
|
1059
|
-
}
|
|
1060
|
-
};
|
|
1061
|
-
|
|
1062
|
-
function renderVulnerabilitiesTable() {
|
|
1063
|
-
const template = document.querySelector("#tpl-vulnerabilities-row");
|
|
1064
|
-
const table = document.querySelector("#table-vulnerabilities tbody");
|
|
1065
|
-
|
|
1066
|
-
const { vulnerabilities: vulnerabilityData } = data;
|
|
1067
|
-
|
|
1068
|
-
if (!vulnerabilityData) return false;
|
|
1069
|
-
|
|
1070
|
-
for (const purlVulData of vulnerabilityData) {
|
|
1071
|
-
for (const vulnerabilty of purlVulData.vulnerability) {
|
|
1072
|
-
const clon = template.content.cloneNode(true);
|
|
1073
|
-
clon.querySelector('td:nth-child(1)').innerHTML = decodeURIComponent(purlVulData.purl);
|
|
1074
|
-
clon.querySelector('td:nth-child(2)').innerHTML = "-";
|
|
1075
|
-
clon.querySelector('td:nth-child(3)').innerHTML = vulnerabilty.cve;
|
|
1076
|
-
clon.querySelector('td:nth-child(4)').innerHTML = vulnerabilty.severity;
|
|
1077
|
-
clon.querySelector('td:nth-child(5)').innerHTML = vulnerabilty.published;
|
|
1078
|
-
clon.querySelector('td:nth-child(6)').innerHTML = vulnerabilty.modified;
|
|
1079
|
-
clon.querySelector('td:nth-child(7)').innerHTML = vulnerabilty.summary;
|
|
1080
|
-
table.appendChild(clon);
|
|
1081
|
-
}
|
|
1082
|
-
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
function renderCopyrightTable() {
|
|
1088
|
-
const template = document.querySelector("#tpl-copyrights-row");
|
|
1089
|
-
const table = document.querySelector("#table-copyrights tbody");
|
|
1090
|
-
|
|
1091
|
-
const { component: componentData } = data;
|
|
1092
|
-
|
|
1093
|
-
if (!componentData) return false;
|
|
1094
|
-
|
|
1095
|
-
for (const compData of componentData) {
|
|
1096
|
-
for (const version of compData.versions) {
|
|
1097
|
-
if (!version.copyrights) continue
|
|
1098
|
-
const clon = template.content.cloneNode(true);
|
|
1099
|
-
clon.querySelector('td:nth-child(1)').innerHTML = compData.name;
|
|
1100
|
-
clon.querySelector('td:nth-child(2)').innerHTML = version.version;
|
|
1101
|
-
clon.querySelector('td:nth-child(3)').innerHTML = version.copyrights?.map(item => item.name).join(' - ');
|
|
1102
|
-
|
|
1103
|
-
table.appendChild(clon);
|
|
1104
|
-
}
|
|
1105
|
-
}
|
|
1106
|
-
}
|
|
1107
|
-
|
|
1108
|
-
function renderCryptographyTable() {
|
|
1109
|
-
const template = document.querySelector("#tpl-cryptography-row");
|
|
1110
|
-
const table = document.querySelector("#table-cryptography tbody");
|
|
1111
|
-
|
|
1112
|
-
const { component: componentData } = data;
|
|
1113
|
-
|
|
1114
|
-
if (!componentData) return false;
|
|
1115
|
-
|
|
1116
|
-
for (const compData of componentData) {
|
|
1117
|
-
for (const version of compData.versions) {
|
|
1118
|
-
if (!version.cryptography) continue
|
|
1119
|
-
const clon = template.content.cloneNode(true);
|
|
1120
|
-
clon.querySelector('td:nth-child(1)').innerHTML = compData.name;
|
|
1121
|
-
clon.querySelector('td:nth-child(2)').innerHTML = version.version;
|
|
1122
|
-
clon.querySelector('td:nth-child(3)').innerHTML = version.cryptography.map(e => `${e.algorithm} (${e.strength})`).join('');
|
|
1123
|
-
|
|
1124
|
-
table.appendChild(clon);
|
|
1125
|
-
}
|
|
1126
|
-
}
|
|
1127
|
-
}
|
|
1128
|
-
|
|
1129
|
-
function renderQualityTable() {
|
|
1130
|
-
const template = document.querySelector("#tpl-quality-row");
|
|
1131
|
-
const table = document.querySelector("#table-quality tbody");
|
|
1132
|
-
|
|
1133
|
-
const { component: componentData } = data;
|
|
1134
|
-
|
|
1135
|
-
if (!componentData) return false;
|
|
1136
|
-
|
|
1137
|
-
for (const compData of componentData) {
|
|
1138
|
-
for (const version of compData.versions) {
|
|
1139
|
-
if (!version.quality) continue
|
|
1140
|
-
const clon = template.content.cloneNode(true);
|
|
1141
|
-
clon.querySelector('td:nth-child(1)').innerHTML = compData.name;
|
|
1142
|
-
clon.querySelector('td:nth-child(2)').innerHTML = version.version;
|
|
1143
|
-
clon.querySelector('td:nth-child(3)').innerHTML = version.quality.scoreAvg + "/5";
|
|
1144
|
-
|
|
1145
|
-
table.appendChild(clon);
|
|
1146
|
-
}
|
|
1147
|
-
}
|
|
1148
|
-
}
|
|
1149
|
-
|
|
1150
|
-
function renderHealthTable() {
|
|
1151
|
-
const template = document.querySelector("#tpl-health-row");
|
|
1152
|
-
const table = document.querySelector("#table-health tbody");
|
|
1153
|
-
|
|
1154
|
-
const { component: componentData } = data;
|
|
1155
|
-
|
|
1156
|
-
if (!componentData) return false;
|
|
1157
|
-
|
|
1158
|
-
for (const compData of componentData) {
|
|
1159
|
-
if (!compData.health) continue
|
|
1160
|
-
const clon = template.content.cloneNode(true);
|
|
1161
|
-
clon.querySelector('td:nth-child(1)').innerHTML = compData.name;
|
|
1162
|
-
clon.querySelector('td:nth-child(2)').innerHTML = compData.key;
|
|
1163
|
-
clon.querySelector('td:nth-child(3)').innerHTML = compData.health.creation_date || '-';
|
|
1164
|
-
clon.querySelector('td:nth-child(4)').innerHTML = compData.health.issues || '-';
|
|
1165
|
-
clon.querySelector('td:nth-child(5)').innerHTML = compData.health.last_push || '-';
|
|
1166
|
-
clon.querySelector('td:nth-child(6)').innerHTML = compData.health.last_update || '-';
|
|
1167
|
-
clon.querySelector('td:nth-child(7)').innerHTML = compData.health.watchers || '-';
|
|
1168
|
-
clon.querySelector('td:nth-child(8)').innerHTML = compData.health.country || '-';
|
|
1169
|
-
clon.querySelector('td:nth-child(9)').innerHTML = compData.health.forks || '-';
|
|
1170
|
-
|
|
1171
|
-
table.appendChild(clon);
|
|
1172
|
-
}
|
|
1173
|
-
}
|
|
1174
|
-
});
|
|
1175
|
-
</script>
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
</body>
|
|
1180
|
-
|
|
1181
|
-
</html>
|