@shopify/cli 3.87.4 → 3.88.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.
Files changed (81) hide show
  1. package/dist/{chunk-5SE32FSQ.js → chunk-2CKTOMXL.js} +2 -2
  2. package/dist/{chunk-W2TEGSMR.js → chunk-2IQA6YOH.js} +6 -6
  3. package/dist/{chunk-UPPP4PEB.js → chunk-47RUNUR4.js} +6 -6
  4. package/dist/{chunk-KKHQITV4.js → chunk-4B34L27W.js} +7 -7
  5. package/dist/{chunk-CONRF5CQ.js → chunk-4JKPZ3VQ.js} +3 -3
  6. package/dist/{chunk-DDZ4MRDR.js → chunk-A2XFK3DK.js} +3 -3
  7. package/dist/{chunk-X26FF4KZ.js → chunk-ARNI43Y7.js} +3 -3
  8. package/dist/{chunk-2VDLT7AT.js → chunk-DOGBHIKU.js} +4 -4
  9. package/dist/{chunk-ZUMEAETT.js → chunk-EBGZZ7WC.js} +2 -2
  10. package/dist/{chunk-5OEN66KU.js → chunk-EXVAVPLH.js} +3 -3
  11. package/dist/{chunk-MN5WIAIX.js → chunk-FM5O5ML5.js} +3 -3
  12. package/dist/{chunk-2DGV6SZL.js → chunk-G35J5BJH.js} +2 -2
  13. package/dist/{chunk-VDVVCJPN.js → chunk-G7LVOLJB.js} +19 -3
  14. package/dist/{chunk-RSS4DZZM.js → chunk-GTQOY34I.js} +2 -2
  15. package/dist/{chunk-73NR2QYO.js → chunk-HFXVR5DX.js} +3 -3
  16. package/dist/{chunk-MQGJCYOJ.js → chunk-HJSZAWSQ.js} +65 -29
  17. package/dist/{chunk-SJXCBEPN.js → chunk-J7IE6I2Z.js} +3 -3
  18. package/dist/{chunk-E5DVKI4E.js → chunk-KV7DPDLS.js} +4 -6
  19. package/dist/{chunk-YLJDEDAN.js → chunk-KY3DY3JB.js} +2 -2
  20. package/dist/{chunk-TSE5KOHV.js → chunk-L6RKBI62.js} +4 -4
  21. package/dist/{chunk-FXQ465D3.js → chunk-MBL5HIUY.js} +5 -5
  22. package/dist/{chunk-NA2JV5GP.js → chunk-O66HZU2K.js} +4 -4
  23. package/dist/{chunk-OG4B24TL.js → chunk-OIOM46UG.js} +3 -3
  24. package/dist/{chunk-XBNJSXFC.js → chunk-OOFJXO66.js} +3 -3
  25. package/dist/{chunk-LMREWIO3.js → chunk-PLB4SUD2.js} +3 -3
  26. package/dist/{chunk-M4KJ2GMX.js → chunk-R35DWLU3.js} +6 -8
  27. package/dist/{chunk-B5R7IGPI.js → chunk-S2JA5KN5.js} +2 -2
  28. package/dist/chunk-SKMKK4HY.js +52891 -0
  29. package/dist/{chunk-6RV7EPXS.js → chunk-SXCTF3GA.js} +5 -5
  30. package/dist/{chunk-5MAMHRHU.js → chunk-WEFPJFSC.js} +5 -5
  31. package/dist/{chunk-JAR2WH2P.js → chunk-YHMVT4MX.js} +7 -9
  32. package/dist/{chunk-Q5AXWB7V.js → chunk-YRMUH267.js} +3 -3
  33. package/dist/{chunk-WKBH3IKR.js → chunk-ZICCE4RM.js} +3 -3
  34. package/dist/cli/commands/auth/login.js +8 -10
  35. package/dist/cli/commands/auth/login.test.js +9 -11
  36. package/dist/cli/commands/auth/logout.js +8 -10
  37. package/dist/cli/commands/auth/logout.test.js +9 -11
  38. package/dist/cli/commands/cache/clear.js +8 -10
  39. package/dist/cli/commands/debug/command-flags.js +8 -10
  40. package/dist/cli/commands/docs/generate.js +8 -10
  41. package/dist/cli/commands/docs/generate.test.js +8 -10
  42. package/dist/cli/commands/help.js +8 -10
  43. package/dist/cli/commands/kitchen-sink/async.js +9 -11
  44. package/dist/cli/commands/kitchen-sink/async.test.js +9 -11
  45. package/dist/cli/commands/kitchen-sink/index.js +11 -13
  46. package/dist/cli/commands/kitchen-sink/index.test.js +11 -13
  47. package/dist/cli/commands/kitchen-sink/prompts.js +9 -11
  48. package/dist/cli/commands/kitchen-sink/prompts.test.js +9 -11
  49. package/dist/cli/commands/kitchen-sink/static.js +9 -11
  50. package/dist/cli/commands/kitchen-sink/static.test.js +9 -11
  51. package/dist/cli/commands/notifications/generate.js +9 -11
  52. package/dist/cli/commands/notifications/list.js +9 -11
  53. package/dist/cli/commands/search.js +9 -11
  54. package/dist/cli/commands/upgrade.js +9 -11
  55. package/dist/cli/commands/version.js +9 -11
  56. package/dist/cli/commands/version.test.js +9 -11
  57. package/dist/cli/services/commands/notifications.js +6 -6
  58. package/dist/cli/services/commands/search.js +2 -2
  59. package/dist/cli/services/commands/search.test.js +2 -2
  60. package/dist/cli/services/commands/version.js +3 -3
  61. package/dist/cli/services/commands/version.test.js +4 -4
  62. package/dist/cli/services/kitchen-sink/async.js +2 -2
  63. package/dist/cli/services/kitchen-sink/prompts.js +2 -2
  64. package/dist/cli/services/kitchen-sink/static.js +2 -2
  65. package/dist/cli/services/upgrade.js +3 -3
  66. package/dist/cli/services/upgrade.test.js +4 -4
  67. package/dist/{custom-oclif-loader-FGHBF34H.js → custom-oclif-loader-32S55IZR.js} +2 -2
  68. package/dist/{error-handler-REZ4JHHT.js → error-handler-5ISTZ76A.js} +6 -8
  69. package/dist/hooks/postrun.js +5 -7
  70. package/dist/hooks/prerun.js +8 -9
  71. package/dist/index.js +1911 -907
  72. package/dist/{local-YIKMWXQ7.js → local-WDXJW24L.js} +2 -2
  73. package/dist/{node-package-manager-RMBDMVA4.js → node-package-manager-2LA6ZOEW.js} +3 -3
  74. package/dist/tsconfig.tsbuildinfo +1 -1
  75. package/dist/{ui-5WUSNUER.js → ui-ROMDLTEP.js} +2 -2
  76. package/dist/{workerd-H7KWPFBD.js → workerd-J7UDCFYZ.js} +9 -11
  77. package/oclif.manifest.json +327 -19
  78. package/package.json +6 -6
  79. package/dist/chunk-GBO56MTW.js +0 -16100
  80. package/dist/chunk-GXRCTOFL.js +0 -32171
  81. package/dist/chunk-SE3SBZYH.js +0 -4671
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  clearCollectedLogs,
3
3
  collectedLogs
