scanoss 0.21.1 → 0.22.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 (94) hide show
  1. package/CHANGELOG.md +16 -4
  2. package/build/main/cli/bin/cli-bin.js +37 -1
  3. package/build/main/cli/commands/components.d.ts +1 -0
  4. package/build/main/cli/commands/components.js +98 -0
  5. package/build/main/cli/commands/scan.js +8 -3
  6. package/build/main/index.d.ts +6 -0
  7. package/build/main/index.js +9 -1
  8. package/build/main/sdk/BaseConfig.d.ts +5 -1
  9. package/build/main/sdk/BaseConfig.js +6 -2
  10. package/build/main/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
  11. package/build/main/sdk/Clients/Components/ComponentsGRPCClient.js +33 -0
  12. package/build/main/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
  13. package/build/main/sdk/Clients/Components/ComponentsHttpClient.js +122 -0
  14. package/build/main/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
  15. package/build/main/sdk/Clients/Components/IComponentsClient.js +3 -0
  16. package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
  17. package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.js +4 -1
  18. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
  19. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +28 -12
  20. package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
  21. package/build/main/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
  22. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
  23. package/build/main/sdk/Clients/Dependency/DependencyHttpClient.js +27 -13
  24. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
  25. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
  26. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
  27. package/build/main/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
  28. package/build/main/sdk/Clients/Transport/Transport.d.ts +4 -4
  29. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
  30. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -13
  31. package/build/main/sdk/Clients/http/HttpClient.d.ts +8 -16
  32. package/build/main/sdk/Clients/http/HttpClient.js +4 -1
  33. package/build/main/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
  34. package/build/main/sdk/Clients/interfaces/ClientConfig.js +1 -7
  35. package/build/main/sdk/Components/ComponentsScanner.d.ts +34 -0
  36. package/build/main/sdk/Components/ComponentsScanner.js +123 -0
  37. package/build/main/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
  38. package/build/main/sdk/Components/ComponentsScannerCfg.js +54 -0
  39. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
  40. package/build/main/sdk/Cryptography/CryptoCfg.js +8 -11
  41. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
  42. package/build/main/sdk/Dependencies/DependencyScanner.js +13 -4
  43. package/build/main/sdk/Dependencies/DependencyScannerCfg.js +8 -11
  44. package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
  45. package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
  46. package/build/main/sdk/scanner/ScannerCfg.js +10 -11
  47. package/build/main/tsconfig.tsbuildinfo +1 -1
  48. package/build/module/cli/bin/cli-bin.js +37 -1
  49. package/build/module/cli/commands/components.d.ts +1 -0
  50. package/build/module/cli/commands/components.js +92 -0
  51. package/build/module/cli/commands/scan.js +8 -3
  52. package/build/module/index.d.ts +6 -0
  53. package/build/module/index.js +9 -1
  54. package/build/module/sdk/BaseConfig.d.ts +5 -1
  55. package/build/module/sdk/BaseConfig.js +6 -2
  56. package/build/module/sdk/Clients/Components/ComponentsGRPCClient.d.ts +13 -0
  57. package/build/module/sdk/Clients/Components/ComponentsGRPCClient.js +29 -0
  58. package/build/module/sdk/Clients/Components/ComponentsHttpClient.d.ts +37 -0
  59. package/build/module/sdk/Clients/Components/ComponentsHttpClient.js +118 -0
  60. package/build/module/sdk/Clients/Components/IComponentsClient.d.ts +71 -0
  61. package/build/module/sdk/Clients/Components/IComponentsClient.js +2 -0
  62. package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.d.ts +3 -0
  63. package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.js +4 -1
  64. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +22 -3
  65. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +28 -14
  66. package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.d.ts +3 -0
  67. package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.js +4 -1
  68. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.d.ts +22 -3
  69. package/build/module/sdk/Clients/Dependency/DependencyHttpClient.js +27 -15
  70. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.d.ts +81 -0
  71. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_grpc_pb.js +160 -0
  72. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.d.ts +1 -0
  73. package/build/module/sdk/Clients/Grpc/scanoss/api/components/v2/scanoss-components_pb.js +2313 -0
  74. package/build/module/sdk/Clients/Transport/Transport.d.ts +4 -4
  75. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +2 -3
  76. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +7 -15
  77. package/build/module/sdk/Clients/http/HttpClient.d.ts +8 -16
  78. package/build/module/sdk/Clients/http/HttpClient.js +4 -1
  79. package/build/module/sdk/Clients/interfaces/ClientConfig.d.ts +8 -9
  80. package/build/module/sdk/Clients/interfaces/ClientConfig.js +2 -6
  81. package/build/module/sdk/Components/ComponentsScanner.d.ts +34 -0
  82. package/build/module/sdk/Components/ComponentsScanner.js +119 -0
  83. package/build/module/sdk/Components/ComponentsScannerCfg.d.ts +21 -0
  84. package/build/module/sdk/Components/ComponentsScannerCfg.js +50 -0
  85. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +12 -6
  86. package/build/module/sdk/Cryptography/CryptoCfg.js +8 -11
  87. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +12 -6
  88. package/build/module/sdk/Dependencies/DependencyScanner.js +13 -4
  89. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +8 -11
  90. package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +8 -11
  91. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +11 -2
  92. package/build/module/sdk/scanner/ScannerCfg.js +10 -11
  93. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  94. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import FormData from 'form-data';
