scanoss 0.7.4 → 0.7.8
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/.idea/workspace.xml +22 -20
- package/build/main/cli/bin/cli-bin.d.ts +2 -1
- package/build/main/cli/bin/cli-bin.js +10 -2
- package/build/main/package.json +120 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
- package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
- package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
- package/build/main/sdk/scanner/Fingerprint.d.ts +2 -2
- package/build/main/sdk/scanner/Fingerprint.js +26 -8
- package/build/main/sdk/scanner/Scanner.js +4 -1
- package/build/main/sdk/scanner/ScannerCfg.d.ts +1 -0
- package/build/main/sdk/scanner/ScannerCfg.js +6 -3
- package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
- package/build/main/src/cli/bin/cli-bin.d.ts +2 -0
- package/build/main/src/cli/bin/cli-bin.js +68 -0
- package/build/main/src/cli/commands/dep.d.ts +1 -0
- package/build/main/src/cli/commands/dep.js +38 -0
- package/build/main/src/cli/commands/helpers.d.ts +2 -0
- package/build/main/src/cli/commands/helpers.js +25 -0
- package/build/main/src/cli/commands/scan.d.ts +1 -0
- package/build/main/src/cli/commands/scan.js +138 -0
- package/build/main/src/cli/commands/wfp.d.ts +1 -0
- package/build/main/src/cli/commands/wfp.js +54 -0
- package/build/main/src/index.d.ts +14 -0
- package/build/main/src/index.js +30 -0
- package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
- package/build/main/src/sdk/DataLayer/DataLayerTypes.js +5 -0
- package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
- package/build/main/src/sdk/DataLayer/DataProviderManager.js +24 -0
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +164 -0
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +37 -0
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +148 -0
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +33 -0
- package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
- package/build/main/src/sdk/Decompress/DecompressionManager.js +73 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +22 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +24 -0
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +18 -0
- package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
- package/build/main/src/sdk/Dependencies/DependencyScanner.js +96 -0
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +10 -0
- package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
- package/build/main/src/sdk/Dependencies/DependencyTypes.js +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +102 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +95 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +97 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +183 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +187 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +58 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +64 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +132 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +19 -0
- package/build/main/src/sdk/Report/Report.d.ts +8 -0
- package/build/main/src/sdk/Report/Report.js +26 -0
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +145 -0
- package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
- package/build/main/src/sdk/filters/DefaultFilterForScanning.js +194 -0
- package/build/main/src/sdk/filters/filtering.d.ts +32 -0
- package/build/main/src/sdk/filters/filtering.js +228 -0
- package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
- package/build/main/src/sdk/grpc/GrpcDependencyService.js +86 -0
- 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 +2 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +43 -0
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +160 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +33 -0
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +32 -0
- package/build/main/src/sdk/scanner/Fingerprint.d.ts +16 -0
- package/build/main/src/sdk/scanner/Fingerprint.js +78 -0
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +27 -0
- package/build/main/src/sdk/scanner/Scanner.d.ts +46 -0
- package/build/main/src/sdk/scanner/Scanner.js +283 -0
- package/build/main/src/sdk/scanner/ScannerCfg.d.ts +16 -0
- package/build/main/src/sdk/scanner/ScannerCfg.js +30 -0
- package/build/main/src/sdk/scanner/ScannerTypes.d.ts +121 -0
- package/build/main/src/sdk/scanner/ScannerTypes.js +48 -0
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +31 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +492 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +68 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +139 -0
- package/build/main/src/sdk/tree/File.d.ts +7 -0
- package/build/main/src/sdk/tree/File.js +24 -0
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +21 -0
- package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/DependencyFilter.js +17 -0
- package/build/main/src/sdk/tree/Filters/Filter.d.ts +4 -0
- package/build/main/src/sdk/tree/Filters/Filter.js +6 -0
- package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/ScanFilter.js +17 -0
- package/build/main/src/sdk/tree/Folder.d.ts +12 -0
- package/build/main/src/sdk/tree/Folder.js +58 -0
- package/build/main/src/sdk/tree/Node.d.ts +17 -0
- package/build/main/src/sdk/tree/Node.js +25 -0
- package/build/main/src/sdk/tree/Tree.d.ts +18 -0
- package/build/main/src/sdk/tree/Tree.js +70 -0
- package/build/main/tsconfig.tsbuildinfo +126 -123
- package/build/module/cli/bin/cli-bin.d.ts +2 -1
- package/build/module/cli/bin/cli-bin.js +6 -2
- package/build/module/package.json +120 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
- package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
- package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
- package/build/module/sdk/scanner/Fingerprint.d.ts +2 -2
- package/build/module/sdk/scanner/Fingerprint.js +6 -6
- package/build/module/sdk/scanner/Scanner.js +4 -1
- package/build/module/sdk/scanner/ScannerCfg.d.ts +1 -0
- package/build/module/sdk/scanner/ScannerCfg.js +6 -3
- package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
- package/build/module/src/cli/bin/cli-bin.d.ts +2 -0
- package/build/module/src/cli/bin/cli-bin.js +67 -0
- package/build/module/src/cli/commands/dep.d.ts +1 -0
- package/build/module/src/cli/commands/dep.js +32 -0
- package/build/module/src/cli/commands/helpers.d.ts +2 -0
- package/build/module/src/cli/commands/helpers.js +19 -0
- package/build/module/src/cli/commands/scan.d.ts +1 -0
- package/build/module/src/cli/commands/scan.js +135 -0
- package/build/module/src/cli/commands/wfp.d.ts +1 -0
- package/build/module/src/cli/commands/wfp.js +48 -0
- package/build/module/src/index.d.ts +14 -0
- package/build/module/src/index.js +19 -0
- package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
- package/build/module/src/sdk/DataLayer/DataLayerTypes.js +5 -0
- package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
- package/build/module/src/sdk/DataLayer/DataProviderManager.js +21 -0
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +159 -0
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +34 -0
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +145 -0
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +30 -0
- package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
- package/build/module/src/sdk/Decompress/DecompressionManager.js +67 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +16 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +18 -0
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +15 -0
- package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
- package/build/module/src/sdk/Dependencies/DependencyScanner.js +93 -0
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +7 -0
- package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
- package/build/module/src/sdk/Dependencies/DependencyTypes.js +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +96 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +87 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +88 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +180 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +175 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +49 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +57 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +125 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +15 -0
- package/build/module/src/sdk/Report/Report.d.ts +8 -0
- package/build/module/src/sdk/Report/Report.js +20 -0
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +143 -0
- package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
- package/build/module/src/sdk/filters/DefaultFilterForScanning.js +192 -0
- package/build/module/src/sdk/filters/filtering.d.ts +32 -0
- package/build/module/src/sdk/filters/filtering.js +203 -0
- package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
- package/build/module/src/sdk/grpc/GrpcDependencyService.js +64 -0
- 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 +2 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +37 -0
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +135 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +30 -0
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +26 -0
- package/build/module/src/sdk/scanner/Fingerprint.d.ts +16 -0
- package/build/module/src/sdk/scanner/Fingerprint.js +54 -0
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +24 -0
- package/build/module/src/sdk/scanner/Scanner.d.ts +46 -0
- package/build/module/src/sdk/scanner/Scanner.js +275 -0
- package/build/module/src/sdk/scanner/ScannerCfg.d.ts +16 -0
- package/build/module/src/sdk/scanner/ScannerCfg.js +27 -0
- package/build/module/src/sdk/scanner/ScannerTypes.d.ts +121 -0
- package/build/module/src/sdk/scanner/ScannerTypes.js +46 -0
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +28 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +486 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +65 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +132 -0
- package/build/module/src/sdk/tree/File.d.ts +7 -0
- package/build/module/src/sdk/tree/File.js +19 -0
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +18 -0
- package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/DependencyFilter.js +14 -0
- package/build/module/src/sdk/tree/Filters/Filter.d.ts +4 -0
- package/build/module/src/sdk/tree/Filters/Filter.js +3 -0
- package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/ScanFilter.js +14 -0
- package/build/module/src/sdk/tree/Folder.d.ts +12 -0
- package/build/module/src/sdk/tree/Folder.js +53 -0
- package/build/module/src/sdk/tree/Node.d.ts +17 -0
- package/build/module/src/sdk/tree/Node.js +22 -0
- package/build/module/src/sdk/tree/Tree.d.ts +18 -0
- package/build/module/src/sdk/tree/Tree.js +64 -0
- package/build/module/tsconfig.module.tsbuildinfo +126 -123
- package/package-lock.json +17117 -0
- package/package.json +1 -1
- package/src/cli/bin/cli-bin.ts +7 -4
- package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +10 -9
- package/src/sdk/scanner/Dispatcher/Dispatcher.ts +5 -2
- package/src/sdk/scanner/Fingerprint.ts +6 -8
- package/src/sdk/scanner/Scanner.ts +4 -0
- package/src/sdk/scanner/ScannerCfg.ts +8 -2
- package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +7 -2
- package/yarn.lock +4977 -4864
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.WfpSplitter = void 0;
|
|
6
|
+
const WfpProvider_1 = require("../WfpProvider");
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const ScannerCfg_1 = require("../../ScannerCfg");
|
|
9
|
+
//Regex find paths from wfp string
|
|
10
|
+
class WfpSplitter extends WfpProvider_1.WfpProvider {
|
|
11
|
+
constructor(scannerCfg = new ScannerCfg_1.ScannerCfg()) {
|
|
12
|
+
super();
|
|
13
|
+
this.scannerCfg = scannerCfg;
|
|
14
|
+
}
|
|
15
|
+
start(params) {
|
|
16
|
+
this.sendLog('[ SCANNER ]: WFP Splitter starting...');
|
|
17
|
+
this.init();
|
|
18
|
+
this.pendingFiles = true;
|
|
19
|
+
this.chunkDataRead = '';
|
|
20
|
+
this.fingerprints = [];
|
|
21
|
+
this.continue = true;
|
|
22
|
+
this.fingerprintIndex = 0;
|
|
23
|
+
this.ignoreFiles = new Set(params === null || params === void 0 ? void 0 : params.fileList);
|
|
24
|
+
const wfpPath = params.wfpPath;
|
|
25
|
+
if (!wfpPath)
|
|
26
|
+
this.sendError('WFP path is not defined');
|
|
27
|
+
this.wfpStream = fs_1.default.createReadStream(wfpPath, { encoding: 'utf8' });
|
|
28
|
+
this.setStreamListeners();
|
|
29
|
+
return this.finishPromise;
|
|
30
|
+
}
|
|
31
|
+
stop() {
|
|
32
|
+
this.continue = false;
|
|
33
|
+
}
|
|
34
|
+
pause() {
|
|
35
|
+
this.sendLog('[ SCANNER ]: WFP Splitter paused...');
|
|
36
|
+
this.continue = false;
|
|
37
|
+
}
|
|
38
|
+
resume() {
|
|
39
|
+
this.sendLog('[ SCANNER ]: WFP Splitter resumed...');
|
|
40
|
+
this.continue = true;
|
|
41
|
+
this.sendFingerprints();
|
|
42
|
+
this.streamBufferFlush();
|
|
43
|
+
}
|
|
44
|
+
sendFingerprints() {
|
|
45
|
+
//The timer allows the main thread not to be blocked while sending wfps
|
|
46
|
+
if (this.timer === undefined) {
|
|
47
|
+
this.timer = setInterval(() => {
|
|
48
|
+
if (this.fingerprintIndex < this.fingerprints.length && this.continue) {
|
|
49
|
+
this.fingerprintPacker(this.fingerprints[this.fingerprintIndex]);
|
|
50
|
+
this.fingerprintIndex++;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.stopSendFingerprints();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
stopSendFingerprints() {
|
|
59
|
+
clearInterval(this.timer);
|
|
60
|
+
this.timer = undefined;
|
|
61
|
+
if (this.fingerprintIndex === this.fingerprints.length) {
|
|
62
|
+
this.finishWinnowing();
|
|
63
|
+
this.sendLog('[ SCANNER ]: WFP Splitter finished...');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
streamBufferFlush() {
|
|
67
|
+
var _a;
|
|
68
|
+
let ignoreFirstChunkOfFingerprint = false;
|
|
69
|
+
//Use a loop to make sure we read all currently available data
|
|
70
|
+
while (this.continue && null !== (this.chunkDataRead = this.wfpStream.read(1 * 1024 * 1024))) { // Read chunks of 1MB 1*1024*1024
|
|
71
|
+
/**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/
|
|
72
|
+
if (this.ignoreFiles.size > 0) {
|
|
73
|
+
// Removes fingerprints that are loose because the file=...... was removed in previous iteration
|
|
74
|
+
if (ignoreFirstChunkOfFingerprint) { //TODO: Test this scenario
|
|
75
|
+
//If there is no file= delete everything then
|
|
76
|
+
if (this.chunkDataRead.indexOf("file=") >= 0) {
|
|
77
|
+
this.chunkDataRead = this.chunkDataRead.substring(this.chunkDataRead.indexOf('file='));
|
|
78
|
+
ignoreFirstChunkOfFingerprint = false;
|
|
79
|
+
}
|
|
80
|
+
else
|
|
81
|
+
this.chunkDataRead = "";
|
|
82
|
+
}
|
|
83
|
+
const rWfpPath = new RegExp(/^file=\w+,\d+,(?<path>.+)$/gm);
|
|
84
|
+
//Search for paths in the wfp and compares with the ignorefiles set
|
|
85
|
+
//When there is a match the matched fingerprint is deleted on the fly
|
|
86
|
+
let result;
|
|
87
|
+
while ((result = rWfpPath.exec(this.chunkDataRead)) !== null) {
|
|
88
|
+
if (this.ignoreFiles.has((_a = result === null || result === void 0 ? void 0 : result.groups) === null || _a === void 0 ? void 0 : _a.path)) {
|
|
89
|
+
const indexDeleteFrom = result.index;
|
|
90
|
+
//TODO: Verify this condition
|
|
91
|
+
//If there is no next file= in the string, remove until end.
|
|
92
|
+
let indexDeleteTo = this.chunkDataRead.indexOf('file=', indexDeleteFrom + 1);
|
|
93
|
+
if (indexDeleteTo < 0) {
|
|
94
|
+
indexDeleteTo = this.chunkDataRead.length;
|
|
95
|
+
//After the deletion of a wfp there are no other file=, so then set ignoreFirstChunkOfFingerprint to true.
|
|
96
|
+
//In the next iteration, the next chunk of data will be fingerprints without a file=. So, this first part will be discarded.
|
|
97
|
+
ignoreFirstChunkOfFingerprint = true;
|
|
98
|
+
}
|
|
99
|
+
const first = this.chunkDataRead.substring(0, indexDeleteFrom);
|
|
100
|
+
const second = this.chunkDataRead.substring(indexDeleteTo, this.chunkDataRead.length);
|
|
101
|
+
this.chunkDataRead = first + second;
|
|
102
|
+
rWfpPath.lastIndex = 0; //Make sure we reset the state of the regex.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**** This part removes all the wfp that includes the paths inside this.ignoreFiles ****/
|
|
107
|
+
/**** This part process a chunk of wfp and send the packages to the subscriber ****/
|
|
108
|
+
if (this.chunkDataRead.length) {
|
|
109
|
+
// Extract the first portion of the chunk until the first file=
|
|
110
|
+
// Then append the chunk to the last fingerprint.
|
|
111
|
+
if (!this.chunkDataRead.startsWith('file=')) {
|
|
112
|
+
const chunkOfData = this.chunkDataRead.substring(0, this.chunkDataRead.indexOf('file='));
|
|
113
|
+
this.fingerprints[this.fingerprints.length - 1] += chunkOfData;
|
|
114
|
+
}
|
|
115
|
+
this.fingerprints = [...this.fingerprints, ...this.splitFingerprints(this.chunkDataRead)];
|
|
116
|
+
this.sendFingerprints();
|
|
117
|
+
}
|
|
118
|
+
/**** This part process a chunk of wfp and send the packages to the subscriber ****/
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
setStreamListeners() {
|
|
122
|
+
this.wfpStream.on('readable', () => {
|
|
123
|
+
this.streamBufferFlush();
|
|
124
|
+
});
|
|
125
|
+
this.wfpStream.on('end', () => { });
|
|
126
|
+
}
|
|
127
|
+
splitFingerprints(chunkOfData) {
|
|
128
|
+
const reg = /file=/g;
|
|
129
|
+
const blocksIndex = [...((chunkOfData).matchAll(reg))].map(x => x.index);
|
|
130
|
+
const fingerprints = [];
|
|
131
|
+
for (let i = 0; i < blocksIndex.length; i++) {
|
|
132
|
+
const fingerprint = chunkOfData.substring(blocksIndex[i], blocksIndex[i + 1]);
|
|
133
|
+
fingerprints.push(fingerprint);
|
|
134
|
+
}
|
|
135
|
+
return fingerprints;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.WfpSplitter = WfpSplitter;
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ZwU3BsaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3NjYW5uZXIvV2ZwUHJvdmlkZXIvV2ZwU3BsaXR0ZXIvV2ZwU3BsaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBZ0U7QUFDaEUsNENBQW9CO0FBQ3BCLGlEQUE4QztBQUc5QyxrQ0FBa0M7QUFFbEMsTUFBYSxXQUFZLFNBQVEseUJBQVc7SUFnQjFDLFlBQVksVUFBVSxHQUFHLElBQUksdUJBQVUsRUFBRTtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBeUI7UUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUM7UUFFN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUUvQixJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxF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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const Node_1 = require("./Node");
|
|
6
|
+
const Node_2 = __importDefault(require("./Node"));
|
|
7
|
+
class File extends Node_2.default {
|
|
8
|
+
constructor(name, path) {
|
|
9
|
+
super(name, path);
|
|
10
|
+
this.type = Node_1.NodeType.FILE;
|
|
11
|
+
}
|
|
12
|
+
getNode(path) {
|
|
13
|
+
if (path === this.getPath())
|
|
14
|
+
return this;
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
getFiles(f) {
|
|
18
|
+
if (!f || !f.evaluate(this))
|
|
19
|
+
return [];
|
|
20
|
+
return [this.getPath()];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = File;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpQ0FBa0M7QUFDbEMsa0RBQTBCO0FBSTFCLE1BQXFCLElBQUssU0FBUSxjQUFJO0lBQ3BDLFlBQVksSUFBWSxFQUFFLElBQVk7UUFDcEMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLGVBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxRQUFRLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUVGO0FBaEJELHVCQWdCQyJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.DecompressionFilter = void 0;
|
|
3
|
+
const Filter_1 = require("./Filter");
|
|
4
|
+
const Node_1 = require("../Node");
|
|
5
|
+
const DecompressionManager_1 = require("../../Decompress/DecompressionManager");
|
|
6
|
+
class DecompressionFilter extends Filter_1.Filter {
|
|
7
|
+
constructor(filterName) {
|
|
8
|
+
super();
|
|
9
|
+
this.supportedFileExtension = new DecompressionManager_1.DecompressionManager().getSupportedFormats();
|
|
10
|
+
}
|
|
11
|
+
//Returns true if you want the file
|
|
12
|
+
evaluate(node) {
|
|
13
|
+
if (node.getType() == Node_1.NodeType.FOLDER)
|
|
14
|
+
return true;
|
|
15
|
+
if (this.supportedFileExtension.some(supportedFormat => node.getName().endsWith(supportedFormat)))
|
|
16
|
+
return true;
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.DecompressionFilter = DecompressionFilter;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjb21wcmVzc2lvbkZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL0RlY29tcHJlc3Npb25GaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFDbEMsa0NBQXlDO0FBQ3pDLGdGQUE2RTtBQUc3RSxNQUFhLG1CQUFvQixTQUFRLGVBQU07SUFJN0MsWUFBbUIsVUFBa0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELG1DQUFtQztJQUM1QixRQUFRLENBQUMsSUFBVTtRQUN4QixJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxlQUFRLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvRyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FFRjtBQWhCRCxrREFnQkMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.DependencyFilter = void 0;
|
|
3
|
+
const Filter_1 = require("./Filter");
|
|
4
|
+
const filtering_1 = require("../../filters/filtering");
|
|
5
|
+
const DefaultFilterForDependencies_1 = require("../../filters/DefaultFilterForDependencies");
|
|
6
|
+
class DependencyFilter extends Filter_1.Filter {
|
|
7
|
+
constructor(filterName) {
|
|
8
|
+
super();
|
|
9
|
+
this.filter = new filtering_1.FilterList(filterName);
|
|
10
|
+
this.filter.load(DefaultFilterForDependencies_1.defaultFilterForDependencies);
|
|
11
|
+
}
|
|
12
|
+
evaluate(node) {
|
|
13
|
+
return this.filter.include(node.getPath());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.DependencyFilter = DependencyFilter;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL0RlcGVuZGVuY3lGaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFFbEMsdURBQXFEO0FBQ3JELDZGQUVvRDtBQUVwRCxNQUFhLGdCQUFpQixTQUFRLGVBQU07SUFJMUMsWUFBbUIsVUFBa0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksc0JBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMEMsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFTSxRQUFRLENBQUMsSUFBVTtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FFRjtBQWRELDRDQWNDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.Filter = void 0;
|
|
3
|
+
class Filter {
|
|
4
|
+
}
|
|
5
|
+
exports.Filter = Filter;
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay90cmVlL0ZpbHRlcnMvRmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBc0IsTUFBTTtDQUUzQjtBQUZELHdCQUVDIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.ScanFilter = void 0;
|
|
3
|
+
const Filter_1 = require("./Filter");
|
|
4
|
+
const filtering_1 = require("../../filters/filtering");
|
|
5
|
+
const DefaultFilterForScanning_1 = require("../../filters/DefaultFilterForScanning");
|
|
6
|
+
class ScanFilter extends Filter_1.Filter {
|
|
7
|
+
constructor(filterName) {
|
|
8
|
+
super();
|
|
9
|
+
this.filter = new filtering_1.FilterList(filterName);
|
|
10
|
+
this.filter.load(DefaultFilterForScanning_1.defaultFilterForScanning);
|
|
11
|
+
}
|
|
12
|
+
evaluate(node) {
|
|
13
|
+
return this.filter.include(node.getPath());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ScanFilter = ScanFilter;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NhbkZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9GaWx0ZXJzL1NjYW5GaWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBa0M7QUFFbEMsdURBQXFEO0FBQ3JELHFGQUVnRDtBQUVoRCxNQUFhLFVBQVcsU0FBUSxlQUFNO0lBSXBDLFlBQW1CLFVBQWtCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHNCQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbURBQXNDLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBRUY7QUFkRCxnQ0FjQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Node from './Node';
|
|
2
|
+
import { Filter } from './Filters/Filter';
|
|
3
|
+
export default class Folder extends Node {
|
|
4
|
+
private children;
|
|
5
|
+
constructor(path: string, label: string);
|
|
6
|
+
addChild(node: Node): void;
|
|
7
|
+
getChildren(): Node[];
|
|
8
|
+
getNode(path: string): Node;
|
|
9
|
+
private checkMyPath;
|
|
10
|
+
getFiles(f?: Filter): Array<string>;
|
|
11
|
+
removeChildren(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const Node_1 = require("./Node");
|
|
6
|
+
const Node_2 = __importDefault(require("./Node"));
|
|
7
|
+
class Folder extends Node_2.default {
|
|
8
|
+
constructor(path, label) {
|
|
9
|
+
super(path, label);
|
|
10
|
+
this.type = Node_1.NodeType.FOLDER;
|
|
11
|
+
this.children = [];
|
|
12
|
+
}
|
|
13
|
+
addChild(node) {
|
|
14
|
+
this.children.push(node);
|
|
15
|
+
}
|
|
16
|
+
getChildren() {
|
|
17
|
+
return this.children;
|
|
18
|
+
}
|
|
19
|
+
getNode(path) {
|
|
20
|
+
if (!this.checkMyPath(path))
|
|
21
|
+
return null;
|
|
22
|
+
if (path === this.getPath())
|
|
23
|
+
return this;
|
|
24
|
+
for (const child of this.children) {
|
|
25
|
+
const node = child.getNode(path);
|
|
26
|
+
if (node !== null)
|
|
27
|
+
return node;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
// Returns true only if my path is contained in the path (parameter)
|
|
32
|
+
checkMyPath(path) {
|
|
33
|
+
if (!path.includes(this.getPath()))
|
|
34
|
+
return false;
|
|
35
|
+
// Only if first filter is passed.
|
|
36
|
+
const myPathExploded = this.getPath().split('/');
|
|
37
|
+
const pathExploded = path.split('/');
|
|
38
|
+
for (let i = 0; i < myPathExploded.length; i += 1) {
|
|
39
|
+
if (myPathExploded[i] !== pathExploded[i])
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
getFiles(f) {
|
|
45
|
+
if (!f || !f.evaluate(this))
|
|
46
|
+
return [];
|
|
47
|
+
const files = [];
|
|
48
|
+
this.children.forEach((child) => {
|
|
49
|
+
files.push(...child.getFiles(f));
|
|
50
|
+
});
|
|
51
|
+
return files;
|
|
52
|
+
}
|
|
53
|
+
removeChildren() {
|
|
54
|
+
this.children = [];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.default = Folder;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay90cmVlL0ZvbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsaUNBQWtDO0FBQ2xDLGtEQUEwQjtBQUcxQixNQUFxQixNQUFPLFNBQVEsY0FBSTtJQUd0QyxZQUFZLElBQVksRUFBRSxLQUFhO1FBQ3JDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFRLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLElBQUksS0FBSyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0VBQW9FO0lBQzVELFdBQVcsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELGtDQUFrQztRQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqRCxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sUUFBUSxDQUFDLENBQVU7UUFDeEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkMsTUFBTSxLQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXBERCx5QkFvREMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Filter } from './Filters/Filter';
|
|
2
|
+
export default abstract class Node {
|
|
3
|
+
protected type: NodeType;
|
|
4
|
+
protected path: string;
|
|
5
|
+
protected label: string;
|
|
6
|
+
protected action: string;
|
|
7
|
+
constructor(path: string, label: string);
|
|
8
|
+
abstract getNode(path: string): Node;
|
|
9
|
+
abstract getFiles(f: Filter): Array<string>;
|
|
10
|
+
getName(): string;
|
|
11
|
+
getPath(): string;
|
|
12
|
+
getType(): NodeType;
|
|
13
|
+
}
|
|
14
|
+
export declare enum NodeType {
|
|
15
|
+
FOLDER = "FOLDER",
|
|
16
|
+
FILE = "FILE"
|
|
17
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.NodeType = void 0;
|
|
3
|
+
class Node {
|
|
4
|
+
constructor(path, label) {
|
|
5
|
+
this.path = path;
|
|
6
|
+
this.label = label;
|
|
7
|
+
}
|
|
8
|
+
getName() {
|
|
9
|
+
return this.label;
|
|
10
|
+
}
|
|
11
|
+
getPath() {
|
|
12
|
+
return this.path;
|
|
13
|
+
}
|
|
14
|
+
getType() {
|
|
15
|
+
return this.type;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = Node;
|
|
19
|
+
var NodeType;
|
|
20
|
+
(function (NodeType) {
|
|
21
|
+
NodeType["FOLDER"] = "FOLDER";
|
|
22
|
+
NodeType["FILE"] = "FILE";
|
|
23
|
+
})(NodeType = exports.NodeType || (exports.NodeType = {}));
|
|
24
|
+
;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9Ob2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsTUFBOEIsSUFBSTtJQVNoQyxZQUFZLElBQVksRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFNTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FFRjtBQTlCRCx1QkE4QkM7QUFFRCxJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQUFBLENBQUMifQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Node from './Node';
|
|
2
|
+
import Folder from './Folder';
|
|
3
|
+
import { Filter } from './Filters/Filter';
|
|
4
|
+
export declare class Tree {
|
|
5
|
+
private rootFolder;
|
|
6
|
+
private rootName;
|
|
7
|
+
private rootPath;
|
|
8
|
+
private filter;
|
|
9
|
+
constructor(path: string);
|
|
10
|
+
build(): Node;
|
|
11
|
+
private buildRec;
|
|
12
|
+
private dirFirstFileAfter;
|
|
13
|
+
loadTree(data: any): void;
|
|
14
|
+
private deserialize;
|
|
15
|
+
getRootFolder(): Folder;
|
|
16
|
+
getRootPath(): string;
|
|
17
|
+
getFileList(f?: Filter): Array<string>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
+
};
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.Tree = void 0;
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const Node_1 = require("./Node");
|
|
9
|
+
const File_1 = __importDefault(require("./File"));
|
|
10
|
+
const Folder_1 = __importDefault(require("./Folder"));
|
|
11
|
+
class Tree {
|
|
12
|
+
constructor(path) {
|
|
13
|
+
const pathParts = path.split(path_1.default.sep);
|
|
14
|
+
this.rootName = path_1.default.basename(path);
|
|
15
|
+
this.rootPath = path;
|
|
16
|
+
this.rootFolder = new Folder_1.default('/', this.rootName);
|
|
17
|
+
}
|
|
18
|
+
build() {
|
|
19
|
+
this.rootFolder.removeChildren();
|
|
20
|
+
this.buildRec(this.rootPath, this.rootFolder);
|
|
21
|
+
return this.rootFolder;
|
|
22
|
+
}
|
|
23
|
+
buildRec(path, root) {
|
|
24
|
+
const dirEntries = fs_1.default
|
|
25
|
+
.readdirSync(path, { withFileTypes: true }) // Returns a list of files and folders
|
|
26
|
+
.sort(this.dirFirstFileAfter)
|
|
27
|
+
.filter((dirent) => !dirent.isSymbolicLink());
|
|
28
|
+
for (const dirEntry of dirEntries) {
|
|
29
|
+
const fullPath = `${path}/${dirEntry.name}`;
|
|
30
|
+
const relativePath = fullPath.replace(this.rootPath, '');
|
|
31
|
+
if (dirEntry.isDirectory()) {
|
|
32
|
+
const f = new Folder_1.default(fullPath, dirEntry.name);
|
|
33
|
+
const subTree = this.buildRec(`${path}/${dirEntry.name}`, f);
|
|
34
|
+
root.addChild(subTree);
|
|
35
|
+
}
|
|
36
|
+
else
|
|
37
|
+
root.addChild(new File_1.default(fullPath, dirEntry.name));
|
|
38
|
+
}
|
|
39
|
+
return root;
|
|
40
|
+
}
|
|
41
|
+
// This is a sorter that will sort folders before files in alphabetical order.
|
|
42
|
+
dirFirstFileAfter(a, b) {
|
|
43
|
+
if (!a.isDirectory() && b.isDirectory())
|
|
44
|
+
return 1;
|
|
45
|
+
if (a.isDirectory() && !b.isDirectory())
|
|
46
|
+
return -1;
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
loadTree(data) {
|
|
50
|
+
this.rootFolder = this.deserialize(data);
|
|
51
|
+
}
|
|
52
|
+
deserialize(data) {
|
|
53
|
+
if (data.type === Node_1.NodeType.FILE) {
|
|
54
|
+
return Object.assign(Object.create(File_1.default.prototype), data);
|
|
55
|
+
}
|
|
56
|
+
const children = data.children.map((child) => this.deserialize(child));
|
|
57
|
+
return Object.assign(Object.create(Folder_1.default.prototype), Object.assign(Object.assign({}, data), { children }));
|
|
58
|
+
}
|
|
59
|
+
getRootFolder() {
|
|
60
|
+
return this.rootFolder;
|
|
61
|
+
}
|
|
62
|
+
getRootPath() {
|
|
63
|
+
return this.rootPath;
|
|
64
|
+
}
|
|
65
|
+
getFileList(f) {
|
|
66
|
+
return this.rootFolder.getFiles(f);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.Tree = Tree;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvdHJlZS9UcmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLGdEQUEyQjtBQUczQixpQ0FBa0M7QUFFbEMsa0RBQTBCO0FBQzFCLHNEQUE4QjtBQUk5QixNQUFhLElBQUk7SUFTZixZQUFZLElBQVk7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxnQkFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDekMsTUFBTSxVQUFVLEdBQUcsWUFBRTthQUNsQixXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsc0NBQXNDO2FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXJELEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFXLElBQUksZ0JBQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN4Qjs7Z0JBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4RUFBOEU7SUFDdEUsaUJBQWlCLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFXLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFRLENBQUMsSUFBSSxFQUFFO1lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzRDtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsa0NBQU8sSUFBSSxLQUFFLFFBQVEsSUFBRyxDQUFDO0lBQy9FLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxDQUFVO1FBQzNCLE9BQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBdEVELG9CQXNFQyJ9
|