scanoss 0.15.7 → 0.16.0

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.
Files changed (127) hide show
  1. package/CHANGELOG.md +53 -97
  2. package/LICENSE +20 -20
  3. package/README.md +75 -3
  4. package/assets/ReportHTMLTemplate/index.html +11 -8
  5. package/assets/data/scanoss-crypto-library-rules.json +2930 -0
  6. package/build/main/cli/bin/cli-bin.js +6 -2
  7. package/build/main/cli/commands/crypto.js +14 -7
  8. package/build/main/cli/commands/scan.js +66 -23
  9. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +19 -0
  10. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +27 -0
  11. package/build/main/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.d.ts +1 -0
  12. package/build/main/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.js +39 -0
  13. package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.d.ts +42 -0
  14. package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +87 -0
  15. package/build/main/sdk/Cryptography/{CryptoDef/CryptoDef.d.ts → Algorithm/Files/Helper/Helper.d.ts} +1 -1
  16. package/build/main/sdk/Cryptography/{CryptoDef/CryptoDef.js → Algorithm/Files/Helper/Helper.js} +1 -1
  17. package/build/main/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.d.ts +2 -2
  18. package/build/main/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.js +1 -1
  19. package/build/main/sdk/Cryptography/BaseCryptographyScanner.d.ts +25 -0
  20. package/build/main/sdk/Cryptography/BaseCryptographyScanner.js +23 -0
  21. package/build/main/sdk/Cryptography/CryptoCfg.d.ts +32 -5
  22. package/build/main/sdk/Cryptography/CryptoCfg.js +35 -5
  23. package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +15 -21
  24. package/build/main/sdk/Cryptography/CryptographyScanner.js +31 -41
  25. package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +47 -3
  26. package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +32 -0
  27. package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +66 -0
  28. package/build/main/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.d.ts +36 -0
  29. package/build/main/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.js +65 -0
  30. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +19 -0
  31. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +27 -0
  32. package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.d.ts +35 -0
  33. package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.js +69 -0
  34. package/build/main/sdk/Cryptography/Hint/Files/HintProcessor.d.ts +1 -0
  35. package/build/main/sdk/Cryptography/Hint/Files/HintProcessor.js +34 -0
  36. package/build/main/sdk/Filtering/Filtering.js +1 -2
  37. package/build/main/sdk/Logger.d.ts +2 -0
  38. package/build/main/sdk/Logger.js +7 -2
  39. package/build/main/sdk/Report/DataLayer/DataLayerTypes.d.ts +8 -4
  40. package/build/main/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.d.ts +7 -7
  41. package/build/main/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.js +71 -11
  42. package/build/main/sdk/Services/Grpc/BaseService.js +1 -1
  43. package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +3 -0
  44. package/build/main/sdk/Services/Grpc/CryptographyService.js +16 -1
  45. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +72 -0
  46. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +87 -3
  47. package/build/main/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1987 -127
  48. package/build/main/sdk/Utils/Concurrency/Job.d.ts +8 -0
  49. package/build/main/sdk/Utils/Concurrency/Job.js +17 -0
  50. package/build/main/sdk/Utils/Concurrency/JobProcessor.d.ts +10 -0
  51. package/build/main/sdk/Utils/Concurrency/JobProcessor.js +51 -0
  52. package/build/main/sdk/Utils/Concurrency/WorkerPool.d.ts +14 -0
  53. package/build/main/sdk/Utils/Concurrency/WorkerPool.js +69 -0
  54. package/build/main/sdk/Utils/Concurrency/types.d.ts +18 -0
  55. package/build/main/sdk/Utils/Concurrency/types.js +3 -0
  56. package/build/main/sdk/scanner/ScannerTypes.js +1 -1
  57. package/build/main/tsconfig.tsbuildinfo +1 -1
  58. package/build/module/cli/bin/cli-bin.js +6 -2
  59. package/build/module/cli/commands/crypto.js +14 -7
  60. package/build/module/cli/commands/scan.js +66 -23
  61. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +19 -0
  62. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +23 -0
  63. package/build/module/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.d.ts +1 -0
  64. package/build/module/sdk/Cryptography/Algorithm/Files/AlgorithmProcessor.js +36 -0
  65. package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.d.ts +42 -0
  66. package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +80 -0
  67. package/build/module/sdk/Cryptography/{CryptoDef/CryptoDef.d.ts → Algorithm/Files/Helper/Helper.d.ts} +1 -1
  68. package/build/module/sdk/Cryptography/{CryptoDef/CryptoDef.js → Algorithm/Files/Helper/Helper.js} +1 -1
  69. package/build/module/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.d.ts +2 -2
  70. package/build/module/sdk/Cryptography/{Scanneable → Algorithm/Files/Scanneable}/CryptoItem.js +1 -1
  71. package/build/module/sdk/Cryptography/BaseCryptographyScanner.d.ts +25 -0
  72. package/build/module/sdk/Cryptography/BaseCryptographyScanner.js +21 -0
  73. package/build/module/sdk/Cryptography/CryptoCfg.d.ts +32 -5
  74. package/build/module/sdk/Cryptography/CryptoCfg.js +39 -6
  75. package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +15 -21
  76. package/build/module/sdk/Cryptography/CryptographyScanner.js +32 -39
  77. package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +47 -3
  78. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +32 -0
  79. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +60 -0
  80. package/build/module/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.d.ts +36 -0
  81. package/build/module/sdk/Cryptography/Helper/ResultCollector/File/FileCryptographyResultCollector.js +59 -0
  82. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +19 -0
  83. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +23 -0
  84. package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.d.ts +35 -0
  85. package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.js +62 -0
  86. package/build/module/sdk/Cryptography/Hint/Files/HintProcessor.d.ts +1 -0
  87. package/build/module/sdk/Cryptography/Hint/Files/HintProcessor.js +31 -0
  88. package/build/module/sdk/Filtering/Filtering.js +1 -2
  89. package/build/module/sdk/Logger.d.ts +2 -0
  90. package/build/module/sdk/Logger.js +8 -2
  91. package/build/module/sdk/Report/DataLayer/DataLayerTypes.d.ts +8 -4
  92. package/build/module/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.d.ts +7 -7
  93. package/build/module/sdk/Report/DataLayer/DataProviders/CryptographyDataProvider.js +73 -14
  94. package/build/module/sdk/Services/Grpc/BaseService.js +1 -1
  95. package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +3 -0
  96. package/build/module/sdk/Services/Grpc/CryptographyService.js +16 -1
  97. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +72 -0
  98. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +87 -3
  99. package/build/module/sdk/Services/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1987 -127
  100. package/build/module/sdk/Utils/Concurrency/Job.d.ts +8 -0
  101. package/build/module/sdk/Utils/Concurrency/Job.js +14 -0
  102. package/build/module/sdk/Utils/Concurrency/JobProcessor.d.ts +10 -0
  103. package/build/module/sdk/Utils/Concurrency/JobProcessor.js +47 -0
  104. package/build/module/sdk/Utils/Concurrency/WorkerPool.d.ts +14 -0
  105. package/build/module/sdk/Utils/Concurrency/WorkerPool.js +65 -0
  106. package/build/module/sdk/Utils/Concurrency/types.d.ts +18 -0
  107. package/build/module/sdk/Utils/Concurrency/types.js +2 -0
  108. package/build/module/sdk/scanner/ScannerTypes.js +1 -1
  109. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  110. package/package.json +1 -1
  111. package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +0 -21
  112. package/build/main/sdk/Cryptography/CryptoProvider/LocalCrypto.js +0 -37
  113. package/build/main/sdk/Cryptography/Worker/ThreadPool.d.ts +0 -21
  114. package/build/main/sdk/Cryptography/Worker/ThreadPool.js +0 -87
  115. package/build/main/sdk/Cryptography/Worker/Worker.d.ts +0 -15
  116. package/build/main/sdk/Cryptography/Worker/Worker.js +0 -69
  117. package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +0 -8
  118. package/build/main/sdk/Cryptography/utils/adapters/cryptoAdapters.js +0 -15
  119. package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.d.ts +0 -21
  120. package/build/module/sdk/Cryptography/CryptoProvider/LocalCrypto.js +0 -36
  121. package/build/module/sdk/Cryptography/Worker/ThreadPool.d.ts +0 -21
  122. package/build/module/sdk/Cryptography/Worker/ThreadPool.js +0 -89
  123. package/build/module/sdk/Cryptography/Worker/Worker.d.ts +0 -15
  124. package/build/module/sdk/Cryptography/Worker/Worker.js +0 -66
  125. package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.d.ts +0 -8
  126. package/build/module/sdk/Cryptography/utils/adapters/cryptoAdapters.js +0 -12
  127. /package/assets/data/{defaultCryptoRules.json → scanoss-crypto-algorithm-rules.json} +0 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileHintScanner = void 0;