4
- } from "./chunk-MQGJCYOJ.js";
4
+ } from "./chunk-HJSZAWSQ.js";
5
5
  import {
6
6
  init_cjs_shims
7
7
  } from "./chunk-PKR7KJ6P.js";
@@ -33,4 +33,4 @@ function mockAndCaptureOutput() {
33
33
  export {
34
34
  mockAndCaptureOutput
35
35
  };
36
- //# sourceMappingURL=chunk-5SE32FSQ.js.map
36
+ //# sourceMappingURL=chunk-2CKTOMXL.js.map
@@ -2,15 +2,15 @@ import {
2
2
  fetch,
3
3
  jsonOutputEnabled,
4
4
  z
5
- } from "./chunk-GXRCTOFL.js";
5
+ } from "./chunk-SKMKK4HY.js";
6
6
  import {
7
7
  cacheRetrieve,
8
8
  cacheStore,
9
9
  versionSatisfies
10
- } from "./chunk-OG4B24TL.js";
10
+ } from "./chunk-OIOM46UG.js";
11
11
  import {
12
12
  CLI_KIT_VERSION
13
- } from "./chunk-B5R7IGPI.js";
13
+ } from "./chunk-S2JA5KN5.js";
14
14
  import {
15
15
  AbortSilentError,
16
16
  exec,
@@ -19,7 +19,7 @@ import {
19
19
  renderError,
20
20
  renderInfo,
21
21
  renderWarning
22
- } from "./chunk-MQGJCYOJ.js";
22
+ } from "./chunk-HJSZAWSQ.js";
23
23
  import {
24
24
  init_cjs_shims
25
25
  } from "./chunk-PKR7KJ6P.js";
@@ -87,7 +87,7 @@ async function showNotificationsIfNeeded(currentSurfaces, environment = process.
87
87
  throw new AbortSilentError();
88
88
  let errorMessage = `Error showing notifications: ${error.message}`;
89
89
  outputDebug(errorMessage);
90
- let { sendErrorToBugsnag } = await import("./error-handler-REZ4JHHT.js");
90
+ let { sendErrorToBugsnag } = await import("./error-handler-5ISTZ76A.js");
91
91
  await sendErrorToBugsnag(errorMessage, "unexpected_error");
92
92
  }
93
93
  }
@@ -200,4 +200,4 @@ export {
200
200
  fetchNotificationsInBackground,
201
201
  stringifyFilters
202
202
  };
