@bugbug-io/sdk 14.1.0 → 14.3.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 CHANGED
@@ -429,6 +429,7 @@ import {
429
429
  BugBugError,
430
430
  AuthenticationError,
431
431
  AuthorizationError,
432
+ SubscriptionError,
432
433
  ValidationError,
433
434
  NotFoundError,
434
435
  RateLimitError,
@@ -442,6 +443,8 @@ try {
442
443
  } catch (error) {
443
444
  if (error instanceof AuthenticationError) {
444
445
  console.error('Invalid API token');
446
+ } else if (error instanceof SubscriptionError) {
447
+ console.error(error.upgradeUrl ? `Upgrade at ${error.upgradeUrl}` : error.message);
445
448
  } else if (error instanceof RateLimitError) {
446
449
  console.error(`Rate limited. Retry after ${error.retryAfter}ms`);
447
450
  } else if (error instanceof TimeoutError) {
@@ -8,6 +8,7 @@
8
8
  export declare const SDK_ERROR_CODES: {
9
9
  readonly AUTHENTICATION_ERROR: "AUTHENTICATION_ERROR";
10
10
  readonly AUTHORIZATION_ERROR: "AUTHORIZATION_ERROR";
11
+ readonly SUBSCRIPTION_ERROR: "SUBSCRIPTION_ERROR";
11
12
  readonly VALIDATION_ERROR: "VALIDATION_ERROR";
12
13
  readonly CONFIGURATION_ERROR: "CONFIGURATION_ERROR";
13
14
  readonly MISSING_PROJECT_ID_ERROR: "MISSING_PROJECT_ID_ERROR";
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-error-codes.d.ts","sourceRoot":"","sources":["../../src/constants/sdk-error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;CAelB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
1
+ {"version":3,"file":"sdk-error-codes.d.ts","sourceRoot":"","sources":["../../src/constants/sdk-error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAgBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
package/dist/index.d.ts CHANGED
@@ -75,7 +75,7 @@ export type { AuthAuthorizeParams, AuthAuthorizeResponse, AuthIdentity, AuthToke
75
75
  export { BUGBUG_CLI_OAUTH_CLIENT_ID, BUGBUG_MCP_OAUTH_CLIENT_ID, BUGBUG_OAUTH_CODE_CHALLENGE_METHOD, } from './modules/auth/auth.types';
76
76
  export { createOAuthCodeChallenge, createOAuthCodeVerifier, createOAuthState, } from './modules/auth/auth.utils';
77
77
  export { ASSERTION_STEP_TYPES, VISUAL_REGRESSION_STEP_TYPES, isAssertionStepType, isVisualRegressionStepType, } from './modules/steps/steps.utils';
78
- export { BugBugError, AuthenticationError, AuthorizationError, ValidationError, ConfigurationError, MissingProjectIdError, NotFoundError, RateLimitError, TimeoutError, NetworkError, CancellationError, InternalServerError, ServiceUnavailableError, UnexpectedResponseError, HttpError, isBugBugError, isAuthenticationError, isAuthorizationError, isValidationError, isConfigurationError, isMissingProjectIdError, isNotFoundError, isRateLimitError, isTimeoutError, isNetworkError, isCancellationError, isInternalServerError, isServiceUnavailableError, isUnexpectedResponseError, isHttpError, } from './types/errors';
78
+ export { BugBugError, AuthenticationError, AuthorizationError, SubscriptionError, ValidationError, ConfigurationError, MissingProjectIdError, NotFoundError, RateLimitError, TimeoutError, NetworkError, CancellationError, InternalServerError, ServiceUnavailableError, UnexpectedResponseError, HttpError, isBugBugError, isAuthenticationError, isAuthorizationError, isSubscriptionError, isValidationError, isConfigurationError, isMissingProjectIdError, isNotFoundError, isRateLimitError, isTimeoutError, isNetworkError, isCancellationError, isInternalServerError, isServiceUnavailableError, isUnexpectedResponseError, isHttpError, } from './types/errors';
79
79
  export type { RequestOrigin } from './types/errors';
80
80
  export { SDK_ERROR_CODES } from './constants/sdk-error-codes';
81
81
  export type { SdkErrorCode } from './constants/sdk-error-codes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8006,6 +8006,7 @@ var isUuid = (value) => UUID_REGEX.test(value);
8006
8006
  var SDK_ERROR_CODES = {
8007
8007
  AUTHENTICATION_ERROR: "AUTHENTICATION_ERROR",
8008
8008
  AUTHORIZATION_ERROR: "AUTHORIZATION_ERROR",
8009
+ SUBSCRIPTION_ERROR: "SUBSCRIPTION_ERROR",
8009
8010
  VALIDATION_ERROR: "VALIDATION_ERROR",
8010
8011
  CONFIGURATION_ERROR: "CONFIGURATION_ERROR",
8011
8012
  MISSING_PROJECT_ID_ERROR: "MISSING_PROJECT_ID_ERROR",
@@ -8026,6 +8027,7 @@ var STATUS_CLIENT_CANCELLED = 499;
8026
8027
  // src/types/errors.ts
8027
8028
  var HTTP_STATUS_INTERNAL_SERVER_ERROR = 500;
8028
8029
  var HTTP_STATUS_SERVICE_UNAVAILABLE = 503;
8030
+ var HTTP_STATUS_PAYMENT_REQUIRED = 402;
8029
8031
  var BugBugError = class _BugBugError extends Error {
8030
8032
  code;
8031
8033
  statusCode;
@@ -8081,6 +8083,20 @@ var AuthorizationError = class extends BugBugError {
8081
8083
  this.name = "AuthorizationError";
8082
8084
  }
8083
8085
  };
8086
+ var SubscriptionError = class extends BugBugError {
8087
+ constructor(message = "This operation is not available on your current plan. Upgrade your plan to continue.", response, request, upgradeUrl) {
8088
+ super(
8089
+ SDK_ERROR_CODES.SUBSCRIPTION_ERROR,
8090
+ message,
8091
+ response?.status ?? HTTP_STATUS_PAYMENT_REQUIRED,
8092
+ response,
8093
+ void 0,
8094
+ request
8095
+ );
8096
+ this.upgradeUrl = upgradeUrl;
8097
+ this.name = "SubscriptionError";
8098
+ }
8099
+ };
8084
8100
  var ValidationError = class extends BugBugError {
8085
8101
  fields;
8086
8102
  constructor(message, response, fields, request) {
@@ -8232,6 +8248,9 @@ function isAuthenticationError(error) {
8232
8248
  function isAuthorizationError(error) {
8233
8249
  return error instanceof AuthorizationError;
8234
8250
  }
8251
+ function isSubscriptionError(error) {
8252
+ return error instanceof SubscriptionError;
8253
+ }
8235
8254
  function isValidationError(error) {
8236
8255
  return error instanceof ValidationError;
8237
8256
  }
@@ -9577,7 +9596,7 @@ var buildUserAgent = (clientType, version) => `BugBug ${clientType.toUpperCase()
9577
9596
  // ../core/package.json
9578
9597
  var package_default = {
9579
9598
  name: "@bugbug-io/core",
9580
- version: "14.1.0",
9599
+ version: "14.3.0",
9581
9600
  private: true,
9582
9601
  type: "module",
9583
9602
  main: "dist/index.js",
@@ -10058,6 +10077,17 @@ function extractFieldErrors(body) {
10058
10077
  walk(body, "");
10059
10078
  return Object.keys(out).length > 0 ? out : void 0;
10060
10079
  }
10080
+ function extractSubscriptionUpgradeUrl(body) {
10081
+ const errorDetails = Array.isArray(body) ? body : [body];
10082
+ for (const errorDetail of errorDetails) {
10083
+ if (!errorDetail || typeof errorDetail !== "object") continue;
10084
+ const { params } = errorDetail;
10085
+ if (!params || typeof params !== "object") continue;
10086
+ const { upgradeUrl } = params;
10087
+ if (typeof upgradeUrl === "string") return upgradeUrl;
10088
+ }
10089
+ return void 0;
10090
+ }
10061
10091
  function formatApiErrorValue(value, path = "") {
10062
10092
  if (typeof value === "string") return value;
10063
10093
  if (typeof value === "number" || typeof value === "boolean") return String(value);
@@ -10282,6 +10312,7 @@ var BugBugApiClient = class {
10282
10312
  const errorMessage = formatApiErrorMessage(error);
10283
10313
  const errorBody = parseErrorBody(error);
10284
10314
  const fields = extractFieldErrors(errorBody);
10315
+ const subscriptionUpgradeUrl = extractSubscriptionUpgradeUrl(errorBody);
10285
10316
  switch (status) {
10286
10317
  case 401:
10287
10318
  throw new AuthenticationError(
@@ -10289,6 +10320,13 @@ var BugBugApiClient = class {
10289
10320
  response,
10290
10321
  request
10291
10322
  );
10323
+ case 402:
10324
+ throw new SubscriptionError(
10325
+ errorMessage || "This operation is not available on your current plan. Upgrade your plan to continue.",
10326
+ response,
10327
+ request,
10328
+ subscriptionUpgradeUrl
10329
+ );
10292
10330
  case 403:
10293
10331
  throw new AuthorizationError(
10294
10332
  errorMessage || "Access denied. Check your permissions.",
@@ -15570,6 +15608,7 @@ export {
15570
15608
  StepTypeSchema,
15571
15609
  StepUpdateSchema,
15572
15610
  StepsModule,
15611
+ SubscriptionError,
15573
15612
  SuitesModule,
15574
15613
  TestsModule,
15575
15614
  TimeoutError,
@@ -15603,8 +15642,10 @@ export {
15603
15642
  isRateLimitError,
15604
15643
  isRunningStatus,
15605
15644
  isServiceUnavailableError,
15645
+ isSubscriptionError,
15606
15646
  isTimeoutError,
15607
15647
  isUnexpectedResponseError,
15608
15648
  isValidationError,
15609
15649
  isVisualRegressionStepType
15610
15650
  };
15651
+ //# sourceMappingURL=index.js.map