scanoss 0.20.0 → 0.21.1

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 (32) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/main/cli/commands/crypto.js +1 -1
  3. package/build/main/cli/commands/scan.js +1 -1
  4. package/build/main/sdk/BaseConfig.d.ts +3 -3
  5. package/build/main/sdk/BaseConfig.js +6 -6
  6. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +1 -1
  7. package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +3 -2
  8. package/build/main/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -3
  9. package/build/main/sdk/Dependencies/DependencyScannerCfg.js +1 -9
  10. package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
  11. package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.js +40 -3
  12. package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
  13. package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +2 -2
  14. package/build/main/sdk/scanner/ScannerCfg.d.ts +0 -1
  15. package/build/main/sdk/scanner/ScannerCfg.js +1 -3
  16. package/build/main/tsconfig.tsbuildinfo +1 -1
  17. package/build/module/cli/commands/crypto.js +1 -1
  18. package/build/module/cli/commands/scan.js +1 -1
  19. package/build/module/sdk/BaseConfig.d.ts +3 -3
  20. package/build/module/sdk/BaseConfig.js +6 -6
  21. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +1 -1
  22. package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +3 -2
  23. package/build/module/sdk/Dependencies/DependencyScannerCfg.d.ts +0 -3
  24. package/build/module/sdk/Dependencies/DependencyScannerCfg.js +1 -9
  25. package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
  26. package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.js +39 -2
  27. package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
  28. package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +2 -2
  29. package/build/module/sdk/scanner/ScannerCfg.d.ts +0 -1
  30. package/build/module/sdk/scanner/ScannerCfg.js +1 -3
  31. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [0.21.1] (2025-09-03)
6
+ ### Changed
7
+ - Keep basic compatability across all the scanners
8
+
9
+ ## [0.21.0] (2025-09-03)
10
+ ### Added
11
+ - Implemented parser for `package-lock.json` v1 files.
12
+
5
13
  ## [0.20.0] (2025-09-02)
6
14
  ### Added
7
15
  - Added vulnerability scanner to SDK with HTTP client support
