scanoss 0.17.3 → 0.18.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 (180) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/build/main/cli/bin/cli-bin.js +7 -2
  3. package/build/main/cli/commands/crypto.js +13 -8
  4. package/build/main/cli/commands/dep.js +17 -3
  5. package/build/main/cli/commands/scan.js +29 -25
  6. package/build/main/index.d.ts +4 -4
  7. package/build/main/index.js +4 -4
  8. package/build/main/sdk/BaseConfig.d.ts +87 -11
  9. package/build/main/sdk/BaseConfig.js +92 -7
  10. package/build/main/sdk/Clients/Cryptography/CryptographyClient.d.ts +20 -0
  11. package/build/main/sdk/Clients/Cryptography/CryptographyClient.js +142 -0
  12. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +10 -0
  13. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +56 -0
  14. package/build/main/sdk/Clients/Cryptography/ICryptographyClient.d.ts +40 -0
  15. package/build/main/sdk/Clients/Cryptography/ICryptographyClient.js +3 -0
  16. package/build/main/sdk/{Services/Grpc/DependencyService.d.ts → Clients/Dependency/DependencyClient.d.ts} +5 -5
  17. package/build/main/sdk/Clients/Dependency/DependencyClient.js +100 -0
  18. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.d.ts +9 -0
  19. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.js +61 -0
  20. package/build/main/sdk/Clients/Dependency/IDependencyClient.d.ts +41 -0
  21. package/build/main/sdk/Clients/Dependency/IDependencyClient.js +3 -0
  22. package/build/main/sdk/{Services/Grpc/BaseService.d.ts → Clients/Grpc/BaseGRPCClient.d.ts} +6 -10
  23. package/build/main/sdk/Clients/Grpc/BaseGRPCClient.js +150 -0
  24. package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -1
  25. package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +1 -1
  26. package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +1 -1
  27. package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1 -1
  28. package/build/{module/sdk/Services → main/sdk/Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +1 -1
  29. package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1 -1
  30. package/build/main/sdk/{Services → Clients}/Transport/Transport.js +1 -1
  31. package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +5 -0
  32. package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.js +3 -0
  33. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +10 -0
  34. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +58 -0
  35. package/build/main/sdk/Clients/helper/clientHelper.d.ts +3 -0
  36. package/build/main/sdk/Clients/helper/clientHelper.js +25 -0
  37. package/build/main/sdk/{Services → Clients}/http/HttpClient.d.ts +5 -3
  38. package/build/main/sdk/Clients/http/HttpClient.js +88 -0
  39. package/build/main/sdk/Clients/interfaces/ClientConfig.d.ts +11 -0
  40. package/build/main/sdk/Clients/interfaces/ClientConfig.js +9 -0
  41. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +5 -5
  42. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +6 -6
  43. package/build/main/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +3 -3
  44. package/build/main/sdk/Cryptography/CryptoCfg.d.ts +15 -37
  45. package/build/main/sdk/Cryptography/CryptoCfg.js +32 -36
  46. package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +2 -2
  47. package/build/main/sdk/Cryptography/CryptographyScanner.js +1 -1
  48. package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +4 -0
  49. package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +2 -2
  50. package/build/main/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +7 -7
  51. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +4 -4
  52. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +4 -4
  53. package/build/main/sdk/Cryptography/Hint/Files/FileHintScanner.js +3 -3
  54. package/build/main/sdk/Dependencies/DependencyScanner.d.ts +4 -4
  55. package/build/main/sdk/Dependencies/DependencyScanner.js +57 -41
  56. package/build/main/sdk/Dependencies/DependencyScannerCfg.d.ts +20 -6
  57. package/build/main/sdk/Dependencies/DependencyScannerCfg.js +50 -1
  58. package/build/main/sdk/Logger.d.ts +4 -2
  59. package/build/main/sdk/Logger.js +22 -6
  60. package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +2 -2
  61. package/build/main/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +1 -1
  62. package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.d.ts +3 -3
  63. package/build/main/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +1 -1
  64. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.d.ts +2 -2
  65. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +1 -1
  66. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +2 -2
  67. package/build/main/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +1 -1
  68. package/build/main/sdk/Vulnerability/VulnerabilityCfg.d.ts +29 -0
  69. package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +54 -0
  70. package/build/main/sdk/Vulnerability/VulnerabilityScanner.d.ts +8 -0
  71. package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +34 -0
  72. package/build/main/sdk/scanner/Scanner.d.ts +0 -1
  73. package/build/main/sdk/scanner/Scanner.js +2 -3
  74. package/build/main/sdk/scanner/ScannerCfg.d.ts +11 -0
  75. package/build/main/sdk/scanner/ScannerCfg.js +28 -2
  76. package/build/main/sdk/shared/interfaces/Component.d.ts +4 -0
  77. package/build/main/sdk/shared/interfaces/Component.js +3 -0
  78. package/build/main/tsconfig.tsbuildinfo +1 -1
  79. package/build/module/cli/bin/cli-bin.js +7 -2
  80. package/build/module/cli/commands/crypto.js +13 -8
  81. package/build/module/cli/commands/dep.js +17 -3
  82. package/build/module/cli/commands/scan.js +29 -25
  83. package/build/module/index.d.ts +4 -4
  84. package/build/module/index.js +4 -4
  85. package/build/module/sdk/BaseConfig.d.ts +87 -11
  86. package/build/module/sdk/BaseConfig.js +91 -7
  87. package/build/module/sdk/Clients/Cryptography/CryptographyClient.d.ts +20 -0
  88. package/build/module/sdk/Clients/Cryptography/CryptographyClient.js +131 -0
  89. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +10 -0
  90. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +54 -0
  91. package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +40 -0
  92. package/build/module/sdk/Clients/Cryptography/ICryptographyClient.js +2 -0
  93. package/build/module/sdk/{Services/Grpc/DependencyService.d.ts → Clients/Dependency/DependencyClient.d.ts} +5 -5
  94. package/build/module/sdk/Clients/Dependency/DependencyClient.js +74 -0
  95. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +9 -0
  96. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +59 -0
  97. package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +41 -0
  98. package/build/module/sdk/Clients/Dependency/IDependencyClient.js +2 -0
  99. package/build/module/sdk/{Services/Grpc/BaseService.d.ts → Clients/Grpc/BaseGRPCClient.d.ts} +6 -10
  100. package/build/module/sdk/Clients/Grpc/BaseGRPCClient.js +122 -0
  101. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -1
  102. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +1 -1
  103. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +1 -1
  104. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1 -1
  105. package/build/{main/sdk/Services → module/sdk/Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +1 -1
  106. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1 -1
  107. package/build/module/sdk/{Services → Clients}/Transport/Transport.js +1 -1
  108. package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +5 -0
  109. package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.js +2 -0
  110. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +10 -0
  111. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +56 -0
  112. package/build/module/sdk/Clients/helper/clientHelper.d.ts +3 -0
  113. package/build/module/sdk/Clients/helper/clientHelper.js +21 -0
  114. package/build/module/sdk/{Services → Clients}/http/HttpClient.d.ts +5 -3
  115. package/build/module/sdk/Clients/http/HttpClient.js +82 -0
  116. package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +11 -0
  117. package/build/module/sdk/Clients/interfaces/ClientConfig.js +6 -0
  118. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +5 -5
  119. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +6 -6
  120. package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +3 -3
  121. package/build/module/sdk/Cryptography/CryptoCfg.d.ts +15 -37
  122. package/build/module/sdk/Cryptography/CryptoCfg.js +34 -40
  123. package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +2 -2
  124. package/build/module/sdk/Cryptography/CryptographyScanner.js +1 -1
  125. package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +4 -0
  126. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +2 -2
  127. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +7 -7
  128. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +4 -4
  129. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +4 -4
  130. package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.js +3 -3
  131. package/build/module/sdk/Dependencies/DependencyScanner.d.ts +4 -4
  132. package/build/module/sdk/Dependencies/DependencyScanner.js +58 -42
  133. package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +20 -6
  134. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +50 -1
  135. package/build/module/sdk/Logger.d.ts +4 -2
  136. package/build/module/sdk/Logger.js +22 -7
  137. package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +2 -2
  138. package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +1 -1
  139. package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.d.ts +3 -3
  140. package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +1 -1
  141. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.d.ts +2 -2
  142. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +1 -1
  143. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +2 -2
  144. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +1 -1
  145. package/build/module/sdk/Vulnerability/VulnerabilityCfg.d.ts +29 -0
  146. package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +50 -0
  147. package/build/module/sdk/Vulnerability/VulnerabilityScanner.d.ts +8 -0
  148. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +32 -0
  149. package/build/module/sdk/scanner/Scanner.d.ts +0 -1
  150. package/build/module/sdk/scanner/Scanner.js +2 -3
  151. package/build/module/sdk/scanner/ScannerCfg.d.ts +11 -0
  152. package/build/module/sdk/scanner/ScannerCfg.js +28 -2
  153. package/build/module/sdk/shared/interfaces/Component.d.ts +4 -0
  154. package/build/module/sdk/shared/interfaces/Component.js +2 -0
  155. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  156. package/package.json +1 -1
  157. package/build/main/sdk/Services/Grpc/BaseService.js +0 -159
  158. package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
  159. package/build/main/sdk/Services/Grpc/CryptographyService.js +0 -58
  160. package/build/main/sdk/Services/Grpc/DependencyService.js +0 -101
  161. package/build/main/sdk/Services/http/HttpClient.js +0 -81
  162. package/build/module/sdk/Services/Grpc/BaseService.js +0 -131
  163. package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
  164. package/build/module/sdk/Services/Grpc/CryptographyService.js +0 -55
  165. package/build/module/sdk/Services/Grpc/DependencyService.js +0 -75
  166. package/build/module/sdk/Services/http/HttpClient.js +0 -75
  167. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  168. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  169. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
  170. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
  171. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  172. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
  173. /package/build/main/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
  174. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  175. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  176. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
  177. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
  178. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  179. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
  180. /package/build/module/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
@@ -33,7 +33,7 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
33
33
  @returns A promise that resolves to an array of job objects configured for crypto analysis.
34
34
  */
35
35
  async buildJobs(files) {
36
- const cryptographyRules = await this.loadRules(this.config.getAlgorithmRulesPath());
36
+ const cryptographyRules = await this.loadRules(this.config.ALGORITHM_RULES_PATH);
37
37
  const rules = (0, Helper_1.createCryptoKeywordMapper)(cryptographyRules);
38
38
  const cryptoMapper = (0, Helper_1.getCryptoMapper)(cryptographyRules);
39
39
  const localCryptoJobs = [];
@@ -53,7 +53,7 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
53
53
  * @returns A promise that resolves to an ILocalCryptographyResponse.
54
54
  */
55
55
  async scan(files) {
56
- const workerPool = new WorkerPool_1.WorkerPool(AlgorithmProcessor_1.cryptographyAlgorithmProcessor, this.config.getNumberOfThreads());
56
+ const workerPool = new WorkerPool_1.WorkerPool(AlgorithmProcessor_1.cryptographyAlgorithmProcessor, this.config.THREADS);
57
57
  const jobs = await this.buildJobs(files);
58
58
  workerPool.loadJobs(jobs);
59
59
  const results = await workerPool.run();
@@ -84,4 +84,4 @@ class FileAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptographySca
84
84
  }
85
85
  }
86
86
  exports.FileAlgorithmScanner = FileAlgorithmScanner;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFsZ29yaXRobVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9BbGdvcml0aG0vRmlsZXMvRmlsZUFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDZDQUEwQztBQVExQyxnREFBd0I7QUFDeEIsNENBR3lCO0FBQ3pCLHdEQUFxRDtBQUNyRCxzRUFBbUU7QUFDbkUsNkRBQXNFO0FBQ3RFLDJFQUF3RTtBQU14RTs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsaURBR047SUFJbEM7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLDJDQUFzQyxHQUFHLHFDQUFxQyxDQUFDO0lBU2hHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDcEYsTUFBTSxLQUFLLEdBQUcsSUFBQSxrQ0FBeUIsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLElBQUEsd0JBQWUsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sZUFBZSxHQUF3QyxFQUFFLENBQUM7UUFDaEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBRyxDQUEwQjtnQkFDOUMsSUFBSSxFQUFDLENBQUM7Z0JBQ04sS0FBSztnQkFDTCxZQUFZO2FBQ2IsQ0FBQyxDQUFDO1lBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQXNELG1EQUE4QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pKLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxjQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQS9FRCxvREErRUMifQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFsZ29yaXRobVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9BbGdvcml0aG0vRmlsZXMvRmlsZUFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBQ3BCLDZDQUEwQztBQU8xQyxnREFBd0I7QUFDeEIsNENBR3lCO0FBQ3pCLHdEQUFxRDtBQUNyRCxzRUFBbUU7QUFDbkUsNkRBQXNFO0FBQ3RFLDJFQUF3RTtBQU14RTs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsaURBR047SUFJbEM7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLDJDQUFzQyxHQUFHLHFDQUFxQyxDQUFDO0lBU2hHLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sS0FBSyxHQUFHLElBQUEsa0NBQXlCLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFBLHdCQUFlLEVBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxNQUFNLGVBQWUsR0FBd0MsRUFBRSxDQUFDO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQUcsQ0FBMEI7Z0JBQzlDLElBQUksRUFBQyxDQUFDO2dCQUNOLEtBQUs7Z0JBQ0wsWUFBWTthQUNiLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFzRCxtREFBOEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxjQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDaEYsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FFRjtBQS9FRCxvREErRUMifQ==
@@ -1,45 +1,23 @@
1
- import { BaseConfig, IBaseConfig } from "../BaseConfig";
1
+ import { BaseConfig } from "../BaseConfig";
2
2
  /**
3
3
  * Represents a configuration for cryptography scanner.
4
4
  */
5
5
  export declare class CryptoCfg extends BaseConfig {
6
6
  private readonly DEFAULT_THREADS;
7
- private readonly algorithmRulesPath;
8
- private readonly libraryRulesPath;
9
- private readonly threads;
10
- private readonly apiKey;
7
+ ALGORITHM_RULES_PATH: string;
8
+ LIBRARY_RULES_PATH: string;
9
+ THREADS: number;
10
+ API_KEY: string;
11
+ constructor(cfg?: CryptoCfg);
11
12
  /**
12
- * Creates an instance of CryptoCfg.
13
- * @param {Object} cfg - Configuration object.
14
- * @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
15
- * @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
16
- * @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
13
+ * Resolves the appropriate API URL based on API key presence and current URL.
14
+ * If an API key is provided and the current URL is the default, returns the premium
15
+ * URL, otherwise returns the current URL.
16
+ * @param apiKey - The API key (if any)
17
+ * @param currentUrl - The current API URL
18
+ * @returns The resolved API URL
17
19
  */
18
- constructor(cfg: {
19
- threads?: number;
20
- algorithmRulesPath?: string;
21
- libraryRulesPath?: string;
22
- apiKey?: string;
23
- proxy?: string;
24
- } & IBaseConfig);
25
- /**
26
- * Gets the path to the cryptography algorithm rules file.
27
- * @returns The path to the cryptography rules file.
28
- */
29
- getAlgorithmRulesPath(): string;
30
- /**
31
- * Gets the path to the cryptography library rules file.
32
- * @returns The path to the cryptography rules file.
33
- */
34
- getLibraryRulesPath(): string;
35
- /**
36
- * Gets the number of threads to use on local crypto detection.
37
- * @returns The number of threads.
38
- **/
39
- getNumberOfThreads(): number;
40
- /**
41
- * Gets the API Key set.
42
- * @returns The API Key.
43
- **/
44
- getApikey(): string;
20
+ protected resolveApiUrl(apiKey: string, currentUrl: string): string;
21
+ get API_URL(): string;
22
+ set API_URL(value: string);
45
23
  }
@@ -6,49 +6,45 @@ const BaseConfig_1 = require("../BaseConfig");
6
6
  * Represents a configuration for cryptography scanner.
7
7
  */
8
8
  class CryptoCfg extends BaseConfig_1.BaseConfig {
9
- /**
10
- * Creates an instance of CryptoCfg.
11
- * @param {Object} cfg - Configuration object.
12
- * @param {number} [cfg.threads=5] - The number of threads to use. Defaults to 5 if not provided.
13
- * @param {string} [cfg.rulesPath] - Optional. Path to the cryptography rules file.
14
- * @param {string} [cfg.apiKey] - Optional. SCANOSS API Key.
15
- */
16
9
  constructor(cfg) {
17
- super();
10
+ super(cfg);
18
11
  this.DEFAULT_THREADS = 5;
19
- this.algorithmRulesPath = cfg.algorithmRulesPath;
20
- this.libraryRulesPath = cfg.libraryRulesPath;
21
- this.threads = cfg.threads ? Number(cfg.threads) : this.DEFAULT_THREADS;
22
- this.apiKey = cfg.apiKey;
12
+ this.THREADS = this.DEFAULT_THREADS;
13
+ this.API_KEY = '';
14
+ if (cfg) {
15
+ this.API_KEY = cfg.API_KEY ? cfg.API_KEY : '';
16
+ }
23
17
  }
24
18
  /**
25
- * Gets the path to the cryptography algorithm rules file.
26
- * @returns The path to the cryptography rules file.
19
+ * Resolves the appropriate API URL based on API key presence and current URL.
20
+ * If an API key is provided and the current URL is the default, returns the premium
21
+ * URL, otherwise returns the current URL.
22
+ * @param apiKey - The API key (if any)
23
+ * @param currentUrl - The current API URL
24
+ * @returns The resolved API URL
27
25
  */
28
- getAlgorithmRulesPath() {
29
- return this.algorithmRulesPath;
30
- }
31
- /**
32
- * Gets the path to the cryptography library rules file.
33
- * @returns The path to the cryptography rules file.
34
- */
35
- getLibraryRulesPath() {
36
- return this.libraryRulesPath;
26
+ resolveApiUrl(apiKey, currentUrl) {
27
+ // Case 1: Has API key and using default URL -> upgrade to premium URL
28
+ if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getPremiumURL())
29
+ return BaseConfig_1.BaseConfig.getPremiumURL();
30
+ // Case 2: Has API key and using custom URL -> keep custom URL
31
+ if (apiKey && currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL()) {
32
+ // Only remove /scan/direct for official SCANOSS API endpoints
33
+ if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
34
+ return currentUrl.replace(/\/scan\/direct$/, '');
35
+ }
36
+ // For other custom URLs, return as-is
37
+ return currentUrl;
38
+ }
39
+ // Case 4: No API key and default/empty URL -> use default URL
40
+ return BaseConfig_1.BaseConfig.getPremiumURL();
37
41
  }
38
- /**
39
- * Gets the number of threads to use on local crypto detection.
40
- * @returns The number of threads.
41
- **/
42
- getNumberOfThreads() {
43
- return this.threads;
42
+ get API_URL() {
43
+ return this.resolveApiUrl(this.API_KEY, super.API_URL);
44
44
  }
45
- /**
46
- * Gets the API Key set.
47
- * @returns The API Key.
48
- **/
49
- getApikey() {
50
- return this.apiKey;
45
+ set API_URL(value) {
46
+ super.API_URL = value;
51
47
  }
52
48
  }
53
49
  exports.CryptoCfg = CryptoCfg;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUF3RDtBQUV4RDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBYXZDOzs7Ozs7T0FNRztJQUNGLFlBQWEsR0FNQTtRQUNYLEtBQUssRUFBRSxDQUFDO1FBekJNLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBMEJsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUY7OztPQUdHO0lBQ0sscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRjs7O01BR0U7SUFDSyxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7UUFHSTtJQUNHLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUVGO0FBbEVELDhCQWtFQyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBWXRDLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFYSSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU1yQyxZQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV2QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBSW5CLElBQUcsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDUSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3RELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3RELDhEQUE4RDtZQUM5RCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0Qsc0NBQXNDO1lBQ3RDLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQzlCLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7Q0FFSDtBQXBERCw4QkFvREMifQ==
@@ -1,6 +1,6 @@
1
1
  import { CryptoCfg } from "./CryptoCfg";
2
2
  import { CryptographyResponse, LocalCryptographyResponse } from "./CryptographyTypes";
3
- import { PurlRequest } from "../Services/Grpc/BaseService";
3
+ import { Component } from "../shared/interfaces/Component";
4
4
  /**
5
5
  * Provides functionality to scan files and components for cryptographic items.
6
6
  * This class acts as the primary entry point for cryptographic scanning.
@@ -21,5 +21,5 @@ export declare class CryptographyScanner {
21
21
  * @param req A request containing PURL's to scan
22
22
  * @returns {CryptographyResponse} A promise that resolves to an array of CryptographyResponse objects.
23
23
  */
24
- scanComponents(req: PurlRequest): Promise<Array<CryptographyResponse>>;
24
+ scanComponents(req: Component[]): Promise<Array<CryptographyResponse>>;
25
25
  }
@@ -50,4 +50,4 @@ class CryptographyScanner {
50
50
  }
51
51
  }
52
52
  exports.CryptographyScanner = CryptographyScanner;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUZBRWdEO0FBQ2hELGtFQUErRDtBQU0vRCxtSEFFdUU7QUFDdkUsZ0lBRWdGO0FBQ2hGLGdHQUUwRDtBQUMxRCxpRkFFZ0Q7QUFDaEQsb0VBQTJFO0FBSTNFOzs7R0FHRztBQUNILE1BQWEsbUJBQW1CO0lBSTlCLFlBQVksR0FBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQW9CO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpRUFBK0IsRUFBRSxDQUFDO1FBQ3BFLG1FQUFtRTtRQUNuRSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzRixNQUFNLGlCQUFpQixHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsaURBQTRCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFnQjtRQUMxQyxNQUFNLDhCQUE4QixHQUFHLElBQUksMEVBQW9DLEVBQUUsQ0FBQztRQUNsRixNQUFNLCtCQUErQixHQUFHLElBQUkscURBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDekcsTUFBTSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUF4Q0Qsa0RBd0NDIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUZBRWdEO0FBQ2hELGtFQUErRDtBQUsvRCxtSEFFdUU7QUFDdkUsZ0lBRWdGO0FBQ2hGLGdHQUUwRDtBQUMxRCxpRkFFZ0Q7QUFDaEQsb0VBQTJFO0FBSzNFOzs7R0FHRztBQUNILE1BQWEsbUJBQW1CO0lBSTlCLFlBQVksR0FBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQW9CO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpRUFBK0IsRUFBRSxDQUFDO1FBQ3BFLG1FQUFtRTtRQUNuRSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzRixNQUFNLGlCQUFpQixHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsaURBQTRCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFnQjtRQUMxQyxNQUFNLDhCQUE4QixHQUFHLElBQUksMEVBQW9DLEVBQUUsQ0FBQztRQUNsRixNQUFNLCtCQUErQixHQUFHLElBQUkscURBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDekcsTUFBTSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUF4Q0Qsa0RBd0NDIn0=
@@ -1,3 +1,4 @@
1
+ import { Component } from "../shared/interfaces/Component";
1
2
  export interface CryptoAlgorithm {
2
3
  algorithm: string;
3
4
  strength: string;
@@ -62,3 +63,6 @@ export interface CryptographyResponse {
62
63
  algorithms: Array<CryptoAlgorithmResponse>;
63
64
  hints: Array<CryptoHintResponse>;
64
65
  }
66
+ export interface CryptoRequest {
67
+ purls: Component[];
68
+ }
@@ -1,5 +1,5 @@
1
1
  import { CryptographyResponse } from "../../../CryptographyTypes";
2
- import { AlgorithmResponse, HintsResponse } from "../../../../Services/Grpc/CryptographyService";
2
+ import { AlgorithmResponse, HintsInRangeResponse } from "../../../../Clients/Cryptography/ICryptographyClient";
3
3
  /**
4
4
  * Collects and organizes cryptographic scan results for software components.
5
5
  * This class maintains a mapping of component identifiers to their respective
@@ -23,7 +23,7 @@ export declare class ComponentCryptographyResultCollector {
23
23
  * Collects hint detection results and organizes them by component.
24
24
  * @param hintResults The hint detection results to collect.
25
25
  */
26
- collectHintResults(hintResults: HintsResponse): void;
26
+ collectHintResults(hintResults: HintsInRangeResponse): void;
27
27
  /**
28
28
  * Retrieves all collected cryptography results.
29
29
  * @returns An array of cryptography responses, one for each component.
@@ -33,11 +33,11 @@ class ComponentCryptographyResultCollector {
33
33
  * @param algorithmResults The algorithm detection results to collect.
34
34
  */
35
35
  collectAlgorithmResults(algorithmResults) {
36
- algorithmResults.purlsList.forEach((p) => {
36
+ algorithmResults.purls.forEach((p) => {
37
37
  if (p.version) {
38
38
  const version = p.version.startsWith('v') ? p.version.slice(1) : p.version;
39
39
  const result = this.getOrCreateResult(p.purl, version);
40
- result.algorithms = p.algorithmsList;
40
+ result.algorithms = p.algorithms;
41
41
  }
42
42
  });
43
43
  }
@@ -46,11 +46,11 @@ class ComponentCryptographyResultCollector {
46
46
  * @param hintResults The hint detection results to collect.
47
47
  */
48
48
  collectHintResults(hintResults) {
49
- hintResults.purlsList.forEach((h) => {
50
- if (h.versionsList.length > 0) {
51
- const version = h.versionsList[0].startsWith('v') ? h.versionsList[0].slice(1) : h.versionsList[0];
49
+ hintResults.purls.forEach((h) => {
50
+ if (h.versions.length > 0) {
51
+ const version = h.versions[0].startsWith('v') ? h.versions[0].slice(1) : h.versions[0];
52
52
  const result = this.getOrCreateResult(h.purl, version);
53
- result.hints = h.hintsList;
53
+ result.hints = h.hints;
54
54
  }
55
55
  });
56
56
  }
@@ -63,4 +63,4 @@ class ComponentCryptographyResultCollector {
63
63
  }
64
64
  }
65
65
  exports.ComponentCryptographyResultCollector = ComponentCryptographyResultCollector;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQTs7OztHQUlHO0FBQ0gsTUFBYSxvQ0FBb0M7SUFBakQ7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FLekIsQ0FBQTtJQXlESixDQUFDO0lBdkRDOzs7OztPQUtHO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsZ0JBQW1DO1FBQ2hFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzNFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQixDQUFDLFdBQTBCO1FBQ2xELFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBRUY7QUFoRUQsb0ZBZ0VDIn0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQTs7OztHQUlHO0FBQ0gsTUFBYSxvQ0FBb0M7SUFBakQ7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FLekIsQ0FBQTtJQXlESixDQUFDO0lBdkRDOzs7OztPQUtHO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsZ0JBQW1DO1FBQ2hFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQzNFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQixDQUFDLFdBQWlDO1FBQ3pELFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBRUY7QUFoRUQsb0ZBZ0VDIn0=
@@ -1,13 +1,13 @@
1
1
  import { ComponentCryptographyResultCollector } from "../../Helper/ResultCollector/Component/ComponentCryptographyResultColletor";
2
- import { PurlRequest } from "../../../Services/Grpc/BaseService";
3
- import { HintsResponse } from "../../../Services/Grpc/CryptographyService";
4
2
  import { BaseCryptographyScanner } from "../../BaseCryptographyScanner";
3
+ import { Component } from "../../../shared/interfaces/Component";
4
+ import { HintsInRangeResponse } from "../../../Clients/Cryptography/ICryptographyClient";
5
5
  /**
6
6
  * Scanner for detecting cryptographic hints in software components.
7
7
  * This class extends the base cryptography scanner to specifically handle
8
8
  * component-level cryptographic hint detection using a remote service.
9
9
  */
10
- export declare class ComponentHintScanner extends BaseCryptographyScanner<ComponentCryptographyResultCollector, PurlRequest, HintsResponse> {
10
+ export declare class ComponentHintScanner extends BaseCryptographyScanner<ComponentCryptographyResultCollector, Component[], HintsInRangeResponse> {
11
11
  /**
12
12
  * Scans components identified by PURL for cryptographic hints.
13
13
  * This method connects to a cryptography service to retrieve encryption
@@ -15,5 +15,5 @@ export declare class ComponentHintScanner extends BaseCryptographyScanner<Compon
15
15
  * @param req A request containing PURL (Package URL) identifiers for components to scan.
16
16
  * @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
17
17
  */
18
- scan(req: PurlRequest): Promise<HintsResponse>;
18
+ scan(req: Component[]): Promise<HintsInRangeResponse>;
19
19
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComponentHintScanner = void 0;
4
- const CryptographyService_1 = require("../../../Services/Grpc/CryptographyService");
5
4
  const BaseCryptographyScanner_1 = require("../../BaseCryptographyScanner");
5
+ const CryptographyClient_1 = require("../../../Clients/Cryptography/CryptographyClient");
6
6
  /**
7
7
  * Scanner for detecting cryptographic hints in software components.
8
8
  * This class extends the base cryptography scanner to specifically handle
@@ -17,14 +17,14 @@ class ComponentHintScanner extends BaseCryptographyScanner_1.BaseCryptographySca
17
17
  * @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
18
18
  */
19
19
  async scan(req) {
20
- const cryptographyService = new CryptographyService_1.CryptographyService(this.config.getApikey(), // API KEY
20
+ const cryptographyClient = new CryptographyClient_1.CryptographyClient(this.config.API_KEY, // API KEY
21
21
  this.config.API_URL, // Destination Host
22
22
  this.config.GRPC_PROXY, // Proxy Host
23
23
  this.config.CA_CERT);
24
- const results = await cryptographyService.getEncryptionHints(req);
24
+ const results = await cryptographyClient.getEncryptionHints(req);
25
25
  this.resultCollector.collectHintResults(results);
26
26
  return results;
27
27
  }
28
28
  }
29
29
  exports.ComponentHintScanner = ComponentHintScanner;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsb0ZBQ29FO0FBQ3BFLDJFQUF3RTtBQUV4RTs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdRO0lBRWhCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHlDQUFtQixDQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFVBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWE7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdkJELG9EQXVCQyJ9
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkVBQXdFO0FBR3hFLHlGQUFzRjtBQUV0Rjs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHVDQUFrQixDQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXZCRCxvREF1QkMifQ==
@@ -31,7 +31,7 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
31
31
  * @returns A promise that resolves to an array of job objects configured for hint analysis.
32
32
  */
33
33
  async buildJobs(files) {
34
- const rules = await this.loadRules(this.config.getLibraryRulesPath());
34
+ const rules = await this.loadRules(this.config.LIBRARY_RULES_PATH);
35
35
  const jobs = [];
36
36
  files.forEach((f) => {
37
37
  const newJob = new Job_1.Job({
@@ -48,7 +48,7 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
48
48
  * @returns A promise that resolves to an ILocalCryptographyResponse.
49
49
  */
50
50
  async scan(files) {
51
- const workerPool = new WorkerPool_1.WorkerPool(HintProcessor_1.cryptographyHintProcessor, this.config.getNumberOfThreads());
51
+ const workerPool = new WorkerPool_1.WorkerPool(HintProcessor_1.cryptographyHintProcessor, this.config.THREADS);
52
52
  const jobs = await this.buildJobs(files);
53
53
  workerPool.loadJobs(jobs);
54
54
  const results = await workerPool.run();
@@ -66,4 +66,4 @@ class FileHintScanner extends BaseCryptographyScanner_1.BaseCryptographyScanner
66
66
  }
67
67
  }
68
68
  exports.FileHintScanner = FileHintScanner;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esd0RBQXFEO0FBS3JELGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsc0VBQW1FO0FBQ25FLG1EQUE0RDtBQUM1RCwyRUFBd0U7QUFNeEU7O0dBRUc7QUFDSCxNQUFhLGVBQ1gsU0FBUSxpREFHdUI7SUFJL0I7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLHlDQUFvQyxHQUFHLG1DQUFtQyxDQUFDO0lBUzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxHQUFtQyxFQUFFLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBRyxDQUFxQjtnQkFDekMsSUFBSSxFQUFDLENBQUM7Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQTRDLHlDQUF5QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzFJLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBaUI7UUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLGNBQUksQ0FBQyxJQUFJLENBQ3JELFNBQVMsRUFDVCwrQkFBK0IsRUFBRSxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUlGO0FBakVELDBDQWlFQyJ9
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esd0RBQXFEO0FBS3JELGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsc0VBQW1FO0FBQ25FLG1EQUE0RDtBQUM1RCwyRUFBd0U7QUFNeEU7O0dBRUc7QUFDSCxNQUFhLGVBQ1gsU0FBUSxpREFHdUI7SUFJL0I7Ozs7T0FJRztJQUNILFlBQVksU0FBb0IsRUFBRSxlQUFnRDtRQUNoRixLQUFLLENBQUMsU0FBUyxFQUFDLGVBQWUsQ0FBQyxDQUFDO1FBUmxCLHlDQUFvQyxHQUFHLG1DQUFtQyxDQUFDO0lBUzVGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBbUMsRUFBRSxDQUFDO1FBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQUcsQ0FBcUI7Z0JBQ3pDLElBQUksRUFBQyxDQUFDO2dCQUNOLEtBQUs7YUFDTixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUE0Qyx5Q0FBeUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDaEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBaUI7UUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFFLGNBQUksQ0FBQyxJQUFJLENBQ3JELFNBQVMsRUFDVCwrQkFBK0IsRUFBRSxJQUFJLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUM5RSxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUlGO0FBakVELDBDQWlFQyJ9
@@ -1,12 +1,12 @@
1
1
  import { DependencyScannerCfg } from './DependencyScannerCfg';
2
- import { IDependencyResponse } from './DependencyTypes';
2
+ import { DependencyResponse } from "../Clients/Dependency/IDependencyClient";
3
3
  export declare class DependencyScanner {
4
4
  private localDependency;
5
- private grpcDependencyService;
5
+ private dependencyClient;
6
6
  private config;
7
7
  constructor(cfg?: DependencyScannerCfg);
8
- scanFolder(path: string): Promise<IDependencyResponse>;
9
- scan(files: Array<string>): Promise<IDependencyResponse>;
8
+ scanFolder(path: string): Promise<DependencyResponse>;
9
+ scan(files: Array<string>): Promise<DependencyResponse>;
10
10
  private getDependencies;
11
11
  private purlAdapter;
12
12
  private chunkPurls;
@@ -4,20 +4,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DependencyScanner = void 0;
7
- const DependencyService_1 = require("../Services/Grpc/DependencyService");
8
- const scanoss_dependencies_pb_1 = require("../Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb");
9
7
  const LocalDependency_1 = require("./LocalDependency/LocalDependency");
10
8
  const DependencyScannerCfg_1 = require("./DependencyScannerCfg");
11
9
  const packageurl_js_1 = require("packageurl-js");
12
10
  const fs_1 = __importDefault(require("fs"));
13
11
  const Tree_1 = require("../tree/Tree");
14
12
  const Logger_1 = require("../Logger");
13
+ const DependencyHttpClient_1 = require("../Clients/Dependency/DependencyHttpClient");
15
14
  class DependencyScanner {
16
15
  constructor(cfg) {
17
16
  this.config = new DependencyScannerCfg_1.DependencyScannerCfg();
18
17
  if (cfg)
19
18
  this.config = cfg;
20
- this.grpcDependencyService = new DependencyService_1.DependencyService(this.config.API_URL, this.config.GRPC_PROXY, this.config.CA_CERT);
19
+ else
20
+ this.config = new DependencyScannerCfg_1.DependencyScannerCfg();
21
+ this.dependencyClient = new DependencyHttpClient_1.DependencyHttpClient(this.config.API_KEY, this.config.API_URL, this.config.IGNORE_CERT_ERRORS, this.config.HTTPS_PROXY, this.config.CA_CERT);
21
22
  this.localDependency = new LocalDependency_1.LocalDependencies();
22
23
  }
23
24
  async scanFolder(path) {
@@ -30,7 +31,7 @@ class DependencyScanner {
30
31
  async scan(files) {
31
32
  let localDependencies = await this.localDependency.search(files);
32
33
  if (localDependencies.files.length === 0)
33
- return { filesList: [] };
34
+ return { filesList: [], status: { status: 'success', message: 'No dependencies found' } };
34
35
  localDependencies = this.purlAdapter(localDependencies);
35
36
  const requests = this.buildRequests(localDependencies);
36
37
  const response = await this.getDependencies(requests);
@@ -38,39 +39,55 @@ class DependencyScanner {
38
39
  return response;
39
40
  }
40
41
  async getDependencies(requests) {
41
- const responseMapper = new Map;
42
+ const responseMapper = new Map();
43
+ let overallStatus = { status: 'success', message: 'Success' };
44
+ const failedRequests = [];
45
+ let err = null;
42
46
  for (const request of requests) {
43
47
  try {
44
- const grpcResponse = await this.grpcDependencyService.get(request);
45
- const file = grpcResponse.getFilesList()[0].getFile();
46
- const responseToObject = grpcResponse.toObject();
47
- if (responseMapper.has(file)) {
48
- responseMapper.get(file).filesList[0].dependenciesList.push(...responseToObject.filesList[0].dependenciesList);
49
- // Change response status if one response is not success
50
- if (responseToObject.status.message !== "Success") {
51
- responseMapper.get(file).status = responseToObject.status.message;
48
+ const dependencyResponse = await this.dependencyClient.getDependencies(request);
49
+ dependencyResponse.filesList.forEach((file) => {
50
+ if (responseMapper.has(file.file)) {
51
+ const existingFile = responseMapper.get(file.file);
52
+ existingFile.dependenciesList.push(...file.dependenciesList);
53
+ // Update status if current file has an error
54
+ if (file.status !== 'success' && existingFile.status === 'success') {
55
+ existingFile.status = file.status;
56
+ }
52
57
  }
53
- }
54
- else {
55
- responseMapper.set(file, responseToObject);
58
+ else {
59
+ responseMapper.set(file.file, {
60
+ file: file.file,
61
+ dependenciesList: [...file.dependenciesList],
62
+ status: file.status,
63
+ id: file.id
64
+ });
65
+ }
66
+ });
67
+ // Update overall status if any request failed
68
+ if (dependencyResponse.status.status !== 'success') {
69
+ overallStatus = dependencyResponse.status;
56
70
  }
57
71
  }
58
72
  catch (e) {
59
- console.error(e);
60
- Logger_1.logger.log(`Error while scanning dependencies.", ${request.getFilesList()[0].getFile()}, ${request.getFilesList()[0].getPurlsList()}`);
73
+ Logger_1.logger.debug(`Error while scanning dependencies: ${JSON.stringify(request, null, 2)}`);
74
+ err = e.message;
75
+ failedRequests.push(request);
61
76
  }
62
77
  }
63
- const response = {
64
- filesList: [],
65
- status: 'Success',
78
+ if (err) {
79
+ Logger_1.logger.error(`ERROR: ${err}`);
80
+ }
81
+ if (failedRequests.length > 0) {
82
+ overallStatus = { status: 'SUCCEEDED WITH WARNINGS', message: 'Warning: some dependencies were not scanned' };
83
+ }
84
+ if (failedRequests.length > 0 && failedRequests.length >= requests.length) {
85
+ overallStatus = { status: 'FAILED', message: 'Error while scanning dependencies' };
86
+ }
87
+ return {
88
+ filesList: Array.from(responseMapper.values()),
89
+ status: overallStatus
66
90
  };
67
- responseMapper.forEach((depResponse) => {
68
- response.filesList.push(depResponse.filesList[0]);
69
- if (depResponse.status !== 'Success') {
70
- response.status = depResponse.status;
71
- }
72
- });
73
- return response;
74
91
  }
75
92
  purlAdapter(localDependencies) {
76
93
  for (const file of localDependencies.files) {
@@ -100,18 +117,17 @@ class DependencyScanner {
100
117
  for (const file of localDependencies.files) {
101
118
  const chunkedPurls = this.chunkPurls(file.purls);
102
119
  for (const purls of chunkedPurls) {
103
- const depRequest = new scanoss_dependencies_pb_1.DependencyRequest();
104
- depRequest.setDepth(1);
105
- const fileMsg = new scanoss_dependencies_pb_1.DependencyRequest.Files();
106
- fileMsg.setFile(file.file);
107
- for (const purl of purls) {
108
- const purlMsg = new scanoss_dependencies_pb_1.DependencyRequest.Purls();
109
- purlMsg.setPurl(purl.purl);
110
- if (purl === null || purl === void 0 ? void 0 : purl.requirement)
111
- purlMsg.setRequirement(purl.requirement);
112
- fileMsg.addPurls(purlMsg);
113
- }
114
- depRequest.addFiles(fileMsg);
120
+ const depRequest = {
121
+ files: [
122
+ {
123
+ file: file.file,
124
+ purls: purls.map(purl => ({
125
+ purl: purl.purl,
126
+ requirement: purl.requirement
127
+ }))
128
+ }
129
+ ]
130
+ };
115
131
  requests.push(depRequest);
116
132
  }
117
133
  }
@@ -153,4 +169,4 @@ class DependencyScanner {
153
169
  }
154
170
  }
155
171
  exports.DependencyScanner = DependencyScanner;
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwwRUFBdUU7QUFDdkUsa0hBRzhFO0FBQzlFLHVFQUFzRTtBQUN0RSxpRUFBOEQ7QUFFOUQsaURBQTJDO0FBQzNDLDRDQUFvQjtBQUNwQix1Q0FBb0M7QUFDcEMsc0NBQW1DO0FBRW5DLE1BQWEsaUJBQWlCO0lBTzVCLFlBQVksR0FBMEI7UUFGOUIsV0FBTSxHQUF5QixJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFJaEUsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksbUNBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1RUFBc0U7QUFDdEUsaUVBQThEO0FBQzlELGlEQUEyQztBQUMzQyw0Q0FBb0I7QUFDcEIsdUNBQW9DO0FBQ3BDLHNDQUFtQztBQUNuQyxxRkFBa0Y7QUFRbEYsTUFBYSxpQkFBaUI7SUFPNUIsWUFBWSxHQUEwQjtRQUY5QixXQUFNLEdBQXlCLElBQUksMkNBQW9CLEVBQUUsQ0FBQztRQUdoRSxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzs7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDdEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksbUNBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElB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
@@ -1,10 +1,24 @@
1
- import { BaseConfig, IBaseConfig } from "../BaseConfig";
2
- export interface IDependencyScannerCfg extends IBaseConfig {
3
- CHUNK_REQUEST_SIZE?: number;
4
- }
1
+ import { BaseConfig } from "../BaseConfig";
5
2
  export declare class DependencyScannerCfg extends BaseConfig {
6
- private _CHUNK_REQUEST_SIZE;
7
- constructor(config?: IDependencyScannerCfg);
3
+ _IGNORE_CERT_ERRORS: boolean;
4
+ _API_KEY: string;
5
+ _CHUNK_REQUEST_SIZE: number;
6
+ constructor(config?: DependencyScannerCfg);
8
7
  get CHUNK_REQUEST_SIZE(): number;
9
8
  set CHUNK_REQUEST_SIZE(value: number);
9
+ get API_KEY(): string;
10
+ set API_KEY(value: string);
11
+ get IGNORE_CERT_ERRORS(): boolean;
12
+ set IGNORE_CERT_ERRORS(value: boolean);
13
+ /**
14
+ * Resolves the appropriate scanner URL based on API key presence and current URL.
15
+ * If an API key is provided and the current URL is the default, returns the premium
16
+ * scanner URL, otherwise appends '/scan/direct' to the current URL.
17
+ * @param apiKey - The API key (if any)
18
+ * @param currentUrl - The current API URL
19
+ * @returns The resolved scanner URL
20
+ */
21
+ protected resolveApiUrl(apiKey: string, currentUrl: string): string;
22
+ get API_URL(): string;
23
+ set API_URL(url: string);
10
24
  }