203
- //# sourceMappingURL=chunk-W2TEGSMR.js.map
203
+ //# sourceMappingURL=chunk-2IQA6YOH.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-FXQ465D3.js";
3
+ } from "./chunk-MBL5HIUY.js";
4
4
  import {
5
5
  ensureAuthenticatedUser,
6
- fetch,
6
+ fetch2 as fetch,
7
7
  findSessionByAlias,
8
8
  getSessionAlias,
9
9
  identityFqdn
10
- } from "./chunk-SE3SBZYH.js";
10
+ } from "./chunk-SKMKK4HY.js";
11
11
  import {
12
12
  setCurrentSessionId
13
- } from "./chunk-OG4B24TL.js";
13
+ } from "./chunk-OIOM46UG.js";
14
14
  import {
15
15
  outputCompleted,
16
16
  renderSelectPrompt
17
- } from "./chunk-MQGJCYOJ.js";
17
+ } from "./chunk-HJSZAWSQ.js";
18
18
  import {
19
19
  require_lib
20
20
  } from "./chunk-VLBE545G.js";
@@ -84,4 +84,4 @@ export {
84
84
  promptSessionSelect,
85
85
  Login
86
86
  };
87
- //# sourceMappingURL=chunk-UPPP4PEB.js.map
87
+ //# sourceMappingURL=chunk-47RUNUR4.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-FXQ465D3.js";
3
+ } from "./chunk-MBL5HIUY.js";
4
4
  import {
5
5
  cacheClear
6
- } from "./chunk-OG4B24TL.js";
6
+ } from "./chunk-OIOM46UG.js";
7
7
  import {
8
8
  environmentVariables,
9
9
  isTruthy
10
- } from "./chunk-MQGJCYOJ.js";
10
+ } from "./chunk-HJSZAWSQ.js";
11
11
  import {
12
12
  require_lib
13
13
  } from "./chunk-VLBE545G.js";
@@ -26,7 +26,7 @@ init_cjs_shims();
26
26
  init_cjs_shims();
27
27
  import { fileURLToPath } from "node:url";
28
28
  async function launchCLI(options) {
29
- let { errorHandler } = await import("./error-handler-REZ4JHHT.js"), { isDevelopment } = await import("./local-YIKMWXQ7.js"), oclif = await import("./lib-G7Q5M6VX.js"), { ShopifyConfig } = await import("./custom-oclif-loader-FGHBF34H.js");
29
+ let { errorHandler } = await import("./error-handler-5ISTZ76A.js"), { isDevelopment } = await import("./local-WDXJW24L.js"), oclif = await import("./lib-G7Q5M6VX.js"), { ShopifyConfig } = await import("./custom-oclif-loader-32S55IZR.js");
30
30
  isDevelopment() && (oclif.default.settings.debug = !0);
31
31
  try {
32
32
  let config = new ShopifyConfig({ root: fileURLToPath(options.moduleURL) });
@@ -41,7 +41,7 @@ var import_core = __toESM(require_lib());
41
41
  async function exitIfOldNodeVersion(versions = process.versions) {
42
42
  let nodeVersion = versions.node, nodeMajorVersion = Number(nodeVersion.split(".")[0]);
43
43
  if (nodeMajorVersion < 18) {
44
- let { renderError } = await import("./ui-5WUSNUER.js");
44
+ let { renderError } = await import("./ui-ROMDLTEP.js");
45
45
  renderError({
46
46
  headline: "Upgrade to a supported Node version now.",
47
47
  body: [
@@ -68,7 +68,7 @@ async function runCLI(options, launchCLI2 = launchCLI, argv = process.argv, env
68
68
  return setupEnvironmentVariables(options, argv, env), options.runInCreateMode && await addInitToArgvWhenRunningCreateCLI(options, argv), forceNoColor(argv, env), await exitIfOldNodeVersion(versions), launchCLI2({ moduleURL: options.moduleURL });
69
69
  }
70
70
  async function addInitToArgvWhenRunningCreateCLI(options, argv = process.argv) {
71
- let { findUpAndReadPackageJson } = await import("./node-package-manager-RMBDMVA4.js"), { moduleDirectory } = await import("./path-GB4VIEM6.js"), name = (await findUpAndReadPackageJson(moduleDirectory(options.moduleURL))).content.name.replace("@shopify/create-", "");
71
+ let { findUpAndReadPackageJson } = await import("./node-package-manager-2LA6ZOEW.js"), { moduleDirectory } = await import("./path-GB4VIEM6.js"), name = (await findUpAndReadPackageJson(moduleDirectory(options.moduleURL))).content.name.replace("@shopify/create-", "");
72
72
  if (argv.findIndex((arg) => arg.includes("init")) === -1) {
73
73
  let initIndex2 = argv.findIndex((arg) => arg.match(new RegExp(`bin(\\/|\\\\)+(create-${name}|dev|run)`))) + 1;
74
74
  argv.splice(initIndex2, 0, "init");
@@ -117,4 +117,4 @@ export {
117
117
  jsonFlag,
118
118
  ClearCache
119
119
  };
120
- //# sourceMappingURL=chunk-KKHQITV4.js.map
120
+ //# sourceMappingURL=chunk-4B34L27W.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  packageManagerFromUserAgent
3
- } from "./chunk-OG4B24TL.js";
3
+ } from "./chunk-OIOM46UG.js";
4
4
  import {
5
5
  currentProcessIsGlobal,
6
6
  inferPackageManagerForGlobalCLI,
7
7
  outputContent,
8
8
  outputToken
9
- } from "./chunk-MQGJCYOJ.js";
9
+ } from "./chunk-HJSZAWSQ.js";
10
10
  import {
11
11
  init_cjs_shims
12
12
  } from "./chunk-PKR7KJ6P.js";
@@ -25,4 +25,4 @@ export {
25
25
  cliInstallCommand,
26
26
  getOutputUpdateCLIReminder
27
27
  };
28
- //# sourceMappingURL=chunk-CONRF5CQ.js.map
28
+ //# sourceMappingURL=chunk-4JKPZ3VQ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  asyncTasks
3
- } from "./chunk-VDVVCJPN.js";
3
+ } from "./chunk-G7LVOLJB.js";
4
4
  import {
5
5
  base_command_default
6
- } from "./chunk-FXQ465D3.js";
6
+ } from "./chunk-MBL5HIUY.js";
7
7
  import {
8
8
  init_cjs_shims
9
9
  } from "./chunk-PKR7KJ6P.js";
@@ -25,4 +25,4 @@ var KitchenSinkAsync = class extends base_command_default {
25
25
  export {
26
26
  KitchenSinkAsync
27
27
  };
28
- //# sourceMappingURL=chunk-DDZ4MRDR.js.map
28
+ //# sourceMappingURL=chunk-A2XFK3DK.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  prompts
3
- } from "./chunk-RSS4DZZM.js";
3
+ } from "./chunk-GTQOY34I.js";
4
4
  import {
5
5
  base_command_default
6
- } from "./chunk-FXQ465D3.js";
6
+ } from "./chunk-MBL5HIUY.js";
7
7
  import {
8
8
  init_cjs_shims
9
9
  } from "./chunk-PKR7KJ6P.js";
@@ -25,4 +25,4 @@ var KitchenSinkPrompts = class extends base_command_default {
25
25
  export {
26
26
  KitchenSinkPrompts
27
27
  };
28
- //# sourceMappingURL=chunk-X26FF4KZ.js.map
28
+ //# sourceMappingURL=chunk-ARNI43Y7.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-FXQ465D3.js";
3
+ } from "./chunk-MBL5HIUY.js";
4
4
  import {
5
5
  logout
6
- } from "./chunk-SE3SBZYH.js";
6
+ } from "./chunk-SKMKK4HY.js";
7
7
  import {
8
8
  outputSuccess
9
- } from "./chunk-MQGJCYOJ.js";
9
+ } from "./chunk-HJSZAWSQ.js";
10
10
  import {
11
11
  init_cjs_shims
12
12
  } from "./chunk-PKR7KJ6P.js";
