scanoss 0.17.2 → 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 (182) hide show
  1. package/CHANGELOG.md +13 -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/Fingerprint.js +5 -2
  73. package/build/main/sdk/scanner/Scanner.d.ts +0 -1
  74. package/build/main/sdk/scanner/Scanner.js +2 -3
  75. package/build/main/sdk/scanner/ScannerCfg.d.ts +11 -0
  76. package/build/main/sdk/scanner/ScannerCfg.js +28 -2
  77. package/build/main/sdk/shared/interfaces/Component.d.ts +4 -0
  78. package/build/main/sdk/shared/interfaces/Component.js +3 -0
  79. package/build/main/tsconfig.tsbuildinfo +1 -1
  80. package/build/module/cli/bin/cli-bin.js +7 -2
  81. package/build/module/cli/commands/crypto.js +13 -8
  82. package/build/module/cli/commands/dep.js +17 -3
  83. package/build/module/cli/commands/scan.js +29 -25
  84. package/build/module/index.d.ts +4 -4
  85. package/build/module/index.js +4 -4
  86. package/build/module/sdk/BaseConfig.d.ts +87 -11
  87. package/build/module/sdk/BaseConfig.js +91 -7
  88. package/build/module/sdk/Clients/Cryptography/CryptographyClient.d.ts +20 -0
  89. package/build/module/sdk/Clients/Cryptography/CryptographyClient.js +131 -0
  90. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +10 -0
  91. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +54 -0
  92. package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +40 -0
  93. package/build/module/sdk/Clients/Cryptography/ICryptographyClient.js +2 -0
  94. package/build/module/sdk/{Services/Grpc/DependencyService.d.ts → Clients/Dependency/DependencyClient.d.ts} +5 -5
  95. package/build/module/sdk/Clients/Dependency/DependencyClient.js +74 -0
  96. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +9 -0
  97. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +59 -0
  98. package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +41 -0
  99. package/build/module/sdk/Clients/Dependency/IDependencyClient.js +2 -0
  100. package/build/module/sdk/{Services/Grpc/BaseService.d.ts → Clients/Grpc/BaseGRPCClient.d.ts} +6 -10
  101. package/build/module/sdk/Clients/Grpc/BaseGRPCClient.js +122 -0
  102. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +1 -1
  103. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.js +1 -1
  104. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.js +1 -1
  105. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.js +1 -1
  106. package/build/{main/sdk/Services → module/sdk/Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +1 -1
  107. package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1 -1
  108. package/build/module/sdk/{Services → Clients}/Transport/Transport.js +1 -1
  109. package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +5 -0
  110. package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.js +2 -0
  111. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +10 -0
  112. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +56 -0
  113. package/build/module/sdk/Clients/helper/clientHelper.d.ts +3 -0
  114. package/build/module/sdk/Clients/helper/clientHelper.js +21 -0
  115. package/build/module/sdk/{Services → Clients}/http/HttpClient.d.ts +5 -3
  116. package/build/module/sdk/Clients/http/HttpClient.js +82 -0
  117. package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +11 -0
  118. package/build/module/sdk/Clients/interfaces/ClientConfig.js +6 -0
  119. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +5 -5
  120. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +6 -6
  121. package/build/module/sdk/Cryptography/Algorithm/Files/FileAlgorithmScanner.js +3 -3
  122. package/build/module/sdk/Cryptography/CryptoCfg.d.ts +15 -37
  123. package/build/module/sdk/Cryptography/CryptoCfg.js +34 -40
  124. package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +2 -2
  125. package/build/module/sdk/Cryptography/CryptographyScanner.js +1 -1
  126. package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +4 -0
  127. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.d.ts +2 -2
  128. package/build/module/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.js +7 -7
  129. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +4 -4
  130. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +4 -4
  131. package/build/module/sdk/Cryptography/Hint/Files/FileHintScanner.js +3 -3
  132. package/build/module/sdk/Dependencies/DependencyScanner.d.ts +4 -4
  133. package/build/module/sdk/Dependencies/DependencyScanner.js +58 -42
  134. package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +20 -6
  135. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +50 -1
  136. package/build/module/sdk/Logger.d.ts +4 -2
  137. package/build/module/sdk/Logger.js +22 -7
  138. package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.d.ts +2 -2
  139. package/build/module/sdk/Report/DataLayer/DataProviders/ComponentDataProvider.js +1 -1
  140. package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.d.ts +3 -3
  141. package/build/module/sdk/Report/DataLayer/DataProviders/DependencyDataProvider.js +1 -1
  142. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.d.ts +2 -2
  143. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseDataProvider.js +1 -1
  144. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.d.ts +2 -2
  145. package/build/module/sdk/Report/DataLayer/DataProviders/LicenseObligationDataProvider.js +1 -1
  146. package/build/module/sdk/Vulnerability/VulnerabilityCfg.d.ts +29 -0
  147. package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +50 -0
  148. package/build/module/sdk/Vulnerability/VulnerabilityScanner.d.ts +8 -0
  149. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +32 -0
  150. package/build/module/sdk/scanner/Fingerprint.js +5 -2
  151. package/build/module/sdk/scanner/Scanner.d.ts +0 -1
  152. package/build/module/sdk/scanner/Scanner.js +2 -3
  153. package/build/module/sdk/scanner/ScannerCfg.d.ts +11 -0
  154. package/build/module/sdk/scanner/ScannerCfg.js +28 -2
  155. package/build/module/sdk/shared/interfaces/Component.d.ts +4 -0
  156. package/build/module/sdk/shared/interfaces/Component.js +2 -0
  157. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  158. package/package.json +1 -1
  159. package/build/main/sdk/Services/Grpc/BaseService.js +0 -159
  160. package/build/main/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
  161. package/build/main/sdk/Services/Grpc/CryptographyService.js +0 -58
  162. package/build/main/sdk/Services/Grpc/DependencyService.js +0 -101
  163. package/build/main/sdk/Services/http/HttpClient.js +0 -81
  164. package/build/module/sdk/Services/Grpc/BaseService.js +0 -131
  165. package/build/module/sdk/Services/Grpc/CryptographyService.d.ts +0 -20
  166. package/build/module/sdk/Services/Grpc/CryptographyService.js +0 -55
  167. package/build/module/sdk/Services/Grpc/DependencyService.js +0 -75
  168. package/build/module/sdk/Services/http/HttpClient.js +0 -75
  169. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  170. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  171. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
  172. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
  173. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  174. /package/build/main/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
  175. /package/build/main/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
  176. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
  177. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +0 -0
  178. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_grpc_pb.d.ts +0 -0
  179. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/cryptography/v2/scanoss-cryptography_pb.d.ts +0 -0
  180. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +0 -0
  181. /package/build/module/sdk/{Services → Clients}/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +0 -0
  182. /package/build/module/sdk/{Services → Clients}/Transport/Transport.d.ts +0 -0
@@ -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
  }
