scanoss 0.19.0 → 0.21.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 (85) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/build/main/index.d.ts +6 -2
  3. package/build/main/index.js +9 -3
  4. package/build/main/sdk/BaseConfig.js +1 -2
  5. package/build/main/sdk/Clients/Cryptography/{CryptographyClient.d.ts → CryptographyGRPCClient.d.ts} +2 -2
  6. package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.js +142 -0
  7. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +1 -1
  8. package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +3 -3
  9. package/build/main/sdk/Clients/Cryptography/ICryptographyClient.d.ts +1 -1
  10. package/build/main/sdk/Clients/Dependency/{DependencyClient.d.ts → DependencyGRPCClient.d.ts} +1 -1
  11. package/build/main/sdk/Clients/Dependency/{DependencyClient.js → DependencyGRPCClient.js} +6 -6
  12. package/build/main/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -1
  13. package/build/main/sdk/Clients/Grpc/BaseGRPCClient.js +1 -1
  14. package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +4 -3
  15. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +4 -3
  16. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +5 -10
  17. package/build/main/sdk/Clients/helper/clientHelper.d.ts +1 -1
  18. package/build/main/sdk/Clients/helper/clientHelper.js +2 -2
  19. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +1 -1
  20. package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +3 -3
  21. package/build/main/sdk/Cryptography/CryptoCfg.js +6 -7
  22. package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +1 -1
  23. package/build/main/sdk/Cryptography/CryptographyScanner.js +1 -1
  24. package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +1 -1
  25. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +1 -1
  26. package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +3 -3
  27. package/build/main/sdk/Dependencies/DependencyScannerCfg.js +6 -10
  28. package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
  29. package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.js +40 -3
  30. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
  31. package/build/main/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -11
  32. package/build/main/sdk/Vulnerability/VulnerabilityCfg.d.ts +1 -1
  33. package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +10 -7
  34. package/build/main/sdk/Vulnerability/VulnerabilityScanner.d.ts +4 -2
  35. package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +64 -10
  36. package/build/main/sdk/types/common/types.js +3 -0
  37. package/build/main/sdk/types/vulnerability/types.d.ts +35 -0
  38. package/build/main/sdk/types/vulnerability/types.js +3 -0
  39. package/build/main/tsconfig.tsbuildinfo +1 -1
  40. package/build/module/index.d.ts +6 -2
  41. package/build/module/index.js +9 -3
  42. package/build/module/sdk/BaseConfig.js +1 -2
  43. package/build/module/sdk/Clients/Cryptography/{CryptographyClient.d.ts → CryptographyGRPCClient.d.ts} +2 -2
  44. package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.js +131 -0
  45. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +1 -1
  46. package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +3 -3
  47. package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +1 -1
  48. package/build/module/sdk/Clients/Dependency/{DependencyClient.d.ts → DependencyGRPCClient.d.ts} +1 -1
  49. package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.js +74 -0
  50. package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -1
  51. package/build/module/sdk/Clients/Grpc/BaseGRPCClient.js +1 -1
  52. package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +4 -3
  53. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +4 -3
  54. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +5 -10
  55. package/build/module/sdk/Clients/helper/clientHelper.d.ts +1 -1
  56. package/build/module/sdk/Clients/helper/clientHelper.js +2 -2
  57. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +1 -1
  58. package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +3 -3
  59. package/build/module/sdk/Cryptography/CryptoCfg.js +6 -7
  60. package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +1 -1
  61. package/build/module/sdk/Cryptography/CryptographyScanner.js +1 -1
  62. package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +1 -1
  63. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +1 -1
  64. package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +3 -3
  65. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +6 -10
  66. package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
  67. package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.js +39 -2
  68. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
  69. package/build/module/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -11
  70. package/build/module/sdk/Vulnerability/VulnerabilityCfg.d.ts +1 -1
  71. package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +9 -7
  72. package/build/module/sdk/Vulnerability/VulnerabilityScanner.d.ts +4 -2
  73. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +64 -10
  74. package/build/module/sdk/types/common/types.js +2 -0
  75. package/build/module/sdk/types/vulnerability/types.d.ts +35 -0
  76. package/build/module/sdk/types/vulnerability/types.js +2 -0
  77. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  78. package/package.json +1 -1
  79. package/build/main/sdk/Clients/Cryptography/CryptographyClient.js +0 -142
  80. package/build/main/sdk/shared/interfaces/Component.js +0 -3
  81. package/build/module/sdk/Clients/Cryptography/CryptographyClient.js +0 -131
  82. package/build/module/sdk/Clients/Dependency/DependencyClient.js +0 -74
  83. package/build/module/sdk/shared/interfaces/Component.js +0 -2
  84. /package/build/main/sdk/{shared/interfaces/Component.d.ts → types/common/types.d.ts} +0 -0
  85. /package/build/module/sdk/{shared/interfaces/Component.d.ts → types/common/types.d.ts} +0 -0