7
+ const Job_1 = require("../../../Utils/Concurrency/Job");
8
+ const path_1 = __importDefault(require("path"));
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const WorkerPool_1 = require("../../../Utils/Concurrency/WorkerPool");
11
+ const HintProcessor_1 = require("./HintProcessor");
12
+ const BaseCryptographyScanner_1 = require("../../BaseCryptographyScanner");
13
+ /**
14
+ * A class responsible for scanning files for cryptographic items.
15
+ */
16
+ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner {
17
+ /**
18
+ * Constructs a new CryptographyScanner.
19
+ * @param cryptoCfg The cryptographic configuration.
20
+ * @param resultCollector cryptography results collector
21
+ */
22
+ constructor(cryptoCfg, resultCollector) {
23
+ super(cryptoCfg, resultCollector);
24
+ this.DEFAULT_CRYPTO_LIBRARY_RULE_FILENAME = 'scanoss-crypto-library-rules.json';
25
+ }
26
+ /**
27
+ * Builds a collection of cryptographic hint analysis jobs from an array of files.
28
+ * This method loads library rules and initializes job objects for each file
29
+ * that will be used for cryptographic hint detection.
30
+ * @param files An array of file paths to analyze for cryptographic hints.
31
+ * @returns A promise that resolves to an array of job objects configured for hint analysis.
32
+ */
33
+ async buildJobs(files) {
34
+ const rules = await this.loadRules(this.config.getLibraryRulesPath());
35
+ const jobs = [];
36
+ files.forEach((f) => {
37
+ const newJob = new Job_1.Job({
38
+ file: f,
39
+ rules,
40
+ });
41
+ jobs.push(newJob);
42
+ });
43
+ return jobs;
44
+ }
45
+ /**
46
+ * Scans an array of files for cryptographic items.
47
+ * @param files An array of file paths to scan.
48
+ * @returns A promise that resolves to an ILocalCryptographyResponse.
49
+ */
50
+ async scan(files) {
51
+ const workerPool = new WorkerPool_1.WorkerPool(HintProcessor_1.cryptographyHintProcessor, this.config.getNumberOfThreads());
52
+ const jobs = await this.buildJobs(files);
53
+ workerPool.loadJobs(jobs);
54
+ const results = await workerPool.run();
55
+ this.resultCollector.collectHintResults(results);
56
+ return results;
57
+ }
58
+ /**
59
+ * Loads custom cryptographic rules from a file.
60
+ * @returns A promise that resolves to the loaded rules.
61
+ */
62
+ async loadRules(rulePath) {
63
+ const cryptoRulePath = rulePath ? rulePath : path_1.default.join(__dirname, '../../../../../../assets/data', this.DEFAULT_CRYPTO_LIBRARY_RULE_FILENAME);
64
+ const rules = await fs_1.default.promises.readFile(cryptoRulePath, 'utf-8');
65
+ return JSON.parse(rules);
66
+ }
67
+ }
68
+ exports.FileHintScanner = FileHintScanner;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esd0RBQXFEO0FBS3JELGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsc0VBQW1FO0FBQ25FLG1EQUE0RDtBQUM1RCwyRUFBd0U7QUFNeEU7O0dBRUc7QUFDSCxNQUFhLGVBQ1gsU0FBUSxpREFHdUI7SUFJL0I7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLHlDQUFvQyxHQUFHLG1DQUFtQyxDQUFDO0lBUzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxHQUFtQyxFQUFFLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBRyxDQUFxQjtnQkFDekMsSUFBSSxFQUFDLENBQUM7Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQTRDLHlDQUF5QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzFJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBaUI7UUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLGNBQUksQ0FBQyxJQUFJLENBQ3JELFNBQVMsRUFDVCwrQkFBK0IsRUFBRSxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUlGO0FBakVELDBDQWlFQyJ9
@@ -0,0 +1 @@
1
+ export declare const cryptographyHintProcessor = "\nconst { parentPort } = require('worker_threads');\nconst fs = require('fs');\n\nparentPort.on('message', async (job) => {\n\n const MAX_FILE_SIZE = 2 * 1024 * 1024 * 1024;\n const { data } = job;\n const { file, rules } = data;\n\n const stats = await fs.promises.stat(file);\n if (stats.size > MAX_FILE_SIZE) {\n parentPort.postMessage({ file, hints: [] });\n return;\n }\n\n let content = fs.readFileSync(file, 'utf-8');\n const hints = [];\n rules.forEach((rule) => {\n for (const keyword of rule.keywords) {\n if (content.includes(keyword)) {\n const {id, name, description, url , category, purl } = rule;\n hints.push({ id, name, category, purl, description, url });\n break;\n }\n }\n });\n parentPort.postMessage({ file, hints });\n });\n";
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cryptographyHintProcessor = void 0;
4
+ exports.cryptographyHintProcessor = `
5
+ const { parentPort } = require('worker_threads');
6
+ const fs = require('fs');
7
+
8
+ parentPort.on('message', async (job) => {
9
+
10
+ const MAX_FILE_SIZE = 2 * 1024 * 1024 * 1024;
11
+ const { data } = job;
12
+ const { file, rules } = data;
13
+
14
+ const stats = await fs.promises.stat(file);
15
+ if (stats.size > MAX_FILE_SIZE) {
16
+ parentPort.postMessage({ file, hints: [] });
17
+ return;
18
+ }
19
+
20
+ let content = fs.readFileSync(file, 'utf-8');
21
+ const hints = [];
22
+ rules.forEach((rule) => {
23
+ for (const keyword of rule.keywords) {
24
+ if (content.includes(keyword)) {
25
+ const {id, name, description, url , category, purl } = rule;
26
+ hints.push({ id, name, category, purl, description, url });
27
+ break;
28
+ }
29
+ }
30
+ });
31
+ parentPort.postMessage({ file, hints });
32
+ });
33
+ `;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGludFByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0hpbnQvRmlsZXMvSGludFByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHlCQUF5QixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZCeEMsQ0FBQyJ9
@@ -145,7 +145,6 @@ class SizeFilter extends AbstractFilter {
145
145
  const stat = fs_1.default.statSync(path);
146
146
  if (this.condition === SizeFilter.BIGGER) {
147
147
  if (stat.size > parseInt(this.value, 10)) {
148
- // console.log("NO aceptado por que NO es mayor");
149
148
  return false;
150
149
  }
151
150
  return true;
@@ -264,4 +263,4 @@ class FilterList {
264
263
  }
265
264
  }
266
265
  exports.FilterList = FilterList;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9GaWx0ZXJpbmcvRmlsdGVyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUE4QjtBQUM5QiwrQ0FBZ0Q7QUFjaEQsSUFBWSxVQU9YO0FBUEQsV0FBWSxVQUFVO0lBQ3BCLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBdUIsQ0FBQTtJQUN2QiwyQkFBYSxDQUFBO0lBQ2IsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsVUFBVSwwQkFBVixVQUFVLFFBT3JCO0FBQUEsQ0FBQztBQUVGLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLDhCQUFkLGNBQWMsUUFHekI7QUFBQSxDQUFDO0FBRUYsSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFpQixDQUFBO0lBQ2pCLDRCQUFhLENBQUE7SUFDYiwwQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQUVELE1BQU0sY0FBYztJQVNsQixZQUFZLFNBQWlCLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFQSxRQUFRO1FBQ1AsT0FBTyxJQUFJ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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsdGVyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9GaWx0ZXJpbmcvRmlsdGVyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDRDQUE4QjtBQUM5QiwrQ0FBZ0Q7QUFjaEQsSUFBWSxVQU9YO0FBUEQsV0FBWSxVQUFVO0lBQ3BCLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBdUIsQ0FBQTtJQUN2QiwyQkFBYSxDQUFBO0lBQ2IsMkJBQWEsQ0FBQTtJQUNiLDJCQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsVUFBVSwwQkFBVixVQUFVLFFBT3JCO0FBQUEsQ0FBQztBQUVGLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLDhCQUFkLGNBQWMsUUFHekI7QUFBQSxDQUFDO0FBRUYsSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFpQixDQUFBO0lBQ2pCLDRCQUFhLENBQUE7SUFDYiwwQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQUVELE1BQU0sY0FBYztJQVNsQixZQUFZLFNBQWlCLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFQSxRQUFRO1FBQ1AsT0FBTyxJQUFJ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LENBQUMsR0FBRyxDQUFDO1lBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsU0FBUztnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hILElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsT0FBTztnQkFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFuRUQsZ0NBbUVDIn0=
@@ -1,9 +1,11 @@
1
1
  export declare class Logger {
2
2
  private level;
3
3
  private transport;
4
+ private debug;
4
5
  constructor();
5
6
  setTransport(transport: Logger.TransportType): void;
6
7
  setLevel(level?: Logger.Level): void;
8
+ enableDebug(enabled: boolean): void;
7
9
  log(msg: string, level?: Logger.Level): void;
8
10
  }
9
11
  export declare namespace Logger {
@@ -5,6 +5,7 @@ class Logger {
5
5
  constructor() {
6
6
  this.setLevel(Logger.Level.info);
7
7
  this.setTransport((msg) => { console.log(msg); });
8
+ this.debug = false;
8
9
  }
9
10
  setTransport(transport) {
10
11
  this.transport = transport;
@@ -12,9 +13,13 @@ class Logger {
12
13
  setLevel(level = Logger.Level.info) {
13
14
  this.level = level;
14
15
  }
16
+ enableDebug(enabled) {
17
+ this.debug = enabled;
18
+ }
15
19
  log(msg, level = Logger.Level.info) {
16
- if (this.level >= level)
20
+ if (this.debug) {
17
21
  this.transport(msg);
22
+ }
18
23
  }
19
24
  }
20
25
  exports.Logger = Logger;
@@ -29,4 +34,4 @@ exports.Logger = Logger;
29
34
  })(Level = Logger.Level || (Logger.Level = {}));
30
35
  })(Logger || (exports.Logger = Logger = {}));