@@ -25,4 +25,4 @@ var Logout = class extends base_command_default {
25
25
  export {
26
26
  Logout
27
27
  };
28
- //# sourceMappingURL=chunk-2VDLT7AT.js.map
28
+ //# sourceMappingURL=chunk-DOGBHIKU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  openURL
3
- } from "./chunk-MQGJCYOJ.js";
3
+ } from "./chunk-HJSZAWSQ.js";
4
4
  import {
5
5
  init_cjs_shims
6
6
  } from "./chunk-PKR7KJ6P.js";
@@ -15,4 +15,4 @@ async function searchService(query) {
15
15
  export {
16
16
  searchService
17
17
  };
18
- //# sourceMappingURL=chunk-ZUMEAETT.js.map
18
+ //# sourceMappingURL=chunk-EBGZZ7WC.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CLI_KIT_VERSION
3
- } from "./chunk-B5R7IGPI.js";
3
+ } from "./chunk-S2JA5KN5.js";
4
4
  import {
5
5
  outputResult
6
- } from "./chunk-MQGJCYOJ.js";
6
+ } from "./chunk-HJSZAWSQ.js";
7
7
  import {
8
8
  init_cjs_shims
9
9
  } from "./chunk-PKR7KJ6P.js";
@@ -17,4 +17,4 @@ async function versionService() {
17
17
  export {
18
18
  versionService
19
19
  };
20
- //# sourceMappingURL=chunk-5OEN66KU.js.map
20
+ //# sourceMappingURL=chunk-EXVAVPLH.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-FXQ465D3.js";
3
+ } from "./chunk-MBL5HIUY.js";
4
4
  import {
5
5
  mkdir,
6
6
  outputInfo,
7
7
  rmdir,
8
8
  writeFile
9
- } from "./chunk-MQGJCYOJ.js";
9
+ } from "./chunk-HJSZAWSQ.js";
10
10
  import {
11
11
  cwd,
12
12
  joinPath
@@ -118,4 +118,4 @@ export {
118
118
  writeCommandFlagInterface,
119
119
  writeCommandUsageExampleFile
120
120
  };
121
- //# sourceMappingURL=chunk-MN5WIAIX.js.map
121
+ //# sourceMappingURL=chunk-FM5O5ML5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-FXQ465D3.js";
3
+ } from "./chunk-MBL5HIUY.js";
4
4
  import {
5
5
  require_lib
6
6
  } from "./chunk-VLBE545G.js";