@@ -8,6 +8,7 @@ const BaseConfig_1 = require("../BaseConfig");
8
8
  */
9
9
  class VulnerabilityCfg extends BaseConfig_1.BaseConfig {
10
10
  constructor(config) {
11
+ var _a, _b;
11
12
  super(config);
12
13
  /**
13
14
  * Number of components to process in each request chunk.
@@ -19,9 +20,11 @@ class VulnerabilityCfg extends BaseConfig_1.BaseConfig {
19
20
  * Leave empty if no authentication is required.
20
21
  */
21
22
  this.API_KEY = "";
23
+ this.REQUEST_CHUNK_SIZE = (_a = config === null || config === void 0 ? void 0 : config.REQUEST_CHUNK_SIZE) !== null && _a !== void 0 ? _a : this.REQUEST_CHUNK_SIZE;
24
+ this.API_KEY = (_b = config === null || config === void 0 ? void 0 : config.API_KEY) !== null && _b !== void 0 ? _b : this.API_KEY;
22
25
  }
23
26
  /**
24
- * Resolves the appropriate API URL based on API key presence and current URL.
27
+ * Resolves the appropriate API URL based on API key presence and current URL. See: src/sdk/BaseConfig.ts
25
28
  * If an API key is provided and the current URL is the default, returns the premium
26
29
  * URL, otherwise returns the current URL.
27
30
  * @param apiKey - The API key (if any)
@@ -29,19 +32,19 @@ class VulnerabilityCfg extends BaseConfig_1.BaseConfig {
29
32
  * @returns The resolved API URL
30
33
  */
31
34
  resolveApiUrl(apiKey, currentUrl) {
32
- // Case 1: Has API key and using default URL -> upgrade to premium URL
33
- if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getPremiumURL())
35
+ // Case 1: Has API key and using default URL -> upgrade to premium URL. The default URL is set on the BaseConfig.ts file
36
+ if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getDefaultURL())
34
37
  return BaseConfig_1.BaseConfig.getPremiumURL();
35
38
  // Case 2: Has API key and using custom URL -> keep custom URL
36
- if (apiKey && currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL()) {
37
- // Only remove /scan/direct for official SCANOSS API endpoints
39
+ if (apiKey && currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
40
+ // Check if custom URL is not the same as the default one.
38
41
  if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
39
42
  return currentUrl.replace(/\/scan\/direct$/, '');
40
43
  }
41
44
  return currentUrl;
42
45
  }
43
46
  // Case 4: No API key and default/empty URL -> use default URL
44
- return BaseConfig_1.BaseConfig.getPremiumURL();
47
+ return BaseConfig_1.BaseConfig.getDefaultURL();
45
48
  }
46
49
  get API_URL() {
47
50
  return this.resolveApiUrl(this.API_KEY, super.API_URL);
@@ -51,4 +54,4 @@ class VulnerabilityCfg extends BaseConfig_1.BaseConfig {
51
54
  }
52
55
  }
