mobbdev 1.0.88 → 1.0.90
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/dist/index.mjs +145 -114
- package/package.json +13 -12
package/dist/index.mjs
CHANGED
|
@@ -11,14 +11,15 @@ import Debug21 from "debug";
|
|
|
11
11
|
import { hideBin } from "yargs/helpers";
|
|
12
12
|
|
|
13
13
|
// src/args/commands/convert_to_sarif.ts
|
|
14
|
-
import fs4 from "
|
|
14
|
+
import fs4 from "fs";
|
|
15
15
|
|
|
16
16
|
// src/commands/convert_to_sarif.ts
|
|
17
|
-
import fs3 from "
|
|
18
|
-
import path3 from "
|
|
17
|
+
import fs3 from "fs";
|
|
18
|
+
import path3 from "path";
|
|
19
19
|
|
|
20
20
|
// src/commands/fpr_stream_parser.ts
|
|
21
|
-
import fs from "
|
|
21
|
+
import fs from "fs";
|
|
22
|
+
import readline from "readline";
|
|
22
23
|
import sax from "sax";
|
|
23
24
|
var BaseStreamParser = class {
|
|
24
25
|
constructor(parser) {
|
|
@@ -134,14 +135,17 @@ var UnifiedNodePoolParser = class extends BaseStreamParser {
|
|
|
134
135
|
}
|
|
135
136
|
};
|
|
136
137
|
var VulnerabilityParser = class extends BaseStreamParser {
|
|
137
|
-
constructor() {
|
|
138
|
-
super(
|
|
139
|
-
__publicField(this, "vulnerabilities", []);
|
|
138
|
+
constructor(parser, tmpStorageFilePath) {
|
|
139
|
+
super(parser);
|
|
140
140
|
__publicField(this, "isInVulnerability", false);
|
|
141
141
|
__publicField(this, "codePoints", []);
|
|
142
142
|
__publicField(this, "metadata", {});
|
|
143
143
|
__publicField(this, "metaInfo", {});
|
|
144
144
|
__publicField(this, "groupName", "");
|
|
145
|
+
__publicField(this, "tmpStorageFileWriter");
|
|
146
|
+
__publicField(this, "tmpStorageFilePath");
|
|
147
|
+
this.tmpStorageFilePath = tmpStorageFilePath;
|
|
148
|
+
this.tmpStorageFileWriter = fs.createWriteStream(tmpStorageFilePath);
|
|
145
149
|
}
|
|
146
150
|
onOpenTag(tag) {
|
|
147
151
|
super.onOpenTag(tag);
|
|
@@ -195,25 +199,43 @@ var VulnerabilityParser = class extends BaseStreamParser {
|
|
|
195
199
|
onCloseTag() {
|
|
196
200
|
if (this.getPathString() === "FVDL > Vulnerabilities > Vulnerability") {
|
|
197
201
|
this.isInVulnerability = false;
|
|
198
|
-
this.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
202
|
+
this.tmpStorageFileWriter.write(
|
|
203
|
+
JSON.stringify({
|
|
204
|
+
nodes: this.codePoints,
|
|
205
|
+
instanceID: this.metadata["InstanceID"] ?? "",
|
|
206
|
+
instanceSeverity: this.metadata["InstanceSeverity"] ?? "",
|
|
207
|
+
confidence: this.metadata["Confidence"] ?? "",
|
|
208
|
+
classID: this.metadata["ClassID"] ?? "",
|
|
209
|
+
type: this.metadata["Type"] ?? "",
|
|
210
|
+
subtype: this.metadata["Subtype"] ?? "",
|
|
211
|
+
metaInfo: this.metaInfo
|
|
212
|
+
}) + "\n"
|
|
213
|
+
);
|
|
208
214
|
}
|
|
209
215
|
super.onCloseTag();
|
|
210
216
|
}
|
|
211
|
-
getVulnerabilities() {
|
|
212
|
-
|
|
217
|
+
async *getVulnerabilities() {
|
|
218
|
+
await new Promise((r) => this.tmpStorageFileWriter.end(r));
|
|
219
|
+
const rl = readline.createInterface({
|
|
220
|
+
input: fs.createReadStream(this.tmpStorageFilePath),
|
|
221
|
+
crlfDelay: Infinity
|
|
222
|
+
});
|
|
223
|
+
for await (const line of rl) {
|
|
224
|
+
if (line) {
|
|
225
|
+
yield JSON.parse(line);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
213
228
|
}
|
|
214
229
|
};
|
|
215
230
|
function initSaxParser(filepath) {
|
|
216
|
-
const parser = sax.createStream(true
|
|
231
|
+
const parser = sax.createStream(true, {
|
|
232
|
+
// All these flags help to improve parsing speed a lot.
|
|
233
|
+
trim: false,
|
|
234
|
+
normalize: false,
|
|
235
|
+
lowercase: false,
|
|
236
|
+
xmlns: false,
|
|
237
|
+
position: false
|
|
238
|
+
});
|
|
217
239
|
const awaiter = new Promise((resolve, reject) => {
|
|
218
240
|
parser.on("end", () => resolve(true));
|
|
219
241
|
parser.on("error", (e) => reject(e));
|
|
@@ -221,7 +243,10 @@ function initSaxParser(filepath) {
|
|
|
221
243
|
return {
|
|
222
244
|
parser,
|
|
223
245
|
parse: async () => {
|
|
224
|
-
fs.createReadStream(filepath
|
|
246
|
+
fs.createReadStream(filepath, {
|
|
247
|
+
// Set chunk size to 100 MB. The default is 16 KB, which makes the process too slow.
|
|
248
|
+
highWaterMark: 100 * 1024 * 1024
|
|
249
|
+
}).pipe(parser);
|
|
225
250
|
await awaiter;
|
|
226
251
|
}
|
|
227
252
|
};
|
|
@@ -409,6 +434,7 @@ var IssueType_Enum = /* @__PURE__ */ ((IssueType_Enum2) => {
|
|
|
409
434
|
IssueType_Enum2["SystemExitShouldReraise"] = "SYSTEM_EXIT_SHOULD_RERAISE";
|
|
410
435
|
IssueType_Enum2["SystemInformationLeak"] = "SYSTEM_INFORMATION_LEAK";
|
|
411
436
|
IssueType_Enum2["SystemInformationLeakExternal"] = "SYSTEM_INFORMATION_LEAK_EXTERNAL";
|
|
437
|
+
IssueType_Enum2["TarSlip"] = "TAR_SLIP";
|
|
412
438
|
IssueType_Enum2["TrustBoundaryViolation"] = "TRUST_BOUNDARY_VIOLATION";
|
|
413
439
|
IssueType_Enum2["TypeConfusion"] = "TYPE_CONFUSION";
|
|
414
440
|
IssueType_Enum2["UncheckedLoopCondition"] = "UNCHECKED_LOOP_CONDITION";
|
|
@@ -947,71 +973,71 @@ var GetMcpFixesDocument = `
|
|
|
947
973
|
var defaultWrapper = (action, _operationName, _operationType, _variables) => action();
|
|
948
974
|
function getSdk(client, withWrapper = defaultWrapper) {
|
|
949
975
|
return {
|
|
950
|
-
Me(variables, requestHeaders) {
|
|
951
|
-
return withWrapper((wrappedRequestHeaders) => client.request(MeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "Me", "query", variables);
|
|
976
|
+
Me(variables, requestHeaders, signal) {
|
|
977
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: MeDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "Me", "query", variables);
|
|
952
978
|
},
|
|
953
|
-
getOrgAndProjectId(variables, requestHeaders) {
|
|
954
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetOrgAndProjectIdDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getOrgAndProjectId", "query", variables);
|
|
979
|
+
getOrgAndProjectId(variables, requestHeaders, signal) {
|
|
980
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetOrgAndProjectIdDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getOrgAndProjectId", "query", variables);
|
|
955
981
|
},
|
|
956
|
-
GetEncryptedApiToken(variables, requestHeaders) {
|
|
957
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetEncryptedApiTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetEncryptedApiToken", "query", variables);
|
|
982
|
+
GetEncryptedApiToken(variables, requestHeaders, signal) {
|
|
983
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetEncryptedApiTokenDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "GetEncryptedApiToken", "query", variables);
|
|
958
984
|
},
|
|
959
|
-
FixReportState(variables, requestHeaders) {
|
|
960
|
-
return withWrapper((wrappedRequestHeaders) => client.request(FixReportStateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "FixReportState", "query", variables);
|
|
985
|
+
FixReportState(variables, requestHeaders, signal) {
|
|
986
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: FixReportStateDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "FixReportState", "query", variables);
|
|
961
987
|
},
|
|
962
|
-
GetVulnerabilityReportPaths(variables, requestHeaders) {
|
|
963
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetVulnerabilityReportPathsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetVulnerabilityReportPaths", "query", variables);
|
|
988
|
+
GetVulnerabilityReportPaths(variables, requestHeaders, signal) {
|
|
989
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetVulnerabilityReportPathsDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "GetVulnerabilityReportPaths", "query", variables);
|
|
964
990
|
},
|
|
965
|
-
getAnalysisSubscription(variables, requestHeaders) {
|
|
966
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetAnalysisSubscriptionDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalysisSubscription", "subscription", variables);
|
|
991
|
+
getAnalysisSubscription(variables, requestHeaders, signal) {
|
|
992
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetAnalysisSubscriptionDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getAnalysisSubscription", "subscription", variables);
|
|
967
993
|
},
|
|
968
|
-
getAnalysis(variables, requestHeaders) {
|
|
969
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetAnalysisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalysis", "query", variables);
|
|
994
|
+
getAnalysis(variables, requestHeaders, signal) {
|
|
995
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetAnalysisDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getAnalysis", "query", variables);
|
|
970
996
|
},
|
|
971
|
-
getFixes(variables, requestHeaders) {
|
|
972
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetFixesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getFixes", "query", variables);
|
|
997
|
+
getFixes(variables, requestHeaders, signal) {
|
|
998
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetFixesDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getFixes", "query", variables);
|
|
973
999
|
},
|
|
974
|
-
getVulByNodesMetadata(variables, requestHeaders) {
|
|
975
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetVulByNodesMetadataDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getVulByNodesMetadata", "query", variables);
|
|
1000
|
+
getVulByNodesMetadata(variables, requestHeaders, signal) {
|
|
1001
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetVulByNodesMetadataDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getVulByNodesMetadata", "query", variables);
|
|
976
1002
|
},
|
|
977
|
-
getFalsePositive(variables, requestHeaders) {
|
|
978
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetFalsePositiveDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getFalsePositive", "query", variables);
|
|
1003
|
+
getFalsePositive(variables, requestHeaders, signal) {
|
|
1004
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetFalsePositiveDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getFalsePositive", "query", variables);
|
|
979
1005
|
},
|
|
980
|
-
updateScmToken(variables, requestHeaders) {
|
|
981
|
-
return withWrapper((wrappedRequestHeaders) => client.request(UpdateScmTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "updateScmToken", "mutation", variables);
|
|
1006
|
+
updateScmToken(variables, requestHeaders, signal) {
|
|
1007
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: UpdateScmTokenDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "updateScmToken", "mutation", variables);
|
|
982
1008
|
},
|
|
983
|
-
uploadS3BucketInfo(variables, requestHeaders) {
|
|
984
|
-
return withWrapper((wrappedRequestHeaders) => client.request(UploadS3BucketInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "uploadS3BucketInfo", "mutation", variables);
|
|
1009
|
+
uploadS3BucketInfo(variables, requestHeaders, signal) {
|
|
1010
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: UploadS3BucketInfoDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "uploadS3BucketInfo", "mutation", variables);
|
|
985
1011
|
},
|
|
986
|
-
DigestVulnerabilityReport(variables, requestHeaders) {
|
|
987
|
-
return withWrapper((wrappedRequestHeaders) => client.request(DigestVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "DigestVulnerabilityReport", "mutation", variables);
|
|
1012
|
+
DigestVulnerabilityReport(variables, requestHeaders, signal) {
|
|
1013
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: DigestVulnerabilityReportDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "DigestVulnerabilityReport", "mutation", variables);
|
|
988
1014
|
},
|
|
989
|
-
SubmitVulnerabilityReport(variables, requestHeaders) {
|
|
990
|
-
return withWrapper((wrappedRequestHeaders) => client.request(SubmitVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "SubmitVulnerabilityReport", "mutation", variables);
|
|
1015
|
+
SubmitVulnerabilityReport(variables, requestHeaders, signal) {
|
|
1016
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: SubmitVulnerabilityReportDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "SubmitVulnerabilityReport", "mutation", variables);
|
|
991
1017
|
},
|
|
992
|
-
CreateCommunityUser(variables, requestHeaders) {
|
|
993
|
-
return withWrapper((wrappedRequestHeaders) => client.request(CreateCommunityUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCommunityUser", "mutation", variables);
|
|
1018
|
+
CreateCommunityUser(variables, requestHeaders, signal) {
|
|
1019
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: CreateCommunityUserDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "CreateCommunityUser", "mutation", variables);
|
|
994
1020
|
},
|
|
995
|
-
CreateCliLogin(variables, requestHeaders) {
|
|
996
|
-
return withWrapper((wrappedRequestHeaders) => client.request(CreateCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCliLogin", "mutation", variables);
|
|
1021
|
+
CreateCliLogin(variables, requestHeaders, signal) {
|
|
1022
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: CreateCliLoginDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "CreateCliLogin", "mutation", variables);
|
|
997
1023
|
},
|
|
998
|
-
performCliLogin(variables, requestHeaders) {
|
|
999
|
-
return withWrapper((wrappedRequestHeaders) => client.request(PerformCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "performCliLogin", "mutation", variables);
|
|
1024
|
+
performCliLogin(variables, requestHeaders, signal) {
|
|
1025
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: PerformCliLoginDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "performCliLogin", "mutation", variables);
|
|
1000
1026
|
},
|
|
1001
|
-
CreateProject(variables, requestHeaders) {
|
|
1002
|
-
return withWrapper((wrappedRequestHeaders) => client.request(CreateProjectDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateProject", "mutation", variables);
|
|
1027
|
+
CreateProject(variables, requestHeaders, signal) {
|
|
1028
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: CreateProjectDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "CreateProject", "mutation", variables);
|
|
1003
1029
|
},
|
|
1004
|
-
validateRepoUrl(variables, requestHeaders) {
|
|
1005
|
-
return withWrapper((wrappedRequestHeaders) => client.request(ValidateRepoUrlDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "validateRepoUrl", "query", variables);
|
|
1030
|
+
validateRepoUrl(variables, requestHeaders, signal) {
|
|
1031
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: ValidateRepoUrlDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "validateRepoUrl", "query", variables);
|
|
1006
1032
|
},
|
|
1007
|
-
gitReference(variables, requestHeaders) {
|
|
1008
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GitReferenceDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "gitReference", "query", variables);
|
|
1033
|
+
gitReference(variables, requestHeaders, signal) {
|
|
1034
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GitReferenceDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "gitReference", "query", variables);
|
|
1009
1035
|
},
|
|
1010
|
-
autoPrAnalysis(variables, requestHeaders) {
|
|
1011
|
-
return withWrapper((wrappedRequestHeaders) => client.request(AutoPrAnalysisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "autoPrAnalysis", "mutation", variables);
|
|
1036
|
+
autoPrAnalysis(variables, requestHeaders, signal) {
|
|
1037
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: AutoPrAnalysisDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "autoPrAnalysis", "mutation", variables);
|
|
1012
1038
|
},
|
|
1013
|
-
GetMCPFixes(variables, requestHeaders) {
|
|
1014
|
-
return withWrapper((wrappedRequestHeaders) => client.request(GetMcpFixesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetMCPFixes", "query", variables);
|
|
1039
|
+
GetMCPFixes(variables, requestHeaders, signal) {
|
|
1040
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetMcpFixesDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "GetMCPFixes", "query", variables);
|
|
1015
1041
|
}
|
|
1016
1042
|
};
|
|
1017
1043
|
}
|
|
@@ -1445,7 +1471,8 @@ var issueTypeMap = {
|
|
|
1445
1471
|
["WILDCARD_IMPORTS" /* WildcardImports */]: "Wildcard Imports should not be used",
|
|
1446
1472
|
["AVOID_IDENTITY_COMPARISON_CACHED_TYPES" /* AvoidIdentityComparisonCachedTypes */]: "Avoid Identity Comparison of Cached Types",
|
|
1447
1473
|
["AVOID_BUILTIN_SHADOWING" /* AvoidBuiltinShadowing */]: "Avoid Builtin Shadowing",
|
|
1448
|
-
["IMPROPER_STRING_FORMATTING" /* ImproperStringFormatting */]: "Improper String Formatting"
|
|
1474
|
+
["IMPROPER_STRING_FORMATTING" /* ImproperStringFormatting */]: "Improper String Formatting",
|
|
1475
|
+
["TAR_SLIP" /* TarSlip */]: "Tar Slip"
|
|
1449
1476
|
};
|
|
1450
1477
|
var issueTypeZ = z5.nativeEnum(IssueType_Enum);
|
|
1451
1478
|
var getIssueTypeFriendlyString = (issueType) => {
|
|
@@ -1908,7 +1935,7 @@ var ConvertToSarifInputFileFormat = /* @__PURE__ */ ((ConvertToSarifInputFileFor
|
|
|
1908
1935
|
var DEFUALT_ADO_ORIGIN = scmCloudUrl.Ado;
|
|
1909
1936
|
|
|
1910
1937
|
// src/features/analysis/scm/ado/utils.ts
|
|
1911
|
-
import querystring from "
|
|
1938
|
+
import querystring from "querystring";
|
|
1912
1939
|
import * as api from "azure-devops-node-api";
|
|
1913
1940
|
import Debug from "debug";
|
|
1914
1941
|
import { z as z17 } from "zod";
|
|
@@ -2178,7 +2205,8 @@ var fixDetailsData = {
|
|
|
2178
2205
|
["AVOID_IDENTITY_COMPARISON_CACHED_TYPES" /* AvoidIdentityComparisonCachedTypes */]: void 0,
|
|
2179
2206
|
["AVOID_BUILTIN_SHADOWING" /* AvoidBuiltinShadowing */]: void 0,
|
|
2180
2207
|
["IMPROPER_STRING_FORMATTING" /* ImproperStringFormatting */]: void 0,
|
|
2181
|
-
["WILDCARD_IMPORTS" /* WildcardImports */]: void 0
|
|
2208
|
+
["WILDCARD_IMPORTS" /* WildcardImports */]: void 0,
|
|
2209
|
+
["TAR_SLIP" /* TarSlip */]: void 0
|
|
2182
2210
|
};
|
|
2183
2211
|
|
|
2184
2212
|
// src/features/analysis/scm/shared/src/commitDescriptionMarkup.ts
|
|
@@ -4862,7 +4890,7 @@ async function getAdoRepoList({
|
|
|
4862
4890
|
}
|
|
4863
4891
|
|
|
4864
4892
|
// src/features/analysis/scm/ado/AdoSCMLib.ts
|
|
4865
|
-
import { setTimeout as setTimeout2 } from "
|
|
4893
|
+
import { setTimeout as setTimeout2 } from "timers/promises";
|
|
4866
4894
|
|
|
4867
4895
|
// src/features/analysis/scm/scmSubmit/index.ts
|
|
4868
4896
|
import { simpleGit } from "simple-git";
|
|
@@ -5143,7 +5171,7 @@ var AdoSCMLib = class extends SCMLib {
|
|
|
5143
5171
|
};
|
|
5144
5172
|
|
|
5145
5173
|
// src/features/analysis/scm/bitbucket/bitbucket.ts
|
|
5146
|
-
import querystring2 from "
|
|
5174
|
+
import querystring2 from "querystring";
|
|
5147
5175
|
import * as bitbucketPkgNode from "bitbucket";
|
|
5148
5176
|
import bitbucketPkg from "bitbucket";
|
|
5149
5177
|
import Debug2 from "debug";
|
|
@@ -5463,7 +5491,7 @@ async function getRepositoriesByWorkspace(bitbucketClient, { workspaceSlug }) {
|
|
|
5463
5491
|
}
|
|
5464
5492
|
|
|
5465
5493
|
// src/features/analysis/scm/bitbucket/BitbucketSCMLib.ts
|
|
5466
|
-
import { setTimeout as setTimeout3 } from "
|
|
5494
|
+
import { setTimeout as setTimeout3 } from "timers/promises";
|
|
5467
5495
|
import { z as z20 } from "zod";
|
|
5468
5496
|
function getUserAndPassword(token) {
|
|
5469
5497
|
const [username, password] = token.split(":");
|
|
@@ -6500,7 +6528,7 @@ var GithubSCMLib = class extends SCMLib {
|
|
|
6500
6528
|
};
|
|
6501
6529
|
|
|
6502
6530
|
// src/features/analysis/scm/gitlab/gitlab.ts
|
|
6503
|
-
import querystring3 from "
|
|
6531
|
+
import querystring3 from "querystring";
|
|
6504
6532
|
import {
|
|
6505
6533
|
createRequesterFn
|
|
6506
6534
|
} from "@gitbeaker/requester-utils";
|
|
@@ -7206,8 +7234,8 @@ __export(utils_exports, {
|
|
|
7206
7234
|
});
|
|
7207
7235
|
|
|
7208
7236
|
// src/utils/dirname.ts
|
|
7209
|
-
import path from "
|
|
7210
|
-
import { fileURLToPath } from "
|
|
7237
|
+
import path from "path";
|
|
7238
|
+
import { fileURLToPath } from "url";
|
|
7211
7239
|
function getDirName() {
|
|
7212
7240
|
return path.dirname(fileURLToPath(import.meta.url));
|
|
7213
7241
|
}
|
|
@@ -7216,9 +7244,9 @@ function getTopLevelDirName(fullPath) {
|
|
|
7216
7244
|
}
|
|
7217
7245
|
|
|
7218
7246
|
// src/utils/keypress.ts
|
|
7219
|
-
import
|
|
7247
|
+
import readline2 from "readline";
|
|
7220
7248
|
async function keypress() {
|
|
7221
|
-
const rl =
|
|
7249
|
+
const rl = readline2.createInterface({
|
|
7222
7250
|
input: process.stdin,
|
|
7223
7251
|
output: process.stdout
|
|
7224
7252
|
});
|
|
@@ -7275,8 +7303,8 @@ function Spinner({ ci = false } = {}) {
|
|
|
7275
7303
|
}
|
|
7276
7304
|
|
|
7277
7305
|
// src/utils/check_node_version.ts
|
|
7278
|
-
import fs2 from "
|
|
7279
|
-
import path2 from "
|
|
7306
|
+
import fs2 from "fs";
|
|
7307
|
+
import path2 from "path";
|
|
7280
7308
|
import semver from "semver";
|
|
7281
7309
|
function getPackageJson() {
|
|
7282
7310
|
let manifestPath = path2.join(getDirName(), "../package.json");
|
|
@@ -7330,7 +7358,8 @@ async function convertFprToSarif(inputFilePath, outputFilePath, codePathPatterns
|
|
|
7330
7358
|
await zipIn.extract("audit.fvdl", auditFvdlPath);
|
|
7331
7359
|
const auditFvdlSaxParser = initSaxParser(auditFvdlPath);
|
|
7332
7360
|
const vulnerabilityParser = new VulnerabilityParser(
|
|
7333
|
-
auditFvdlSaxParser.parser
|
|
7361
|
+
auditFvdlSaxParser.parser,
|
|
7362
|
+
path3.join(tmpObj.name, "vulns.json")
|
|
7334
7363
|
);
|
|
7335
7364
|
const unifiedNodePoolParser = new UnifiedNodePoolParser(
|
|
7336
7365
|
auditFvdlSaxParser.parser
|
|
@@ -7348,9 +7377,8 @@ async function convertFprToSarif(inputFilePath, outputFilePath, codePathPatterns
|
|
|
7348
7377
|
await auditXmlSaxParser.parse();
|
|
7349
7378
|
}
|
|
7350
7379
|
await zipIn.close();
|
|
7351
|
-
fs3.
|
|
7352
|
-
|
|
7353
|
-
`{
|
|
7380
|
+
const writer = fs3.createWriteStream(outputFilePath);
|
|
7381
|
+
writer.write(`{
|
|
7354
7382
|
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
|
|
7355
7383
|
"version": "2.1.0",
|
|
7356
7384
|
"runs": [
|
|
@@ -7361,23 +7389,26 @@ async function convertFprToSarif(inputFilePath, outputFilePath, codePathPatterns
|
|
|
7361
7389
|
}
|
|
7362
7390
|
},
|
|
7363
7391
|
"results": [
|
|
7364
|
-
`
|
|
7365
|
-
|
|
7366
|
-
const
|
|
7367
|
-
|
|
7392
|
+
`);
|
|
7393
|
+
let isFirstVuln = true;
|
|
7394
|
+
for await (const vulnerability of vulnerabilityParser.getVulnerabilities()) {
|
|
7395
|
+
const sarifResult = fortifyVulnerabilityToSarifResult(
|
|
7368
7396
|
vulnerability,
|
|
7369
7397
|
auditMetadataParser,
|
|
7370
7398
|
reportMetadataParser,
|
|
7371
7399
|
unifiedNodePoolParser
|
|
7372
|
-
)
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
|
|
7376
|
-
|
|
7377
|
-
|
|
7400
|
+
);
|
|
7401
|
+
if (filterSarifResult(sarifResult, codePathPatterns)) {
|
|
7402
|
+
if (isFirstVuln) {
|
|
7403
|
+
isFirstVuln = false;
|
|
7404
|
+
} else {
|
|
7405
|
+
writer.write(",\n");
|
|
7406
|
+
}
|
|
7407
|
+
writer.write(JSON.stringify(sarifResult, null, 2));
|
|
7378
7408
|
}
|
|
7379
|
-
}
|
|
7380
|
-
|
|
7409
|
+
}
|
|
7410
|
+
writer.write("\n]}]}");
|
|
7411
|
+
await new Promise((r) => writer.end(r));
|
|
7381
7412
|
} finally {
|
|
7382
7413
|
tmpObj.removeCallback();
|
|
7383
7414
|
}
|
|
@@ -7451,8 +7482,8 @@ function fortifyNodesToSarifLocations(nodes, unifiedNodePoolParser) {
|
|
|
7451
7482
|
import chalk2 from "chalk";
|
|
7452
7483
|
|
|
7453
7484
|
// src/constants.ts
|
|
7454
|
-
import path4 from "
|
|
7455
|
-
import { fileURLToPath as fileURLToPath2 } from "
|
|
7485
|
+
import path4 from "path";
|
|
7486
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
7456
7487
|
import chalk from "chalk";
|
|
7457
7488
|
import Debug4 from "debug";
|
|
7458
7489
|
import * as dotenv from "dotenv";
|
|
@@ -7706,18 +7737,18 @@ import chalk10 from "chalk";
|
|
|
7706
7737
|
import yargs from "yargs/yargs";
|
|
7707
7738
|
|
|
7708
7739
|
// src/args/commands/analyze.ts
|
|
7709
|
-
import fs7 from "
|
|
7740
|
+
import fs7 from "fs";
|
|
7710
7741
|
|
|
7711
7742
|
// src/commands/index.ts
|
|
7712
|
-
import crypto from "
|
|
7713
|
-
import os from "
|
|
7743
|
+
import crypto from "crypto";
|
|
7744
|
+
import os from "os";
|
|
7714
7745
|
|
|
7715
7746
|
// src/features/analysis/index.ts
|
|
7716
|
-
import fs6 from "
|
|
7717
|
-
import fsPromises from "
|
|
7718
|
-
import path7 from "
|
|
7719
|
-
import { env as env2 } from "
|
|
7720
|
-
import { pipeline } from "
|
|
7747
|
+
import fs6 from "fs";
|
|
7748
|
+
import fsPromises from "fs/promises";
|
|
7749
|
+
import path7 from "path";
|
|
7750
|
+
import { env as env2 } from "process";
|
|
7751
|
+
import { pipeline } from "stream/promises";
|
|
7721
7752
|
import chalk5 from "chalk";
|
|
7722
7753
|
import Configstore from "configstore";
|
|
7723
7754
|
import Debug18 from "debug";
|
|
@@ -8905,8 +8936,8 @@ var GQLClient = class {
|
|
|
8905
8936
|
};
|
|
8906
8937
|
|
|
8907
8938
|
// src/features/analysis/pack.ts
|
|
8908
|
-
import fs5 from "
|
|
8909
|
-
import path5 from "
|
|
8939
|
+
import fs5 from "fs";
|
|
8940
|
+
import path5 from "path";
|
|
8910
8941
|
import AdmZip from "adm-zip";
|
|
8911
8942
|
import Debug13 from "debug";
|
|
8912
8943
|
import { globby } from "globby";
|
|
@@ -9082,14 +9113,14 @@ async function snykArticlePrompt() {
|
|
|
9082
9113
|
}
|
|
9083
9114
|
|
|
9084
9115
|
// src/features/analysis/scanners/checkmarx.ts
|
|
9085
|
-
import { createRequire } from "
|
|
9116
|
+
import { createRequire } from "module";
|
|
9086
9117
|
|
|
9087
9118
|
// src/post_install/constants.mjs
|
|
9088
9119
|
var cxOperatingSystemSupportMessage = `Your operating system does not support checkmarx.
|
|
9089
9120
|
You can see the list of supported operating systems here: https://github.com/Checkmarx/ast-cli#releases`;
|
|
9090
9121
|
|
|
9091
9122
|
// src/utils/child_process.ts
|
|
9092
|
-
import cp from "
|
|
9123
|
+
import cp from "child_process";
|
|
9093
9124
|
import Debug14 from "debug";
|
|
9094
9125
|
import * as process2 from "process";
|
|
9095
9126
|
function createFork({ args, processPath, name }, options) {
|
|
@@ -9258,7 +9289,7 @@ async function validateCheckamxCredentials() {
|
|
|
9258
9289
|
}
|
|
9259
9290
|
|
|
9260
9291
|
// src/features/analysis/scanners/snyk.ts
|
|
9261
|
-
import { createRequire as createRequire2 } from "
|
|
9292
|
+
import { createRequire as createRequire2 } from "module";
|
|
9262
9293
|
import chalk4 from "chalk";
|
|
9263
9294
|
import Debug16 from "debug";
|
|
9264
9295
|
import { createSpinner as createSpinner3 } from "nanospinner";
|
|
@@ -10662,8 +10693,8 @@ var GitService = class {
|
|
|
10662
10693
|
};
|
|
10663
10694
|
|
|
10664
10695
|
// src/mcp/services/PathValidation.ts
|
|
10665
|
-
import fs8 from "
|
|
10666
|
-
import path10 from "
|
|
10696
|
+
import fs8 from "fs";
|
|
10697
|
+
import path10 from "path";
|
|
10667
10698
|
var PathValidation = class {
|
|
10668
10699
|
/**
|
|
10669
10700
|
* Validates a path for MCP usage - combines security and existence checks
|
|
@@ -10707,8 +10738,8 @@ var PathValidation = class {
|
|
|
10707
10738
|
};
|
|
10708
10739
|
|
|
10709
10740
|
// src/mcp/services/FilePacking.ts
|
|
10710
|
-
import fs9 from "
|
|
10711
|
-
import path11 from "
|
|
10741
|
+
import fs9 from "fs";
|
|
10742
|
+
import path11 from "path";
|
|
10712
10743
|
import AdmZip2 from "adm-zip";
|
|
10713
10744
|
import { isBinary as isBinary2 } from "istextorbinary";
|
|
10714
10745
|
var MAX_FILE_SIZE2 = 1024 * 1024 * 5;
|
|
@@ -11739,7 +11770,7 @@ var mcpHandler = async (_args) => {
|
|
|
11739
11770
|
};
|
|
11740
11771
|
|
|
11741
11772
|
// src/args/commands/review.ts
|
|
11742
|
-
import fs10 from "
|
|
11773
|
+
import fs10 from "fs";
|
|
11743
11774
|
import chalk9 from "chalk";
|
|
11744
11775
|
function reviewBuilder(yargs2) {
|
|
11745
11776
|
return yargs2.option("f", {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mobbdev",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.90",
|
|
4
4
|
"description": "Automated secure code remediation tool",
|
|
5
5
|
"repository": "git+https://github.com/mobb-dev/bugsy.git",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"chalk-animation": "2.0.3",
|
|
56
56
|
"configstore": "6.0.0",
|
|
57
57
|
"cross-fetch": "4.1.0",
|
|
58
|
-
"debug": "4.4.
|
|
58
|
+
"debug": "4.4.1",
|
|
59
59
|
"dotenv": "16.5.0",
|
|
60
60
|
"extract-zip": "2.0.1",
|
|
61
61
|
"globby": "14.1.0",
|
|
@@ -76,22 +76,22 @@
|
|
|
76
76
|
"open": "8.4.2",
|
|
77
77
|
"parse-diff": "0.11.1",
|
|
78
78
|
"sax": "1.4.1",
|
|
79
|
-
"semver": "7.7.
|
|
79
|
+
"semver": "7.7.2",
|
|
80
80
|
"simple-git": "3.27.0",
|
|
81
|
-
"snyk": "1.
|
|
81
|
+
"snyk": "1.1297.1",
|
|
82
82
|
"tar": "6.2.1",
|
|
83
83
|
"tmp": "0.2.3",
|
|
84
|
-
"undici": "6.21.
|
|
84
|
+
"undici": "6.21.3",
|
|
85
85
|
"uuid": "11.1.0",
|
|
86
86
|
"ws": "8.18.2",
|
|
87
87
|
"xml2js": "0.6.2",
|
|
88
88
|
"yargs": "17.7.2",
|
|
89
|
-
"zod": "3.
|
|
89
|
+
"zod": "3.25.36"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
92
|
"@graphql-codegen/cli": "5.0.6",
|
|
93
93
|
"@graphql-codegen/typescript": "4.1.6",
|
|
94
|
-
"@graphql-codegen/typescript-graphql-request": "6.
|
|
94
|
+
"@graphql-codegen/typescript-graphql-request": "6.3.0",
|
|
95
95
|
"@graphql-codegen/typescript-operations": "4.6.1",
|
|
96
96
|
"@octokit/types": "13.10.0",
|
|
97
97
|
"@types/adm-zip": "0.5.7",
|
|
@@ -109,18 +109,19 @@
|
|
|
109
109
|
"@types/yargs": "17.0.33",
|
|
110
110
|
"@typescript-eslint/eslint-plugin": "7.17.0",
|
|
111
111
|
"@typescript-eslint/parser": "7.17.0",
|
|
112
|
-
"@vitest/coverage-istanbul": "3.1.
|
|
113
|
-
"@vitest/ui": "3.1.
|
|
112
|
+
"@vitest/coverage-istanbul": "3.1.4",
|
|
113
|
+
"@vitest/ui": "3.1.4",
|
|
114
114
|
"eslint": "8.57.0",
|
|
115
115
|
"eslint-plugin-import": "2.31.0",
|
|
116
116
|
"eslint-plugin-prettier": "5.4.0",
|
|
117
117
|
"eslint-plugin-simple-import-sort": "10.0.0",
|
|
118
|
-
"msw": "2.
|
|
118
|
+
"msw": "2.8.5",
|
|
119
119
|
"nock": "14.0.4",
|
|
120
|
+
"pino-pretty": "13.0.0",
|
|
120
121
|
"prettier": "3.5.3",
|
|
121
|
-
"tsup": "8.
|
|
122
|
+
"tsup": "8.5.0",
|
|
122
123
|
"typescript": "4.9.5",
|
|
123
|
-
"vitest": "3.1.
|
|
124
|
+
"vitest": "3.1.4"
|
|
124
125
|
},
|
|
125
126
|
"engines": {
|
|
126
127
|
"node": ">=18.20.4"
|