@@ -46,4 +46,4 @@ var HelpCommand = class _HelpCommand extends base_command_default {
46
46
  export {
47
47
  HelpCommand
48
48
  };
49
- //# sourceMappingURL=chunk-2DGV6SZL.js.map
49
+ //# sourceMappingURL=chunk-G35J5BJH.js.map
@@ -1,7 +1,11 @@
1
1
  import {
2
+ TokenizedString,
3
+ outputContent,
4
+ outputToken,
2
5
  renderConcurrent,
6
+ renderSingleTask,
3
7
  renderTasks
4
- } from "./chunk-MQGJCYOJ.js";
8
+ } from "./chunk-HJSZAWSQ.js";
5
9
  import {
6
10
  init_cjs_shims
7
11
  } from "./chunk-PKR7KJ6P.js";
@@ -37,10 +41,22 @@ async function asyncTasks() {
37
41
  await new Promise((resolve) => setTimeout(resolve, 2e3));
38
42
  }
39
43
  }
40
- ]);
44
+ ]), await renderSingleTask({
45
+ title: new TokenizedString("Importing data"),
46
+ task: async (updateStatus) => {
47
+ for (let i = 1; i <= 10; i++) {
48
+ await new Promise((resolve) => setTimeout(resolve, 500));
49
+ let status = outputContent`Importing data ${outputToken.italic(
50
+ outputContent`(${outputToken.green(i.toString())} complete)`
51
+ )}`;
52
+ updateStatus(status);
53
+ }
54
+ return "completed";
55
+ }
56
+ });
41
57
  }
42
58
 
43
59
  export {
44
60
  asyncTasks
45
61
  };
46
- //# sourceMappingURL=chunk-VDVVCJPN.js.map
62
+ //# sourceMappingURL=chunk-G7LVOLJB.js.map
@@ -5,7 +5,7 @@ import {
5
5
  renderDangerousConfirmationPrompt,
6
6
  renderSelectPrompt,
7
7
  renderTextPrompt
8
- } from "./chunk-MQGJCYOJ.js";
8
+ } from "./chunk-HJSZAWSQ.js";
9
9
  import {
10
10
  init_cjs_shims
11
11
  } from "./chunk-PKR7KJ6P.js";
@@ -175,4 +175,4 @@ async function prompts() {
175
175
  export {
176
176
  prompts
177
177
  };
178
- //# sourceMappingURL=chunk-RSS4DZZM.js.map
178
+ //# sourceMappingURL=chunk-GTQOY34I.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-5MAMHRHU.js";
3
+ } from "./chunk-WEFPJFSC.js";
4
4
  import {
5
5
  base_command_default
6
- } from "./chunk-FXQ465D3.js";
6
+ } from "./chunk-MBL5HIUY.js";
7
7
  import {
8
8
  init_cjs_shims
9
9
  } from "./chunk-PKR7KJ6P.js";