53
56
  exports.VulnerabilityCfg = VulnerabilityCfg;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUNmZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5Q2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7O0dBR0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHVCQUFVO0lBYTlDLFlBQVksTUFBeUI7UUFDbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBYmhCOzs7V0FHRztRQUNILHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7O1dBR0c7UUFDSCxZQUFPLEdBQUcsRUFBRSxDQUFDO0lBSWIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3hELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3hELDhEQUE4RDtZQUM5RCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQVc7UUFDckIsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBaERELDRDQWdEQyJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUNmZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5Q2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7O0dBR0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHVCQUFVO0lBYzlDLFlBQVksTUFBeUI7O1FBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQWJoQjs7O1dBR0c7UUFDSCx1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEI7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUlYLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxrQkFBa0IsbUNBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2hGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxtQ0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sYUFBYSxDQUFDLE1BQWMsRUFBRSxVQUFrQjtRQUN4RCx3SEFBd0g7UUFDeEgsSUFBSSxNQUFNLElBQUksVUFBVSxLQUFLLHVCQUFVLENBQUMsYUFBYSxFQUFFO1lBQ3JELE9BQU8sdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyw4REFBOEQ7UUFDOUQsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUMsQ0FBQztZQUNwSCwwREFBMEQ7WUFDMUQsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMzRyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCw4REFBOEQ7UUFDOUQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQW5ERCw0Q0FtREMifQ==
@@ -1,8 +1,10 @@
1
1
  import { VulnerabilityCfg } from "./VulnerabilityCfg";
2
- import { Component } from "../shared/interfaces/Component";
2
+ import { ComponentsVulnerabilitiesResponse, ComponentVulnerabilityResponse } from "../types/vulnerability/types";
3
+ import { Component } from "../types/common/types";
3
4
  export declare class VulnerabilityScanner {
4
5
  private config;
5
6
  private vulnerabilityClient;
6
7
  constructor(config?: VulnerabilityCfg);
7
- getVulnerabilities(components: Array<Component>): Promise<any[]>;
8
+ getVulnerabilitiesComponents(components: Array<Component>): Promise<ComponentsVulnerabilitiesResponse>;
9
+ getVulnerabilitiesComponent(component: Component): Promise<ComponentVulnerabilityResponse>;
8
10
  }
@@ -13,22 +13,76 @@ class VulnerabilityScanner {
13
13
  this.config = new VulnerabilityCfg_1.VulnerabilityCfg();
14
14
  this.vulnerabilityClient = new VulnerabilityHttpClient_1.VulnerabilityHttpClient(this.config.API_KEY, this.config.API_URL ? this.config.API_URL : '', this.config.HTTPS_PROXY ? this.config.HTTPS_PROXY : '', this.config.CA_CERT);
15
15
  }
