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.
- package/CHANGELOG.md +15 -0
- package/build/main/index.d.ts +6 -2
- package/build/main/index.js +9 -3
- package/build/main/sdk/BaseConfig.js +1 -2
- package/build/main/sdk/Clients/Cryptography/{CryptographyClient.d.ts → CryptographyGRPCClient.d.ts} +2 -2
- package/build/main/sdk/Clients/Cryptography/CryptographyGRPCClient.js +142 -0
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +1 -1
- package/build/main/sdk/Clients/Cryptography/CryptographyHttpClient.js +3 -3
- package/build/main/sdk/Clients/Cryptography/ICryptographyClient.d.ts +1 -1
- package/build/main/sdk/Clients/Dependency/{DependencyClient.d.ts → DependencyGRPCClient.d.ts} +1 -1
- package/build/main/sdk/Clients/Dependency/{DependencyClient.js → DependencyGRPCClient.js} +6 -6
- package/build/main/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -1
- package/build/main/sdk/Clients/Grpc/BaseGRPCClient.js +1 -1
- package/build/main/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +4 -3
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +4 -3
- package/build/main/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +5 -10
- package/build/main/sdk/Clients/helper/clientHelper.d.ts +1 -1
- package/build/main/sdk/Clients/helper/clientHelper.js +2 -2
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +1 -1
- package/build/main/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +3 -3
- package/build/main/sdk/Cryptography/CryptoCfg.js +6 -7
- package/build/main/sdk/Cryptography/CryptographyScanner.d.ts +1 -1
- package/build/main/sdk/Cryptography/CryptographyScanner.js +1 -1
- package/build/main/sdk/Cryptography/CryptographyTypes.d.ts +1 -1
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +1 -1
- package/build/main/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +3 -3
- package/build/main/sdk/Dependencies/DependencyScannerCfg.js +6 -10
- package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/npmParser.js +40 -3
- package/build/main/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
- package/build/main/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -11
- package/build/main/sdk/Vulnerability/VulnerabilityCfg.d.ts +1 -1
- package/build/main/sdk/Vulnerability/VulnerabilityCfg.js +10 -7
- package/build/main/sdk/Vulnerability/VulnerabilityScanner.d.ts +4 -2
- package/build/main/sdk/Vulnerability/VulnerabilityScanner.js +64 -10
- package/build/main/sdk/types/common/types.js +3 -0
- package/build/main/sdk/types/vulnerability/types.d.ts +35 -0
- package/build/main/sdk/types/vulnerability/types.js +3 -0
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/module/index.d.ts +6 -2
- package/build/module/index.js +9 -3
- package/build/module/sdk/BaseConfig.js +1 -2
- package/build/module/sdk/Clients/Cryptography/{CryptographyClient.d.ts → CryptographyGRPCClient.d.ts} +2 -2
- package/build/module/sdk/Clients/Cryptography/CryptographyGRPCClient.js +131 -0
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.d.ts +1 -1
- package/build/module/sdk/Clients/Cryptography/CryptographyHttpClient.js +3 -3
- package/build/module/sdk/Clients/Cryptography/ICryptographyClient.d.ts +1 -1
- package/build/module/sdk/Clients/Dependency/{DependencyClient.d.ts → DependencyGRPCClient.d.ts} +1 -1
- package/build/module/sdk/Clients/Dependency/DependencyGRPCClient.js +74 -0
- package/build/module/sdk/Clients/Dependency/IDependencyClient.d.ts +1 -1
- package/build/module/sdk/Clients/Grpc/BaseGRPCClient.js +1 -1
- package/build/module/sdk/Clients/Vulnerability/IVulnerabilityClient.d.ts +4 -3
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.d.ts +4 -3
- package/build/module/sdk/Clients/Vulnerability/VulnerabilityHttpClient.js +5 -10
- package/build/module/sdk/Clients/helper/clientHelper.d.ts +1 -1
- package/build/module/sdk/Clients/helper/clientHelper.js +2 -2
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.d.ts +1 -1
- package/build/module/sdk/Cryptography/Algorithm/Components/ComponentAlgorithmScanner.js +3 -3
- package/build/module/sdk/Cryptography/CryptoCfg.js +6 -7
- package/build/module/sdk/Cryptography/CryptographyScanner.d.ts +1 -1
- package/build/module/sdk/Cryptography/CryptographyScanner.js +1 -1
- package/build/module/sdk/Cryptography/CryptographyTypes.d.ts +1 -1
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.d.ts +1 -1
- package/build/module/sdk/Cryptography/Hint/Components/ComponentHintScanner.js +3 -3
- package/build/module/sdk/Dependencies/DependencyScannerCfg.js +6 -10
- package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +1 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/npmParser.js +39 -2
- package/build/module/sdk/Dependencies/LocalDependency/parsers/parser.spec.js +22 -4
- package/build/module/sdk/Report/DataLayer/DataLayerTypes.d.ts +1 -11
- package/build/module/sdk/Vulnerability/VulnerabilityCfg.d.ts +1 -1
- package/build/module/sdk/Vulnerability/VulnerabilityCfg.js +9 -7
- package/build/module/sdk/Vulnerability/VulnerabilityScanner.d.ts +4 -2
- package/build/module/sdk/Vulnerability/VulnerabilityScanner.js +64 -10
- package/build/module/sdk/types/common/types.js +2 -0
- package/build/module/sdk/types/vulnerability/types.d.ts +35 -0
- package/build/module/sdk/types/vulnerability/types.js +2 -0
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/build/main/sdk/Clients/Cryptography/CryptographyClient.js +0 -142
- package/build/main/sdk/shared/interfaces/Component.js +0 -3
- package/build/module/sdk/Clients/Cryptography/CryptographyClient.js +0 -131
- package/build/module/sdk/Clients/Dependency/DependencyClient.js +0 -74
- package/build/module/sdk/shared/interfaces/Component.js +0 -2
- /package/build/main/sdk/{shared/interfaces/Component.d.ts → types/common/types.d.ts} +0 -0
- /package/build/module/sdk/{shared/interfaces/Component.d.ts → types/common/types.d.ts} +0 -0
|
@@ -24,20 +24,19 @@ 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
|
|
28
|
-
if (apiKey && currentUrl === BaseConfig_1.BaseConfig.
|
|
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
29
|
return BaseConfig_1.BaseConfig.getPremiumURL();
|
|
30
30
|
// Case 2: Has API key and using custom URL -> keep custom URL
|
|
31
|
-
if (apiKey && currentUrl
|
|
32
|
-
//
|
|
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
33
|
if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
|
|
34
34
|
return currentUrl.replace(/\/scan\/direct$/, '');
|
|
35
35
|
}
|
|
36
|
-
// For other custom URLs, return as-is
|
|
37
36
|
return currentUrl;
|
|
38
37
|
}
|
|
39
38
|
// Case 4: No API key and default/empty URL -> use default URL
|
|
40
|
-
return BaseConfig_1.BaseConfig.
|
|
39
|
+
return BaseConfig_1.BaseConfig.getDefaultURL();
|
|
41
40
|
}
|
|
42
41
|
get API_URL() {
|
|
43
42
|
return this.resolveApiUrl(this.API_KEY, super.API_URL);
|
|
@@ -47,4 +46,4 @@ class CryptoCfg extends BaseConfig_1.BaseConfig {
|
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
exports.CryptoCfg = CryptoCfg;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvQ2ZnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9DcnlwdG9ncmFwaHkvQ3J5cHRvQ2ZnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHVCQUFVO0lBWXRDLFlBQVksR0FBZTtRQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFYSSxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQU1yQyxZQUFPLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV2QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBSW5CLElBQUcsR0FBRyxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVGOzs7Ozs7O09BT0c7SUFDUSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3pELHdIQUF3SDtRQUN4SCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3BILDBEQUEwRDtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztDQUVIO0FBbkRELDhCQW1EQyJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CryptoCfg } from "./CryptoCfg";
|
|
2
2
|
import { CryptographyResponse, LocalCryptographyResponse } from "./CryptographyTypes";
|
|
3
|
-
import { Component } from "../
|
|
3
|
+
import { Component } from "../types/common/types";
|
|
4
4
|
/**
|
|
5
5
|
* Provides functionality to scan files and components for cryptographic items.
|
|
6
6
|
* This class acts as the primary entry point for cryptographic scanning.
|
|
@@ -50,4 +50,4 @@ class CryptographyScanner {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
exports.CryptographyScanner = CryptographyScanner;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvZ3JhcGh5U2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZGsvQ3J5cHRvZ3JhcGh5L0NyeXB0b2dyYXBoeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUZBRWdEO0FBQ2hELGtFQUErRDtBQUsvRCxtSEFFdUU7QUFDdkUsZ0lBRWdGO0FBQ2hGLGdHQUUwRDtBQUMxRCxpRkFFZ0Q7QUFDaEQsb0VBQTJFO0FBRzNFOzs7R0FHRztBQUNILE1BQWEsbUJBQW1CO0lBSTlCLFlBQVksR0FBYztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQW9CO1FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxpRUFBK0IsRUFBRSxDQUFDO1FBQ3BFLG1FQUFtRTtRQUNuRSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakUsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzRixNQUFNLGlCQUFpQixHQUFHLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsaURBQTRCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxNQUFNLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9DLE9BQU8scUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFnQjtRQUMxQyxNQUFNLDhCQUE4QixHQUFHLElBQUksMEVBQW9DLEVBQUUsQ0FBQztRQUNsRixNQUFNLCtCQUErQixHQUFHLElBQUkscURBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ25ILE1BQU0sMEJBQTBCLEdBQUcsSUFBSSwyQ0FBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDekcsTUFBTSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsT0FBTyw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUF4Q0Qsa0RBd0NDIn0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentCryptographyResultCollector } from "../../Helper/ResultCollector/Component/ComponentCryptographyResultColletor";
|
|
2
2
|
import { BaseCryptographyScanner } from "../../BaseCryptographyScanner";
|
|
3
|
-
import { Component } from "../../../shared/interfaces/Component";
|
|
4
3
|
import { HintsInRangeResponse } from "../../../Clients/Cryptography/ICryptographyClient";
|
|
4
|
+
import { Component } from "../../../types/common/types";
|
|
5
5
|
/**
|
|
6
6
|
* Scanner for detecting cryptographic hints in software components.
|
|
7
7
|
* This class extends the base cryptography scanner to specifically handle
|
|
@@ -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
|
|
5
|
+
const CryptographyGRPCClient_1 = require("../../../Clients/Cryptography/CryptographyGRPCClient");
|
|
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,7 +17,7 @@ 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
|
|
20
|
+
const cryptographyClient = new CryptographyGRPCClient_1.CryptographyGRPCClient(this.config.API_KEY, // API KEY
|
|
21
21
|
this.config.API_URL, // Destination Host
|
|
22
22
|
this.config.GRPC_PROXY, // Proxy Host
|
|
23
23
|
this.config.CA_CERT);
|
|
@@ -27,4 +27,4 @@ class ComponentHintScanner extends BaseCryptographyScanner_1.BaseCryptographySca
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.ComponentHintScanner = ComponentHintScanner;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcG9uZW50SGludFNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2RrL0NyeXB0b2dyYXBoeS9IaW50L0NvbXBvbmVudHMvQ29tcG9uZW50SGludFNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMkVBQXdFO0FBR3hFLGlHQUE4RjtBQUU5Rjs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLGlEQUdlO0lBRXZCOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0I7UUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLCtDQUFzQixDQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQXZCRCxvREF1QkMifQ==
|
|
@@ -42,22 +42,18 @@ class DependencyScannerCfg extends BaseConfig_1.BaseConfig {
|
|
|
42
42
|
* @returns The resolved scanner URL
|
|
43
43
|
*/
|
|
44
44
|
resolveApiUrl(apiKey, currentUrl) {
|
|
45
|
-
// Case 1: Has API key and using default URL -> upgrade to premium
|
|
45
|
+
// Case 1: Has API key and using default URL -> upgrade to premium URL. The default URL is set on the BaseConfig.ts file
|
|
46
46
|
if (apiKey && currentUrl === BaseConfig_1.BaseConfig.getDefaultURL())
|
|
47
47
|
return BaseConfig_1.BaseConfig.getPremiumURL();
|
|
48
|
-
// Case 2: Has API key and using custom URL
|
|
49
|
-
if (apiKey && currentUrl
|
|
50
|
-
//
|
|
48
|
+
// Case 2: Has API key and using custom URL -> keep custom URL
|
|
49
|
+
if (apiKey && currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
|
|
50
|
+
// Check if custom URL is not the same as the default one.
|
|
51
51
|
if (currentUrl.startsWith(BaseConfig_1.BaseConfig.getPremiumURL()) || currentUrl.startsWith(BaseConfig_1.BaseConfig.getDefaultURL())) {
|
|
52
52
|
return currentUrl.replace(/\/scan\/direct$/, '');
|
|
53
53
|
}
|
|
54
|
-
// For other custom URLs, return as-is
|
|
55
54
|
return currentUrl;
|
|
56
55
|
}
|
|
57
|
-
// Case
|
|
58
|
-
if (!apiKey && currentUrl !== BaseConfig_1.BaseConfig.getDefaultURL())
|
|
59
|
-
return currentUrl;
|
|
60
|
-
// Case 4: No API key and default/empty URL -> use default URL with /scan/direct
|
|
56
|
+
// Case 4: No API key and default/empty URL -> use default URL
|
|
61
57
|
return BaseConfig_1.BaseConfig.getDefaultURL();
|
|
62
58
|
}
|
|
63
59
|
get API_URL() {
|
|
@@ -68,4 +64,4 @@ class DependencyScannerCfg extends BaseConfig_1.BaseConfig {
|
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
exports.DependencyScannerCfg = DependencyScannerCfg;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXJDZmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2RrL0RlcGVuZGVuY2llcy9EZXBlbmRlbmN5U2Nhbm5lckNmZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBMkM7QUFDM0MsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBYSxvQkFBcUIsU0FBUSx1QkFBVTtJQU9sRCxZQUFZLE1BQTZCO1FBQ3ZDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQU5oQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0Qix3QkFBbUIsR0FBRywwQkFBMEIsQ0FBQztRQUcvQyxJQUFHLE1BQU0sRUFBQyxDQUFDO1lBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUM3RyxJQUFJLENBQUMsT0FBTyxHQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxLQUFjO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDTyxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQWtCO1FBQ3hELHdIQUF3SDtRQUN4SCxJQUFJLE1BQU0sSUFBSSxVQUFVLEtBQUssdUJBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDckQsT0FBTyx1QkFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLDhEQUE4RDtRQUM5RCxJQUFJLE1BQU0sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQ3BILDBEQUEwRDtZQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsdUJBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNHLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxPQUFPLHVCQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBVztRQUNyQixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0NBRUY7QUF4RUQsb0RBd0VDIn0=
|
|
@@ -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
|
|
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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
|