@@ -127,3 +135,5 @@ All notable changes to this project will be documented in this file. See [standa
127
135
  ### [0.18.0](https://github.com/scanoss/scanoss.js/compare/v0.17.3...v0.18.0) (2025-08-28)
128
136
  ### [0.19.0](https://github.com/scanoss/scanoss.js/compare/v0.18.0...v0.19.0) (2025-08-29)
129
137
  ### [0.20.0](https://github.com/scanoss/scanoss.js/compare/v0.18.0...v0.19.0) (2025-09-02)
138
+ ### [0.21.0](https://github.com/scanoss/scanoss.js/compare/v0.18.0...v0.19.0) (2025-09-03)
139
+ ### [0.21.1](https://github.com/scanoss/scanoss.js/compare/v0.18.0...v0.19.0) (2025-09-03)
@@ -28,7 +28,7 @@ async function cryptoHandler(rootPath, options) {
28
28
  if (options.caCert)
29
29
  cfg.CA_CERT = options.caCert;
30
30
  if (options.ignoreCertErrors)
31
- cfg.IGNORE_CA_CERT_ERR = true;
31
+ cfg.IGNORE_CERT_ERRORS = true;
32
32
  if (options.apiurl)
33
33
  cfg.API_URL = options.apiurl;
34
34
  const cryptoScanner = new CryptographyScanner_1.CryptographyScanner(cfg);
@@ -182,7 +182,7 @@ async function scanHandler(rootPath, options) {
182
182
  if (options.caCert)
183
183
  cfg.CA_CERT = options.caCert;
184
184
  if (options.ignoreCertErrors)
185
- cfg.IGNORE_CA_CERT_ERR = true;
185
+ cfg.IGNORE_CERT_ERRORS = true;
186
186
  if (options.apiurl)
187
187
  cfg.API_URL = options.apiurl;
188
188
  if (options.api2url)
@@ -16,7 +16,7 @@ export declare abstract class BaseConfig {
16
16
  /** Path to the CA certificate file for SSL/TLS connections */
17
17
  private _CA_CERT;
18
18
  /** Whether to ignore CA certificate errors */
19
- private _IGNORE_CA_CERT_ERR?;
19
+ private _IGNORE_CERT_ERRORS?;
20
20
  /**
21
21
  * Creates a new BaseConfig instance.
22
22
  * @param config - Optional configuration object to copy settings from
@@ -77,7 +77,7 @@ export declare abstract class BaseConfig {
77
77
  * Sets whether to ignore CA certificate errors.
78
78
  * @param value - True to ignore certificate errors, false otherwise
79
79
  */
80
- set IGNORE_CA_CERT_ERR(value: boolean);
80
+ set IGNORE_CERT_ERRORS(value: boolean);
81
81
  /**
82
82
  * Gets the HTTPS proxy server URL.
83
83
  * @returns HTTPS proxy URL
@@ -112,5 +112,5 @@ export declare abstract class BaseConfig {
112
112
  * Gets whether CA certificate errors should be ignored.
113
113
  * @returns True if certificate errors are ignored, false otherwise
114
114
  */
115
- get IGNORE_CA_CERT_ERR(): boolean;
115
+ get IGNORE_CERT_ERRORS(): boolean;
116
116
  }
@@ -29,14 +29,14 @@ class BaseConfig {
29
29
  /** Path to the CA certificate file for SSL/TLS connections */
30
30
  this._CA_CERT = '';
31
31
  /** Whether to ignore CA certificate errors */
32
- this._IGNORE_CA_CERT_ERR = false;
32
+ this._IGNORE_CERT_ERRORS = false;
33
33
  if (config) {
34
34
  this.HTTPS_PROXY = config.HTTPS_PROXY || '';
35
35
  this.HTTP_PROXY = config.HTTP_PROXY || '';
36
36
  this.NO_PROXY = config.NO_PROXY || '';
37
37
  this.GRPC_PROXY = config.GRPC_PROXY || '';
38
38
  this.CA_CERT = config.CA_CERT || '';
39
- this.IGNORE_CA_CERT_ERR = (_a = config.IGNORE_CA_CERT_ERR) !== null && _a !== void 0 ? _a : false;
39
+ this.IGNORE_CERT_ERRORS = (_a = config.IGNORE_CERT_ERRORS) !== null && _a !== void 0 ? _a : false;
40
40
  this.API_URL = config.API_URL || BaseConfig.getDefaultURL();
41
41
  }
42
42
  this.API_URL = this.API_URL || BaseConfig.getDefaultURL();
@@ -123,8 +123,8 @@ class BaseConfig {
123
123
  * Sets whether to ignore CA certificate errors.
124
124
  * @param value - True to ignore certificate errors, false otherwise
125
125
  */
126
- set IGNORE_CA_CERT_ERR(value) {
127
- this._IGNORE_CA_CERT_ERR = value;
126
+ set IGNORE_CERT_ERRORS(value) {
127
+ this._IGNORE_CERT_ERRORS = value;
128
128
  }
129
129
  /**
130
130
  * Gets the HTTPS proxy server URL.
@@ -172,8 +172,8 @@ class BaseConfig {
172
172
  * Gets whether CA certificate errors should be ignored.
173
173
  * @returns True if certificate errors are ignored, false otherwise
174
174
  */
175
- get IGNORE_CA_CERT_ERR() {
176
- return this._IGNORE_CA_CERT_ERR;
175
+ get IGNORE_CERT_ERRORS() {
176
+ return this._IGNORE_CERT_ERRORS;
177
177
  }
178
178
  }
179
179
  exports.BaseConfig = BaseConfig;
@@ -5,7 +5,7 @@ import { ComponentsVulnerabilitiesResponse, ComponentVulnerabilityResponse } fro
5
5
  export declare class VulnerabilityHttpClient extends HttpClient implements IVulnerabilityClient {
6
6
  private client;
7
7
  private readonly baseUrl;
8
- constructor(token: string, hostName: string, proxyHost?: string, caCertPath?: string);
8
+ constructor(token: string, hostName: string, ignoreCertErrors?: boolean, proxyHost?: string, caCertPath?: string);
9
9
  getVulnerabilitiesComponents(components: Array<Component>): Promise<ComponentsVulnerabilitiesResponse>;
10
10
  getVulnerabilitiesComponent(component: Component): Promise<ComponentVulnerabilityResponse>;
11
11
  }
@@ -4,13 +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, proxyHost, caCertPath) {
7
+ constructor(token, hostName, ignoreCertErrors = false, proxyHost, caCertPath) {
8
8
  super();
9
9
  this.client = new HttpClient_1.HttpClient({
10
10
  HOST_URL: hostName,
11
11
  API_KEY: token,
12
12
  HTTPS_PROXY: proxyHost,
13
13
  CA_CERT: caCertPath,
14
+ IGNORE_CERT_ERRORS: ignoreCertErrors
14
15
  });
15
16
  this.baseUrl = hostName;
16
17
  }
@@ -50,4 +51,4 @@ class VulnerabilityHttpClient extends HttpClient_1.HttpClient {
50
51
  }
51
52
  }
52
53
  exports.VulnerabilityHttpClient = VulnerabilityHttpClient;
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUh0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFFaEQseUNBQXNDO0FBSXRDLE1BQWEsdUJBQXdCLFNBQVEsdUJBQVU7SUFJckQsWUFBWSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxTQUFrQixFQUFFLFVBQW1CO1FBQ2xGLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHVCQUFVLENBQUM7WUFDM0IsUUFBUSxFQUFFLFFBQVE7WUFDbEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxXQUFXLEVBQUUsU0FBUztZQUN0QixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLFVBQTRCO1FBQ3BFLElBQUksQ0FBQztZQUNILGVBQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0NBQWdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNySCxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQXVDLENBQUM7WUFDcEUsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUM7WUFDL0csTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFvQjtRQUMzRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8scUNBQXFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEgsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFvQyxDQUFDO1lBQ2pFLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRyxrQ0FBa0MsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxNQUFNLFNBQVMsRUFBRSxDQUFDO1lBQy9HLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhERCwwREFnREMifQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnVsbmVyYWJpbGl0eUh0dHBDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NsaWVudHMvVnVsbmVyYWJpbGl0eS9WdWxuZXJhYmlsaXR5SHR0cENsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFFaEQseUNBQXNDO0FBSXRDLE1BQWEsdUJBQXdCLFNBQVEsdUJBQVU7SUFJckQsWUFBWSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxtQkFBNEIsS0FBSyxFQUFFLFNBQWtCLEVBQUUsVUFBbUI7UUFDckgsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksdUJBQVUsQ0FBQztZQUMzQixRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLGtCQUFrQixFQUFFLGdCQUFnQjtTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLFVBQTRCO1FBQ3BFLElBQUksQ0FBQztZQUNILGVBQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0NBQWdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNySCxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQXVDLENBQUM7WUFDcEUsQ0FBQztZQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLE1BQU0sU0FBUyxFQUFFLENBQUM7WUFDL0csTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFvQjtRQUMzRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8scUNBQXFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEgsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFvQyxDQUFDO1lBQ2pFLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRyxrQ0FBa0MsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxNQUFNLFNBQVMsRUFBRSxDQUFDO1lBQy9HLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpERCwwREFpREMifQ==
@@ -1,6 +1,5 @@
1
1
  import { BaseConfig } from "../BaseConfig";
2
2
  export declare class DependencyScannerCfg extends BaseConfig {
3
- _IGNORE_CERT_ERRORS: boolean;
4
3
  _API_KEY: string;
5
4
  _CHUNK_REQUEST_SIZE: number;
6
5
  constructor(config?: DependencyScannerCfg);
@@ -8,8 +7,6 @@ export declare class DependencyScannerCfg extends BaseConfig {
8
7
  set CHUNK_REQUEST_SIZE(value: number);
9
8
  get API_KEY(): string;
10
9
  set API_KEY(value: string);
11
- get IGNORE_CERT_ERRORS(): boolean;
12
- set IGNORE_CERT_ERRORS(value: boolean);
13
10
  /**
14
11
  * Resolves the appropriate scanner URL based on API key presence and current URL.
15
12
  * If an API key is provided and the current URL is the default, returns the premium
@@ -6,13 +6,11 @@ const DEFAULT_CHUNK_REQUEST_SIZE = 15;
6
6
  class DependencyScannerCfg extends BaseConfig_1.BaseConfig {
7
7
  constructor(config) {
8
8
  super(config);
9
- this._IGNORE_CERT_ERRORS = false;
10
9
  this._API_KEY = '';
11
10
  this._CHUNK_REQUEST_SIZE = DEFAULT_CHUNK_REQUEST_SIZE;
12
11
  if (config) {
13
12
  this.CHUNK_REQUEST_SIZE = config.CHUNK_REQUEST_SIZE ? config.CHUNK_REQUEST_SIZE : DEFAULT_CHUNK_REQUEST_SIZE;
14
13
  this.API_KEY = config.API_KEY ? config.API_KEY : '';
15
- this.IGNORE_CERT_ERRORS = config.IGNORE_CERT_ERRORS ? config.IGNORE_CERT_ERRORS : false;
16
14
  }
17
15
  }
18
16
  get CHUNK_REQUEST_SIZE() {
@@ -27,12 +25,6 @@ class DependencyScannerCfg extends BaseConfig_1.BaseConfig {
27
25
  set API_KEY(value) {
28
26
  this._API_KEY = value;
29
27
  }
30
- get IGNORE_CERT_ERRORS() {
31
- return this._IGNORE_CERT_ERRORS;
32
- }
33
- set IGNORE_CERT_ERRORS(value) {
34
- this._IGNORE_CERT_ERRORS = value;
35
- }
36
28
  /**
37
29
  * Resolves the appropriate scanner URL based on API key presence and current URL.
38
30
  * If an API key is provided and the current URL is the default, returns the premium
@@ -64,4 +56,4 @@ class DependencyScannerCfg extends BaseConfig_1.BaseConfig {
64
56
  }
65
57
  }
66
58
  exports.DependencyScannerCfg = DependencyScannerCfg;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkM7QUFDM0MsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBYSxvQkFBcUIsU0FBUSx1QkFBVTtJQU9sRCxZQUFZLE1BQTZCO1FBQ3ZDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQU5oQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0Qix3QkFBbUIsR0FBRywwQkFBMEIsQ0FBQztRQUcvQyxJQUFHLE1BQU0sRUFBQyxDQUFDO1lBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUM3RyxJQUFJLENBQUMsT0FBTyxHQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3hELHdIQUF3SDtRQUN4SCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3BILDBEQUEwRDtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBVztRQUNyQixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0NBRUY7QUF4RUQsb0RBd0VDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkM7QUFDM0MsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBYSxvQkFBcUIsU0FBUSx1QkFBVTtJQUtsRCxZQUFZLE1BQTZCO1FBQ3ZDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUpoQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXRCLHdCQUFtQixHQUFHLDBCQUEwQixDQUFDO1FBRy9DLElBQUcsTUFBTSxFQUFDLENBQUM7WUFDVCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1lBQzdHLElBQUksQ0FBQyxPQUFPLEdBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3hELHdIQUF3SDtRQUN4SCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3BILDBEQUEwRDtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBVztRQUNyQixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0NBRUY7QUE3REQsb0RBNkRDIn0=
@@ -1,6 +1,7 @@
1
1
  import { ILocalDependency } from "../DependencyTypes";
2
2
  export declare function packageParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
3
3
  export declare function packagelockParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
4
+ export declare function packagelockV1Parser(fileContent: string, filePath: string): Promise<ILocalDependency>;
4
5
  export declare function yarnLockParser(fileContent: string, filePath: string): Promise<ILocalDependency>;
5
6
  declare enum YarnLockVersionEnum {
6
7
  "V1" = 0,
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.packageParser = packageParser;
7
7
  exports.packagelockParser = packagelockParser;
8
+ exports.packagelockV1Parser = packagelockV1Parser;
8
9
  exports.yarnLockParser = yarnLockParser;
9
10
  exports.yarnLockRecognizeVersion = yarnLockRecognizeVersion;
10
11
  exports.yarnLockV1Parser = yarnLockV1Parser;
@@ -58,11 +59,17 @@ function packageParser(fileContent, filePath) {
58
59
  // See reference on: https://docs.npmjs.com/cli/v8/configuring-npm/package-json
59
60
  const dRegex = new RegExp(/.*node_modules\/((?<scope>@.*)\/)?(?<p_name>.*)$/);
60
61
  function packagelockParser(fileContent, filePath) {
61
- var _a;
62
62
  const results = { file: filePath, purls: [] };
63
63
  if (path_1.default.basename(filePath) != "package-lock.json")
64
64
  return Promise.resolve(results);
65
- const packages = (_a = JSON.parse(fileContent)) === null || _a === void 0 ? void 0 : _a.packages;
65
+ const lockData = JSON.parse(fileContent);
66
+ const lockfileVersion = lockData === null || lockData === void 0 ? void 0 : lockData.lockfileVersion;
67
+ // Handle v1 format (npm 5-6)
68
+ if (lockfileVersion === 1) {
69
+ return packagelockV1Parser(fileContent, filePath);
70
+ }
71
+ // Handle v2+ format (npm 7+) - original logic
72
+ const packages = lockData === null || lockData === void 0 ? void 0 : lockData.packages;
66
73
  if (!packages)
67
74
  return Promise.resolve(results);
68
75
  for (const [key, value] of Object.entries(packages)) {
@@ -75,6 +82,36 @@ function packagelockParser(fileContent, filePath) {
75
82
  }
76
83
  return Promise.resolve(results);
77
84
  }
85
+ // Parse a package-lock.json v1 file (npm 5-6)
86
+ function packagelockV1Parser(fileContent, filePath) {
87
+ const results = { file: filePath, purls: [] };
88
+ if (path_1.default.basename(filePath) != "package-lock.json")
89
+ return Promise.resolve(results);
90
+ const lockData = JSON.parse(fileContent);
91
+ const dependencies = lockData === null || lockData === void 0 ? void 0 : lockData.dependencies;
92
+ if (!dependencies)
93
+ return Promise.resolve(results);
94
+ // Recursively parse dependencies tree
95
+ function parseDependencies(deps) {
96
+ for (const [depName, depData] of Object.entries(deps)) {
97
+ if (typeof depData === 'object' && depData !== null) {
98
+ const { namespace, packageName } = getNameAndNameSpaceFromDep(depName);
99
+ const version = depData.version;
100
+ if (version) {
101
+ const purl = new packageurl_js_1.PackageURL(PURL_TYPE, namespace, packageName, undefined, undefined, undefined).toString();
102
+ results.purls.push({ purl: purl, requirement: version });
103
+ }
104
+ // Recursively handle nested dependencies
105
+ const nestedDeps = depData.dependencies;
106
+ if (nestedDeps) {
107
+ parseDependencies(nestedDeps);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ parseDependencies(dependencies);
113
+ return Promise.resolve(results);
114
+ }
78
115
  function yarnLockParser(fileContent, filePath) {
79
116
  const results = { file: filePath, purls: [] };
80
117
  if (path_1.default.basename(filePath) != "yarn.lock")
@@ -206,4 +243,4 @@ function yarnLockV2Parser(fileContent, filePath) {
206
243
  const results = { file: filePath, purls: [] };
207
244
  return Promise.resolve(results);
208
245
  }
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvbnBtUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBbUNBLHNDQXVCQztBQVFELDhDQXNCQztBQUdELHdDQVdDO0FBbUJELDREQVFDO0FBRUQsNENBZ0hDO0FBSUQsNENBT0M7QUE5UEQsZ0RBQXdCO0FBQ3hCLGlEQUEyQztBQUczQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsK0NBQStDO0FBQy9DLCtFQUErRTtBQUMvRSxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUM7QUFFckM7Ozs7Ozs7R0FPRztBQUNILFNBQVMsMEJBQTBCLENBQUMsR0FBVztJQUM3QyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLElBQUksZUFBZSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0Isd0RBQXdEO1FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUdELFNBQWdCLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBQ2pFLDREQUE0RDtJQUM1RCxNQUFNLE9BQU8sR0FBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJ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
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9EZXBlbmRlbmNpZXMvTG9jYWxEZXBlbmRlbmN5L3BhcnNlcnMvbnBtUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBbUNBLHNDQXVCQztBQVFELDhDQStCQztBQUdELGtEQW1DQztBQUdELHdDQVdDO0FBbUJELDREQVFDO0FBRUQsNENBZ0hDO0FBSUQsNENBT0M7QUE3U0QsZ0RBQXdCO0FBQ3hCLGlEQUEyQztBQUczQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFHeEIsK0NBQStDO0FBQy9DLCtFQUErRTtBQUMvRSxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUM7QUFFckM7Ozs7Ozs7R0FPRztBQUNILFNBQVMsMEJBQTBCLENBQUMsR0FBVztJQUM3QyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXpDLElBQUksZUFBZSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0Isd0RBQXdEO1FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUdELFNBQWdCLGFBQWEsQ0FBQyxXQUFtQixFQUFFLFFBQWdCO0lBQ2pFLDREQUE0RDtJQUM1RCxNQUFNLE9BQU8sR0FBcUIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFF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