mobbdev 1.0.164 → 1.0.168

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 +76 -44
  2. package/package.json +11 -10
package/dist/index.mjs CHANGED
@@ -968,6 +968,7 @@ var init_GitService = __esm({
968
968
  );
969
969
  const fileSet = /* @__PURE__ */ new Set();
970
970
  let commitsProcessed = 0;
971
+ const consideredFiles = [];
971
972
  for (const file of currentChanges.files) {
972
973
  if (fileSet.size >= maxFiles) {
973
974
  break;
@@ -1026,7 +1027,7 @@ var init_GitService = __esm({
1026
1027
  path2.join(gitRoot, gitRelativePath)
1027
1028
  );
1028
1029
  }
1029
- this.log(`[GitService] Considering file: ${adjustedPath}`, "debug");
1030
+ consideredFiles.push(adjustedPath);
1030
1031
  if (!fileSet.has(adjustedPath) && await FileUtils.shouldPackFile(
1031
1032
  path2.join(gitRoot, gitRelativePath)
1032
1033
  ) && !adjustedPath.startsWith("..")) {
@@ -1044,6 +1045,13 @@ var init_GitService = __esm({
1044
1045
  }
1045
1046
  }
1046
1047
  const files = Array.from(fileSet);
1048
+ if (consideredFiles.length > 0) {
1049
+ this.log(
1050
+ `[GitService] Considered ${consideredFiles.length} files during recent file search`,
1051
+ "debug",
1052
+ { consideredFiles }
1053
+ );
1054
+ }
1047
1055
  this.log("[GitService] Recently changed files retrieved", "info", {
1048
1056
  fileCount: files.length,
1049
1057
  commitsProcessed,
@@ -1586,6 +1594,7 @@ var IssueType_Enum = /* @__PURE__ */ ((IssueType_Enum2) => {
1586
1594
  IssueType_Enum2["ErroneousStringCompare"] = "ERRONEOUS_STRING_COMPARE";
1587
1595
  IssueType_Enum2["ErrorCondtionWithoutAction"] = "ERROR_CONDTION_WITHOUT_ACTION";
1588
1596
  IssueType_Enum2["FrameableLoginPage"] = "FRAMEABLE_LOGIN_PAGE";
1597
+ IssueType_Enum2["FunctionCallWithoutParentheses"] = "FUNCTION_CALL_WITHOUT_PARENTHESES";
1589
1598
  IssueType_Enum2["GhActionsShellInjection"] = "GH_ACTIONS_SHELL_INJECTION";
1590
1599
  IssueType_Enum2["GraphqlDepthLimit"] = "GRAPHQL_DEPTH_LIMIT";
1591
1600
  IssueType_Enum2["HardcodedDomainInHtml"] = "HARDCODED_DOMAIN_IN_HTML";
@@ -1655,6 +1664,7 @@ var IssueType_Enum = /* @__PURE__ */ ((IssueType_Enum2) => {
1655
1664
  IssueType_Enum2["RegexMissingTimeout"] = "REGEX_MISSING_TIMEOUT";
1656
1665
  IssueType_Enum2["RequestParametersBoundViaInput"] = "REQUEST_PARAMETERS_BOUND_VIA_INPUT";
1657
1666
  IssueType_Enum2["ReturnShouldNotBeInvariant"] = "RETURN_SHOULD_NOT_BE_INVARIANT";
1667
+ IssueType_Enum2["SpringDefaultPermit"] = "SPRING_DEFAULT_PERMIT";
1658
1668
  IssueType_Enum2["SqlInjection"] = "SQL_Injection";
1659
1669
  IssueType_Enum2["Ssrf"] = "SSRF";
1660
1670
  IssueType_Enum2["StringFormatMisuse"] = "STRING_FORMAT_MISUSE";
@@ -1705,6 +1715,16 @@ var Project_Role_Type_Enum = /* @__PURE__ */ ((Project_Role_Type_Enum2) => {
1705
1715
  Project_Role_Type_Enum2["Writer"] = "writer";
1706
1716
  return Project_Role_Type_Enum2;
1707
1717
  })(Project_Role_Type_Enum || {});
1718
+ var Vulnerability_Report_Issue_Category_Enum = /* @__PURE__ */ ((Vulnerability_Report_Issue_Category_Enum2) => {
1719
+ Vulnerability_Report_Issue_Category_Enum2["FalsePositive"] = "FalsePositive";
1720
+ Vulnerability_Report_Issue_Category_Enum2["Filtered"] = "Filtered";
1721
+ Vulnerability_Report_Issue_Category_Enum2["Fixable"] = "Fixable";
1722
+ Vulnerability_Report_Issue_Category_Enum2["Irrelevant"] = "Irrelevant";
1723
+ Vulnerability_Report_Issue_Category_Enum2["NoFix"] = "NoFix";
1724
+ Vulnerability_Report_Issue_Category_Enum2["Pending"] = "Pending";
1725
+ Vulnerability_Report_Issue_Category_Enum2["Unsupported"] = "Unsupported";
1726
+ return Vulnerability_Report_Issue_Category_Enum2;
1727
+ })(Vulnerability_Report_Issue_Category_Enum || {});
1708
1728
  var Vulnerability_Report_Issue_State_Enum = /* @__PURE__ */ ((Vulnerability_Report_Issue_State_Enum2) => {
1709
1729
  Vulnerability_Report_Issue_State_Enum2["Digested"] = "Digested";
1710
1730
  Vulnerability_Report_Issue_State_Enum2["Error"] = "Error";
@@ -1791,35 +1811,35 @@ var FixReportSummaryFieldsFragmentDoc = `
1791
1811
  }
1792
1812
  issueTypes
1793
1813
  CRITICAL: fixes_aggregate(
1794
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, {severityText: {_eq: "critical"}}]}
1814
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, {severityText: {_eq: "critical"}}]}
1795
1815
  ) {
1796
1816
  aggregate {
1797
1817
  count
1798
1818
  }
1799
1819
  }
1800
1820
  HIGH: fixes_aggregate(
1801
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, {severityText: {_eq: "high"}}]}
1821
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, {severityText: {_eq: "high"}}]}
1802
1822
  ) {
1803
1823
  aggregate {
1804
1824
  count
1805
1825
  }
1806
1826
  }
1807
1827
  MEDIUM: fixes_aggregate(
1808
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, {severityText: {_eq: "medium"}}]}
1828
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, {severityText: {_eq: "medium"}}]}
1809
1829
  ) {
1810
1830
  aggregate {
1811
1831
  count
1812
1832
  }
1813
1833
  }
1814
1834
  LOW: fixes_aggregate(
1815
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, {severityText: {_eq: "low"}}]}
1835
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, {severityText: {_eq: "low"}}]}
1816
1836
  ) {
1817
1837
  aggregate {
1818
1838
  count
1819
1839
  }
1820
1840
  }
1821
1841
  fixes(
1822
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, {_or: [{gitBlameLogin: {_is_null: true}}, {_not: {gitBlameLogin: {_ilike: $currentUserEmail}}}]}, $filters]}
1842
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, {_or: [{gitBlameLogin: {_is_null: true}}, {_not: {gitBlameLogin: {_ilike: $currentUserEmail}}}]}, $filters]}
1823
1843
  order_by: {severityValue: desc}
1824
1844
  limit: $limit
1825
1845
  offset: $offset
@@ -1827,7 +1847,7 @@ var FixReportSummaryFieldsFragmentDoc = `
1827
1847
  ...FixDetails
1828
1848
  }
1829
1849
  userFixes: fixes(
1830
- where: {_and: [{gitBlameLogin: {_ilike: $currentUserEmail}}, {vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, $filters]}
1850
+ where: {_and: [{gitBlameLogin: {_ilike: $currentUserEmail}}, {vulnerabilityReportIssues: {category: {_eq: Fixable}}}, $filters]}
1831
1851
  order_by: {severityValue: desc}
1832
1852
  limit: $limit
1833
1853
  offset: $offset
@@ -1835,7 +1855,7 @@ var FixReportSummaryFieldsFragmentDoc = `
1835
1855
  ...FixDetails
1836
1856
  }
1837
1857
  filteredFixesCount: fixes_aggregate(
1838
- where: {_and: [{vulnerabilityReportIssues: {category: {_eq: "Fixable"}}}, $filters]}
1858
+ where: {_and: [{vulnerabilityReportIssues: {category: {_eq: Fixable}}}, $filters]}
1839
1859
  ) {
1840
1860
  aggregate {
1841
1861
  count
@@ -1855,7 +1875,7 @@ var FixReportSummaryFieldsFragmentDoc = `
1855
1875
  }
1856
1876
  }
1857
1877
  notFixableVulnerabilityReportIssuesCount: vulnerabilityReportIssues_aggregate(
1858
- where: {category: {_neq: "Fixable"}}
1878
+ where: {category: {_neq: Fixable}}
1859
1879
  ) {
1860
1880
  aggregate {
1861
1881
  count
@@ -2064,7 +2084,7 @@ var GetVulByNodesMetadataDocument = `
2064
2084
  where: {id: {_eq: $vulnerabilityReportId}}
2065
2085
  ) {
2066
2086
  vulnerabilityReportIssues(
2067
- where: {fixId: {_is_null: true}, _or: [{category: {_eq: "Irrelevant"}}, {category: {_eq: "FalsePositive"}}, {category: {_eq: "Filtered"}}]}
2087
+ where: {fixId: {_is_null: true}, category: {_in: [Irrelevant, FalsePositive, Filtered]}}
2068
2088
  ) {
2069
2089
  id
2070
2090
  safeIssueType
@@ -2729,7 +2749,9 @@ var fixDetailsData = {
2729
2749
  ["USE_TIMEOUT" /* UseTimeout */]: void 0,
2730
2750
  ["USELESS_IF_BODY" /* UselessIfBody */]: void 0,
2731
2751
  ["MISSING_TEMPLATE_STRING_INDICATOR" /* MissingTemplateStringIndicator */]: void 0,
2732
- ["NO_ASSERT" /* NoAssert */]: void 0
2752
+ ["NO_ASSERT" /* NoAssert */]: void 0,
2753
+ ["FUNCTION_CALL_WITHOUT_PARENTHESES" /* FunctionCallWithoutParentheses */]: void 0,
2754
+ ["SPRING_DEFAULT_PERMIT" /* SpringDefaultPermit */]: void 0
2733
2755
  };
2734
2756
 
2735
2757
  // src/features/analysis/scm/shared/src/getIssueType.ts
@@ -2863,7 +2885,9 @@ var issueTypeMap = {
2863
2885
  ["USE_RAISE_FOR_STATUS" /* UseRaiseForStatus */]: "Use Raise For Status",
2864
2886
  ["USE_TIMEOUT" /* UseTimeout */]: "Use Timeout",
2865
2887
  ["USELESS_IF_BODY" /* UselessIfBody */]: "Useless If Body",
2866
- ["NO_ASSERT" /* NoAssert */]: "No Assert"
2888
+ ["NO_ASSERT" /* NoAssert */]: "No Assert",
2889
+ ["FUNCTION_CALL_WITHOUT_PARENTHESES" /* FunctionCallWithoutParentheses */]: "Function Call Without Parentheses",
2890
+ ["SPRING_DEFAULT_PERMIT" /* SpringDefaultPermit */]: "Spring Default Permit"
2867
2891
  };
2868
2892
  var issueTypeZ = z.nativeEnum(IssueType_Enum);
2869
2893
  var getIssueTypeFriendlyString = (issueType) => {
@@ -4813,24 +4837,6 @@ var FixPageFixReportZ = z8.object({
4813
4837
 
4814
4838
  // src/features/analysis/scm/shared/src/types/issue.ts
4815
4839
  var MAX_SOURCE_CODE_FILE_SIZE_IN_BYTES = 1e5;
4816
- var CATEGORY = {
4817
- NoFix: "NoFix",
4818
- Unsupported: "Unsupported",
4819
- Irrelevant: "Irrelevant",
4820
- FalsePositive: "FalsePositive",
4821
- Fixable: "Fixable",
4822
- Filtered: "Filtered",
4823
- Pending: "Pending"
4824
- };
4825
- var ValidCategoriesZ = z9.union([
4826
- z9.literal(CATEGORY.NoFix),
4827
- z9.literal(CATEGORY.Unsupported),
4828
- z9.literal(CATEGORY.Irrelevant),
4829
- z9.literal(CATEGORY.FalsePositive),
4830
- z9.literal(CATEGORY.Fixable),
4831
- z9.literal(CATEGORY.Filtered),
4832
- z9.literal(CATEGORY.Pending)
4833
- ]);
4834
4840
  var VulnerabilityReportIssueSharedStateZ = z9.object({
4835
4841
  id: z9.string().uuid(),
4836
4842
  isArchived: z9.boolean(),
@@ -4847,7 +4853,7 @@ var BaseIssuePartsZ = z9.object({
4847
4853
  safeIssueLanguage: z9.string(),
4848
4854
  createdAt: z9.string(),
4849
4855
  parsedSeverity: ParsedSeverityZ,
4850
- category: ValidCategoriesZ,
4856
+ category: z9.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
4851
4857
  extraData: z9.object({
4852
4858
  missing_files: z9.string().array().nullish(),
4853
4859
  error_files: z9.string().array().nullish()
@@ -4901,13 +4907,13 @@ var FalsePositivePartsZ = z9.object({
4901
4907
  });
4902
4908
  var IssuePartsWithFixZ = BaseIssuePartsZ.merge(
4903
4909
  z9.object({
4904
- category: z9.literal(CATEGORY.Irrelevant),
4910
+ category: z9.literal("Irrelevant" /* Irrelevant */),
4905
4911
  fix: FixPartsForFixScreenZ.nullish()
4906
4912
  })
4907
4913
  );
4908
4914
  var IssuePartsFpZ = BaseIssuePartsZ.merge(
4909
4915
  z9.object({
4910
- category: z9.literal(CATEGORY.FalsePositive),
4916
+ category: z9.literal("FalsePositive" /* FalsePositive */),
4911
4917
  fpId: z9.string().uuid(),
4912
4918
  getFalsePositive: FalsePositivePartsZ
4913
4919
  })
@@ -4915,11 +4921,11 @@ var IssuePartsFpZ = BaseIssuePartsZ.merge(
4915
4921
  var GeneralIssueZ = BaseIssuePartsZ.merge(
4916
4922
  z9.object({
4917
4923
  category: z9.union([
4918
- z9.literal(CATEGORY.NoFix),
4919
- z9.literal(CATEGORY.Unsupported),
4920
- z9.literal(CATEGORY.Fixable),
4921
- z9.literal(CATEGORY.Filtered),
4922
- z9.literal(CATEGORY.Pending)
4924
+ z9.literal("NoFix" /* NoFix */),
4925
+ z9.literal("Unsupported" /* Unsupported */),
4926
+ z9.literal("Fixable" /* Fixable */),
4927
+ z9.literal("Filtered" /* Filtered */),
4928
+ z9.literal("Pending" /* Pending */)
4923
4929
  ])
4924
4930
  })
4925
4931
  );
@@ -4953,6 +4959,19 @@ var mapCategoryToBucket = {
4953
4959
  Filtered: "irrelevant",
4954
4960
  Pending: "remaining"
4955
4961
  };
4962
+ var mapBucketTypeToCategory = {
4963
+ irrelevant: [
4964
+ "FalsePositive" /* FalsePositive */,
4965
+ "Irrelevant" /* Irrelevant */,
4966
+ "Filtered" /* Filtered */
4967
+ ],
4968
+ remaining: [
4969
+ "NoFix" /* NoFix */,
4970
+ "Unsupported" /* Unsupported */,
4971
+ "Pending" /* Pending */
4972
+ ],
4973
+ fixable: ["Fixable" /* Fixable */]
4974
+ };
4956
4975
 
4957
4976
  // src/features/analysis/scm/shared/src/types/types.ts
4958
4977
  import { z as z11 } from "zod";
@@ -5082,7 +5101,7 @@ var ReportQueryResultZ = z11.object({
5082
5101
  id: z11.string().uuid(),
5083
5102
  issueType: z11.string(),
5084
5103
  issueLanguage: z11.string(),
5085
- category: z11.string(),
5104
+ category: z11.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
5086
5105
  sharedState: IssueSharedStateZ2
5087
5106
  })
5088
5107
  )
@@ -5190,7 +5209,7 @@ var ReportFixesQueryFixZ = z11.object({
5190
5209
  })
5191
5210
  ).min(1)
5192
5211
  });
5193
- var VulnerabilityReportIssueZ = z11.object({
5212
+ var BaseVulnerabilityReportIssueZ = z11.object({
5194
5213
  id: z11.string().uuid(),
5195
5214
  createdAt: z11.string(),
5196
5215
  state: z11.nativeEnum(Vulnerability_Report_Issue_State_Enum),
@@ -5209,7 +5228,6 @@ var VulnerabilityReportIssueZ = z11.object({
5209
5228
  severity: z11.string(),
5210
5229
  severityValue: z11.number(),
5211
5230
  category: z11.string(),
5212
- codeNodes: z11.array(z11.object({ path: z11.string() })),
5213
5231
  vulnerabilityReportIssueTags: z11.array(
5214
5232
  z11.object({
5215
5233
  vulnerability_report_issue_tag_value: z11.string()
@@ -5217,6 +5235,18 @@ var VulnerabilityReportIssueZ = z11.object({
5217
5235
  ),
5218
5236
  sharedState: VulnerabilityReportIssueSharedStateZ
5219
5237
  });
5238
+ var VulnerabilityReportIssueZ = BaseVulnerabilityReportIssueZ.merge(
5239
+ z11.object({
5240
+ codeNodes: z11.array(z11.object({ path: z11.string() }))
5241
+ })
5242
+ );
5243
+ var VulnerabilityReportIssueWithCodeFilePathZ = BaseVulnerabilityReportIssueZ.merge(
5244
+ z11.object({
5245
+ codeFilePath: z11.string().nullable(),
5246
+ //TODO: REMOVE THIS once we flush out all the reports that don't have codeFilePath
5247
+ codeNodes: z11.array(z11.object({ path: z11.string() }))
5248
+ })
5249
+ );
5220
5250
  var GetReportIssuesQueryZ = z11.object({
5221
5251
  fixReport: z11.object({
5222
5252
  vulnerabilityReport: z11.object({
@@ -5225,7 +5255,9 @@ var GetReportIssuesQueryZ = z11.object({
5225
5255
  vulnerabilityReportIssues_aggregate: z11.object({
5226
5256
  aggregate: z11.object({ count: z11.number() })
5227
5257
  }),
5228
- vulnerabilityReportIssues: z11.array(VulnerabilityReportIssueZ)
5258
+ vulnerabilityReportIssues: z11.array(
5259
+ VulnerabilityReportIssueWithCodeFilePathZ
5260
+ )
5229
5261
  })
5230
5262
  }).array()
5231
5263
  }).nullish();
@@ -10171,7 +10203,7 @@ var VulnerabilityReportIssueCodeNodeZ = z27.object({
10171
10203
  startLine: z27.number(),
10172
10204
  vulnerabilityReportIssue: z27.object({
10173
10205
  fixId: z27.string(),
10174
- category: ValidCategoriesZ,
10206
+ category: z27.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
10175
10207
  safeIssueType: z27.string(),
10176
10208
  vulnerabilityReportIssueTags: z27.array(
10177
10209
  z27.object({
@@ -10185,7 +10217,7 @@ var VulnerabilityReportIssueNoFixCodeNodeZ = z27.object({
10185
10217
  z27.object({
10186
10218
  id: z27.string(),
10187
10219
  fixId: z27.string().nullable(),
10188
- category: ValidCategoriesZ,
10220
+ category: z27.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
10189
10221
  safeIssueType: z27.string(),
10190
10222
  fpId: z27.string().uuid().nullable(),
10191
10223
  codeNodes: z27.array(
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "mobbdev",
3
- "version": "1.0.164",
3
+ "version": "1.0.168",
4
4
  "description": "Automated secure code remediation tool",
5
5
  "repository": "git+https://github.com/mobb-dev/bugsy.git",
6
- "main": "dist/index.js",
7
- "module": "dist/index.js",
6
+ "main": "dist/index.mjs",
7
+ "module": "dist/index.mjs",
8
8
  "scripts": {
9
9
  "clean": "rm -rf build",
10
10
  "env": "dotenv -e ./.env",
@@ -12,15 +12,15 @@
12
12
  "build": "tsc && tsup-node --env.NODE_ENV production",
13
13
  "build:dev": "tsup-node --env.NODE_ENV development",
14
14
  "increment-version": "./src/scripts/increment-version.sh",
15
- "test:mcp": "pnpm run build && vitest run __tests__/mcp/",
15
+ "test:unit:mcp": "vitest run __tests__/mcp/",
16
16
  "test:mcp:watch": "vitest watch __tests__/mcp/",
17
17
  "test:mcp:verbose": "pnpm run build && NODE_ENV=test VERBOSE=true vitest run __tests__/mcp/",
18
- "test:mcp:integration": "pnpm run build && GIT_PROXY_HOST=http://tinyproxy:8888 API_URL=http://app-api:8080/v1/graphql TOKEN=$(../../scripts/login_auth0.sh) vitest run --sequence.concurrent=false false __tests__/integration.test.ts -t 'mcp|MCP'",
19
- "test:mcp:all": "pnpm run test:mcp && pnpm run test:mcp:integration && cd ./__e2e__ && npm i && npm run test:mcp",
20
- "test:unit": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run --exclude='**/__tests__/integration.test.ts' --exclude='**/__tests__/mcp/**'",
18
+ "test:mcp:all": "pnpm run test:unit:mcp && pnpm run test:integration:mcp && pnpm run test:e2e:mcp",
19
+ "test:unit": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run --exclude='**/__tests__/integration.test.ts' --exclude='**/__tests__/integration.mcp.test.ts' --exclude='**/__tests__/mcp/**'",
21
20
  "test:integration": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run --sequence.concurrent=false false __tests__/integration.test.ts",
21
+ "test:integration:mcp": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run --sequence.concurrent=false false __tests__/integration.mcp.test.ts",
22
22
  "test:integration:watch": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest watch run __tests__/integration.test.ts",
23
- "test": "pnpm run test:unit && pnpm run test:mcp && pnpm run test:integration",
23
+ "test": "pnpm run test:unit && pnpm run test:integration",
24
24
  "test:ado": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run ado.test",
25
25
  "test:github": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run github.test",
26
26
  "test:gitlab": "GIT_PROXY_HOST=http://tinyproxy:8888 TOKEN=$(../../scripts/login_auth0.sh) vitest run gitlab.test",
@@ -30,13 +30,14 @@
30
30
  "test:watch": "TOKEN=$(../../scripts/login_auth0.sh) vitest",
31
31
  "test:integration:proxy": "GIT_PROXY_HOST=http://tinyproxy:8888 HTTP_PROXY=http://localhost:8888 API_URL=http://app-api:8080/v1/graphql TOKEN=$(../../scripts/login_auth0.sh) vitest run --sequence.concurrent=false false integration.test.ts",
32
32
  "lint": "eslint --cache --max-warnings 0 --ignore-path .eslintignore --ext .ts,.tsx,.jsx,.graphql .",
33
+ "lint:fix": "eslint --fix --cache --max-warnings 0 --ignore-path .eslintignore --ext .js,.ts,.tsx,.jsx,.graphql . && prettier --write \"src/**/*.graphql\"",
33
34
  "lint:fix:files": "eslint --fix --cache --max-warnings 0 --ignore-path .eslintignore --ext .js,.ts,.tsx,.jsx,.graphql",
34
35
  "prepack": "dotenv-vault pull production .env && pnpm build",
35
36
  "dev:mcp": "pnpm run build && node dist/index.mjs mcp",
36
37
  "debug:mcp": "pnpm run build && node dist/index.mjs mcp --debug",
37
38
  "generate": "pnpm run env -- graphql-codegen -r dotenv/config --config client_codegen.ts",
38
- "test:e2e": "cd ./__e2e__ && npm i && npm run test && npm run test:mcp",
39
- "test:e2e:mcp": "cd ./__e2e__ && npm i && npm run test:mcp"
39
+ "test:e2e": "cd ./__e2e__ && npm i && npm run test",
40
+ "test:e2e:mcp": "pnpm run build && cd ./__e2e__ && npm i && npm run test:mcp"
40
41
  },
41
42
  "bin": {
42
43
  "mobbdev": "bin/cli.mjs"