@shopify/create-app 3.93.2 → 3.94.1

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.
@@ -2,11 +2,11 @@ import {
2
2
  AbortController,
3
3
  AbortError,
4
4
  BugError,
5
- captureOutput,
6
5
  envPaths,
7
6
  environmentVariables,
8
7
  exec,
9
8
  fileExists,
9
+ fileExistsSync,
10
10
  fileHasWritePermissions,
11
11
  findPathUp,
12
12
  glob,
@@ -21,14 +21,14 @@ import {
21
21
  runWithTimer,
22
22
  unixFileIsOwnedByCurrentUser,
23
23
  writeFile
24
- } from "./chunk-TYJR2NOA.js";
24
+ } from "./chunk-4IXPA7MG.js";
25
25
  import {
26
26
  require_semver
27
- } from "./chunk-TM5S3XKJ.js";
27
+ } from "./chunk-IFG7N3S2.js";
28
28
  import {
29
29
  dirname,
30
30
  joinPath
31
- } from "./chunk-HK42PKRF.js";
31
+ } from "./chunk-NIYBO6HO.js";
32
32
  import {
33
33
  __commonJS,
34
34
  __require,
@@ -13754,7 +13754,7 @@ async function latestVersion(packageName, options) {
13754
13754
  }
13755
13755
 
13756
13756
  // ../cli-kit/dist/public/node/node-package-manager.js
13757
- var import_semver3 = __toESM(require_semver(), 1), yarnLockfile = "yarn.lock", npmLockfile = "package-lock.json", pnpmLockfile = "pnpm-lock.yaml", bunLockfile = "bun.lockb", pnpmWorkspaceFile = "pnpm-workspace.yaml", lockfiles = [yarnLockfile, pnpmLockfile, npmLockfile, bunLockfile], lockfilesByManager = {
13757
+ var import_semver3 = __toESM(require_semver(), 1), yarnLockfile = "yarn.lock", npmLockfile = "package-lock.json", pnpmLockfile = "pnpm-lock.yaml", bunLockfile = "bun.lockb", modernBunLockfile = "bun.lock", pnpmWorkspaceFile = "pnpm-workspace.yaml", lockfiles = [yarnLockfile, pnpmLockfile, npmLockfile, bunLockfile], lockfilesByManager = {
13758
13758
  yarn: yarnLockfile,
13759
13759
  npm: npmLockfile,
13760
13760
  pnpm: pnpmLockfile,
@@ -13777,16 +13777,55 @@ var import_semver3 = __toESM(require_semver(), 1), yarnLockfile = "yarn.lock", n
13777
13777
  function packageManagerFromUserAgent(env = process.env) {
13778
13778
  return env.npm_config_user_agent?.includes("yarn") ? "yarn" : env.npm_config_user_agent?.includes("pnpm") ? "pnpm" : env.npm_config_user_agent?.includes("bun") ? "bun" : env.npm_config_user_agent?.includes("npm") ? "npm" : "unknown";
13779
13779
  }
13780
+ function hasBunLockfileSync(directory) {
13781
+ return fileExistsSync(joinPath(directory, bunLockfile)) || fileExistsSync(joinPath(directory, modernBunLockfile));
13782
+ }
13783
+ function normalizePackageManagerForProject(packageManager2) {
13784
+ switch (packageManager2) {
13785
+ case "yarn":
13786
+ case "npm":
13787
+ case "pnpm":
13788
+ case "bun":
13789
+ return packageManager2;
13790
+ case "homebrew":
13791
+ case "unknown":
13792
+ return "npm";
13793
+ }
13794
+ }
13795
+ function packageManagerBinaryCommand(packageManager2, binary, ...binaryArgs) {
13796
+ switch (packageManager2) {
13797
+ case "npm":
13798
+ return { command: "npm", args: ["exec", "--", binary, ...binaryArgs] };
13799
+ case "pnpm":
13800
+ return { command: "pnpm", args: ["exec", binary, ...binaryArgs] };
13801
+ case "yarn":
13802
+ return { command: "yarn", args: ["run", binary, ...binaryArgs] };
13803
+ case "bun":
13804
+ return { command: "bun", args: ["x", binary, ...binaryArgs] };
13805
+ }
13806
+ }
13780
13807
  async function getPackageManager(fromDirectory) {
13781
- let directory, packageJson2;
13782
- try {
13783
- directory = await captureOutput("npm", ["prefix"], { cwd: fromDirectory }), outputDebug(outputContent`Obtaining the dependency manager in directory ${outputToken.path(directory)}...`), packageJson2 = joinPath(directory, "package.json");
13784
- } catch {
13808
+ let current = fromDirectory;
13809
+ for (outputDebug(outputContent`Looking for a lockfile in ${outputToken.path(current)}...`); ; ) {
13810
+ if (fileExistsSync(joinPath(current, yarnLockfile)))
13811
+ return "yarn";
13812
+ if (fileExistsSync(joinPath(current, pnpmLockfile)) || fileExistsSync(joinPath(current, pnpmWorkspaceFile)))
13813
+ return "pnpm";
13814
+ if (hasBunLockfileSync(current))
13815
+ return "bun";
13816
+ if (fileExistsSync(joinPath(current, npmLockfile)))
13817
+ return "npm";
13818
+ let parent = dirname(current);
13819
+ if (parent === current)
13820
+ break;
13821
+ current = parent;
13785
13822
  }
13786
- if (!directory || !packageJson2 || !await fileExists(packageJson2))
13787
- return packageManagerFromUserAgent();
13788
- let yarnLockPath = joinPath(directory, yarnLockfile), pnpmLockPath = joinPath(directory, pnpmLockfile), bunLockPath = joinPath(directory, bunLockfile);
13789
- return await fileExists(yarnLockPath) ? "yarn" : await fileExists(pnpmLockPath) ? "pnpm" : await fileExists(bunLockPath) ? "bun" : "npm";
13823
+ let pm = packageManagerFromUserAgent();
13824
+ return pm !== "unknown" ? pm : "npm";
13825
+ }
13826
+ async function packageManagerBinaryCommandForDirectory(fromDirectory, binary, ...binaryArgs) {
13827
+ let packageManager2 = normalizePackageManagerForProject(await getPackageManager(fromDirectory));
13828
+ return packageManagerBinaryCommand(packageManager2, binary, ...binaryArgs);
13790
13829
  }
13791
13830
  async function installNPMDependenciesRecursively(options) {
13792
13831
  let packageJsons = await glob(joinPath(options.directory, "**/package.json"), {
@@ -14026,6 +14065,7 @@ export {
14026
14065
  FindUpAndReadPackageJsonNotFoundError,
14027
14066
  packageManagerFromUserAgent,
14028
14067
  getPackageManager,
14068
+ packageManagerBinaryCommandForDirectory,
14029
14069
  installNPMDependenciesRecursively,
14030
14070
  installNodeModules,
14031
14071
  getPackageName,
@@ -14074,4 +14114,4 @@ deep-extend/lib/deep-extend.js:
14074
14114
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14075
14115
  *)
14076
14116
  */
14077
- //# sourceMappingURL=chunk-XTF32XZH.js.map
14117
+ //# sourceMappingURL=chunk-77I3TRE2.js.map
@@ -2,12 +2,12 @@ import {
2
2
  CLI_KIT_VERSION,
3
3
  jsonOutputEnabled,
4
4
  z
5
- } from "./chunk-PYOLGWV3.js";
5
+ } from "./chunk-GUVQJPFV.js";
6
6
  import {
7
7
  cacheRetrieve,
8
8
  cacheStore,
9
9
  versionSatisfies
10
- } from "./chunk-XTF32XZH.js";
10
+ } from "./chunk-77I3TRE2.js";
11
11
  import {
12
12
  AbortSilentError,
13
13
  exec,
@@ -16,7 +16,7 @@ import {
16
16
  renderError,
17
17
  renderInfo,
18
18
  renderWarning
19
- } from "./chunk-TYJR2NOA.js";
19
+ } from "./chunk-4IXPA7MG.js";
20
20
  import {
21
21
  init_cjs_shims
22
22
  } from "./chunk-PKR7KJ6P.js";
@@ -84,7 +84,7 @@ async function showNotificationsIfNeeded(currentSurfaces, environment = process.
84
84
  throw new AbortSilentError();
85
85
  let errorMessage = `Error showing notifications: ${error.message}`;
86
86
  outputDebug(errorMessage);
87
- let { sendErrorToBugsnag } = await import("./error-handler-GLXGGAYC.js");
87
+ let { sendErrorToBugsnag } = await import("./error-handler-W2U33HYT.js");
88
88
  await sendErrorToBugsnag(errorMessage, "unexpected_error");
89
89
  }
90
90
  }
@@ -174,4 +174,4 @@ export {
174
174
  showNotificationsIfNeeded,
175
175
  fetchNotificationsInBackground
176
176
  };
177
- //# sourceMappingURL=chunk-NHV222KP.js.map
177
+ //# sourceMappingURL=chunk-7PXEGPG5.js.map
@@ -87,9 +87,9 @@ var require_ms = __commonJS({
87
87
  }
88
88
  });
89
89
 
90
- // ../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/common.js
90
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/common.js
91
91
  var require_common = __commonJS({
92
- "../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/common.js"(exports, module) {
92
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/common.js"(exports, module) {
93
93
  init_cjs_shims();
94
94
  function setup(env) {
95
95
  createDebug.debug = createDebug, createDebug.default = createDebug, createDebug.coerce = coerce, createDebug.disable = disable, createDebug.enable = enable, createDebug.enabled = enabled, createDebug.humanize = require_ms(), createDebug.destroy = destroy, Object.keys(env).forEach((key) => {
@@ -137,7 +137,7 @@ var require_common = __commonJS({
137
137
  }
138
138
  function enable(namespaces) {
139
139
  createDebug.save(namespaces), createDebug.namespaces = namespaces, createDebug.names = [], createDebug.skips = [];
140
- let split = (typeof namespaces == "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean);
140
+ let split = (typeof namespaces == "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
141
141
  for (let ns of split)
142
142
  ns[0] === "-" ? createDebug.skips.push(ns.slice(1)) : createDebug.names.push(ns);
143
143
  }
@@ -182,9 +182,9 @@ var require_common = __commonJS({
182
182
  }
183
183
  });
184
184
 
185
- // ../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/browser.js
185
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/browser.js
186
186
  var require_browser = __commonJS({
187
- "../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/browser.js"(exports, module) {
187
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/browser.js"(exports, module) {
188
188
  init_cjs_shims();
189
189
  exports.formatArgs = formatArgs;
190
190
  exports.save = save;
@@ -308,7 +308,7 @@ var require_browser = __commonJS({
308
308
  function load() {
309
309
  let r;
310
310
  try {
311
- r = exports.storage.getItem("debug");
311
+ r = exports.storage.getItem("debug") || exports.storage.getItem("DEBUG");
312
312
  } catch {
313
313
  }
314
314
  return !r && typeof process < "u" && "env" in process && (r = process.env.DEBUG), r;
@@ -415,9 +415,9 @@ var require_supports_color = __commonJS({
415
415
  }
416
416
  });
417
417
 
418
- // ../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/node.js
418
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/node.js
419
419
  var require_node = __commonJS({
420
- "../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/node.js"(exports, module) {
420
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/node.js"(exports, module) {
421
421
  init_cjs_shims();
422
422
  var tty = __require("tty"), util = __require("util");
423
423
  exports.init = init;
@@ -562,9 +562,9 @@ var require_node = __commonJS({
562
562
  }
563
563
  });
564
564
 
565
- // ../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/index.js
565
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/index.js
566
566
  var require_src = __commonJS({
567
- "../../node_modules/.pnpm/debug@4.4.0_supports-color@8.1.1/node_modules/debug/src/index.js"(exports, module) {
567
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/index.js"(exports, module) {
568
568
  init_cjs_shims();
569
569
  typeof process > "u" || process.type === "renderer" || process.browser === !0 || process.__nwjs ? module.exports = require_browser() : module.exports = require_node();
570
570
  }
@@ -575,4 +575,4 @@ export {
575
575
  require_supports_color,
576
576
  require_src
577
577
  };
578
- //# sourceMappingURL=chunk-SR2M4BGN.js.map
578
+ //# sourceMappingURL=chunk-CXPWSYGC.js.map
@@ -6,6 +6,7 @@ import {
6
6
  import {
7
7
  Environment,
8
8
  cacheRetrieveOrRepopulate,
9
+ getAutoUpgradeEnabled,
9
10
  getCurrentSessionId,
10
11
  getPackageManager,
11
12
  getSessions,
@@ -18,7 +19,7 @@ import {
18
19
  setCurrentSessionId,
19
20
  setSessions,
20
21
  timeIntervalToMilliseconds
21
- } from "./chunk-XTF32XZH.js";
22
+ } from "./chunk-77I3TRE2.js";
22
23
  import {
23
24
  AbortError,
24
25
  AbortSilentError,
@@ -45,6 +46,7 @@ import {
45
46
  getArrayRejectingUndefined,
46
47
  handler,
47
48
  import_ts_error,
49
+ inferPackageManagerForGlobalCLI,
48
50
  isCI,
49
51
  isCloudEnvironment,
50
52
  isShopify,
@@ -103,10 +105,10 @@ import {
103
105
  stringifyMessage,
104
106
  systemEnvironmentVariables,
105
107
  themeToken
106
- } from "./chunk-TYJR2NOA.js";
108
+ } from "./chunk-4IXPA7MG.js";
107
109
  import {
108
110
  require_lib
109
- } from "./chunk-TM5S3XKJ.js";
111
+ } from "./chunk-IFG7N3S2.js";
110
112
  import {
111
113
  cwd,
112
114
  isAbsolutePath,
@@ -114,7 +116,7 @@ import {
114
116
  normalizePath,
115
117
  relativePath,
116
118
  sniffForJson
117
- } from "./chunk-HK42PKRF.js";
119
+ } from "./chunk-NIYBO6HO.js";
118
120
  import {
119
121
  __commonJS,
120
122
  __esm,
@@ -48136,9 +48138,22 @@ function maxRequestTimeForNetworkCallsMs(environment = getEnvironmentVariables()
48136
48138
 
48137
48139
  // ../cli-kit/dist/private/node/api/urls.js
48138
48140
  init_cjs_shims();
48141
+ var SENSITIVE_QUERY_PARAMS = [
48142
+ "access_token",
48143
+ "refresh_token",
48144
+ "id_token",
48145
+ "subject_token",
48146
+ "actor_token",
48147
+ "device_code",
48148
+ "client_secret",
48149
+ "code",
48150
+ "token"
48151
+ ];
48139
48152
  function sanitizeURL(url4) {
48140
48153
  let parsedUrl = new URL(url4);
48141
- return parsedUrl.searchParams.has("subject_token") && parsedUrl.searchParams.set("subject_token", "****"), parsedUrl.searchParams.has("token") && parsedUrl.searchParams.set("token", "****"), parsedUrl.toString();
48154
+ for (let param of SENSITIVE_QUERY_PARAMS)
48155
+ parsedUrl.searchParams.has(param) && parsedUrl.searchParams.set(param, "****");
48156
+ return parsedUrl.toString();
48142
48157
  }
48143
48158
 
48144
48159
  // ../cli-kit/dist/private/node/api/headers.js
@@ -48146,7 +48161,7 @@ init_cjs_shims();
48146
48161
 
48147
48162
  // ../cli-kit/dist/public/common/version.js
48148
48163
  init_cjs_shims();
48149
- var CLI_KIT_VERSION = "3.93.2";
48164
+ var CLI_KIT_VERSION = "3.94.1";
48150
48165
 
48151
48166
  // ../cli-kit/dist/private/node/api/headers.js
48152
48167
  import https from "https";
@@ -49691,7 +49706,7 @@ async function shopifyFetch(url4, init, preferredBehaviour) {
49691
49706
  }
49692
49707
 
49693
49708
  // ../cli-kit/dist/public/node/monorail.js
49694
- var url = "https://monorail-edge.shopifysvc.com/v1/produce", MONORAIL_COMMAND_TOPIC = "app_cli3_command/1.20", publishedCommandNames = /* @__PURE__ */ new Set();
49709
+ var url = "https://monorail-edge.shopifysvc.com/v1/produce", MONORAIL_COMMAND_TOPIC = "app_cli3_command/1.22", publishedCommandNames = /* @__PURE__ */ new Set();
49695
49710
  async function publishMonorailEvent(schemaId, publicData, sensitiveData) {
49696
49711
  let commandName = publicData.command;
49697
49712
  if (commandName && typeof commandName == "string") {
@@ -53099,7 +53114,7 @@ function fallbackCheckPort(address, port, timeout) {
53099
53114
  // ../cli-kit/dist/public/node/vendor/dev_server/dev-server-2024.js
53100
53115
  var ni = __toESM(require_network_interfaces(), 1);
53101
53116
  import fs2 from "node:fs";
53102
- var NON_SHOP_PREFIXES = ["app", "dev", "shopify"], BACKEND_PORT = 8080;
53117
+ var NON_SHOP_PREFIXES = ["admin", "app", "dev", "shopify"], BACKEND_PORT = 8080;
53103
53118
  function createServer(projectName) {
53104
53119
  return {
53105
53120
  host: (options2 = {}) => host(projectName, options2),
@@ -53537,9 +53552,11 @@ function tokenRequestErrorHandler({ error, store: store2 }) {
53537
53552
  ]) : new AbortError(error);
53538
53553
  }
53539
53554
  async function tokenRequest(params) {
53540
- let fqdn = await identityFqdn(), url4 = new URL(`https://${fqdn}/oauth/token`);
53541
- url4.search = new URLSearchParams(Object.entries(params)).toString();
53542
- let res = await shopifyFetch(url4.href, { method: "POST" });
53555
+ let url4 = `https://${await identityFqdn()}/oauth/token`, body = new URLSearchParams(Object.entries(params)).toString(), res = await shopifyFetch(url4, {
53556
+ method: "POST",
53557
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
53558
+ body
53559
+ });
53543
53560
  try {
53544
53561
  let responseText = await res.text(), payload = JSON.parse(responseText);
53545
53562
  return res.ok ? ok(payload) : err({ error: payload.error, store: params.store });
@@ -53793,7 +53810,7 @@ function unionArrayStrategy(destinationArray, sourceArray) {
53793
53810
  }
53794
53811
 
53795
53812
  // ../cli-kit/dist/public/common/object.js
53796
- var import_deepmerge = __toESM(require_cjs()), import_pickBy = __toESM(require_pickBy()), import_mapValues = __toESM(require_mapValues()), import_isEqual = __toESM(require_isEqual()), import_differenceWith = __toESM(require_differenceWith()), import_fromPairs = __toESM(require_fromPairs()), import_toPairs = __toESM(require_toPairs()), import_get = __toESM(require_get()), import_set = __toESM(require_set()), import_unset = __toESM(require_unset()), import_isEmpty = __toESM(require_isEmpty());
53813
+ var import_deepmerge = __toESM(require_cjs(), 1), import_pickBy = __toESM(require_pickBy(), 1), import_mapValues = __toESM(require_mapValues(), 1), import_isEqual = __toESM(require_isEqual(), 1), import_differenceWith = __toESM(require_differenceWith(), 1), import_fromPairs = __toESM(require_fromPairs(), 1), import_toPairs = __toESM(require_toPairs(), 1), import_get = __toESM(require_get(), 1), import_set = __toESM(require_set(), 1), import_unset = __toESM(require_unset(), 1), import_isEmpty = __toESM(require_isEmpty(), 1);
53797
53814
  function deepMergeObjects(lhs, rhs, arrayMergeStrategy = unionArrayStrategy) {
53798
53815
  return (0, import_deepmerge.default)(lhs, rhs, { arrayMerge: arrayMergeStrategy });
53799
53816
  }
@@ -54192,13 +54209,13 @@ async function fetchEmail(businessPlatformToken) {
54192
54209
  }
54193
54210
  var userId, authMethod = "none";
54194
54211
  async function getLastSeenUserIdAfterAuth() {
54212
+ let customToken = getAppAutomationToken() ?? themeToken();
54213
+ if (customToken)
54214
+ return nonRandomUUID(customToken);
54195
54215
  if (userId)
54196
54216
  return userId;
54197
54217
  let currentSessionId = getCurrentSessionId();
54198
- if (currentSessionId)
54199
- return currentSessionId;
54200
- let customToken = getAppAutomationToken() ?? themeToken();
54201
- return customToken ? nonRandomUUID(customToken) : "unknown";
54218
+ return currentSessionId || "unknown";
54202
54219
  }
54203
54220
  function setLastSeenUserIdAfterAuth(id) {
54204
54221
  userId = id;
@@ -54370,10 +54387,12 @@ async function getEnvironmentData(config) {
54370
54387
  env_device_id: hashString(await macAddress()),
54371
54388
  env_cloud: cloudEnvironment().platform,
54372
54389
  env_package_manager: await getPackageManager(cwd()),
54390
+ env_install_package_manager: inferPackageManagerForGlobalCLI(),
54373
54391
  env_is_global: currentProcessIsGlobal(),
54374
54392
  env_auth_method: await getLastSeenAuthMethod(),
54375
54393
  env_is_wsl: await isWsl(),
54376
- env_build_repository: process.env.SHOPIFY_CLI_BUILD_REPO ?? "unknown"
54394
+ env_build_repository: process.env.SHOPIFY_CLI_BUILD_REPO ?? "unknown",
54395
+ env_auto_upgrade_enabled: getAutoUpgradeEnabled() ?? null
54377
54396
  };
54378
54397
  }
54379
54398
  async function getSensitiveEnvironmentData(config) {
@@ -54454,13 +54473,11 @@ var InstantaneousMetricReader = class extends import_sdk_metrics.MetricReader {
54454
54473
  };
54455
54474
 
54456
54475
  // ../cli-kit/dist/public/node/vendor/otel-js/service/DefaultOtelService/DefaultMeterProvider.js
54457
- var import_exporter_metrics_otlp_http = __toESM(require_src5(), 1), import_resources = __toESM(require_src2(), 1), import_sdk_metrics2 = __toESM(require_src3(), 1);
54458
- init_esm2();
54459
- var DefaultMeterProvider = class extends import_sdk_metrics2.MeterProvider {
54476
+ var import_exporter_metrics_otlp_http = __toESM(require_src5(), 1), import_resources = __toESM(require_src2(), 1), import_sdk_metrics2 = __toESM(require_src3(), 1), DefaultMeterProvider = class extends import_sdk_metrics2.MeterProvider {
54460
54477
  constructor({ serviceName, env, throttleLimit, useXhr, otelEndpoint }) {
54461
54478
  super({
54462
54479
  resource: new import_resources.Resource({
54463
- [SemanticResourceAttributes.SERVICE_NAME]: serviceName
54480
+ "service.name": serviceName
54464
54481
  })
54465
54482
  });
54466
54483
  let opts = {
@@ -54856,6 +54873,8 @@ async function sendErrorToBugsnag(error, exitMode) {
54856
54873
  try {
54857
54874
  if (isLocalEnvironment() || import_core4.settings.debug)
54858
54875
  return outputDebug("Skipping Bugsnag report"), { reported: !1, error, unhandled: void 0 };
54876
+ if (exitMode === "expected_error")
54877
+ return outputDebug("Skipping Bugsnag report for expected error"), { reported: !1, error, unhandled: void 0 };
54859
54878
  let unhandled = exitMode === "unexpected_error", reportableError, stacktrace, report = !1;
54860
54879
  error instanceof Error ? (report = !0, reportableError = new Error(error.message), stacktrace = error.stack) : typeof error == "string" && error.trim().length !== 0 ? (report = !0, reportableError = new Error(error), stacktrace = reportableError.stack) : (report = !1, reportableError = new Error("Unknown error"));
54861
54880
  let formattedStacktrace = new import_stacktracey.default(stacktrace ?? "").clean().items.map((item) => {
@@ -55060,4 +55079,4 @@ mime-types/index.js:
55060
55079
  * MIT Licensed
55061
55080
  *)
55062
55081
  */
55063
- //# sourceMappingURL=chunk-PYOLGWV3.js.map
55082
+ //# sourceMappingURL=chunk-GUVQJPFV.js.map