31
36
  exports.logger = new Logger();
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nkay9Mb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsTUFBYSxNQUFNO0lBSWpCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxHQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQStCO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBRUY7QUFyQkQsd0JBcUJDO0FBRUQsV0FBaUIsTUFBTTtJQUdyQixJQUFZLEtBTVg7SUFORCxXQUFZLEtBQUs7UUFDZixtQ0FBSyxDQUFBO1FBQ0wsaUNBQUksQ0FBQTtRQUNKLGlDQUFJLENBQUE7UUFDSix1Q0FBTyxDQUFBO1FBQ1AsbUNBQUssQ0FBQTtJQUNQLENBQUMsRUFOVyxLQUFLLEdBQUwsWUFBSyxLQUFMLFlBQUssUUFNaEI7QUFDSCxDQUFDLEVBVmdCLE1BQU0sc0JBQU4sTUFBTSxRQVV0QjtBQUVZLFFBQUEsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nkay9Mb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsTUFBYSxNQUFNO0lBS2pCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxHQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQStCO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUk7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0NBRUY7QUE3QkQsd0JBNkJDO0FBRUQsV0FBaUIsTUFBTTtJQUdyQixJQUFZLEtBTVg7SUFORCxXQUFZLEtBQUs7UUFDZixtQ0FBSyxDQUFBO1FBQ0wsaUNBQUksQ0FBQTtRQUNKLGlDQUFJLENBQUE7UUFDSix1Q0FBTyxDQUFBO1FBQ1AsbUNBQUssQ0FBQTtJQUNQLENBQUMsRUFOVyxLQUFLLEdBQUwsWUFBSyxLQUFMLFlBQUssUUFNaEI7QUFDSCxDQUFDLEVBVmdCLE1BQU0sc0JBQU4sTUFBTSxRQVV0QjtBQUVZLFFBQUEsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUMifQ==
@@ -1,5 +1,4 @@
1
- import { CryptoAlgorithm } from '../../Cryptography/CryptographyTypes';
2
- import { CryptoItem } from '../../Cryptography/Scanneable/CryptoItem';
1
+ import { CryptoAlgorithm } from "../../Cryptography/CryptographyTypes";
3
2
  /************* Component interface definition *************/
