@cyclonedx/cdxgen 10.3.5 → 10.4.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/README.md +2 -4
- package/analyzer.js +18 -18
- package/bin/cdxgen.js +78 -77
- package/bin/evinse.js +26 -26
- package/bin/repl.js +56 -62
- package/bin/verify.js +9 -9
- package/binary.js +55 -54
- package/cbomutils.js +6 -6
- package/db.js +17 -17
- package/display.js +30 -30
- package/display.test.js +2 -2
- package/docker.js +92 -89
- package/docker.test.js +30 -30
- package/envcontext.js +15 -15
- package/envcontext.test.js +1 -1
- package/evinser.js +94 -93
- package/evinser.test.js +24 -24
- package/index.js +522 -482
- package/package.json +8 -16
- package/piptree.js +6 -6
- package/postgen.js +2 -2
- package/postgen.test.js +5 -5
- package/protobom.js +37 -7
- package/protobom.test.js +6 -6
- package/server.js +16 -16
- package/types/analyzer.d.ts +7 -4
- package/types/binary.d.ts +12 -8
- package/types/cbomutils.d.ts +1 -1
- package/types/db.d.ts +23 -11
- package/types/display.d.ts +1 -1
- package/types/docker.d.ts +52 -32
- package/types/envcontext.d.ts +40 -40
- package/types/evinser.d.ts +3436 -717
- package/types/index.d.ts +66 -40
- package/types/jest.config.d.ts +2 -2
- package/types/piptree.d.ts +6 -2
- package/types/postgen.d.ts +1 -1
- package/types/protobom.d.ts +7 -3
- package/types/protobom.d.ts.map +1 -1
- package/types/server.d.ts +1 -1
- package/types/utils.d.ts +496 -302
- package/types/validator.d.ts +1 -1
- package/utils.js +742 -675
- package/utils.test.js +716 -674
- package/validator.js +20 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyclonedx/cdxgen",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.4.0",
|
|
4
4
|
"description": "Creates CycloneDX Software Bill of Materials (SBOM) from source or container image",
|
|
5
5
|
"homepage": "http://github.com/cyclonedx/cdxgen",
|
|
6
6
|
"author": "Prabhu Subramanian <prabhu@appthreat.com>",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"docs": "docsify serve docs",
|
|
44
44
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --inject-globals false docker.test.js utils.test.js display.test.js postgen.test.js",
|
|
45
45
|
"watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch --inject-globals false",
|
|
46
|
-
"lint": "
|
|
47
|
-
"
|
|
46
|
+
"lint:check": "biome check *",
|
|
47
|
+
"lint": "biome check --apply *",
|
|
48
48
|
"gen-types": "npx -p typescript tsc"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@babel/parser": "^7.24.4",
|
|
62
62
|
"@babel/traverse": "^7.24.1",
|
|
63
|
-
"@npmcli/arborist": "7.4.
|
|
63
|
+
"@npmcli/arborist": "7.4.2",
|
|
64
64
|
"ajv": "^8.12.0",
|
|
65
65
|
"ajv-formats": "^3.0.1",
|
|
66
66
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
},
|
|
87
87
|
"optionalDependencies": {
|
|
88
88
|
"@appthreat/atom": "2.0.9",
|
|
89
|
-
"@appthreat/cdx-proto": "
|
|
89
|
+
"@appthreat/cdx-proto": "1.0.1",
|
|
90
90
|
"@cyclonedx/cdxgen-plugins-bin": "^1.5.8",
|
|
91
91
|
"@cyclonedx/cdxgen-plugins-bin-arm64": "^1.5.8",
|
|
92
92
|
"@cyclonedx/cdxgen-plugins-bin-darwin-amd64": "^1.5.8",
|
|
@@ -101,19 +101,11 @@
|
|
|
101
101
|
"sequelize": "^6.37.2",
|
|
102
102
|
"sqlite3": "^5.1.7"
|
|
103
103
|
},
|
|
104
|
-
"files": [
|
|
105
|
-
"*.js",
|
|
106
|
-
"bin/",
|
|
107
|
-
"data/",
|
|
108
|
-
"types/"
|
|
109
|
-
],
|
|
104
|
+
"files": ["*.js", "bin/", "data/", "types/"],
|
|
110
105
|
"devDependencies": {
|
|
106
|
+
"@biomejs/biome": "1.6.4",
|
|
111
107
|
"docsify-cli": "^4.4.4",
|
|
112
|
-
"eslint": "^8.57.0",
|
|
113
|
-
"eslint-config-prettier": "^9.1.0",
|
|
114
|
-
"eslint-plugin-prettier": "^5.1.3",
|
|
115
108
|
"jest": "^29.7.0",
|
|
116
|
-
"
|
|
117
|
-
"typescript": "^5.4.4"
|
|
109
|
+
"typescript": "^5.4.5"
|
|
118
110
|
}
|
|
119
111
|
}
|
package/piptree.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
1
2
|
/**
|
|
2
3
|
* The idea behind this plugin came from the excellent pipdeptree package
|
|
3
4
|
* https://github.com/tox-dev/pipdeptree
|
|
@@ -9,11 +10,10 @@ import {
|
|
|
9
10
|
mkdtempSync,
|
|
10
11
|
readFileSync,
|
|
11
12
|
rmSync,
|
|
12
|
-
writeFileSync
|
|
13
|
+
writeFileSync,
|
|
13
14
|
} from "node:fs";
|
|
14
|
-
import { join } from "node:path";
|
|
15
15
|
import { tmpdir } from "node:os";
|
|
16
|
-
import {
|
|
16
|
+
import { join } from "node:path";
|
|
17
17
|
|
|
18
18
|
const PIP_TREE_PLUGIN_CONTENT = `
|
|
19
19
|
import importlib.metadata as importlib_metadata
|
|
@@ -129,7 +129,7 @@ export const getTreeWithPlugin = (env, python_cmd, basePath) => {
|
|
|
129
129
|
const result = spawnSync(python_cmd, pipPluginArgs, {
|
|
130
130
|
cwd: basePath,
|
|
131
131
|
encoding: "utf-8",
|
|
132
|
-
env
|
|
132
|
+
env,
|
|
133
133
|
});
|
|
134
134
|
if (result.status !== 0 || result.error) {
|
|
135
135
|
console.log(result.stdout, result.stderr);
|
|
@@ -137,8 +137,8 @@ export const getTreeWithPlugin = (env, python_cmd, basePath) => {
|
|
|
137
137
|
if (existsSync(pipTreeJson)) {
|
|
138
138
|
tree = JSON.parse(
|
|
139
139
|
readFileSync(pipTreeJson, {
|
|
140
|
-
encoding: "utf-8"
|
|
141
|
-
})
|
|
140
|
+
encoding: "utf-8",
|
|
141
|
+
}),
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
if (rmSync) {
|
package/postgen.js
CHANGED
|
@@ -87,7 +87,7 @@ export const filterBom = (bomJson, options) => {
|
|
|
87
87
|
const newdepson = (adep.dependsOn || []).filter((d) => newPkgMap[d]);
|
|
88
88
|
const obj = {
|
|
89
89
|
ref: adep.ref,
|
|
90
|
-
dependsOn: newdepson
|
|
90
|
+
dependsOn: newdepson,
|
|
91
91
|
};
|
|
92
92
|
// Filter provides array if needed
|
|
93
93
|
if (adep.provides && adep.provides.length) {
|
|
@@ -110,7 +110,7 @@ export const filterBom = (bomJson, options) => {
|
|
|
110
110
|
}
|
|
111
111
|
bomJson.compositions.push({
|
|
112
112
|
"bom-ref": bomJson.metadata.component["bom-ref"],
|
|
113
|
-
aggregate: options.only ? "incomplete_first_party_only" : "incomplete"
|
|
113
|
+
aggregate: options.only ? "incomplete_first_party_only" : "incomplete",
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
}
|
package/postgen.test.js
CHANGED
|
@@ -5,7 +5,7 @@ import { expect, test } from "@jest/globals";
|
|
|
5
5
|
|
|
6
6
|
test("filter bom tests", () => {
|
|
7
7
|
const bomJson = JSON.parse(
|
|
8
|
-
readFileSync("./test/data/bom-postgen-test.json", "utf-8")
|
|
8
|
+
readFileSync("./test/data/bom-postgen-test.json", "utf-8"),
|
|
9
9
|
);
|
|
10
10
|
let newBom = filterBom(bomJson, {});
|
|
11
11
|
expect(bomJson).toEqual(newBom);
|
|
@@ -21,7 +21,7 @@ test("filter bom tests", () => {
|
|
|
21
21
|
|
|
22
22
|
test("filter bom tests2", () => {
|
|
23
23
|
const bomJson = JSON.parse(
|
|
24
|
-
readFileSync("./test/data/bom-postgen-test2.json", "utf-8")
|
|
24
|
+
readFileSync("./test/data/bom-postgen-test2.json", "utf-8"),
|
|
25
25
|
);
|
|
26
26
|
let newBom = filterBom(bomJson, {});
|
|
27
27
|
expect(bomJson).toEqual(newBom);
|
|
@@ -53,7 +53,7 @@ test("filter bom tests2", () => {
|
|
|
53
53
|
newBom = filterBom(bomJson, {
|
|
54
54
|
only: ["org.springframework"],
|
|
55
55
|
specVersion: 1.5,
|
|
56
|
-
autoCompositions: true
|
|
56
|
+
autoCompositions: true,
|
|
57
57
|
});
|
|
58
58
|
for (const comp of newBom.components) {
|
|
59
59
|
if (!comp.purl.includes("org.springframework")) {
|
|
@@ -64,7 +64,7 @@ test("filter bom tests2", () => {
|
|
|
64
64
|
expect(newBom.compositions).toEqual([
|
|
65
65
|
{
|
|
66
66
|
aggregate: "incomplete_first_party_only",
|
|
67
|
-
"bom-ref": "pkg:maven/sec/java-sec-code@1.0.0?type=jar"
|
|
68
|
-
}
|
|
67
|
+
"bom-ref": "pkg:maven/sec/java-sec-code@1.0.0?type=jar",
|
|
68
|
+
},
|
|
69
69
|
]);
|
|
70
70
|
});
|
package/protobom.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { Bom } from "@appthreat/cdx-proto";
|
|
2
1
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { cdx_15, cdx_16 } from "@appthreat/cdx-proto";
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Stringify the given bom json based on the type.
|
|
6
|
+
*
|
|
7
|
+
* @param {string | Object} bomJson string or object
|
|
8
|
+
* @returns {string} BOM json string
|
|
9
|
+
*/
|
|
4
10
|
const stringifyIfNeeded = (bomJson) => {
|
|
5
11
|
if (typeof bomJson === "string" || bomJson instanceof String) {
|
|
6
12
|
return bomJson;
|
|
@@ -8,26 +14,50 @@ const stringifyIfNeeded = (bomJson) => {
|
|
|
8
14
|
return JSON.stringify(bomJson);
|
|
9
15
|
};
|
|
10
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Method to convert the given bom json to proto binary
|
|
19
|
+
*
|
|
20
|
+
* @param {string | Object} bomJson BOM Json
|
|
21
|
+
* @param {string} binFile Binary file name
|
|
22
|
+
*/
|
|
11
23
|
export const writeBinary = (bomJson, binFile) => {
|
|
12
24
|
if (bomJson && binFile) {
|
|
13
|
-
|
|
25
|
+
let bomObject = undefined;
|
|
26
|
+
if (+bomJson.specVersion === 1.6) {
|
|
27
|
+
bomObject = new cdx_16.Bom();
|
|
28
|
+
} else {
|
|
29
|
+
bomObject = new cdx_15.Bom();
|
|
30
|
+
}
|
|
14
31
|
writeFileSync(
|
|
15
32
|
binFile,
|
|
16
33
|
bomObject
|
|
17
34
|
.fromJsonString(stringifyIfNeeded(bomJson), {
|
|
18
|
-
ignoreUnknownFields: true
|
|
35
|
+
ignoreUnknownFields: true,
|
|
19
36
|
})
|
|
20
|
-
.toBinary({ writeUnknownFields: true })
|
|
37
|
+
.toBinary({ writeUnknownFields: true }),
|
|
21
38
|
);
|
|
22
39
|
}
|
|
23
40
|
};
|
|
24
41
|
|
|
25
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Method to read a serialized binary
|
|
44
|
+
*
|
|
45
|
+
* @param {string} binFile Binary file name
|
|
46
|
+
* @param {boolean} asJson Convert to JSON
|
|
47
|
+
* @param {number} specVersion Specification version. Defaults to 1.5
|
|
48
|
+
*/
|
|
49
|
+
export const readBinary = (binFile, asJson = true, specVersion = 1.5) => {
|
|
26
50
|
if (!existsSync(binFile)) {
|
|
27
51
|
return undefined;
|
|
28
52
|
}
|
|
29
|
-
|
|
30
|
-
|
|
53
|
+
let bomLib = undefined;
|
|
54
|
+
if (specVersion === 1.6) {
|
|
55
|
+
bomLib = new cdx_16.Bom();
|
|
56
|
+
} else {
|
|
57
|
+
bomLib = new cdx_15.Bom();
|
|
58
|
+
}
|
|
59
|
+
const bomObject = bomLib.fromBinary(readFileSync(binFile), {
|
|
60
|
+
readUnknownFields: true,
|
|
31
61
|
});
|
|
32
62
|
if (asJson) {
|
|
33
63
|
return bomObject.toJson({ emitDefaultValues: true });
|
package/protobom.test.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { tmpdir } from "node:os";
|
|
3
1
|
import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
4
3
|
import { join } from "node:path";
|
|
4
|
+
import { expect, test } from "@jest/globals";
|
|
5
5
|
|
|
6
6
|
import { readBinary, writeBinary } from "./protobom.js";
|
|
7
7
|
|
|
8
8
|
const tempDir = mkdtempSync(join(tmpdir(), "bin-tests-"));
|
|
9
9
|
const testBom = JSON.parse(
|
|
10
|
-
readFileSync("./test/data/bom-java.json", { encoding: "utf-8" })
|
|
10
|
+
readFileSync("./test/data/bom-java.json", { encoding: "utf-8" }),
|
|
11
11
|
);
|
|
12
12
|
|
|
13
13
|
test("proto binary tests", () => {
|
|
@@ -19,12 +19,12 @@ test("proto binary tests", () => {
|
|
|
19
19
|
let bomObject = readBinary(binFile);
|
|
20
20
|
expect(bomObject).toBeDefined();
|
|
21
21
|
expect(bomObject.serialNumber).toEqual(
|
|
22
|
-
"urn:uuid:cc8b5a04-2698-4375-b04c-cedfa4317fee"
|
|
22
|
+
"urn:uuid:cc8b5a04-2698-4375-b04c-cedfa4317fee",
|
|
23
23
|
);
|
|
24
|
-
bomObject = readBinary(binFile, false);
|
|
24
|
+
bomObject = readBinary(binFile, false, 1.5);
|
|
25
25
|
expect(bomObject).toBeDefined();
|
|
26
26
|
expect(bomObject.serialNumber).toEqual(
|
|
27
|
-
"urn:uuid:cc8b5a04-2698-4375-b04c-cedfa4317fee"
|
|
27
|
+
"urn:uuid:cc8b5a04-2698-4375-b04c-cedfa4317fee",
|
|
28
28
|
);
|
|
29
29
|
if (tempDir && tempDir.startsWith(tmpdir()) && rmSync) {
|
|
30
30
|
rmSync(tempDir, { recursive: true, force: true });
|
package/server.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import connect from "connect";
|
|
2
|
-
import http from "node:http";
|
|
3
|
-
import bodyParser from "body-parser";
|
|
4
|
-
import url from "node:url";
|
|
5
1
|
import { spawnSync } from "node:child_process";
|
|
6
|
-
import os from "node:os";
|
|
7
2
|
import fs from "node:fs";
|
|
3
|
+
import http from "node:http";
|
|
4
|
+
import os from "node:os";
|
|
8
5
|
import path from "node:path";
|
|
9
6
|
import process from "node:process";
|
|
7
|
+
import url from "node:url";
|
|
8
|
+
import bodyParser from "body-parser";
|
|
9
|
+
import connect from "connect";
|
|
10
10
|
import { createBom, submitBom } from "./index.js";
|
|
11
11
|
import { postProcess } from "./postgen.js";
|
|
12
12
|
|
|
@@ -14,21 +14,21 @@ import compression from "compression";
|
|
|
14
14
|
|
|
15
15
|
// Timeout milliseconds. Default 10 mins
|
|
16
16
|
const TIMEOUT_MS =
|
|
17
|
-
parseInt(process.env.CDXGEN_SERVER_TIMEOUT_MS) || 10 * 60 * 1000;
|
|
17
|
+
Number.parseInt(process.env.CDXGEN_SERVER_TIMEOUT_MS) || 10 * 60 * 1000;
|
|
18
18
|
|
|
19
19
|
const app = connect();
|
|
20
20
|
|
|
21
21
|
app.use(
|
|
22
22
|
bodyParser.json({
|
|
23
23
|
deflate: true,
|
|
24
|
-
limit: "1mb"
|
|
25
|
-
})
|
|
24
|
+
limit: "1mb",
|
|
25
|
+
}),
|
|
26
26
|
);
|
|
27
27
|
app.use(compression());
|
|
28
28
|
|
|
29
29
|
const gitClone = (repoUrl, branch = null) => {
|
|
30
30
|
const tempDir = fs.mkdtempSync(
|
|
31
|
-
path.join(os.tmpdir(), path.basename(repoUrl))
|
|
31
|
+
path.join(os.tmpdir(), path.basename(repoUrl)),
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
if (branch == null) {
|
|
@@ -38,8 +38,8 @@ const gitClone = (repoUrl, branch = null) => {
|
|
|
38
38
|
["clone", repoUrl, "--depth", "1", tempDir],
|
|
39
39
|
{
|
|
40
40
|
encoding: "utf-8",
|
|
41
|
-
shell: false
|
|
42
|
-
}
|
|
41
|
+
shell: false,
|
|
42
|
+
},
|
|
43
43
|
);
|
|
44
44
|
if (result.status !== 0 || result.error) {
|
|
45
45
|
console.log(result.error);
|
|
@@ -51,8 +51,8 @@ const gitClone = (repoUrl, branch = null) => {
|
|
|
51
51
|
["clone", repoUrl, "--branch", branch, "--depth", "1", tempDir],
|
|
52
52
|
{
|
|
53
53
|
encoding: "utf-8",
|
|
54
|
-
shell: false
|
|
55
|
-
}
|
|
54
|
+
shell: false,
|
|
55
|
+
},
|
|
56
56
|
);
|
|
57
57
|
if (result.status !== 0 || result.error) {
|
|
58
58
|
console.log(result.error);
|
|
@@ -85,7 +85,7 @@ const parseQueryString = (q, body, options = {}) => {
|
|
|
85
85
|
"only",
|
|
86
86
|
"autoCompositions",
|
|
87
87
|
"gitBranch",
|
|
88
|
-
"active"
|
|
88
|
+
"active",
|
|
89
89
|
];
|
|
90
90
|
|
|
91
91
|
for (const param of queryParams) {
|
|
@@ -125,13 +125,13 @@ const start = (options) => {
|
|
|
125
125
|
const reqOptions = parseQueryString(
|
|
126
126
|
q,
|
|
127
127
|
req.body,
|
|
128
|
-
Object.assign({}, options)
|
|
128
|
+
Object.assign({}, options),
|
|
129
129
|
);
|
|
130
130
|
const filePath = q.path || q.url || req.body.path || req.body.url;
|
|
131
131
|
if (!filePath) {
|
|
132
132
|
res.writeHead(500, { "Content-Type": "application/json" });
|
|
133
133
|
return res.end(
|
|
134
|
-
"{'error': 'true', 'message': 'path or url is required.'}\n"
|
|
134
|
+
"{'error': 'true', 'message': 'path or url is required.'}\n",
|
|
135
135
|
);
|
|
136
136
|
}
|
|
137
137
|
res.writeHead(200, { "Content-Type": "application/json" });
|
package/types/analyzer.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
export function findJSImportsExports(
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export function findJSImportsExports(
|
|
2
|
+
src: any,
|
|
3
|
+
deep: any,
|
|
4
|
+
): Promise<{
|
|
5
|
+
allImports: {};
|
|
6
|
+
allExports: {};
|
|
4
7
|
}>;
|
|
5
|
-
//# sourceMappingURL=analyzer.d.ts.map
|
|
8
|
+
//# sourceMappingURL=analyzer.d.ts.map
|
package/types/binary.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export function getGoBuildInfo(src: any): string;
|
|
2
2
|
export function getCargoAuditableInfo(src: any): string;
|
|
3
3
|
export function getOSPackages(src: any): {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
osPackages: any[];
|
|
5
|
+
dependenciesList: {
|
|
6
|
+
ref: any;
|
|
7
|
+
dependsOn: any[];
|
|
8
|
+
}[];
|
|
9
|
+
allTypes: any[];
|
|
10
10
|
};
|
|
11
11
|
export function executeOsQuery(query: any): any;
|
|
12
12
|
/**
|
|
@@ -26,5 +26,9 @@ export function getDotnetSlices(src: string, slicesFile: string): boolean;
|
|
|
26
26
|
*
|
|
27
27
|
* @return {boolean} Result of the generation
|
|
28
28
|
*/
|
|
29
|
-
export function getBinaryBom(
|
|
30
|
-
|
|
29
|
+
export function getBinaryBom(
|
|
30
|
+
src: string,
|
|
31
|
+
binaryBomFile: string,
|
|
32
|
+
deepMode: boolean,
|
|
33
|
+
): boolean;
|
|
34
|
+
//# sourceMappingURL=binary.d.ts.map
|
package/types/cbomutils.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export function collectOSCryptoLibs(options: any): any[];
|
|
|
12
12
|
* @returns {Array} Arary of crypto algorithm objects with oid and description
|
|
13
13
|
*/
|
|
14
14
|
export function findCryptoAlgos(code: any): any[];
|
|
15
|
-
//# sourceMappingURL=cbomutils.d.ts.map
|
|
15
|
+
//# sourceMappingURL=cbomutils.d.ts.map
|
package/types/db.d.ts
CHANGED
|
@@ -1,19 +1,31 @@
|
|
|
1
|
-
export function createOrLoad(
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export function createOrLoad(
|
|
2
|
+
dbName: any,
|
|
3
|
+
dbPath: any,
|
|
4
|
+
logging?: boolean,
|
|
5
|
+
): Promise<{
|
|
6
|
+
sequelize: Sequelize;
|
|
7
|
+
Namespaces: typeof Namespaces;
|
|
8
|
+
Usages: typeof Usages;
|
|
9
|
+
DataFlows: typeof DataFlows;
|
|
6
10
|
}>;
|
|
7
|
-
import { Sequelize } from "sequelize";
|
|
11
|
+
import type { Sequelize } from "sequelize";
|
|
8
12
|
declare class Namespaces extends Model<any, any> {
|
|
9
|
-
|
|
13
|
+
constructor(
|
|
14
|
+
values?: import("sequelize").Optional<any, string>,
|
|
15
|
+
options?: import("sequelize").BuildOptions,
|
|
16
|
+
);
|
|
10
17
|
}
|
|
11
18
|
declare class Usages extends Model<any, any> {
|
|
12
|
-
|
|
19
|
+
constructor(
|
|
20
|
+
values?: import("sequelize").Optional<any, string>,
|
|
21
|
+
options?: import("sequelize").BuildOptions,
|
|
22
|
+
);
|
|
13
23
|
}
|
|
14
24
|
declare class DataFlows extends Model<any, any> {
|
|
15
|
-
|
|
25
|
+
constructor(
|
|
26
|
+
values?: import("sequelize").Optional<any, string>,
|
|
27
|
+
options?: import("sequelize").BuildOptions,
|
|
28
|
+
);
|
|
16
29
|
}
|
|
17
30
|
import { Model } from "sequelize";
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=db.d.ts.map
|
|
31
|
+
//# sourceMappingURL=db.d.ts.map
|
package/types/display.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export function printOccurrences(bomJson: any): void;
|
|
|
5
5
|
export function printCallStack(bomJson: any): void;
|
|
6
6
|
export function printDependencyTree(bomJson: any): void;
|
|
7
7
|
export function printReachables(sliceArtefacts: any): void;
|
|
8
|
-
//# sourceMappingURL=display.d.ts.map
|
|
8
|
+
//# sourceMappingURL=display.d.ts.map
|
package/types/docker.d.ts
CHANGED
|
@@ -1,44 +1,64 @@
|
|
|
1
1
|
export const isWin: boolean;
|
|
2
|
-
export function getDirs(
|
|
2
|
+
export function getDirs(
|
|
3
|
+
dirPath: string,
|
|
4
|
+
dirName: string,
|
|
5
|
+
hidden?: boolean,
|
|
6
|
+
recurse?: boolean,
|
|
7
|
+
): string[];
|
|
3
8
|
export function getOnlyDirs(srcpath: any, dirName: any): any;
|
|
4
9
|
export function getConnection(options: any, forRegistry: any): Promise<any>;
|
|
5
|
-
export function makeRequest(
|
|
10
|
+
export function makeRequest(
|
|
11
|
+
path: any,
|
|
12
|
+
method: string,
|
|
13
|
+
forRegistry: any,
|
|
14
|
+
): Promise<any>;
|
|
6
15
|
export function parseImageName(fullImageName: any): {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
registry: string;
|
|
17
|
+
repo: string;
|
|
18
|
+
tag: string;
|
|
19
|
+
digest: string;
|
|
20
|
+
platform: string;
|
|
21
|
+
group: string;
|
|
22
|
+
name: string;
|
|
14
23
|
};
|
|
15
24
|
export function getImage(fullImageName: any): Promise<any>;
|
|
16
25
|
export function extractTar(fullImageName: any, dir: any): Promise<boolean>;
|
|
17
|
-
export function exportArchive(fullImageName: any): Promise<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
export function exportArchive(fullImageName: any): Promise<
|
|
27
|
+
| {
|
|
28
|
+
manifest: {};
|
|
29
|
+
allLayersDir: string;
|
|
30
|
+
allLayersExplodedDir: string;
|
|
31
|
+
lastLayerConfig: {};
|
|
32
|
+
lastWorkingDir: string;
|
|
33
|
+
}
|
|
34
|
+
| {
|
|
35
|
+
inspectData: any;
|
|
36
|
+
manifest: any;
|
|
37
|
+
allLayersDir: any;
|
|
38
|
+
allLayersExplodedDir: any;
|
|
39
|
+
lastLayerConfig: {};
|
|
40
|
+
lastWorkingDir: string;
|
|
41
|
+
}
|
|
42
|
+
>;
|
|
43
|
+
export function extractFromManifest(
|
|
44
|
+
manifestFile: any,
|
|
45
|
+
localData: any,
|
|
46
|
+
tempDir: any,
|
|
47
|
+
allLayersExplodedDir: any,
|
|
48
|
+
): Promise<{
|
|
49
|
+
inspectData: any;
|
|
50
|
+
manifest: any;
|
|
51
|
+
allLayersDir: any;
|
|
52
|
+
allLayersExplodedDir: any;
|
|
53
|
+
lastLayerConfig: {};
|
|
54
|
+
lastWorkingDir: string;
|
|
38
55
|
}>;
|
|
39
56
|
export function exportImage(fullImageName: any): Promise<any>;
|
|
40
57
|
export function getPkgPathList(exportData: any, lastWorkingDir: any): any[];
|
|
41
58
|
export function removeImage(fullImageName: any, force?: boolean): Promise<any>;
|
|
42
59
|
export function getCredsFromHelper(exeSuffix: any, serverAddress: any): any;
|
|
43
|
-
export function addSkippedSrcFiles(
|
|
44
|
-
|
|
60
|
+
export function addSkippedSrcFiles(
|
|
61
|
+
skippedImageSrcs: any,
|
|
62
|
+
components: any,
|
|
63
|
+
): void;
|
|
64
|
+
//# sourceMappingURL=docker.d.ts.map
|
package/types/envcontext.d.ts
CHANGED
|
@@ -5,58 +5,58 @@ export function gitTreeHashes(dir: string): {};
|
|
|
5
5
|
export function listFiles(dir: string): any[];
|
|
6
6
|
export function execGitCommand(dir: string, args: any[]): string;
|
|
7
7
|
export function collectJavaInfo(dir: string): {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
type: string;
|
|
9
|
+
name: string;
|
|
10
|
+
version: string;
|
|
11
|
+
description: string;
|
|
12
|
+
properties: {
|
|
13
|
+
name: string;
|
|
14
|
+
value: any;
|
|
15
|
+
}[];
|
|
16
16
|
};
|
|
17
17
|
export function collectDotnetInfo(dir: string): {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
type: string;
|
|
19
|
+
name: string;
|
|
20
|
+
version: string;
|
|
21
|
+
description: any;
|
|
22
22
|
};
|
|
23
23
|
export function collectPythonInfo(dir: string): {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
type: string;
|
|
25
|
+
name: string;
|
|
26
|
+
version: string;
|
|
27
|
+
description: any;
|
|
28
28
|
};
|
|
29
29
|
export function collectNodeInfo(dir: string): {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
type: string;
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
description: string;
|
|
34
34
|
};
|
|
35
35
|
export function collectGccInfo(dir: string): {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
type: string;
|
|
37
|
+
name: string;
|
|
38
|
+
version: string;
|
|
39
|
+
description: any;
|
|
40
40
|
};
|
|
41
41
|
export function collectRustInfo(dir: string): {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
type: string;
|
|
43
|
+
name: string;
|
|
44
|
+
version: string;
|
|
45
|
+
description: string;
|
|
46
46
|
};
|
|
47
47
|
export function collectGoInfo(dir: string): {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
type: string;
|
|
49
|
+
name: string;
|
|
50
|
+
version: string;
|
|
51
51
|
};
|
|
52
52
|
export function collectEnvInfo(dir: any): {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
type: string;
|
|
54
|
+
name: string;
|
|
55
|
+
version: string;
|
|
56
|
+
description: string;
|
|
57
|
+
properties: {
|
|
58
|
+
name: string;
|
|
59
|
+
value: any;
|
|
60
|
+
}[];
|
|
61
61
|
}[];
|
|
62
|
-
//# sourceMappingURL=envcontext.d.ts.map
|
|
62
|
+
//# sourceMappingURL=envcontext.d.ts.map
|