mobbdev 0.0.126 → 0.0.128

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 (2) hide show
  1. package/dist/index.mjs +51 -31
  2. package/package.json +9 -9
package/dist/index.mjs CHANGED
@@ -118,7 +118,7 @@ var VUL_REPORT_DIGEST_TIMEOUT_MS = 1e3 * 60 * 20;
118
118
  // src/features/analysis/index.ts
119
119
  import crypto from "node:crypto";
120
120
  import fs3 from "node:fs";
121
- import os2 from "node:os";
121
+ import os from "node:os";
122
122
  import path6 from "node:path";
123
123
  import { pipeline } from "node:stream/promises";
124
124
 
@@ -396,59 +396,59 @@ var CreateProjectDocument = `
396
396
  }
397
397
  }
398
398
  `;
399
- var defaultWrapper = (action, _operationName, _operationType) => action();
399
+ var defaultWrapper = (action, _operationName, _operationType, _variables) => action();
400
400
  function getSdk(client, withWrapper = defaultWrapper) {
401
401
  return {
402
402
  Me(variables, requestHeaders) {
403
- return withWrapper((wrappedRequestHeaders) => client.request(MeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "Me", "query");
403
+ return withWrapper((wrappedRequestHeaders) => client.request(MeDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "Me", "query", variables);
404
404
  },
405
405
  getOrgAndProjectId(variables, requestHeaders) {
406
- return withWrapper((wrappedRequestHeaders) => client.request(GetOrgAndProjectIdDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getOrgAndProjectId", "query");
406
+ return withWrapper((wrappedRequestHeaders) => client.request(GetOrgAndProjectIdDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getOrgAndProjectId", "query", variables);
407
407
  },
408
408
  GetEncryptedApiToken(variables, requestHeaders) {
409
- return withWrapper((wrappedRequestHeaders) => client.request(GetEncryptedApiTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetEncryptedApiToken", "query");
409
+ return withWrapper((wrappedRequestHeaders) => client.request(GetEncryptedApiTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetEncryptedApiToken", "query", variables);
410
410
  },
411
411
  FixReportState(variables, requestHeaders) {
412
- return withWrapper((wrappedRequestHeaders) => client.request(FixReportStateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "FixReportState", "query");
412
+ return withWrapper((wrappedRequestHeaders) => client.request(FixReportStateDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "FixReportState", "query", variables);
413
413
  },
414
414
  GetVulnerabilityReportPaths(variables, requestHeaders) {
415
- return withWrapper((wrappedRequestHeaders) => client.request(GetVulnerabilityReportPathsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetVulnerabilityReportPaths", "query");
415
+ return withWrapper((wrappedRequestHeaders) => client.request(GetVulnerabilityReportPathsDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "GetVulnerabilityReportPaths", "query", variables);
416
416
  },
417
417
  getAnalysis(variables, requestHeaders) {
418
- return withWrapper((wrappedRequestHeaders) => client.request(GetAnalysisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalysis", "subscription");
418
+ return withWrapper((wrappedRequestHeaders) => client.request(GetAnalysisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalysis", "subscription", variables);
419
419
  },
420
420
  getAnalsyis(variables, requestHeaders) {
421
- return withWrapper((wrappedRequestHeaders) => client.request(GetAnalsyisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalsyis", "query");
421
+ return withWrapper((wrappedRequestHeaders) => client.request(GetAnalsyisDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getAnalsyis", "query", variables);
422
422
  },
423
423
  getFixes(variables, requestHeaders) {
424
- return withWrapper((wrappedRequestHeaders) => client.request(GetFixesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getFixes", "query");
424
+ return withWrapper((wrappedRequestHeaders) => client.request(GetFixesDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getFixes", "query", variables);
425
425
  },
426
426
  getVulByNodesMetadata(variables, requestHeaders) {
427
- return withWrapper((wrappedRequestHeaders) => client.request(GetVulByNodesMetadataDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getVulByNodesMetadata", "query");
427
+ return withWrapper((wrappedRequestHeaders) => client.request(GetVulByNodesMetadataDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "getVulByNodesMetadata", "query", variables);
428
428
  },
429
429
  updateScmToken(variables, requestHeaders) {
430
- return withWrapper((wrappedRequestHeaders) => client.request(UpdateScmTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "updateScmToken", "mutation");
430
+ return withWrapper((wrappedRequestHeaders) => client.request(UpdateScmTokenDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "updateScmToken", "mutation", variables);
431
431
  },
432
432
  uploadS3BucketInfo(variables, requestHeaders) {
433
- return withWrapper((wrappedRequestHeaders) => client.request(UploadS3BucketInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "uploadS3BucketInfo", "mutation");
433
+ return withWrapper((wrappedRequestHeaders) => client.request(UploadS3BucketInfoDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "uploadS3BucketInfo", "mutation", variables);
434
434
  },
435
435
  DigestVulnerabilityReport(variables, requestHeaders) {
436
- return withWrapper((wrappedRequestHeaders) => client.request(DigestVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "DigestVulnerabilityReport", "mutation");
436
+ return withWrapper((wrappedRequestHeaders) => client.request(DigestVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "DigestVulnerabilityReport", "mutation", variables);
437
437
  },
438
438
  SubmitVulnerabilityReport(variables, requestHeaders) {
439
- return withWrapper((wrappedRequestHeaders) => client.request(SubmitVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "SubmitVulnerabilityReport", "mutation");
439
+ return withWrapper((wrappedRequestHeaders) => client.request(SubmitVulnerabilityReportDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "SubmitVulnerabilityReport", "mutation", variables);
440
440
  },
441
441
  CreateCommunityUser(variables, requestHeaders) {
442
- return withWrapper((wrappedRequestHeaders) => client.request(CreateCommunityUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCommunityUser", "mutation");
442
+ return withWrapper((wrappedRequestHeaders) => client.request(CreateCommunityUserDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCommunityUser", "mutation", variables);
443
443
  },
444
444
  CreateCliLogin(variables, requestHeaders) {
445
- return withWrapper((wrappedRequestHeaders) => client.request(CreateCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCliLogin", "mutation");
445
+ return withWrapper((wrappedRequestHeaders) => client.request(CreateCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateCliLogin", "mutation", variables);
446
446
  },
447
447
  performCliLogin(variables, requestHeaders) {
448
- return withWrapper((wrappedRequestHeaders) => client.request(PerformCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "performCliLogin", "mutation");
448
+ return withWrapper((wrappedRequestHeaders) => client.request(PerformCliLoginDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "performCliLogin", "mutation", variables);
449
449
  },
450
450
  CreateProject(variables, requestHeaders) {
451
- return withWrapper((wrappedRequestHeaders) => client.request(CreateProjectDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateProject", "mutation");
451
+ return withWrapper((wrappedRequestHeaders) => client.request(CreateProjectDocument, variables, { ...requestHeaders, ...wrappedRequestHeaders }), "CreateProject", "mutation", variables);
452
452
  }
453
453
  };
454
454
  }
@@ -1845,8 +1845,24 @@ function getCommitUrl(params) {
1845
1845
  analysisId
1846
1846
  })}/commit?${searchParams.toString()}`;
1847
1847
  }
1848
- function removeTrailingSlash2(str) {
1849
- return str.trim().replace(/\/+$/, "");
1848
+ var userNamePattern = /^(https?:\/\/)([^@]+@)?([^/]+\/.+)$/;
1849
+ var sshPattern = /^git@([\w.-]+):([\w./-]+)$/;
1850
+ function normalizeUrl(repoUrl) {
1851
+ let trimmedUrl = repoUrl.trim().replace(/\/+$/, "");
1852
+ if (repoUrl.endsWith(".git")) {
1853
+ trimmedUrl = trimmedUrl.slice(0, -".git".length);
1854
+ }
1855
+ const usernameMatch = trimmedUrl.match(userNamePattern);
1856
+ if (usernameMatch) {
1857
+ const [_all, protocol, _username, repoPath] = usernameMatch;
1858
+ trimmedUrl = `${protocol}${repoPath}`;
1859
+ }
1860
+ const sshMatch = trimmedUrl.match(sshPattern);
1861
+ if (sshMatch) {
1862
+ const [_all, hostname, reporPath] = sshMatch;
1863
+ trimmedUrl = `https://${hostname}/${reporPath}`;
1864
+ }
1865
+ return trimmedUrl;
1850
1866
  }
1851
1867
 
1852
1868
  // src/features/analysis/scm/github/github.ts
@@ -2124,7 +2140,7 @@ async function getCommit({
2124
2140
  });
2125
2141
  }
2126
2142
  function parseGithubOwnerAndRepo(gitHubUrl) {
2127
- gitHubUrl = removeTrailingSlash2(gitHubUrl);
2143
+ gitHubUrl = normalizeUrl(gitHubUrl);
2128
2144
  const parsingResult = parseScmURL(gitHubUrl, "GitHub" /* GitHub */);
2129
2145
  if (!parsingResult || parsingResult.hostname !== "github.com") {
2130
2146
  throw new InvalidUrlPatternError(`invalid github repo Url ${gitHubUrl}`);
@@ -2351,7 +2367,7 @@ var EnvVariablesZod2 = z6.object({
2351
2367
  ).default("")
2352
2368
  });
2353
2369
  var { GITLAB_API_TOKEN, BROKERED_HOSTS } = EnvVariablesZod2.parse(process.env);
2354
- function removeTrailingSlash3(str) {
2370
+ function removeTrailingSlash2(str) {
2355
2371
  return str.trim().replace(/\/+$/, "");
2356
2372
  }
2357
2373
  function getGitBeaker(options) {
@@ -2580,7 +2596,7 @@ async function getGitlabReferenceData({ ref, gitlabUrl }, options) {
2580
2596
  throw new RefNotFoundError(`ref: ${ref} does not exist`);
2581
2597
  }
2582
2598
  function parseGitlabOwnerAndRepo(gitlabUrl) {
2583
- gitlabUrl = removeTrailingSlash3(gitlabUrl);
2599
+ gitlabUrl = removeTrailingSlash2(gitlabUrl);
2584
2600
  const parsingResult = parseScmURL(gitlabUrl, "GitLab" /* GitLab */);
2585
2601
  if (!parsingResult || !parsingResult.repoName) {
2586
2602
  throw new InvalidUrlPatternError(`invalid gitlab repo Url ${gitlabUrl}`);
@@ -2641,7 +2657,6 @@ initGitlabFetchMock();
2641
2657
 
2642
2658
  // src/features/analysis/scm/scmSubmit/index.ts
2643
2659
  import fs from "node:fs/promises";
2644
- import os from "os";
2645
2660
  import parseDiff from "parse-diff";
2646
2661
  import path3 from "path";
2647
2662
  import { simpleGit as simpleGit2 } from "simple-git";
@@ -2655,7 +2670,7 @@ var BaseSubmitToScmMessageZ = z7.object({
2655
2670
  fixes: z7.array(
2656
2671
  z7.object({
2657
2672
  fixId: z7.string().uuid(),
2658
- diff: z7.string()
2673
+ patches: z7.array(z7.string())
2659
2674
  })
2660
2675
  ),
2661
2676
  commitHash: z7.string(),
@@ -2740,7 +2755,12 @@ var isValidBranchName = async (branchName) => {
2740
2755
  return false;
2741
2756
  }
2742
2757
  };
2743
- var FixesZ = z8.array(z8.object({ fixId: z8.string(), diff: z8.string() })).nonempty();
2758
+ var FixesZ = z8.array(
2759
+ z8.object({
2760
+ fixId: z8.string(),
2761
+ patches: z8.array(z8.string())
2762
+ })
2763
+ ).nonempty();
2744
2764
 
2745
2765
  // src/features/analysis/scm/scm.ts
2746
2766
  var GetRefererenceResultZ = z9.object({
@@ -3841,7 +3861,7 @@ var BitbucketParseResultZ = z10.object({
3841
3861
  hostname: z10.literal(BITBUCKET_HOSTNAME)
3842
3862
  });
3843
3863
  function parseBitbucketOrganizationAndRepo(bitbucketUrl) {
3844
- const parsedGitHubUrl = removeTrailingSlash2(bitbucketUrl);
3864
+ const parsedGitHubUrl = normalizeUrl(bitbucketUrl);
3845
3865
  const parsingResult = parseScmURL(parsedGitHubUrl, "Bitbucket" /* Bitbucket */);
3846
3866
  const validatedBitbucketResult = BitbucketParseResultZ.parse(parsingResult);
3847
3867
  return {
@@ -4697,8 +4717,8 @@ import path5 from "path";
4697
4717
  var debug7 = Debug8("mobbdev:checkmarx");
4698
4718
  var require2 = createRequire(import.meta.url);
4699
4719
  var getCheckmarxPath = () => {
4700
- const os3 = type();
4701
- const cxFileName = os3 === "Windows_NT" ? "cx.exe" : "cx";
4720
+ const os2 = type();
4721
+ const cxFileName = os2 === "Windows_NT" ? "cx.exe" : "cx";
4702
4722
  try {
4703
4723
  return require2.resolve(`.bin/${cxFileName}`);
4704
4724
  } catch (e) {
@@ -5240,7 +5260,7 @@ async function _scan(params, { skipPrompts = false } = {}) {
5240
5260
  const loginId = await gqlClient.createCliLogin({
5241
5261
  publicKey: publicKey.export({ format: "pem", type: "pkcs1" }).toString()
5242
5262
  });
5243
- const browserUrl = `${webLoginUrl}/${loginId}?hostname=${os2.hostname()}`;
5263
+ const browserUrl = `${webLoginUrl}/${loginId}?hostname=${os.hostname()}`;
5244
5264
  !ci && console.log(
5245
5265
  `If the page does not open automatically, kindly access it through ${browserUrl}.`
5246
5266
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobbdev",
3
- "version": "0.0.126",
3
+ "version": "0.0.128",
4
4
  "description": "Automated secure code remediation tool",
5
5
  "repository": "https://github.com/mobb-dev/bugsy",
6
6
  "main": "dist/index.js",
@@ -32,7 +32,7 @@
32
32
  "@octokit/plugin-rest-endpoint-methods": "7.2.3",
33
33
  "@octokit/request-error": "3.0.3",
34
34
  "@types/libsodium-wrappers": "0.7.13",
35
- "adm-zip": "0.5.10",
35
+ "adm-zip": "0.5.14",
36
36
  "axios": "1.7.2",
37
37
  "azure-devops-node-api": "12.1.0",
38
38
  "bitbucket": "2.11.0",
@@ -44,7 +44,7 @@
44
44
  "extract-zip": "2.0.1",
45
45
  "globby": "13.2.2",
46
46
  "graphql": "16.9.0",
47
- "graphql-request": "5.0.0",
47
+ "graphql-request": "6.1.0",
48
48
  "graphql-tag": "2.12.6",
49
49
  "graphql-ws": "5.16.0",
50
50
  "inquirer": "9.2.23",
@@ -71,11 +71,11 @@
71
71
  "devDependencies": {
72
72
  "@graphql-codegen/cli": "5.0.2",
73
73
  "@graphql-codegen/typescript": "3.0.4",
74
- "@graphql-codegen/typescript-graphql-request": "4.5.8",
74
+ "@graphql-codegen/typescript-graphql-request": "6.2.0",
75
75
  "@graphql-codegen/typescript-operations": "3.0.4",
76
76
  "@octokit/request-error": "3.0.3",
77
77
  "@octokit/types": "13.5.0",
78
- "@types/adm-zip": "0.5.0",
78
+ "@types/adm-zip": "0.5.5",
79
79
  "@types/chalk-animation": "1.6.3",
80
80
  "@types/configstore": "6.0.2",
81
81
  "@types/debug": "4.1.12",
@@ -86,9 +86,9 @@
86
86
  "@types/uuid": "10.0.0",
87
87
  "@types/ws": "8.5.10",
88
88
  "@types/yargs": "17.0.32",
89
- "@typescript-eslint/eslint-plugin": "5.44.0",
90
- "@typescript-eslint/parser": "5.44.0",
91
- "eslint": "8.56.0",
89
+ "@typescript-eslint/eslint-plugin": "7.16.0",
90
+ "@typescript-eslint/parser": "7.16.0",
91
+ "eslint": "8.57.0",
92
92
  "eslint-plugin-import": "2.29.1",
93
93
  "eslint-plugin-prettier": "5.1.3",
94
94
  "eslint-plugin-simple-import-sort": "10.0.0",
@@ -98,7 +98,7 @@
98
98
  "vitest": "0.34.6"
99
99
  },
100
100
  "engines": {
101
- "node": ">=12.20.0"
101
+ "node": ">=18.18.0"
102
102
  },
103
103
  "files": [
104
104
  "bin/cli.mjs",