mobbdev 1.4.25 → 1.4.26

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.
@@ -1657,7 +1657,8 @@ var init_issue = __esm({
1657
1657
  category: z4.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
1658
1658
  extraData: z4.object({
1659
1659
  missing_files: z4.string().array().nullish(),
1660
- error_files: z4.string().array().nullish()
1660
+ error_files: z4.string().array().nullish(),
1661
+ ai_cost_limit_exceeded: z4.string().nullish()
1661
1662
  }),
1662
1663
  vulnerabilityReportIssueTags: z4.array(
1663
1664
  z4.object({
@@ -2198,7 +2199,8 @@ var init_types = __esm({
2198
2199
  extraData: z7.object({
2199
2200
  missing_files: z7.string().array().nullish(),
2200
2201
  large_files: z7.string().array().nullish(),
2201
- error_files: z7.string().array().nullish()
2202
+ error_files: z7.string().array().nullish(),
2203
+ ai_cost_limit_exceeded: z7.string().nullish()
2202
2204
  })
2203
2205
  }).array()
2204
2206
  })
@@ -2237,7 +2239,8 @@ var init_types = __esm({
2237
2239
  extraData: z7.object({
2238
2240
  missing_files: z7.string().array().nullish(),
2239
2241
  large_files: z7.string().array().nullish(),
2240
- error_files: z7.string().array().nullish()
2242
+ error_files: z7.string().array().nullish(),
2243
+ ai_cost_limit_exceeded: z7.string().nullish()
2241
2244
  }),
2242
2245
  fix: ReportFixesQueryFixZ.nullable(),
2243
2246
  falsePositive: z7.object({
@@ -7046,6 +7049,7 @@ import { fetch as fetch2, ProxyAgent } from "undici";
7046
7049
 
7047
7050
  // src/features/analysis/scm/gitlab/gitlab.ts
7048
7051
  import querystring3 from "querystring";
7052
+ import { setTimeout as delay } from "timers/promises";
7049
7053
  import {
7050
7054
  createRequesterFn
7051
7055
  } from "@gitbeaker/requester-utils";
@@ -7812,7 +7816,7 @@ async function sanitizeDataWithCounts(obj, options) {
7812
7816
  }
7813
7817
 
7814
7818
  // src/utils/with-timeout.ts
7815
- import { setTimeout as delay } from "timers/promises";
7819
+ import { setTimeout as delay2 } from "timers/promises";
7816
7820
 
7817
7821
  // src/features/analysis/graphql/s3-raw-data-upload.ts
7818
7822
  import { setTimeout as sleep2 } from "timers/promises";
package/dist/index.mjs CHANGED
@@ -1885,7 +1885,8 @@ var init_issue = __esm({
1885
1885
  category: z9.nativeEnum(Vulnerability_Report_Issue_Category_Enum),
1886
1886
  extraData: z9.object({
1887
1887
  missing_files: z9.string().array().nullish(),
1888
- error_files: z9.string().array().nullish()
1888
+ error_files: z9.string().array().nullish(),
1889
+ ai_cost_limit_exceeded: z9.string().nullish()
1889
1890
  }),
1890
1891
  vulnerabilityReportIssueTags: z9.array(
1891
1892
  z9.object({
@@ -2243,7 +2244,8 @@ var init_types = __esm({
2243
2244
  extraData: z11.object({
2244
2245
  missing_files: z11.string().array().nullish(),
2245
2246
  large_files: z11.string().array().nullish(),
2246
- error_files: z11.string().array().nullish()
2247
+ error_files: z11.string().array().nullish(),
2248
+ ai_cost_limit_exceeded: z11.string().nullish()
2247
2249
  })
2248
2250
  }).array()
2249
2251
  })
@@ -2282,7 +2284,8 @@ var init_types = __esm({
2282
2284
  extraData: z11.object({
2283
2285
  missing_files: z11.string().array().nullish(),
2284
2286
  large_files: z11.string().array().nullish(),
2285
- error_files: z11.string().array().nullish()
2287
+ error_files: z11.string().array().nullish(),
2288
+ ai_cost_limit_exceeded: z11.string().nullish()
2286
2289
  }),
2287
2290
  fix: ReportFixesQueryFixZ.nullable(),
2288
2291
  falsePositive: z11.object({
@@ -10947,6 +10950,7 @@ var GithubSCMLib = class extends SCMLib {
10947
10950
 
10948
10951
  // src/features/analysis/scm/gitlab/gitlab.ts
10949
10952
  import querystring3 from "querystring";
10953
+ import { setTimeout as delay } from "timers/promises";
10950
10954
  import {
10951
10955
  createRequesterFn
10952
10956
  } from "@gitbeaker/requester-utils";
@@ -11608,6 +11612,9 @@ async function processBody(response) {
11608
11612
  }
11609
11613
  return await response.text();
11610
11614
  }
11615
+ var GITLAB_RETRYABLE_STATUSES = /* @__PURE__ */ new Set([429, 502, 503, 504]);
11616
+ var GITLAB_REQUEST_MAX_ATTEMPTS = 4;
11617
+ var GITLAB_REQUEST_BASE_BACKOFF_MS = 1e3;
11611
11618
  async function brokerRequestHandler(endpoint, options) {
11612
11619
  const { prefixUrl, searchParams } = options || {};
11613
11620
  let baseUrl;
@@ -11620,24 +11627,42 @@ async function brokerRequestHandler(endpoint, options) {
11620
11627
  rejectUnauthorized: false
11621
11628
  }
11622
11629
  }) : void 0;
11623
- const response = await undiciFetch(url, {
11624
- headers: options?.headers,
11625
- method: options?.method,
11626
- body: options?.body ? String(options?.body) : void 0,
11627
- dispatcher
11628
- }).catch((e) => {
11629
- if (e.name === "TimeoutError" || e.name === "AbortError") {
11630
- throw new Error("Query timeout was reached");
11630
+ let lastError;
11631
+ for (let attempt = 1; attempt <= GITLAB_REQUEST_MAX_ATTEMPTS; attempt++) {
11632
+ let response;
11633
+ try {
11634
+ response = await undiciFetch(url, {
11635
+ headers: options?.headers,
11636
+ method: options?.method,
11637
+ body: options?.body ? String(options?.body) : void 0,
11638
+ dispatcher
11639
+ });
11640
+ } catch (e) {
11641
+ if (e.name === "TimeoutError" || e.name === "AbortError") {
11642
+ lastError = new Error("Query timeout was reached");
11643
+ } else {
11644
+ throw e;
11645
+ }
11631
11646
  }
11632
- throw e;
11633
- });
11634
- if (response.ok)
11635
- return {
11636
- body: await processBody(response),
11637
- headers: Object.fromEntries(response.headers.entries()),
11638
- status: response.status
11639
- };
11640
- throw new Error(`gitbeaker: ${response.statusText}`);
11647
+ if (response) {
11648
+ if (response.ok) {
11649
+ return {
11650
+ body: await processBody(response),
11651
+ headers: Object.fromEntries(response.headers.entries()),
11652
+ status: response.status
11653
+ };
11654
+ }
11655
+ if (!GITLAB_RETRYABLE_STATUSES.has(response.status)) {
11656
+ throw new Error(`gitbeaker: ${response.statusText}`);
11657
+ }
11658
+ lastError = new Error(`gitbeaker: ${response.statusText}`);
11659
+ }
11660
+ if (attempt === GITLAB_REQUEST_MAX_ATTEMPTS) break;
11661
+ const retryAfter = Number(response?.headers.get("retry-after"));
11662
+ const waitMs = Number.isFinite(retryAfter) && retryAfter > 0 ? retryAfter * 1e3 : GITLAB_REQUEST_BASE_BACKOFF_MS * 2 ** (attempt - 1);
11663
+ await delay(waitMs);
11664
+ }
11665
+ throw lastError ?? new Error("gitbeaker: request failed");
11641
11666
  }
11642
11667
  async function listGitlabProjectMembers({
11643
11668
  repoUrl,
@@ -14916,12 +14941,12 @@ async function uploadAiBlameCommandHandler(args) {
14916
14941
  }
14917
14942
 
14918
14943
  // src/utils/with-timeout.ts
14919
- import { setTimeout as delay } from "timers/promises";
14944
+ import { setTimeout as delay2 } from "timers/promises";
14920
14945
  function withTimeout(promise, ms, label) {
14921
14946
  const ac = new AbortController();
14922
14947
  return Promise.race([
14923
14948
  promise.finally(() => ac.abort()),
14924
- delay(ms, void 0, { signal: ac.signal }).then(() => {
14949
+ delay2(ms, void 0, { signal: ac.signal }).then(() => {
14925
14950
  throw new Error(`${label} timed out after ${ms}ms`);
14926
14951
  })
14927
14952
  ]);
@@ -19782,7 +19807,7 @@ function createLogger(config2) {
19782
19807
 
19783
19808
  // src/features/claude_code/hook_logger.ts
19784
19809
  var DD_RUM_TOKEN = true ? "pubf59c0182545bfb4c299175119f1abf9b" : "";
19785
- var CLI_VERSION = true ? "1.4.25" : "unknown";
19810
+ var CLI_VERSION = true ? "1.4.26" : "unknown";
19786
19811
  var NAMESPACE = "mobbdev-claude-code-hook-logs";
19787
19812
  var claudeCodeVersion;
19788
19813
  function buildDdTags() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobbdev",
3
- "version": "1.4.25",
3
+ "version": "1.4.26",
4
4
  "description": "Automated secure code remediation tool",
5
5
  "repository": "git+https://github.com/mobb-dev/bugsy.git",
6
6
  "main": "dist/index.mjs",