2
2
  export declare abstract class Transport<T1> {
3
- abstract get(url: string): Promise<T1>;
4
- abstract post(url: string, body: FormData): Promise<T1>;
5
- abstract put(url: string, body: FormData): Promise<T1>;
6
- abstract delete(url: string): Promise<T1>;
3
+ protected abstract get(url: string): Promise<T1>;
4
+ protected abstract post(url: string, body: FormData): Promise<T1>;
5
+ protected abstract put(url: string, body: FormData): Promise<T1>;
6
+ protected abstract delete(url: string): Promise<T1>;
7
7
  }
@@ -2,10 +2,9 @@ import { HttpClient } from "../http/HttpClient";
2
2
  import { IVulnerabilityClient } from "./IVulnerabilityClient";
3
3
  import { Component } from "../../types/common/types";
4
4
  import { ComponentsVulnerabilitiesResponse, ComponentVulnerabilityResponse } from "../../types/vulnerability/types";
5
+ import { ClientConfig } from "../interfaces/ClientConfig";
5
6
  export declare class VulnerabilityHttpClient extends HttpClient implements IVulnerabilityClient {
6
- private client;
7
- private readonly baseUrl;
8
- constructor(token: string, hostName: string, ignoreCertErrors?: boolean, proxyHost?: string, caCertPath?: string);
7
+ constructor(clientConfig: ClientConfig);
9
8
  getVulnerabilitiesComponents(components: Array<Component>): Promise<ComponentsVulnerabilitiesResponse>;
10
9
  getVulnerabilitiesComponent(component: Component): Promise<ComponentVulnerabilityResponse>;
11
10
  }
@@ -4,21 +4,14 @@ exports.VulnerabilityHttpClient = void 0;
4
4
  const HttpClient_1 = require("../http/HttpClient");
5
5
  const Logger_1 = require("../../Logger");