4
3
  export interface ComponentDataLayer {
5
4
  key: string;
@@ -108,10 +107,15 @@ export interface ComponentCryptography {
108
107
  version: string;
109
108
  algorithms: Array<CryptoAlgorithm>;
110
109
  }
110
+ export interface CryptographyData {
111
+ source: string;
112
+ type: string;
113
+ values: Array<string>;
114
+ }
111
115
  /*********************** Files ****************************/
112
116
  export interface CryptographyDataLayer {
113
- files: Array<CryptoItem>;
114
- components: Array<ComponentCryptography>;
117
+ files: Array<CryptographyData>;
118
+ components: Array<CryptographyData>;
115
119
  }
116
120
  export interface IDataLayers {
117
121
  licenses: LicenseDataLayer[];
@@ -1,11 +1,11 @@
1
- import { DataProvider, IDataLayers } from '../DataLayerTypes';
2
- import { ScannerResults } from '../../../scanner/ScannerTypes';
3
- import { ICryptoItem } from '../../../Cryptography/CryptographyTypes';
1
+ import { DataProvider, IDataLayers } from "../DataLayerTypes";
2
+ import { CryptographyResponse, LocalCryptography } from "../../../Cryptography/CryptographyTypes";
4
3
  export declare class CryptographyDataProvider implements DataProvider {
5
- private files;
6
- private scanRawResults;
7
- private componentList;
8
- constructor(files: Array<ICryptoItem>, scanRawResults: ScannerResults);
4
+ private localCrypto;
5
+ private componentCryptography;
6
+ constructor(localCrypto: Array<LocalCryptography>, componentCryptography: Array<CryptographyResponse>);
7
+ private getComponentCryptographyData;
8
+ private getLocalCryptographyData;
9
9
  getData(): Promise<IDataLayers>;
10
10
  private getCrypto;
11
11
  private normalizeAlgorithms;
@@ -2,27 +2,87 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CryptographyDataProvider = void 0;
4
4
  class CryptographyDataProvider {
5
- constructor(files, scanRawResults) {
6
- this.files = files;
7
- this.scanRawResults = scanRawResults;
5
+ constructor(localCrypto, componentCryptography) {
6
+ this.localCrypto = localCrypto;
7
+ this.componentCryptography = componentCryptography;
8
+ }
9
+ getComponentCryptographyData() {
10
+ const cryptographyData = [];
11
+ const cryptographyMapper = new Map();
12
+ this.componentCryptography.forEach((c) => {
13
+ const source = `${c.purl}@${c.version}`;
14
+ // Algorithms
15
+ c.algorithms.forEach((a) => {
16
+ const key = `${source}@algorithm`;
17
+ if (cryptographyMapper.has(key)) {
18
+ cryptographyMapper.get(key).values.add(a.algorithm);
19
+ }
20
+ else {
21
+ cryptographyMapper.set(key, { source, type: 'algorithm', values: new Set([a.algorithm]) });
22
+ }
23
+ });
24
+ // Hints
25
+ c.hints.forEach((h) => {
26
+ const key = `${source}@${h.category}`;
27
+ if (cryptographyMapper.has(key)) {
28
+ cryptographyMapper.get(key).values.add(h.id);
29
+ }
30
+ else {
31
+ cryptographyMapper.set(key, { source, type: h.category, values: new Set([h.id]) });
32
+ }
33
+ });
34
+ });
35
+ // Convert set values to array
36
+ cryptographyMapper.forEach((c) => {
37
+ cryptographyData.push({ ...c, values: Array.from(c.values) });
38
+ });
39
+ return cryptographyData;
40
+ }
41
+ getLocalCryptographyData() {
42
+ const fileCryptographyData = [];
43
+ const fileCryptographyMapper = new Map();
44
+ this.localCrypto.forEach((c) => {
45
+ // Algorithms
46
+ c.algorithms.forEach((a) => {
47
+ const key = `${c.file}@algorithm`;
48
+ if (fileCryptographyMapper.has(key)) {
49
+ fileCryptographyMapper.get(key).values.add(a.algorithm);
50
+ }
51
+ else {
52
+ fileCryptographyMapper.set(key, { source: c.file, type: 'algorithm', values: new Set([a.algorithm]) });
53
+ }
54
+ });
55
+ // Hints
56
+ c.hints.forEach((h) => {
57
+ const key = `${c.file}@${h.category}`;
58
+ if (fileCryptographyMapper.has(key)) {
59
+ fileCryptographyMapper.get(key).values.add(h.id);
60
+ }
61
+ else {
62
+ fileCryptographyMapper.set(key, { source: c.file, type: h.category, values: new Set([h.id]) });
63
+ }
64
+ });
65
+ });
66
+ // Convert set values to array
67
+ fileCryptographyMapper.forEach((c) => {
68
+ fileCryptographyData.push({ ...c, values: Array.from(c.values) });
69
+ });
70
+ return fileCryptographyData;
8
71
  }
9
72
  async getData() {
10
- if (!this.files && !this.scanRawResults)
73
+ if (!this.localCrypto && !this.componentCryptography)
11
74
  return { cryptography: null };
12
- this.componentList = Object.values(this.scanRawResults).flat();
13
- this.componentList = this.componentList.filter((component) => component.id !== 'none');
14
- const componentCryptography = this.getCrypto(this.componentList);
15
75
  return {
16
76
  cryptography: {
17
- files: this.files,
18
- components: componentCryptography,
77
+ files: this.getLocalCryptographyData(),
78
+ components: this.getComponentCryptographyData(),
19
79
  }
20
80
  };
21
81
  }
22
82
  getCrypto(scanComponents) {
23
83
  const componentCrypto = [];
24
84
  scanComponents.forEach((c) => {
25
- if (c.cryptography.length > 0) {
85
+ if (c.cryptography && c.cryptography.length > 0) {
26
86
  const crypto = {
27
87
  purl: c.purl,
28
88
  version: c.version,
@@ -52,4 +112,4 @@ class CryptographyDataProvider {
52
112
  }
53
113
  }
54
114
  exports.CryptographyDataProvider = CryptographyDataProvider;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5RGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9SZXBvcnQvRGF0YUxheWVyL0RhdGFQcm92aWRlcnMvQ3J5cHRvZ3JhcGh5RGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLE1BQWEsd0JBQXdCO0lBSW5DLFlBQVksS0FBeUIsRUFBSSxjQUE4QjtRQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQU87UUFFWCxJQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO1lBQUUsT0FBb0IsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFFbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUM1QyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQ3ZDLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxFLE9BQW9CO1lBQ2pCLFlBQVksRUFBQztnQkFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFVBQVUsRUFBRSxxQkFBcUI7YUFDbEM7U0FDSCxDQUFBO0lBQ0YsQ0FBQztJQUVPLFNBQVMsQ0FBQyxjQUF1QztRQUN2RCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3hCLElBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHO29CQUNiLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtvQkFDWixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87b0JBQ2xCLFVBQVUsRUFBRSxDQUFDLENBQUMsWUFBWTtpQkFDM0IsQ0FBQTtnQkFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUFvQztRQUM5RCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFFaEIsQ0FBQztJQUVPLHdCQUF3QixDQUFDLFVBQWtDO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQW1ELENBQUM7UUFDcEYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2RCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUMsQ0FBQyxDQUFBO1FBQ3JGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRjtBQS9ERCw0REErREMifQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5RGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9SZXBvcnQvRGF0YUxheWVyL0RhdGFQcm92aWRlcnMvQ3J5cHRvZ3JhcGh5RGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWFBLE1BQWEsd0JBQXdCO0lBR25DLFlBQVksV0FBcUMsRUFBRSxxQkFBa0Q7UUFDbkcsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0lBQ3JELENBQUM7SUFHTyw0QkFBNEI7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBQ3JELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQStELENBQUM7UUFDbEcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEMsYUFBYTtZQUNiLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUM7Z0JBQ2xDLElBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7b0JBQzlCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztxQkFBSSxDQUFDO29CQUNKLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUs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
@@ -85,4 +85,4 @@ class BaseService {
85
85
  }
86
86
  }
87
87
  exports.BaseService = BaseService;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL1NlcnZpY2VzL0dycGMvQmFzZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBc0M7QUFDdEMsMEZBQTRFO0FBQzVFLHlDQUE4QztBQUM5QywrQ0FBK0U7QUFDL0UsSUFBTyxLQUFLLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQztBQUM1Qix5Q0FBc0U7QUFNdEUsTUFBYSxXQUFXO0lBQXhCO1FBQ1ksa0JBQWEsR0FBVyxpQ0FBcUIsQ0FBQztRQUM5QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztJQTRFdEMsQ0FBQztJQTFFVyxjQUFjLENBQUMsUUFFeEI7UUFDQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFFdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkQsZUFBTSxDQUFDLEdBQUcsQ0FDUixVQUFVLElBQUksQ0FBQyxZQUFZLDBCQUEwQixNQUFNLENBQUMsTUFBTSxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFDeEYsS0FBSyxDQUFDLEtBQUssQ0FDWixDQUFDO1lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQ0wsTUFBTSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDbkQsTUFBTSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLHVCQUF1QjtZQUNuRSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMs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
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL1NlcnZpY2VzL0dycGMvQmFzZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBc0M7QUFDdEMsMEZBQTRFO0FBQzVFLHlDQUE4QztBQUM5QywrQ0FBK0U7QUFDL0UsSUFBTyxLQUFLLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQztBQUM1Qix5Q0FBc0U7QUFNdEUsTUFBYSxXQUFXO0lBQXhCO1FBQ1ksa0JBQWEsR0FBVyxpQ0FBcUIsQ0FBQztRQUM5QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztJQTBFdEMsQ0FBQztJQXhFVyxjQUFjLENBQUMsUUFFeEI7UUFDQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkQsZUFBTSxDQUFDLEdBQUcsQ0FDUixVQUFVLElBQUksQ0FBQyxZQUFZLDBCQUEwQixNQUFNLENBQUMsTUFBTSxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFDeEYsS0FBSyxDQUFDLEtBQUssQ0FDWixDQUFDO1lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQ0wsTUFBTSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDbkQsTUFBTSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLHVCQUF1QjtZQUNuRSxNQUFNLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUN2RCxDQUFDO1lBQ0QsZUFBTSxDQUFDLEdBQUcsQ0FDUixVQUFVLElBQUksQ0FBQyxZQUFZLDBCQUEwQixNQUFNLENBQUMsTUFBTSxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFDeEYsS0FBSyxDQUFDLElBQUksQ0FDWCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9ELGVBQU0sQ0FBQyxHQUFHLENBQ1IsVUFBVSxJQUFJLENBQUMsWUFBWSwwQkFBMEIsTUFBTSxDQUFDLE1BQU0sTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQ3hGLEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxvQkFBb0IsQ0FDNUIsV0FBd0I7UUFFeEIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO1lBQ3ZFLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvRCxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLGVBQWUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUMsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6RCxlQUFlLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTNDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxvQkFBb0IsQ0FDNUIsV0FBd0I7UUFFeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekQsZUFBZSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVTLDBCQUEwQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQXNDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXRDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlDQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FDL0Msa0JBQWtCLEVBQ2xCLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTlFRCxrQ0E4RUMifQ==
@@ -2,8 +2,11 @@ import * as CryptographyMessages from './scanoss/api/cryptography/v2/scanoss-cry
2
2
  import { BaseService, PurlRequest } from './BaseService';
3
3
  export interface AlgorithmResponse extends CryptographyMessages.AlgorithmResponse.AsObject {
4
4
  }
5
+ export interface HintsResponse extends CryptographyMessages.HintsInRangeResponse.AsObject {
6
+ }
5
7
  export declare class CryptographyService extends BaseService {
6
8
  private client;
7
9
  constructor(token: string, proxy?: string);
8
10
  getAlgorithms(req: PurlRequest): Promise<AlgorithmResponse>;
11
+ getEncryptionHints(req: PurlRequest): Promise<HintsResponse>;
9
12
  }
@@ -31,6 +31,21 @@ class CryptographyService extends BaseService_1.BaseService {
31
31
  });
32
32
  });
33
33
  }
34
+ async getEncryptionHints(req) {
35
+ return new Promise((resolve, reject) => {
36
+ this.client.getHintsInRange(this.buildGRPCPurlRequest(req), (err, response) => {
37
+ if (err)
38
+ reject(err);
39
+ try {
40
+ // @ts-ignore
41
+ resolve(this.handleResponse(response.toObject()));
42
+ }
43
+ catch (e) {
44
+ reject(e);
45
+ }
46
+ });
47
+ });
48
+ }
34
49
  }
35
50
  exports.CryptographyService = CryptographyService;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvU2VydmljZXMvR3JwYy9DcnlwdG9ncmFwaHlTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZHQUFnRztBQUVoRywrQ0FBeUQ7QUFDekQseUNBQXNFO0FBS3RFLE1BQWEsbUJBQW9CLFNBQVEseUJBQVc7SUFHbEQsWUFBWSxLQUFhLEVBQUUsS0FBYztRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQXNDLENBQUMsQ0FBQztRQUUxRCxJQUFJLEtBQUs7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUNsQyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQWdCO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFDOUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQztvQkFDSCxhQUFhO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwQ0Qsa0RBb0NDIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvU2VydmljZXMvR3JwYy9DcnlwdG9ncmFwaHlTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZHQUFnRztBQUVoRywrQ0FBeUQ7QUFDekQseUNBQXNFO0FBUXRFLE1BQWEsbUJBQW9CLFNBQVEseUJBQVc7SUFHbEQsWUFBWSxLQUFhLEVBQUUsS0FBYztRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQXNDLENBQUMsQ0FBQztRQUUxRCxJQUFJLEtBQUs7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlEQUFrQixDQUNsQyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQWdCO1FBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFDOUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQztvQkFDSCxhQUFhO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQWdCO1FBQzlDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFDOUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQztvQkFDSCxhQUFhO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFyREQsa0RBcURDIn0=
@@ -26,6 +26,70 @@ export namespace CryptographyService {
26
26
  export { serialize_scanoss_api_cryptography_v2_AlgorithmResponse as responseSerialize };
27
27
  export { deserialize_scanoss_api_cryptography_v2_AlgorithmResponse as responseDeserialize };
28
28
  }
29
+ namespace getAlgorithmsInRange {
30
+ let path_2: string;
31
+ export { path_2 as path };
32
+ let requestStream_2: boolean;
33
+ export { requestStream_2 as requestStream };
34
+ let responseStream_2: boolean;
35
+ export { responseStream_2 as responseStream };
36
+ let requestType_2: typeof scanoss_api_common_v2_scanoss$common_pb.PurlRequest;
37
+ export { requestType_2 as requestType };
38
+ let responseType_2: typeof scanoss_api_cryptography_v2_scanoss$cryptography_pb.AlgorithmsInRangeResponse;
39
+ export { responseType_2 as responseType };
40
+ export { serialize_scanoss_api_common_v2_PurlRequest as requestSerialize };
41
+ export { deserialize_scanoss_api_common_v2_PurlRequest as requestDeserialize };
42
+ export { serialize_scanoss_api_cryptography_v2_AlgorithmsInRangeResponse as responseSerialize };
43
+ export { deserialize_scanoss_api_cryptography_v2_AlgorithmsInRangeResponse as responseDeserialize };
44
+ }
45
+ namespace getVersionsInRange {
46
+ let path_3: string;
47
+ export { path_3 as path };
48
+ let requestStream_3: boolean;
49
+ export { requestStream_3 as requestStream };
50
+ let responseStream_3: boolean;
51
+ export { responseStream_3 as responseStream };
52
+ let requestType_3: typeof scanoss_api_common_v2_scanoss$common_pb.PurlRequest;
53
+ export { requestType_3 as requestType };
54
+ let responseType_3: typeof scanoss_api_cryptography_v2_scanoss$cryptography_pb.VersionsInRangeResponse;
55
+ export { responseType_3 as responseType };
56
+ export { serialize_scanoss_api_common_v2_PurlRequest as requestSerialize };
57
+ export { deserialize_scanoss_api_common_v2_PurlRequest as requestDeserialize };
58
+ export { serialize_scanoss_api_cryptography_v2_VersionsInRangeResponse as responseSerialize };
59
+ export { deserialize_scanoss_api_cryptography_v2_VersionsInRangeResponse as responseDeserialize };
60
+ }
61
+ namespace getHintsInRange {
62
+ let path_4: string;
63
+ export { path_4 as path };
64
+ let requestStream_4: boolean;
65
+ export { requestStream_4 as requestStream };
66
+ let responseStream_4: boolean;
67
+ export { responseStream_4 as responseStream };
68
+ let requestType_4: typeof scanoss_api_common_v2_scanoss$common_pb.PurlRequest;
69
+ export { requestType_4 as requestType };
70
+ let responseType_4: typeof scanoss_api_cryptography_v2_scanoss$cryptography_pb.HintsInRangeResponse;
71
+ export { responseType_4 as responseType };
72
+ export { serialize_scanoss_api_common_v2_PurlRequest as requestSerialize };
73
+ export { deserialize_scanoss_api_common_v2_PurlRequest as requestDeserialize };
74
+ export { serialize_scanoss_api_cryptography_v2_HintsInRangeResponse as responseSerialize };
75
+ export { deserialize_scanoss_api_cryptography_v2_HintsInRangeResponse as responseDeserialize };
76
+ }
77
+ namespace getEncryptionHints {
78
+ let path_5: string;
79
+ export { path_5 as path };
80
+ let requestStream_5: boolean;
81
+ export { requestStream_5 as requestStream };
82
+ let responseStream_5: boolean;
83
+ export { responseStream_5 as responseStream };
84
+ let requestType_5: typeof scanoss_api_common_v2_scanoss$common_pb.PurlRequest;
85
+ export { requestType_5 as requestType };
86
+ let responseType_5: typeof scanoss_api_cryptography_v2_scanoss$cryptography_pb.HintsResponse;
87
+ export { responseType_5 as responseType };
88
+ export { serialize_scanoss_api_common_v2_PurlRequest as requestSerialize };
89
+ export { deserialize_scanoss_api_common_v2_PurlRequest as requestDeserialize };
90
+ export { serialize_scanoss_api_cryptography_v2_HintsResponse as responseSerialize };
91
+ export { deserialize_scanoss_api_cryptography_v2_HintsResponse as responseDeserialize };
92
+ }
29
93
  }
30
94
  export const CryptographyClient: grpc.ServiceClientConstructor;
31
95
  import scanoss_api_common_v2_scanoss$common_pb = require("../../../../scanoss/api/common/v2/scanoss-common_pb.js");
@@ -38,5 +102,13 @@ declare function serialize_scanoss_api_common_v2_PurlRequest(arg: any): Buffer;
38
102
  declare function deserialize_scanoss_api_common_v2_PurlRequest(buffer_arg: any): scanoss_api_common_v2_scanoss$common_pb.PurlRequest;
39
103
  declare function serialize_scanoss_api_cryptography_v2_AlgorithmResponse(arg: any): Buffer;
40
104
  declare function deserialize_scanoss_api_cryptography_v2_AlgorithmResponse(buffer_arg: any): scanoss_api_cryptography_v2_scanoss$cryptography_pb.AlgorithmResponse;
105
+ declare function serialize_scanoss_api_cryptography_v2_AlgorithmsInRangeResponse(arg: any): Buffer;
106
+ declare function deserialize_scanoss_api_cryptography_v2_AlgorithmsInRangeResponse(buffer_arg: any): scanoss_api_cryptography_v2_scanoss$cryptography_pb.AlgorithmsInRangeResponse;
107
+ declare function serialize_scanoss_api_cryptography_v2_VersionsInRangeResponse(arg: any): Buffer;
108
+ declare function deserialize_scanoss_api_cryptography_v2_VersionsInRangeResponse(buffer_arg: any): scanoss_api_cryptography_v2_scanoss$cryptography_pb.VersionsInRangeResponse;
109
+ declare function serialize_scanoss_api_cryptography_v2_HintsInRangeResponse(arg: any): Buffer;
110
+ declare function deserialize_scanoss_api_cryptography_v2_HintsInRangeResponse(buffer_arg: any): scanoss_api_cryptography_v2_scanoss$cryptography_pb.HintsInRangeResponse;
111
+ declare function serialize_scanoss_api_cryptography_v2_HintsResponse(arg: any): Buffer;
112
+ declare function deserialize_scanoss_api_cryptography_v2_HintsResponse(buffer_arg: any): scanoss_api_cryptography_v2_scanoss$cryptography_pb.HintsResponse;
41
113
  import grpc = require("@grpc/grpc-js");
42
114
  export {};