@@ -4,51 +4,45 @@ import { BaseConfig } from "../BaseConfig";
4
4
  */
5
5
  export class CryptoCfg extends BaseConfig {
6
6
  DEFAULT_THREADS = 5;
7
- algorithmRulesPath;
8
- libraryRulesPath;
9
- threads;
10
- apiKey;
11
- /**
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.
17
- */
7
+ ALGORITHM_RULES_PATH;
8
+ LIBRARY_RULES_PATH;
9
+ THREADS = this.DEFAULT_THREADS;
10
+ API_KEY = '';
18
11
  constructor(cfg) {
19
- super();
20
- this.algorithmRulesPath = cfg.algorithmRulesPath;
21
- this.libraryRulesPath = cfg.libraryRulesPath;
22
- this.threads = cfg.threads ? Number(cfg.threads) : this.DEFAULT_THREADS;
23
- this.apiKey = cfg.apiKey;
12
+ super(cfg);
13
+ if (cfg) {
14
+ this.API_KEY = cfg.API_KEY ? cfg.API_KEY : '';
15
+ }
24
16
  }
25
17
  /**
26
- * Gets the path to the cryptography algorithm rules file.
27
- * @returns The path to the cryptography rules file.
18
+ * Resolves the appropriate API URL based on API key presence and current URL.
19
+ * If an API key is provided and the current URL is the default, returns the premium
20
+ * URL, otherwise returns the current URL.
21
+ * @param apiKey - The API key (if any)
22
+ * @param currentUrl - The current API URL
23
+ * @returns The resolved API URL
28
24
  */
29
- getAlgorithmRulesPath() {
30
- return this.algorithmRulesPath;
31
- }
32
- /**
33
- * Gets the path to the cryptography library rules file.
34
- * @returns The path to the cryptography rules file.
35
- */
36
- getLibraryRulesPath() {
37
- return this.libraryRulesPath;
25
+ resolveApiUrl(apiKey, currentUrl) {
26
+ // Case 1: Has API key and using default URL -> upgrade to premium URL
27
+ if (apiKey && currentUrl === BaseConfig.getPremiumURL())
28
+ return BaseConfig.getPremiumURL();
29
+ // Case 2: Has API key and using custom URL -> keep custom URL
30
+ if (apiKey && currentUrl !== BaseConfig.getDefaultURL()) {
31
+ // Only remove /scan/direct for official SCANOSS API endpoints
32
+ if (currentUrl.startsWith(BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig.getDefaultURL())) {
33
+ return currentUrl.replace(/\/scan\/direct$/, '');
34
+ }
35
+ // For other custom URLs, return as-is
36
+ return currentUrl;
37
+ }
38
+ // Case 4: No API key and default/empty URL -> use default URL
39
+ return BaseConfig.getPremiumURL();
38
40
  }
39
- /**
40
- * Gets the number of threads to use on local crypto detection.
41
- * @returns The number of threads.
42
- **/
43
- getNumberOfThreads() {
44
- return this.threads;
41
+ get API_URL() {
42
+ return this.resolveApiUrl(this.API_KEY, super.API_URL);
45
43
  }
46
- /**
47
- * Gets the API Key set.
48
- * @returns The API Key.
49
- **/
50
- getApikey() {
51
- return this.apiKey;
44
+ set API_URL(value) {
45
+ super.API_URL = value;
52
46
  }
53
47
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFFdEIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUVuQixrQkFBa0IsQ0FBUztJQUUzQixnQkFBZ0IsQ0FBUztJQUV6QixPQUFPLENBQVM7SUFFaEIsTUFBTSxDQUFTO0lBR2pDOzs7Ozs7T0FNRztJQUNGLFlBQWEsR0FNQTtRQUNYLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVGOzs7T0FHRztJQUNLLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUY7OztNQUdFO0lBQ0ssbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O1FBR0k7SUFDRyxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Q0FFRiJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFFckIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUVyQyxvQkFBb0IsQ0FBUztJQUU3QixrQkFBa0IsQ0FBUztJQUUzQixPQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUV2QyxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBRXJCLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ1EsYUFBYSxDQUFDLE1BQWMsRUFBRSxVQUFrQjtRQUN0RCxzRUFBc0U7UUFDdEUsSUFBSSxNQUFNLElBQUksVUFBVSxLQUFLLFVBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsOERBQThEO1FBQzlELElBQUksTUFBTSxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN0RCw4REFBOEQ7WUFDOUQsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDM0csT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxzQ0FBc0M7WUFDdEMsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYTtRQUM5QixLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBRUgifQ==
@@ -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
  }
@@ -47,4 +47,4 @@ export class CryptographyScanner {
47
47
  return componentCryptoResultCollector.getResults();
48
48
  }
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU0vRCxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sK0RBQStELENBQUM7QUFDdkUsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hGLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJM0U7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUViLE1BQU0sQ0FBWTtJQUVuQyxZQUFZLEdBQWM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFvQjtRQUN6QyxNQUFNLHFCQUFxQixHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUNwRSxtRUFBbUU7UUFDbkUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBZ0I7UUFDMUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUM7UUFDbEYsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUNuSCxNQUFNLDBCQUEwQixHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sOEJBQThCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckQsQ0FBQztDQUNGIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUsvRCxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sK0RBQStELENBQUM7QUFDdkUsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2hGLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrREFBa0QsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLM0U7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUViLE1BQU0sQ0FBWTtJQUVuQyxZQUFZLEdBQWM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFvQjtRQUN6QyxNQUFNLHFCQUFxQixHQUFHLElBQUksK0JBQStCLEVBQUUsQ0FBQztRQUNwRSxtRUFBbUU7UUFDbkUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxPQUFPLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBZ0I7UUFDMUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLG9DQUFvQyxFQUFFLENBQUM7UUFDbEYsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUNuSCxNQUFNLDBCQUEwQixHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sK0JBQStCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sMEJBQTBCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sOEJBQThCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckQsQ0FBQztDQUNGIn0=
@@ -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.
@@ -28,11 +28,11 @@ export class ComponentCryptographyResultCollector {
28
28
  * @param algorithmResults The algorithm detection results to collect.
29
29
  */
30
30
  collectAlgorithmResults(algorithmResults) {
31
- algorithmResults.purlsList.forEach((p) => {
31
+ algorithmResults.purls.forEach((p) => {
32
32
  if (p.version) {
33
33
  const version = p.version.startsWith('v') ? p.version.slice(1) : p.version;
34
34
  const result = this.getOrCreateResult(p.purl, version);
35
- result.algorithms = p.algorithmsList;
35
+ result.algorithms = p.algorithms;
36
36
  }
37
37
  });
38
38
  }
@@ -41,11 +41,11 @@ export class ComponentCryptographyResultCollector {
41
41
  * @param hintResults The hint detection results to collect.
42
42
  */
43
43
  collectHintResults(hintResults) {
44
- hintResults.purlsList.forEach((h) => {
45
- if (h.versionsList.length > 0) {
46
- const version = h.versionsList[0].startsWith('v') ? h.versionsList[0].slice(1) : h.versionsList[0];
44
+ hintResults.purls.forEach((h) => {
45
+ if (h.versions.length > 0) {
46
+ const version = h.versions[0].startsWith('v') ? h.versions[0].slice(1) : h.versions[0];
47
47
  const result = this.getOrCreateResult(h.purl, version);
48
- result.hints = h.hintsList;
48
+ result.hints = h.hints;
49
49
  }
50
50
  });
51
51
  }
@@ -57,4 +57,4 @@ export class ComponentCryptographyResultCollector {
57
57
  return Array.from(this.resultMapper.values());
58
58
  }
59
59
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG9DQUFvQztJQUV2QyxZQUFZLEdBQUcsSUFBSSxHQUt6QixDQUFBO0lBRUY7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBYztRQUNwRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSx1QkFBdUIsQ0FBQyxnQkFBbUM7UUFDaEUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNkLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDM0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsV0FBMEI7UUFDbEQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25HLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVU7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FFRiJ9
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50Q3J5cHRvZ3JhcGh5UmVzdWx0Q29sbGV0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IZWxwZXIvUmVzdWx0Q29sbGVjdG9yL0NvbXBvbmVudC9Db21wb25lbnRDcnlwdG9ncmFwaHlSZXN1bHRDb2xsZXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLG9DQUFvQztJQUV2QyxZQUFZLEdBQUcsSUFBSSxHQUt6QixDQUFBO0lBRUY7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBYztRQUNwRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSx1QkFBdUIsQ0FBQyxnQkFBbUM7UUFDaEUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNkLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDM0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsV0FBaUM7UUFDekQsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVU7UUFDYixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FFRiJ9
@@ -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,5 +1,5 @@
1
- import { CryptographyService } from "../../../Services/Grpc/CryptographyService";
2
1
  import { BaseCryptographyScanner } from "../../BaseCryptographyScanner";
2
+ import { CryptographyClient } from "../../../Clients/Cryptography/CryptographyClient";
3
3
  /**
4
4
  * Scanner for detecting cryptographic hints in software components.
5
5
  * This class extends the base cryptography scanner to specifically handle
@@ -14,13 +14,13 @@ export class ComponentHintScanner extends BaseCryptographyScanner {
14
14
  * @returns {HintsResponse} A promise that resolves to a HintsResponse containing detected cryptographic hints.
15
15
  */
16
16
  async scan(req) {
17
- const cryptographyService = new CryptographyService(this.config.getApikey(), // API KEY
17
+ const cryptographyClient = new CryptographyClient(this.config.API_KEY, // API KEY
18
18
  this.config.API_URL, // Destination Host
19
19
  this.config.GRPC_PROXY, // Proxy Host
20
20
  this.config.CA_CERT);
21
- const results = await cryptographyService.getEncryptionHints(req);
21
+ const results = await cryptographyClient.getEncryptionHints(req);
22
22
  this.resultCollector.collectHintResults(results);
23
23
  return results;
24
24
  }
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG1CQUFtQixFQUNYLE1BQU0sNENBQTRDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFeEU7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFDWCxTQUFRLHVCQUdRO0lBRWhCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixDQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFVBQVU7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWE7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEY7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxvQkFDWCxTQUFRLHVCQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixDQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiJ9
@@ -25,7 +25,7 @@ export class FileHintScanner extends BaseCryptographyScanner {
25
25
  * @returns A promise that resolves to an array of job objects configured for hint analysis.
26
26
  */
27
27
  async buildJobs(files) {
28
- const rules = await this.loadRules(this.config.getLibraryRulesPath());
28
+ const rules = await this.loadRules(this.config.LIBRARY_RULES_PATH);
29
29
  const jobs = [];
30
30
  files.forEach((f) => {
31
31
  const newJob = new Job({
@@ -42,7 +42,7 @@ export class FileHintScanner extends BaseCryptographyScanner {
42
42
  * @returns A promise that resolves to an ILocalCryptographyResponse.
43
43
  */
44
44
  async scan(files) {
45
- const workerPool = new WorkerPool(cryptographyHintProcessor, this.config.getNumberOfThreads());
45
+ const workerPool = new WorkerPool(cryptographyHintProcessor, this.config.THREADS);
46
46
  const jobs = await this.buildJobs(files);
47
47
  workerPool.loadJobs(jobs);
48
48
  const results = await workerPool.run();
@@ -59,4 +59,4 @@ export class FileHintScanner extends BaseCryptographyScanner {
59
59
  return JSON.parse(rules);
60
60
  }
61
61
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3JELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXhFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQ1gsU0FBUSx1QkFHdUI7SUFFZCxvQ0FBb0MsR0FBRyxtQ0FBbUMsQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0gsWUFBWSxTQUFvQixFQUFFLGVBQWdEO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBZTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLEdBQW1DLEVBQUUsQ0FBQztRQUNoRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQXFCO2dCQUN6QyxJQUFJLEVBQUMsQ0FBQztnQkFDTixLQUFLO2FBQ04sQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQW9CO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUE0Qyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxSSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FJRiJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUhpbnRTY2FubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvSGludC9GaWxlcy9GaWxlSGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3JELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXhFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQ1gsU0FBUSx1QkFHdUI7SUFFZCxvQ0FBb0MsR0FBRyxtQ0FBbUMsQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0gsWUFBWSxTQUFvQixFQUFFLGVBQWdEO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBZTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxHQUFtQyxFQUFFLENBQUM7UUFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFxQjtnQkFDekMsSUFBSSxFQUFDLENBQUM7Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBNEMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3SCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2hELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQWlCO1FBQ3ZDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUNyRCxTQUFTLEVBQ1QsK0JBQStCLEVBQUUsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FJRiJ9
@@ -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;
@@ -1,19 +1,20 @@
1
- import { DependencyService } from '../Services/Grpc/DependencyService';
2
- import { DependencyRequest, } from '../Services/Grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb';
3
1
  import { LocalDependencies } from './LocalDependency/LocalDependency';
4
2
  import { DependencyScannerCfg } from './DependencyScannerCfg';
5
3
  import { PackageURL } from 'packageurl-js';
6
4
  import fs from 'fs';
7
5
  import { Tree } from '../tree/Tree';
8
6
  import { logger } from "../Logger";
7
+ import { DependencyHttpClient } from "../Clients/Dependency/DependencyHttpClient";
9
8
  export class DependencyScanner {
10
9
  localDependency;
11
- grpcDependencyService;
10
+ dependencyClient;
12
11
  config = new DependencyScannerCfg();
13
12
  constructor(cfg) {
14
13
  if (cfg)
15
14
  this.config = cfg;
16
- this.grpcDependencyService = new DependencyService(this.config.API_URL, this.config.GRPC_PROXY, this.config.CA_CERT);
15
+ else
16
+ this.config = new DependencyScannerCfg();
17
+ this.dependencyClient = new DependencyHttpClient(this.config.API_KEY, this.config.API_URL, this.config.IGNORE_CERT_ERRORS, this.config.HTTPS_PROXY, this.config.CA_CERT);
17
18
  this.localDependency = new LocalDependencies();
18
19
  }
19
20
  async scanFolder(path) {
@@ -26,7 +27,7 @@ export class DependencyScanner {
26
27
  async scan(files) {
27
28
  let localDependencies = await this.localDependency.search(files);
28
29
  if (localDependencies.files.length === 0)
29
- return { filesList: [] };
30
+ return { filesList: [], status: { status: 'success', message: 'No dependencies found' } };
30
31
  localDependencies = this.purlAdapter(localDependencies);
31
32
  const requests = this.buildRequests(localDependencies);
32
33
  const response = await this.getDependencies(requests);
@@ -34,39 +35,55 @@ export class DependencyScanner {
34
35
  return response;
35
36
  }
36
37
  async getDependencies(requests) {
37
- const responseMapper = new Map;
38
+ const responseMapper = new Map();
39
+ let overallStatus = { status: 'success', message: 'Success' };
40
+ const failedRequests = [];
41
+ let err = null;
38
42
  for (const request of requests) {
39
43
  try {
40
- const grpcResponse = await this.grpcDependencyService.get(request);
41
- const file = grpcResponse.getFilesList()[0].getFile();
42
- const responseToObject = grpcResponse.toObject();
43
- if (responseMapper.has(file)) {
44
- responseMapper.get(file).filesList[0].dependenciesList.push(...responseToObject.filesList[0].dependenciesList);
45
- // Change response status if one response is not success
46
- if (responseToObject.status.message !== "Success") {
47
- responseMapper.get(file).status = responseToObject.status.message;
44
+ const dependencyResponse = await this.dependencyClient.getDependencies(request);
45
+ dependencyResponse.filesList.forEach((file) => {
46
+ if (responseMapper.has(file.file)) {
47
+ const existingFile = responseMapper.get(file.file);
48
+ existingFile.dependenciesList.push(...file.dependenciesList);
49
+ // Update status if current file has an error
50
+ if (file.status !== 'success' && existingFile.status === 'success') {
51
+ existingFile.status = file.status;
52
+ }
48
53
  }
49
- }
50
- else {
51
- responseMapper.set(file, responseToObject);
54
+ else {
55
+ responseMapper.set(file.file, {
56
+ file: file.file,
57
+ dependenciesList: [...file.dependenciesList],
58
+ status: file.status,
59
+ id: file.id
60
+ });
61
+ }
62
+ });
63
+ // Update overall status if any request failed
64
+ if (dependencyResponse.status.status !== 'success') {
65
+ overallStatus = dependencyResponse.status;
52
66
  }
53
67
  }
54
68
  catch (e) {
55
- console.error(e);
56
- logger.log(`Error while scanning dependencies.", ${request.getFilesList()[0].getFile()}, ${request.getFilesList()[0].getPurlsList()}`);
69
+ logger.debug(`Error while scanning dependencies: ${JSON.stringify(request, null, 2)}`);
70
+ err = e.message;
71
+ failedRequests.push(request);
57
72
  }
58
73
  }
59
- const response = {
60
- filesList: [],
61
- status: 'Success',
74
+ if (err) {
75
+ logger.error(`ERROR: ${err}`);
76
+ }
77
+ if (failedRequests.length > 0) {
78
+ overallStatus = { status: 'SUCCEEDED WITH WARNINGS', message: 'Warning: some dependencies were not scanned' };
79
+ }
80
+ if (failedRequests.length > 0 && failedRequests.length >= requests.length) {
81
+ overallStatus = { status: 'FAILED', message: 'Error while scanning dependencies' };
82
+ }
83
+ return {
84
+ filesList: Array.from(responseMapper.values()),
85
+ status: overallStatus
62
86
  };
63
- responseMapper.forEach((depResponse) => {
64
- response.filesList.push(depResponse.filesList[0]);
65
- if (depResponse.status !== 'Success') {
66
- response.status = depResponse.status;
67
- }
68
- });
69
- return response;
70
87
  }
71
88
  purlAdapter(localDependencies) {
72
89
  for (const file of localDependencies.files) {
@@ -96,18 +113,17 @@ export class DependencyScanner {
96
113
  for (const file of localDependencies.files) {
97
114
  const chunkedPurls = this.chunkPurls(file.purls);
98
115
  for (const purls of chunkedPurls) {
99
- const depRequest = new DependencyRequest();
100
- depRequest.setDepth(1);
101
- const fileMsg = new DependencyRequest.Files();
102
- fileMsg.setFile(file.file);
103
- for (const purl of purls) {
104
- const purlMsg = new DependencyRequest.Purls();
105
- purlMsg.setPurl(purl.purl);
106
- if (purl?.requirement)
107
- purlMsg.setRequirement(purl.requirement);
108
- fileMsg.addPurls(purlMsg);
109
- }
110
- depRequest.addFiles(fileMsg);
116
+ const depRequest = {
117
+ files: [
118
+ {
119
+ file: file.file,
120
+ purls: purls.map(purl => ({
121
+ purl: purl.purl,
122
+ requirement: purl.requirement
123
+ }))
124
+ }
125
+ ]
126
+ };
111
127
  requests.push(depRequest);
112
128
  }
113
129
  }
@@ -148,4 +164,4 @@ export class DependencyScanner {
148
164
  }
149
165
  }
150
166
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsaUJBQWlCLEdBRWxCLE1BQU0sc0VBQXNFLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE1BQU0sT0FBTyxpQkFBaUI7SUFDcEIsZUFBZSxDQUFvQjtJQUVuQyxxQkFBcUIsQ0FBb0I7SUFFekMsTUFBTSxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFFbEUsWUFBWSxHQUEwQjtRQUVwQyxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLENBQUMs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
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFRbEYsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixlQUFlLENBQW9CO0lBRW5DLGdCQUFnQixDQUFvQjtJQUVwQyxNQUFNLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUVsRSxZQUFZLEdBQTBCO1FBQ3BDLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDOztZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxD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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
  }