6
6
  class VulnerabilityHttpClient extends HttpClient_1.HttpClient {
7
- constructor(token, hostName, ignoreCertErrors = false, proxyHost, caCertPath) {
8
- super();
9
- this.client = new HttpClient_1.HttpClient({
10
- HOST_URL: hostName,
11
- API_KEY: token,
12
- HTTPS_PROXY: proxyHost,
13
- CA_CERT: caCertPath,
14
- IGNORE_CERT_ERRORS: ignoreCertErrors
15
- });
16
- this.baseUrl = hostName;
7
+ constructor(clientConfig) {
8
+ super(clientConfig);
17
9
  }
18
10
  async getVulnerabilitiesComponents(components) {
19
11
  try {
12
+ const baseURL = this.hostURL();
20
13
  Logger_1.logger.debug(`Getting vulnerabilities for ${components.map((c) => JSON.stringify(c, null, 2))} components`);
21
- const response = await this.client.post(`${this.baseUrl}/v2/vulnerabilities/components`, { components: components });
14
+ const response = await this.post(`${baseURL}/v2/vulnerabilities/components`, { components: components });
22
15
  if (response.ok) {
23
16
  return await response.json();
24
17
  }
@@ -32,12 +25,13 @@ class VulnerabilityHttpClient extends HttpClient_1.HttpClient {
32
25
  }
33
26
  async getVulnerabilitiesComponent(component) {
34
27
  try {
28
+ const baseURL = this.hostURL();
35
29
  const queryParams = new URLSearchParams();
36
30
  queryParams.append('purl', component.purl);
37
31
  if (component.requirement) {
38
32
  queryParams.append('requirement', component.requirement);
39
33
  }
40
- const response = await this.client.get(`${this.baseUrl}/api/v2/vulnerabilities/component?${queryParams.toString()}`);
34
+ const response = await this.get(`${baseURL}/api/v2/vulnerabilities/component?${queryParams.toString()}`);
41
35
  if (response.ok) {
42
36
  return await response.json();
43
37
  }
@@ -51,4 +45,4 @@ class VulnerabilityHttpClient extends HttpClient_1.HttpClient {
51
45
  }
52
46
  }
53
47
  exports.VulnerabilityHttpClient = VulnerabilityHttpClient;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUh0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFFaEQseUNBQXNDO0FBSXRDLE1BQWEsdUJBQXdCLFNBQVEsdUJBQVU7SUFJckQsWUFBWSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxtQkFBNEIsS0FBSyxFQUFFLFNBQWtCLEVBQUUsVUFBbUI7UUFDckgsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksdUJBQVUsQ0FBQztZQUMzQixRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLGtCQUFrQixFQUFFLGdCQUFnQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLFVBQTRCO1FBQ3BFLElBQUksQ0FBQztZQUNILGVBQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0NBQWdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNySCxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQXVDLENBQUM7WUFDcEUsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUM7WUFDL0csTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFvQjtRQUMzRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8scUNBQXFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEgsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFvQyxDQUFDO1lBQ2pFLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRyxrQ0FBa0MsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxNQUFNLFNBQVMsRUFBRSxDQUFDO1lBQy9HLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpERCwwREFpREMifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUh0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFFaEQseUNBQXNDO0FBS3RDLE1BQWEsdUJBQXdCLFNBQVEsdUJBQVU7SUFFckQsWUFBWSxZQUEwQjtRQUNwQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxVQUE0QjtRQUNwRSxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsZUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pHLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sZ0NBQWdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN6RyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQXVDLENBQUM7WUFDcEUsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUM7WUFDL0csTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFvQjtRQUMzRCxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUMxQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFCLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUksTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxxQ0FBcUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQW9DLENBQUM7WUFDakUsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUM7WUFDL0csTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekNELDBEQXlDQyJ9
@@ -1,24 +1,16 @@
1
1
  import { Response } from 'node-fetch';
2
2
  import { Transport } from '../Transport/Transport';
3
3
  import FormData from 'form-data';
4
- export interface HttpProxyConfig {
5
- PAC_PROXY?: string;
6
- API_KEY?: string;
7
- NO_PROXY?: string;
8
- HTTP_PROXY?: string;
9
- HTTPS_PROXY?: string;
10
- IGNORE_CERT_ERRORS?: boolean;
11
- CA_CERT?: string;
12
- HOST_URL: string;
13
- }
4
+ import { ClientConfig } from "../interfaces/ClientConfig";
14
5
  export declare class HttpClient extends Transport<Response> {
15
6
  private readonly proxyAgent;
16
- protected cfg: HttpProxyConfig;
17
- constructor(cfg?: HttpProxyConfig);
7
+ protected cfg: ClientConfig;
8
+ constructor(cfg?: ClientConfig);
18
9
  private init;
19
- get(url: string): Promise<Response>;
20
- post(url: string, body: any): Promise<Response>;
21
- delete(url: string): Promise<Response>;
22
- put(url: string, body: FormData): Promise<Response>;
10
+ protected get(url: string): Promise<Response>;
11
+ protected post(url: string, body: any): Promise<Response>;
12
+ protected delete(url: string): Promise<Response>;
13
+ protected put(url: string, body: FormData): Promise<Response>;
23
14
  protected handleError(error: unknown, context: string): Error;
15
+ protected hostURL(): string;
24
16
  }
@@ -83,6 +83,9 @@ class HttpClient extends Transport_1.Transport {
83
83
  }
84
84
  return new Error(`${context}: Unknown error occurred`);
85
85
  }
86
+ hostURL() {
87
+ return this.cfg.HOST_URL;
88
+ }
86
89
  }
87
90
  exports.HttpClient = HttpClient;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ2xpZW50cy9odHRwL0h0dHBDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNERBQTZDO0FBQzdDLDZDQUF5QztBQUN6QyxzREFBbUQ7QUFDbkQsNkNBQTBDO0FBYTFDLE1BQWEsVUFBVyxTQUFRLHFCQUFtQjtJQUsvQyxZQUFZLEdBQXFCO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxJQUFJOztRQUNWLE1BQU0sT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlFLE1BQU0sV0FBVyxHQUFHO1lBQ3BCLFVBQVUsRUFBRSxPQUFPLEtBQUksTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxVQUFVLENBQUEsSUFBSSxFQUFFO1lBQ2pELFdBQVcsRUFBRyxPQUFPLEtBQUksTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxXQUFXLENBQUEsSUFBSSxFQUFFO1lBQ3BELFFBQVEsRUFBRSxDQUFBLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN4RCxPQUFPLEVBQUUsQ0FBQSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLE9BQU8sS0FBSSxJQUFJO1lBQ2xDLGtCQUFrQixF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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ2xpZW50cy9odHRwL0h0dHBDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNERBQTZDO0FBQzdDLDZDQUF5QztBQUN6QyxzREFBbUQ7QUFDbkQsNkNBQTBDO0FBSzFDLE1BQWEsVUFBVyxTQUFRLHFCQUFtQjtJQUsvQyxZQUFZLEdBQWtCO1FBQzVCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxJQUFJOztRQUNWLE1BQU0sT0FBTyxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlFLE1BQU0sV0FBVyxHQUFHO1lBQ3BCLFVBQVUsRUFBRSxPQUFPLEtBQUksTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxVQUFVLENBQUEsSUFBSSxFQUFFO1lBQ2pELFdBQVcsRUFBRyxPQUFPLEtBQUksTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxXQUFXLENBQUEsSUFBSSxFQUFFO1lBQ3BELFFBQVEsRUFBRSxDQUFBLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN4RCxPQUFPLEVBQUUsQ0FBQSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLE9BQU8sS0FBSSxJQUFJO1lBQ2xDLGtCQUFrQixF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
@@ -1,11 +1,10 @@
1
- export declare enum Protocol {
2
- REST = "REST",
3
- GRPC = "GRPC"
4
- }
5
1
  export interface ClientConfig {
6
- token?: string;
7
- hostName: string;
8
- proxyHost?: string;
9
- caCertPath?: string;
10
- protocol?: Protocol;
2
+ PAC_PROXY?: string;
3
+ API_KEY?: string;
4
+ NO_PROXY?: string;
5
+ HTTP_PROXY?: string;
6
+ HTTPS_PROXY?: string;
7
+ IGNORE_CERT_ERRORS?: boolean;
8
+ CA_CERT?: string;
9
+ HOST_URL: string;
11
10
  }
@@ -1,9 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Protocol = void 0;
4
- var Protocol;
5
- (function (Protocol) {
6
- Protocol["REST"] = "REST";
7
- Protocol["GRPC"] = "GRPC";
8
- })(Protocol || (exports.Protocol = Protocol = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DbGllbnRzL2ludGVyZmFjZXMvQ2xpZW50Q29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IseUJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxRQUFRLHdCQUFSLFFBQVEsUUFHbkIifQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9DbGllbnRzL2ludGVyZmFjZXMvQ2xpZW50Q29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,34 @@
1
+ import { ComponentsScannerCfg } from './ComponentsScannerCfg';
2
+ import { ComponentSearchRequest, ComponentSearchResponse, ComponentVersionRequest, ComponentVersionResponse, ComponentStatisticResponse } from "../Clients/Components/IComponentsClient";
3
+ import { Component } from "../types/common/types";
4
+ export declare class ComponentsScanner {
5
+ private componentsClient;
6
+ private config;
7
+ constructor(cfg?: ComponentsScannerCfg);
8
+ /**
9
+ * Search for components based on search criteria
10
+ * @param searchRequest - Component search parameters
11
+ * @returns Promise<ComponentSearchResponse>
12
+ */
13
+ searchComponents(searchRequest: ComponentSearchRequest): Promise<ComponentSearchResponse>;
14
+ /**
15
+ * Get version information for a specific component
16
+ * @param versionRequest - Component version request parameters
17
+ * @returns Promise<ComponentVersionResponse>
18
+ */
19
+ getComponentVersions(versionRequest: ComponentVersionRequest): Promise<ComponentVersionResponse>;
20
+ /**
21
+ * Get statistics for multiple components
22
+ * @param components - Array of components to get statistics for
23
+ * @returns Promise<ComponentStatisticResponse>
24
+ */
25
+ getComponentStatistics(components: Component[]): Promise<ComponentStatisticResponse>;
26
+ /**
27
+ * Search for a component by name and optionally get its versions and statistics
28
+ * @param componentName - Name of the component to search for
29
+ * @param includeVersions - Whether to include version information
30
+ * @param includeStatistics - Whether to include statistics
31
+ * @returns Combined component information
32
+ */
33
+ getComponentInfo(componentName: string, includeVersions?: boolean, includeStatistics?: boolean): Promise<any>;
34
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentsScanner = void 0;
4
+ const ComponentsScannerCfg_1 = require("./ComponentsScannerCfg");
5
+ const Logger_1 = require("../Logger");
6
+ const ComponentsHttpClient_1 = require("../Clients/Components/ComponentsHttpClient");
7
+ const ComponentsGRPCClient_1 = require("../Clients/Components/ComponentsGRPCClient");
8
+ class ComponentsScanner {
9
+ constructor(cfg) {
10
+ this.config = new ComponentsScannerCfg_1.ComponentsScannerCfg();
11
+ if (cfg)
12
+ this.config = cfg;
13
+ else
14
+ this.config = new ComponentsScannerCfg_1.ComponentsScannerCfg();
15
+ // Initialize the appropriate client based on configuration
16
+ if (this.config.USE_GRPC) {
17
+ this.componentsClient = new ComponentsGRPCClient_1.ComponentsGRPCClient(this.config.API_KEY, this.config.API_URL, this.config.GRPC_PROXY, this.config.CA_CERT);
18
+ Logger_1.logger.log('Using gRPC client for components service');
19
+ }
20
+ else {
21
+ const clientCfg = {
22
+ API_KEY: this.config.API_KEY,
23
+ HTTP_PROXY: this.config.HTTP_PROXY,
24
+ HTTPS_PROXY: this.config.HTTPS_PROXY,
25
+ NO_PROXY: this.config.NO_PROXY,
26
+ CA_CERT: this.config.CA_CERT,
27
+ IGNORE_CERT_ERRORS: this.config.IGNORE_CERT_ERRORS,
28
+ HOST_URL: this.config.API_URL, // Only map the one that differs. TODO: Migrate to HOST URL on v1 version
29
+ };
30
+ this.componentsClient = new ComponentsHttpClient_1.ComponentsHttpClient(clientCfg);
31
+ Logger_1.logger.log('Using HTTP client for components service');
32
+ }
33
+ }
34
+ /**
35
+ * Search for components based on search criteria
36
+ * @param searchRequest - Component search parameters
37
+ * @returns Promise<ComponentSearchResponse>
38
+ */
39
+ async searchComponents(searchRequest) {
40
+ try {
41
+ Logger_1.logger.log(`Searching for components with criteria: ${JSON.stringify(searchRequest)}`);
42
+ const response = await this.componentsClient.searchComponents(searchRequest);
43
+ Logger_1.logger.log(`Found ${response.components.length} components`);
44
+ return response;
45
+ }
46
+ catch (error) {
47
+ Logger_1.logger.log('Error searching components:', error);
48
+ throw error;
49
+ }
50
+ }
51
+ /**
52
+ * Get version information for a specific component
53
+ * @param versionRequest - Component version request parameters
54
+ * @returns Promise<ComponentVersionResponse>
55
+ */
56
+ async getComponentVersions(versionRequest) {
57
+ try {
58
+ Logger_1.logger.log(`Getting component versions for purl: ${versionRequest.purl}`);
59
+ const response = await this.componentsClient.getComponentVersions(versionRequest);
60
+ Logger_1.logger.log(`Found ${response.component.versions.length} versions for component`);
61
+ return response;
62
+ }
63
+ catch (error) {
64
+ Logger_1.logger.log('Error getting component versions:', error);
65
+ throw error;
66
+ }
67
+ }
68
+ /**
69
+ * Get statistics for multiple components
70
+ * @param components - Array of components to get statistics for
71
+ * @returns Promise<ComponentStatisticResponse>
72
+ */
73
+ async getComponentStatistics(components) {
74
+ try {
75
+ Logger_1.logger.log(`Getting statistics for ${components.length} components`);
76
+ const response = await this.componentsClient.getComponentStatistics(components);
77
+ Logger_1.logger.log(`Retrieved statistics for ${response.purls.length} components`);
78
+ return response;
79
+ }
80
+ catch (error) {
81
+ Logger_1.logger.log('Error getting component statistics:', error);
82
+ throw error;
83
+ }
84
+ }
85
+ /**
86
+ * Search for a component by name and optionally get its versions and statistics
87
+ * @param componentName - Name of the component to search for
88
+ * @param includeVersions - Whether to include version information
89
+ * @param includeStatistics - Whether to include statistics
90
+ * @returns Combined component information
91
+ */
92
+ async getComponentInfo(componentName, includeVersions = false, includeStatistics = false) {
93
+ var _a;
94
+ try {
95
+ // First search for the component
96
+ const searchResponse = await this.searchComponents({ search: componentName, limit: 1 });
97
+ if (searchResponse.components.length === 0) {
98
+ throw new Error(`No component found with name: ${componentName}`);
99
+ }
100
+ const component = searchResponse.components[0];
101
+ const result = {
102
+ component: component,
103
+ versions: null,
104
+ statistics: null
105
+ };
106
+ if (includeVersions) {
107
+ const versionsResponse = await this.getComponentVersions({ purl: component.purl });
108
+ result.versions = versionsResponse.component.versions;
109
+ }
110
+ if (includeStatistics) {
111
+ const statsResponse = await this.getComponentStatistics([{ purl: component.purl }]);
112
+ result.statistics = ((_a = statsResponse.purls[0]) === null || _a === void 0 ? void 0 : _a.statistics) || null;
113
+ }
114
+ return result;
115
+ }
116
+ catch (error) {
117
+ Logger_1.logger.log('Error getting component info:', error);
118
+ throw error;
119
+ }
120
+ }
121
+ }
122
+ exports.ComponentsScanner = ComponentsScanner;
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50c1NjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0NvbXBvbmVudHMvQ29tcG9uZW50c1NjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQThEO0FBQzlELHNDQUFtQztBQUNuQyxxRkFBa0Y7QUFDbEYscUZBQWtGO0FBWWxGLE1BQWEsaUJBQWlCO0lBSzVCLFlBQVksR0FBMEI7UUFGOUIsV0FBTSxHQUF5QixJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFHaEUsSUFBSSxHQUFHO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7O1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDO1FBRTlDLDJEQUEyRDtRQUMzRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksMkNBQW9CLENBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUNwQixDQUFDO1lBQ0YsZUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxTQUFTLEdBQWlCO2dCQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2dCQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO2dCQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxP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
@@ -0,0 +1,21 @@
1
+ import { BaseConfig } from "../BaseConfig";
2
+ export declare class ComponentsScannerCfg extends BaseConfig {
3
+ _API_KEY: string;
4
+ _USE_GRPC: boolean;
5
+ constructor(config?: ComponentsScannerCfg);
6
+ get API_KEY(): string;
7
+ set API_KEY(value: string);
8
+ get USE_GRPC(): boolean;
9
+ set USE_GRPC(value: boolean);
10
+ /**
11
+ * Resolves the appropriate scanner URL based on API key presence and current URL.
12
+ * If an API key is provided and the current URL is the default, returns the premium
13
+ * scanner URL, otherwise removes '/scan/direct' suffix from the URL.
14
+ * @param apiKey - The API key (if any)
15
+ * @param currentUrl - The current API URL
16
+ * @returns The resolved scanner URL
17
+ */
18
+ protected resolveApiUrl(apiKey: string, currentUrl: string): string;
19
+ get API_URL(): string;
20
+ set API_URL(url: string);
21
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentsScannerCfg = void 0;
4
+ const BaseConfig_1 = require("../BaseConfig");
5
+ class ComponentsScannerCfg extends BaseConfig_1.BaseConfig {
6
+ constructor(config) {
7
+ super(config);
8
+ this._API_KEY = '';
9
+ this._USE_GRPC = false;
10
+ if (config) {
11
+ this.API_KEY = config.API_KEY ? config.API_KEY : '';
12
+ this.USE_GRPC = config.USE_GRPC !== undefined ? config.USE_GRPC : false;
13
+ }
14
+ }
15
+ get API_KEY() {
16
+ return this._API_KEY;
17
+ }
18
+ set API_KEY(value) {
19
+ this._API_KEY = value;
20
+ }
21
+ get USE_GRPC() {
22
+ return this._USE_GRPC;
23
+ }
24
+ set USE_GRPC(value) {
25
+ this._USE_GRPC = value;
26
+ }
27
+ /**
28
+ * Resolves the appropriate scanner URL based on API key presence and current URL.
29
+ * If an API key is provided and the current URL is the default, returns the premium
30
+ * scanner URL, otherwise removes '/scan/direct' suffix from the URL.
31
+ * @param apiKey - The API key (if any)
32
+ * @param currentUrl - The current API URL
33
+ * @returns The resolved scanner URL
34
+ */
35
+ resolveApiUrl(apiKey, currentUrl) {
36
+ // Case 1: Has API key and using default URL -> upgrade to premium URL
37
+ if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getDefaultURL())
38
+ return BaseConfig_1.BaseConfig.getPremiumURL();
39
+ // Case 2: Has API key and using custom URL -> keep custom URL but remove /scan/direct
40
+ if (apiKey && (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL()))) {
41
+ return currentUrl.replace(/\/scan\/direct$/, '');
42
+ }
43
+ // Case 3: No API key -> use default URL
44
+ return BaseConfig_1.BaseConfig.getDefaultURL();
45
+ }
46
+ get API_URL() {
47
+ return this.resolveApiUrl(this.API_KEY, super.API_URL);
48
+ }
49
+ set API_URL(url) {
50
+ super.API_URL = url;
51
+ }
52
+ }
53
+ exports.ComponentsScannerCfg = ComponentsScannerCfg;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50c1NjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0NvbXBvbmVudHMvQ29tcG9uZW50c1NjYW5uZXJDZmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQTJDO0FBRTNDLE1BQWEsb0JBQXFCLFNBQVEsdUJBQVU7SUFLbEQsWUFBWSxNQUE2QjtRQUN2QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKaEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBSXpCLElBQUcsTUFBTSxFQUFDLENBQUM7WUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLGFBQWEsQ0FBQyxNQUFjLEVBQUUsVUFBa0I7UUFDeEQsc0VBQXNFO1FBQ3RFLElBQUksTUFBTSxJQUFJLFVBQVUsS0FBSyx1QkFBVSxDQUFDLGFBQWEsRUFBRTtZQUNyRCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFcEMsc0ZBQXNGO1FBQ3RGLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQ3RILE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLE9BQU8sdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQTFERCxvREEwREMifQ==
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComponentAlgorithmScanner = void 0;
4
4
  const BaseCryptographyScanner_1 = require("../../BaseCryptographyScanner");
5
- const CryptographyGRPCClient_1 = require("../../../Clients/Cryptography/CryptographyGRPCClient");
5
+ const CryptographyHttpClient_1 = require("../../../Clients/Cryptography/CryptographyHttpClient");
6
6
  /**
7
7
  * Scanner for detecting cryptographic algorithms in software components.
8
8
  * This class extends the base cryptography scanner to specifically handle
@@ -17,14 +17,20 @@ class ComponentAlgorithmScanner extends BaseCryptographyScanner_1.BaseCryptograp
17
17
  * @returns {AlgorithmResponse} A promise that resolves to an AlgorithmResponse containing detected cryptographic algorithms.
18
18
  */
19
19
  async scan(components) {
20
- const cryptographyClient = new CryptographyGRPCClient_1.CryptographyGRPCClient(this.config.API_KEY, // API KEY
21
- this.config.API_URL, // Destination Host
22
- this.config.GRPC_PROXY, // Proxy Host
23
- this.config.CA_CERT);
20
+ const clientCfg = {
21
+ API_KEY: this.config.API_KEY,
22
+ HTTP_PROXY: this.config.HTTP_PROXY,
23
+ HTTPS_PROXY: this.config.HTTPS_PROXY,
24
+ NO_PROXY: this.config.NO_PROXY,
25
+ CA_CERT: this.config.CA_CERT,
26
+ IGNORE_CERT_ERRORS: this.config.IGNORE_CERT_ERRORS,
27
+ HOST_URL: this.config.API_URL, // Only map the one that differs. TODO: Migrate to HOST URL on v1 version
28
+ };
29
+ const cryptographyClient = new CryptographyHttpClient_1.CryptographyHttpClient(clientCfg);
24
30
  const results = await cryptographyClient.getAlgorithms(components);
25
31
  this.resultCollector.collectAlgorithmResults(results);
26
32
  return results;
27
33
  }
28
34
  }
29
35
  exports.ComponentAlgorithmScanner = ComponentAlgorithmScanner;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50QWxnb3JpdGhtU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0FsZ29yaXRobS9Db21wb25lbnRzL0NvbXBvbmVudEFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsMkVBQXdFO0FBR3hFLGlHQUE4RjtBQUU5Rjs7OztHQUlHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLGlEQUdZO0lBRXBCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBdUI7UUFDdkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLCtDQUFzQixDQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQXFCLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBdkJELDhEQXVCQyJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50QWxnb3JpdGhtU2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0FsZ29yaXRobS9Db21wb25lbnRzL0NvbXBvbmVudEFsZ29yaXRobVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsMkVBQXdFO0FBR3hFLGlHQUE4RjtBQUk5Rjs7OztHQUlHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLGlEQUdZO0lBRXBCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBdUI7UUFDdkMsTUFBTSxTQUFTLEdBQWlCO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM1QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUseUVBQXlFO1NBQ3pHLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLElBQUksK0NBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQXFCLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBNUJELDhEQTRCQyJ9
@@ -24,19 +24,16 @@ class CryptoCfg extends BaseConfig_1.BaseConfig {
24
24
  * @returns The resolved API URL
25
25
  */
26
26
  resolveApiUrl(apiKey, currentUrl) {
27
- // Case 1: Has API key and using default URL -> upgrade to premium URL. The default URL is set on the BaseConfig.ts file
28
- if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getDefaultURL())
29
- return BaseConfig_1.BaseConfig.getPremiumURL();
30
- // Case 2: Has API key and using custom URL -> keep custom URL
31
- if (apiKey && currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
32
- // Check if custom URL is not the same as the default one.
33
- if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
34
- return currentUrl.replace(/\/scan\/direct$/, '');
27
+ if (!apiKey) {
28
+ if (currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL()) {
29
+ return currentUrl;
35
30
  }
36
31
  return currentUrl;
37
32
  }
38
- // Case 4: No API key and default/empty URL -> use default URL
39
- return BaseConfig_1.BaseConfig.getDefaultURL();
33
+ if (currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL() && currentUrl !== BaseConfig_1.BaseConfig.getPremiumURL()) {
34
+ return currentUrl;
35
+ }
36
+ return BaseConfig_1.BaseConfig.getPremiumURL();
40
37
  }
41
38
  get API_URL() {
42
39
  return this.resolveApiUrl(this.API_KEY, super.API_URL);
@@ -46,4 +43,4 @@ class CryptoCfg extends BaseConfig_1.BaseConfig {
46
43
  }
47
44
  }
48
45
  exports.CryptoCfg = CryptoCfg;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBWXRDLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFYSSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU1yQyxZQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV2QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBSW5CLElBQUcsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDUSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3pELHdIQUF3SDtRQUN4SCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3BILDBEQUEwRDtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztDQUVIO0FBbkRELDhCQW1EQyJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBWXRDLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFYSSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU1yQyxZQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV2QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBSW5CLElBQUcsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDUSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3pELElBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksVUFBVSxLQUFLLHVCQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLFVBQVUsS0FBSyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLFVBQVUsS0FBSyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDM0YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxPQUFPLENBQUMsS0FBYTtRQUM5QixLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBRUg7QUFoREQsOEJBZ0RDIn0=
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComponentHintScanner = void 0;
4
4
  const BaseCryptographyScanner_1 = require("../../BaseCryptographyScanner");
5
- const CryptographyGRPCClient_1 = require("../../../Clients/Cryptography/CryptographyGRPCClient");
5
+ const CryptographyHttpClient_1 = require("../../../Clients/Cryptography/CryptographyHttpClient");
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,20 @@ 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 cryptographyClient = new CryptographyGRPCClient_1.CryptographyGRPCClient(this.config.API_KEY, // API KEY
21
- this.config.API_URL, // Destination Host
22
- this.config.GRPC_PROXY, // Proxy Host
23
- this.config.CA_CERT);
20
+ const clientCfg = {
21
+ API_KEY: this.config.API_KEY,
22
+ HTTP_PROXY: this.config.HTTP_PROXY,
23
+ HTTPS_PROXY: this.config.HTTPS_PROXY,
24
+ NO_PROXY: this.config.NO_PROXY,
25
+ CA_CERT: this.config.CA_CERT,
26
+ IGNORE_CERT_ERRORS: this.config.IGNORE_CERT_ERRORS,
27
+ HOST_URL: this.config.API_URL, // Only map the one that differs. TODO: Migrate to HOST URL on v1 version
28
+ };
29
+ const cryptographyClient = new CryptographyHttpClient_1.CryptographyHttpClient(clientCfg);
24
30
  const results = await cryptographyClient.getEncryptionHints(req);
25
31
  this.resultCollector.collectHintResults(results);
26
32
  return results;
27
33
  }
28
34
  }
29
35
  exports.ComponentHintScanner = ComponentHintScanner;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkVBQXdFO0FBR3hFLGlHQUE4RjtBQUU5Rjs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLCtDQUFzQixDQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXZCRCxvREF1QkMifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkVBQXdFO0FBR3hFLGlHQUE4RjtBQUk5Rjs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxTQUFTLEdBQWlCO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM1QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUseUVBQXlFO1NBQ3pHLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLElBQUksK0NBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakUsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQTVCRCxvREE0QkMifQ==
@@ -18,7 +18,16 @@ class DependencyScanner {
18
18
  this.config = cfg;
19
19
  else
20
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
+ const clientCfg = {
22
+ API_KEY: this.config.API_KEY,
23
+ HTTP_PROXY: this.config.HTTP_PROXY,
24
+ HTTPS_PROXY: this.config.HTTPS_PROXY,
25
+ NO_PROXY: this.config.NO_PROXY,
26
+ CA_CERT: this.config.CA_CERT,
27
+ IGNORE_CERT_ERRORS: this.config.IGNORE_CERT_ERRORS,
28
+ HOST_URL: this.config.API_URL, // Only map the one that differs. TODO: Migrate to HOST URL on v1 version
29
+ };
30
+ this.dependencyClient = new DependencyHttpClient_1.DependencyHttpClient(clientCfg);
22
31
  this.localDependency = new LocalDependency_1.LocalDependencies();
23
32
  }
24
33
  async scanFolder(path) {
@@ -71,12 +80,12 @@ class DependencyScanner {
71
80
  }
72
81
  catch (e) {
73
82
  Logger_1.logger.debug(`Error while scanning dependencies: ${JSON.stringify(request, null, 2)}`);
74
- err = e.message;
83
+ err = e;
75
84
  failedRequests.push(request);
76
85
  }
77
86
  }
78
87
  if (err) {
79
- Logger_1.logger.error(`ERROR: ${err}`);
88
+ Logger_1.logger.error(err);
80
89
  }
81
90
  if (failedRequests.length > 0) {
82
91
  overallStatus = { status: 'SUCCEEDED WITH WARNINGS', message: 'Warning: some dependencies were not scanned' };
@@ -169,4 +178,4 @@ class DependencyScanner {
169
178
  }
170
179
  }
171
180
  exports.DependencyScanner = DependencyScanner;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1RUFBc0U7QUFDdEUsaUVBQThEO0FBQzlELGlEQUEyQztBQUMzQyw0Q0FBb0I7QUFDcEIsdUNBQW9DO0FBQ3BDLHNDQUFtQztBQUNuQyxxRkFBa0Y7QUFRbEYsTUFBYSxpQkFBaUI7SUFPNUIsWUFBWSxHQUEwQjtRQUY5QixXQUFNLEdBQXlCLElBQUksMkNBQW9CLEVBQUUsQ0FBQztRQUdoRSxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzs7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDdEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksbUNBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElB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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1RUFBc0U7QUFDdEUsaUVBQThEO0FBQzlELGlEQUEyQztBQUMzQyw0Q0FBb0I7QUFDcEIsdUNBQW9DO0FBQ3BDLHNDQUFtQztBQUNuQyxxRkFBa0Y7QUFVbEYsTUFBYSxpQkFBaUI7SUFPNUIsWUFBWSxHQUEwQjtRQUY5QixXQUFNLEdBQXlCLElBQUksMkNBQW9CLEVBQUUsQ0FBQztRQUdoRSxJQUFJLEdBQUc7WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzs7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDJDQUFvQixFQUFFLENBQUM7UUFFOUMsTUFBTSxTQUFTLEdBQWlCO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM1QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUseUVBQXlFO1NBQ3pHLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksbUNBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJ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