@@ -25,4 +25,4 @@ var Generate = class extends base_command_default {
25
25
  export {
26
26
  Generate
27
27
  };
28
- //# sourceMappingURL=chunk-73NR2QYO.js.map
28
+ //# sourceMappingURL=chunk-HFXVR5DX.js.map
@@ -23402,6 +23402,22 @@ function normalizeDelimitedString(delimitedString, delimiter2 = ",") {
23402
23402
  let sortedItems = delimitedString.split(delimiter2).map((value) => value.trim()).filter((value) => value !== "").sort();
23403
23403
  return [...new Set(sortedItems)].join(delimiter2);
23404
23404
  }
23405
+ function timeAgo(from, to) {
23406
+ let seconds = Math.floor((to.getTime() - from.getTime()) / 1e3);
23407
+ if (seconds < 60)
23408
+ return `${formatTimeUnit(seconds, "second")} ago`;
23409
+ let minutes = Math.floor(seconds / 60);
23410
+ if (minutes < 60)
23411
+ return `${formatTimeUnit(minutes, "minute")} ago`;
23412
+ let hours = Math.floor(minutes / 60);
23413
+ if (hours < 24)
23414
+ return `${formatTimeUnit(hours, "hour")} ago`;
23415
+ let days = Math.floor(hours / 24);
23416
+ return `${formatTimeUnit(days, "day")} ago`;
23417
+ }
23418
+ function formatTimeUnit(count, unit) {
23419
+ return `${count} ${unit}${count === 1 ? "" : "s"}`;
23420
+ }
23405
23421
 
23406
23422
  // ../../node_modules/.pnpm/fs-extra@11.1.0/node_modules/fs-extra/lib/esm.mjs
23407
23423
  init_cjs_shims();
@@ -24560,7 +24576,7 @@ minimatch.unescape = unescape2;
24560
24576
  // ../cli-kit/dist/public/node/fs.js
24561
24577
  var import_fast_glob = __toESM(require_out());
24562
24578
  import { mkdirSync as fsMkdirSync, readFileSync as fsReadFileSync, writeFileSync as fsWriteFileSync, appendFileSync as fsAppendFileSync, statSync as fsStatSync, createReadStream as fsCreateReadStream, createWriteStream as fsCreateWriteStream, constants as fsConstants, existsSync as fsFileExistsSync, unlinkSync as fsUnlinkSync, accessSync, statSync } from "fs";
24563
- import { mkdir as fsMkdir, writeFile as fsWriteFile, readFile as fsReadFile, realpath as fsRealPath, appendFile as fsAppendFile, mkdtemp as fsMkdtemp, stat as fsStat, lstat as fsLstat, chmod as fsChmod, access as fsAccess, rename as fsRename, unlink as fsUnlink, readdir as fsReaddir } from "fs/promises";
24579
+ import { mkdir as fsMkdir, writeFile as fsWriteFile, readFile as fsReadFile, realpath as fsRealPath, appendFile as fsAppendFile, mkdtemp as fsMkdtemp, stat as fsStat, lstat as fsLstat, chmod as fsChmod, access as fsAccess, rename as fsRename, unlink as fsUnlink, readdir as fsReaddir, symlink as fsSymlink } from "fs/promises";
24564
24580
  async function inTemporaryDirectory(callback) {
24565
24581
  return temporaryDirectoryTask(callback);
24566
24582
  }
@@ -24607,6 +24623,15 @@ async function removeFile(path8) {
24607
24623
  async function renameFile(from, to) {
24608
24624
  outputDebug(outputContent`Renaming file from ${outputToken.path(from)} to ${outputToken.path(to)}...`), await fsRename(from, to);
24609
24625
  }
24626
+ async function symlink(target, path8) {
24627
+ outputDebug(outputContent`Creating symbolic link from ${outputToken.path(path8)} to ${outputToken.path(target)}...`);
24628
+ let type = "file";
24629
+ try {
24630
+ (await fsLstat(target)).isDirectory() && (type = "junction");
24631
+ } catch {
24632
+ }
24633
+ await fsSymlink(target, path8, type);
24634
+ }
24610
24635
  function removeFileSync(path8) {
24611
24636
  outputDebug(outputContent`Sync-removing file at ${outputToken.path(path8)}...`), removeSync(path8);
24612
24637
  }
@@ -24712,17 +24737,6 @@ function matchGlob(key, pattern, options) {
24712
24737
  function readdir(path8) {
24713
24738
  return fsReaddir(path8);
24714
24739
  }
24715
- async function copyDirectoryContents(srcDir, destDir) {
24716
- if (!await fileExists(srcDir))
24717
- throw new Error(`Source directory ${srcDir} does not exist`);
24718
- await fileExists(destDir) || await mkdir(destDir);
24719
- let items = await glob(joinPath(srcDir, "**/*")), filesToCopy = [];
24720
- for (let item of items) {
24721
- let relativePath = item.replace(srcDir, "").replace(/^[/\\]/, ""), destPath = joinPath(destDir, relativePath);
24722
- filesToCopy.push(copyFile(item, destPath));
24723
- }
24724
- await Promise.all(filesToCopy);
24725
- }
24726
24740
 
24727
24741
  // ../cli-kit/dist/public/node/system.js
24728
24742
  init_cjs_shims();
@@ -25710,6 +25724,7 @@ function makeUsernameFromId(userId) {
25710
25724
 
25711
25725
  // ../cli-kit/dist/public/node/system.js
25712
25726
  var import_which = __toESM(require_lib2());
25727
+ import { fstatSync } from "fs";
25713
25728
  async function openURL(url) {
25714
25729
  let externalOpen = await import("./open-BHIF7E3E.js");
25715
25730
  try {
@@ -25794,6 +25809,23 @@ function isCI() {
25794
25809
  async function isWsl() {
25795
25810
  return (await import("./is-wsl-YAJ3DFN7.js")).default;
25796
25811
  }
25812
+ function isStdinPiped() {
25813
+ try {
25814
+ let stats = fstatSync(0);
25815
+ return stats.isFIFO() || stats.isFile();
25816
+ } catch {
25817
+ return !1;
25818
+ }
25819
+ }
25820
+ async function readStdinString() {
25821
+ if (!isStdinPiped())
25822
+ return;
25823
+ let data = "";
25824
+ process.stdin.setEncoding("utf8");
25825
+ for await (let chunk of process.stdin)
25826
+ data += String(chunk);
25827
+ return data.trim();
25828
+ }
25797
25829
 
25798
25830
  // ../../node_modules/.pnpm/is-interactive@2.0.0/node_modules/is-interactive/index.js
25799
25831
  init_cjs_shims();
@@ -30238,7 +30270,7 @@ function createRuntimeMetadataContainer(defaultPublicMetadata = {}) {
30238
30270
  try {
30239
30271
  await getAndSet();
30240
30272
  } catch (error) {
30241
- let { sendErrorToBugsnag } = await import("./error-handler-REZ4JHHT.js");
30273
+ let { sendErrorToBugsnag } = await import("./error-handler-5ISTZ76A.js");
30242
30274
  await sendErrorToBugsnag(error, "unexpected_error");
30243
30275
  }
30244
30276
  }, durationStack = [];
@@ -31654,7 +31686,10 @@ function Tasks({ tasks, silent = isUnitTest(), onComplete = noop3, abortSignal,
31654
31686
  }
31655
31687
  }), useExitOnCtrlC();
31656
31688
  let { isAborted } = useAbortSignal(abortSignal);
31657
- return silent ? null : state === TasksState.Loading && !isAborted ? import_react53.default.createElement(LoadingBar, { title: currentTask.title, noColor, noProgressBar }) : null;
31689
+ if (silent)
31690
+ return null;
31691
+ let title = typeof currentTask.title == "string" ? currentTask.title : currentTask.title.value;
31692
+ return state === TasksState.Loading && !isAborted ? import_react53.default.createElement(LoadingBar, { title, noColor, noProgressBar }) : null;
31658
31693
  }
31659
31694
 
31660
31695
  // ../cli-kit/dist/private/node/ui/components/TextPrompt.js
@@ -31747,7 +31782,7 @@ init_cjs_shims();
31747
31782
 
31748
31783
  // ../cli-kit/dist/public/common/function.js
31749
31784
  init_cjs_shims();
31750
- var import_memoize = __toESM(require_memoize(), 1), import_debounce = __toESM(require_debounce(), 1), import_throttle2 = __toESM(require_throttle(), 1);
31785
+ var import_memoize = __toESM(require_memoize()), import_debounce = __toESM(require_debounce()), import_throttle2 = __toESM(require_throttle());
31751
31786
  function debounce(func, wait, options) {
31752
31787
  return (0, import_debounce.default)(func, wait, options);
31753
31788
  }
@@ -31796,15 +31831,15 @@ function AutocompletePrompt({ message, choices, infoTable, onSubmit, search, has
31796
31831
  // ../cli-kit/dist/private/node/ui/components/SingleTask.js
31797
31832
  init_cjs_shims();
31798
31833
  var import_react56 = __toESM(require_react(), 1);
31799
- var SingleTask = ({ taskPromise, title, noColor }) => {
31800
- let [isDone, setIsDone] = (0, import_react56.useState)(!1), { exit: unmountInk } = use_app_default();
31834
+ var SingleTask = ({ task, title, onComplete, noColor }) => {
31835
+ let [status, setStatus] = (0, import_react56.useState)(title), [isDone, setIsDone] = (0, import_react56.useState)(!1), { exit: unmountInk } = use_app_default();
31801
31836
  return useExitOnCtrlC(), (0, import_react56.useEffect)(() => {
31802
- taskPromise.then(() => {
31803
- setIsDone(!0), unmountInk();
31837
+ task(setStatus).then((result) => {
31838
+ setIsDone(!0), onComplete?.(result), unmountInk();
31804
31839
  }).catch((error) => {
31805
31840
  setIsDone(!0), unmountInk(error);
31806
31841
  });
31807
- }, [taskPromise, unmountInk]), isDone ? null : import_react56.default.createElement(LoadingBar, { title, noColor });
31842
+ }, [task, unmountInk, onComplete]), isDone ? null : import_react56.default.createElement(LoadingBar, { title: status.value, noColor });
31808
31843
  };
31809
31844
 
31810
31845
  // ../cli-kit/dist/public/node/ui.js
@@ -31897,15 +31932,13 @@ async function renderTasks(tasks, { renderOptions, noProgressBar } = {}) {
31897
31932
  }).catch(reject);
31898
31933
  });
31899
31934
  }
31900
- async function renderSingleTask({ title, taskPromise }, { renderOptions } = {}) {
31901
- let promise = typeof taskPromise == "function" ? taskPromise() : taskPromise, [_renderResult, taskResult] = await Promise.all([
31902
- render2(import_react57.default.createElement(SingleTask, { title, taskPromise: promise }), {
31935
+ async function renderSingleTask({ title, task, renderOptions }) {
31936
+ return new Promise((resolve, reject) => {
31937
+ render2(import_react57.default.createElement(SingleTask, { title, task, onComplete: resolve }), {
31903
31938
  ...renderOptions,
31904
31939
  exitOnCtrlC: !1
31905
- }),
31906
- promise
31907
- ]);
31908
- return taskResult;
31940
+ }).catch(reject);
31941
+ });
31909
31942
  }
31910
31943
  async function renderTextPrompt({ renderOptions, ...props }, uiDebugOptions = defaultUIDebugOptions) {
31911
31944
  return throwInNonTTY({ message: props.message, stdin: renderOptions?.stdin }, uiDebugOptions), runWithTimer("cmd_all_timing_prompts_ms")(async () => {
@@ -32071,6 +32104,7 @@ export {
32071
32104
  joinWithAnd,
32072
32105
  pascalize,
32073
32106
  normalizeDelimitedString,
32107
+ timeAgo,
32074
32108
  useAbortSignal,
32075
32109
  require_baseForOwn,
32076
32110
  require_baseEach,
@@ -32116,6 +32150,7 @@ export {
32116
32150
  terminalSupportsPrompting,
32117
32151
  isCI,
32118
32152
  isWsl,
32153
+ readStdinString,
32119
32154
  localCLIVersion,
32120
32155
  globalCLIVersion,
32121
32156
  isPreReleaseVersion,
@@ -32123,6 +32158,7 @@ export {
32123
32158
  installGlobalShopifyCLI,
32124
32159
  installGlobalCLIPrompt,
32125
32160
  inferPackageManagerForGlobalCLI,
32161
+ TokenizedString,
32126
32162
  outputToken,
32127
32163
  formatPackageManagerCommand,
32128
32164
  outputContent,
@@ -32155,6 +32191,7 @@ export {
32155
32191
  mkdirSync,
32156
32192
  removeFile,
32157
32193
  renameFile,
32194
+ symlink,
32158
32195
  removeFileSync,
32159
32196
  rmdir,
32160
32197
  isDirectory,
@@ -32179,7 +32216,6 @@ export {
32179
32216
  findPathUp,
32180
32217
  matchGlob,
32181
32218
  readdir,
32182
- copyDirectoryContents,
32183
32219
  isTerminalInteractive,
32184
32220
  homeDirectory,
32185
32221
  isDevelopment,
@@ -32292,4 +32328,4 @@ react-reconciler/cjs/react-reconciler-constants.development.js:
32292
32328
  * LICENSE file in the root directory of this source tree.
32293
32329
  *)
32294
32330
  */
32295
- //# sourceMappingURL=chunk-MQGJCYOJ.js.map
32331
+ //# sourceMappingURL=chunk-HJSZAWSQ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  findUpAndReadPackageJson,
5
5
  getPackageManager,
6
6
  usesWorkspaces
7
- } from "./chunk-OG4B24TL.js";
7
+ } from "./chunk-OIOM46UG.js";
8
8
  import {
9
9
  AbortError,
10
10
  exec,
@@ -15,7 +15,7 @@ import {
15
15
  outputSuccess,
16
16
  outputToken,
17
17
  outputWarn
18
- } from "./chunk-MQGJCYOJ.js";
18
+ } from "./chunk-HJSZAWSQ.js";
19
19
  import {
20
20
  dirname,
21
21
  joinPath,
@@ -139,4 +139,4 @@ function usingPackageManager({ env } = { env: process.env }) {
139
139
  export {
140
140
  upgrade
141
141
  };
142
- //# sourceMappingURL=chunk-SJXCBEPN.js.map
142
+ //# sourceMappingURL=chunk-J7IE6I2Z.js.map
@@ -1,15 +1,13 @@
1
1
  import {
2
+ getNextDeprecationDate,
2
3
  reportAnalyticsEvent
3
- } from "./chunk-GBO56MTW.js";
4
- import {
5
- getNextDeprecationDate
6
- } from "./chunk-SE3SBZYH.js";
4
+ } from "./chunk-SKMKK4HY.js";
7
5
  import {
8
6
  addSensitiveMetadata,
9
7
  getAllSensitiveMetadata,
10
8
  outputDebug,
11
9
  renderWarning
12
- } from "./chunk-MQGJCYOJ.js";
10
+ } from "./chunk-HJSZAWSQ.js";
13
11
  import {
14
12
  init_cjs_shims
15
13
  } from "./chunk-PKR7KJ6P.js";
@@ -77,4 +75,4 @@ export {
77
75
  postRunHookHasCompleted,
78
76
  hook
79
77
  };
80
- //# sourceMappingURL=chunk-E5DVKI4E.js.map
78
+ //# sourceMappingURL=chunk-KV7DPDLS.js.map
@@ -7,7 +7,7 @@ import {
7
7
  renderSuccess,
8
8
  renderTable,
9
9
  renderWarning
10
- } from "./chunk-MQGJCYOJ.js";
10
+ } from "./chunk-HJSZAWSQ.js";
11
11
  import {
12
12
  init_cjs_shims
13
13
  } from "./chunk-PKR7KJ6P.js";
@@ -203,4 +203,4 @@ async function staticService() {
203
203
  export {
204
204
  staticService
205
205
  };
206
- //# sourceMappingURL=chunk-YLJDEDAN.js.map
206
+ //# sourceMappingURL=chunk-KY3DY3JB.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  cliInstallCommand
3
- } from "./chunk-CONRF5CQ.js";
3
+ } from "./chunk-4JKPZ3VQ.js";
4
4
  import {
5
5
  base_command_default
6
- } from "./chunk-FXQ465D3.js";
6
+ } from "./chunk-MBL5HIUY.js";
7
7
  import {
8
8
  renderInfo
9
- } from "./chunk-MQGJCYOJ.js";
9
+ } from "./chunk-HJSZAWSQ.js";
10
10
  import {
11
11
  init_cjs_shims
12
12
  } from "./chunk-PKR7KJ6P.js";
@@ -34,4 +34,4 @@ var Upgrade = class extends base_command_default {
34
34
  export {
35
35
  Upgrade
36
36
  };
37
- //# sourceMappingURL=chunk-TSE5KOHV.js.map
37
+ //# sourceMappingURL=chunk-L6RKBI62.js.map