16
- async getVulnerabilities(components) {
16
+ async getVulnerabilitiesComponents(components) {
17
17
  const requests = (0, clientHelper_1.chunkRequest)(components, this.config.REQUEST_CHUNK_SIZE);
18
- const vulnerabilities = [];
18
+ const response = {
19
+ components: [],
20
+ status: {
21
+ status: "SUCCESS",
22
+ message: "Vulnerabilities retrieved successfully"
23
+ }
24
+ };
25
+ const failedRequests = [];
26
+ const componentVulnerabilities = new Map();
19
27
  for (const request of requests) {
20
- const r = await this.vulnerabilityClient.getVulnerabilitiesComponents(request);
21
- if (r.ok) {
22
- const json = await r.json();
23
- vulnerabilities.push(...json);
28
+ try {
29
+ const r = await this.vulnerabilityClient.getVulnerabilitiesComponents(request);
30
+ if (r.components) {
31
+ for (const c of r.components) {
32
+ const key = c.purl + c.requirement + c.version;
33
+ if (componentVulnerabilities.has(key)) {
34
+ componentVulnerabilities.get(key).vulnerabilities.push(...c.vulnerabilities);
35
+ }
36
+ else {
37
+ componentVulnerabilities.set(key, c);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ catch (error) {
43
+ failedRequests.push(request);
44
+ Logger_1.logger.error(error);
45
+ }
46
+ }
47
+ if (failedRequests.length > 0) {
48
+ if (failedRequests.length >= requests.length) {
49
+ response.status.status = "FAILED";
50
+ response.status.message = "Error while retrieving vulnerabilities";
51
+ return response;
24
52
  }
25
53
  else {
26
- const badReq = request.map(c => `${c.purl}@${c.requirement}`);
27
- Logger_1.logger.log(`ERROR: Error getting vulnerabilities for components: ${badReq}, Status: ${r.status} ${r.statusText}`);
54
+ response.status.status = "SUCCEEDED_WITH_WARNINGS";
55
+ response.status.message = `Warning: some vulnerabilities were not retrieved: ${failedRequests.map(r => r.map((c) => `${c.purl}${c.requirement}`)).join(", ")}`;
56
+ return response;
28
57
  }
29
58
  }
30
- return vulnerabilities;
59
+ response.components = Array.from(componentVulnerabilities.values());
60
+ return response;
61
+ }
62
+ async getVulnerabilitiesComponent(component) {
63
+ const response = {
64
+ purl: component.purl,
65
+ version: component.requirement,
66
+ requirement: component.requirement,
67
+ vulnerabilities: [],
68
+ status: {
69
+ status: "SUCCESS",
70
+ message: "Vulnerabilities retrieved successfully"
71
+ }
72
+ };
73
+ try {
74
+ const componentVulnerabilities = await this.vulnerabilityClient.getVulnerabilitiesComponent(component);
75
+ response.vulnerabilities = componentVulnerabilities.vulnerabilities;
76
+ response.version = componentVulnerabilities.version;
77
+ return response;
78
+ }
79
+ catch (error) {
80
+ Logger_1.logger.error(error);
81
+ response.status.status = "FAILED";
82
+ response.status.message = "Error while retrieving vulnerabilities";
83
+ return response;
84
+ }
31
85
  }
32
86
  }
33
87
  exports.VulnerabilityScanner = VulnerabilityScanner;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL1Z1bG5lcmFiaWxpdHkvVnVsbmVyYWJpbGl0eVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQXNEO0FBQ3RELDhGQUEyRjtBQUUzRixzQ0FBbUM7QUFDbkMsaUVBQThEO0FBRTlELE1BQWEsb0JBQW9CO0lBSy9CLFlBQVksTUFBeUI7UUFDbkMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7O1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQ0FBZ0IsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLGlEQUF1QixDQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsVUFBNEI7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBQSwyQkFBWSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzNCLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUM7Z0JBQ1IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsZUFBTSxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsTUFBTSxjQUFjLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFDcEgsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFoQ0Qsb0RBZ0NDIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL1Z1bG5lcmFiaWxpdHkvVnVsbmVyYWJpbGl0eVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQXNEO0FBQ3RELDhGQUEyRjtBQUMzRixzQ0FBbUM7QUFDbkMsaUVBQThEO0FBUzlELE1BQWEsb0JBQW9CO0lBSy9CLFlBQVksTUFBeUI7UUFDbkMsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7O1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQ0FBZ0IsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLGlEQUF1QixDQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsVUFBNEI7UUFDcEUsTUFBTSxRQUFRLEdBQUcsSUFBQSwyQkFBWSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUUsTUFBTSxRQUFRLEdBQXNDO1lBQ2xELFVBQVUsRUFBRSxFQUFFO1lBQ2QsTUFBTSxFQUFDO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsd0NBQXdDO2FBQ2xEO1NBQ0YsQ0FBQztRQUNGLE1BQU0sY0FB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
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3R5cGVzL2NvbW1vbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,35 @@
1
+ export interface CVSS {
2
+ cvss: string;
3
+ cvss_score: number;
4
+ cvss_severity: string;
5
+ }
6
+ export interface Vulnerability {
7
+ id: string;
8
+ cve: string;
9
+ url: string;
10
+ summary: string;
11
+ severity: string;
12
+ published: string;
13
+ modified: string;
14
+ source: string;
15
+ cvss: CVSS[];
16
+ }
17
+ export interface ComponentVulnerability {
18
+ purl: string;
19
+ version: string;
20
+ requirement: string;
21
+ vulnerabilities: Vulnerability[];
22
+ }
23
+ export interface ComponentsVulnerabilitiesResponse {
24
+ components: Array<ComponentVulnerability>;
25
+ status: {
26
+ "status": "SUCCESS" | "FAILED" | "SUCCEEDED_WITH_WARNINGS";
27
+ "message": string;
28
+ };
29
+ }
30
+ export interface ComponentVulnerabilityResponse extends ComponentVulnerability {
31
+ status: {
32
+ "status": "SUCCESS" | "FAILED" | "SUCCEEDED_WITH_WARNINGS";
33
+ "message": string;
34
+ };
35
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL3R5cGVzL3Z1bG5lcmFiaWxpdHkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9