@shopify/cli-hydrogen 8.0.4 → 8.1.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 (162) hide show
  1. package/dist/{lib/setups/i18n/templates → assets/hydrogen/i18n}/domains.ts +1 -1
  2. package/dist/assets/hydrogen/i18n/mock-i18n-types.ts +3 -0
  3. package/dist/{lib/setups/i18n/templates → assets/hydrogen/i18n}/subdomains.ts +1 -1
  4. package/dist/{lib/setups/i18n/templates → assets/hydrogen/i18n}/subfolders.ts +1 -1
  5. package/dist/{generator-templates → assets/hydrogen}/starter/.eslintrc.cjs +1 -0
  6. package/dist/{generator-templates → assets/hydrogen}/starter/CHANGELOG.md +31 -0
  7. package/dist/assets/hydrogen/starter/app/components/Aside.tsx +76 -0
  8. package/dist/{generator-templates → assets/hydrogen}/starter/app/components/Cart.tsx +38 -14
  9. package/dist/{generator-templates → assets/hydrogen}/starter/app/components/Footer.tsx +30 -13
  10. package/dist/{generator-templates → assets/hydrogen}/starter/app/components/Header.tsx +52 -12
  11. package/dist/{generator-templates/starter/app/components/Layout.tsx → assets/hydrogen/starter/app/components/PageLayout.tsx} +38 -28
  12. package/dist/{generator-templates → assets/hydrogen}/starter/app/components/Search.tsx +5 -3
  13. package/dist/{generator-templates → assets/hydrogen}/starter/app/entry.server.tsx +8 -2
  14. package/dist/{generator-templates → assets/hydrogen}/starter/app/lib/fragments.ts +70 -0
  15. package/dist/assets/hydrogen/starter/app/root.tsx +204 -0
  16. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/_index.tsx +62 -25
  17. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.addresses.tsx +0 -1
  18. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.orders.$id.tsx +2 -2
  19. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.profile.tsx +0 -1
  20. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/api.predictive-search.tsx +6 -1
  21. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/blogs.$blogHandle.$articleHandle.tsx +34 -8
  22. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/blogs.$blogHandle._index.tsx +36 -10
  23. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/blogs._index.tsx +35 -12
  24. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/cart.tsx +7 -7
  25. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/collections.$handle.tsx +49 -7
  26. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/collections._index.tsx +32 -6
  27. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/collections.all.tsx +31 -6
  28. package/dist/assets/hydrogen/starter/app/routes/pages.$handle.tsx +84 -0
  29. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/products.$handle.tsx +82 -17
  30. package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/search.tsx +4 -1
  31. package/dist/{generator-templates → assets/hydrogen}/starter/app/styles/app.css +22 -4
  32. package/dist/{generator-templates → assets/hydrogen}/starter/env.d.ts +1 -0
  33. package/dist/{generator-templates → assets/hydrogen}/starter/package.json +10 -10
  34. package/dist/{generator-templates → assets/hydrogen}/starter/storefrontapi.generated.d.ts +3 -1
  35. package/dist/{generator-templates → assets/hydrogen}/starter/vite.config.ts +15 -0
  36. package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/routes/index.jsx +0 -10
  37. package/dist/{generator-templates/assets → assets/hydrogen}/vite/vite.config.js +15 -0
  38. package/dist/commands/hydrogen/build.js +119 -36
  39. package/dist/commands/hydrogen/debug/cpu.js +74 -64
  40. package/dist/commands/hydrogen/deploy.js +4 -4
  41. package/dist/commands/hydrogen/dev.js +133 -51
  42. package/dist/{init.d.ts → commands/hydrogen/init.d.ts} +5 -5
  43. package/dist/commands/hydrogen/init.js +17 -8
  44. package/dist/commands/hydrogen/preview.js +101 -13
  45. package/dist/commands/hydrogen/setup/vite.js +2 -2
  46. package/dist/commands/hydrogen/setup.js +1 -1
  47. package/dist/commands/hydrogen/upgrade.js +53 -50
  48. package/dist/index.d.ts +403 -0
  49. package/dist/index.js +61 -0
  50. package/dist/lib/build.js +48 -37
  51. package/dist/lib/bundle/analyzer.js +2 -4
  52. package/dist/lib/check-version.js +38 -18
  53. package/dist/lib/classic-compiler/build.js +11 -4
  54. package/dist/lib/classic-compiler/debug-cpu.js +52 -0
  55. package/dist/lib/classic-compiler/dev.js +12 -5
  56. package/dist/lib/codegen.js +34 -9
  57. package/dist/lib/cpu-profiler.js +29 -12
  58. package/dist/lib/defer.js +13 -7
  59. package/dist/lib/deps-optimizer.js +146 -0
  60. package/dist/lib/flags.js +2 -7
  61. package/dist/lib/format-code.js +1 -2
  62. package/dist/lib/import-utils.js +22 -0
  63. package/dist/lib/live-reload.js +15 -5
  64. package/dist/lib/log.js +24 -2
  65. package/dist/lib/mini-oxygen/index.js +6 -2
  66. package/dist/lib/mini-oxygen/node.js +18 -4
  67. package/dist/lib/mini-oxygen/workerd.js +18 -5
  68. package/dist/lib/onboarding/local.js +1 -1
  69. package/dist/lib/onboarding/setup-template.mocks.js +7 -11
  70. package/dist/lib/remix-config.js +11 -9
  71. package/dist/lib/remix-version-check.js +8 -13
  72. package/dist/lib/resource-cleanup.js +13 -0
  73. package/dist/lib/setups/css/assets.js +3 -3
  74. package/dist/lib/setups/css/css-modules.js +2 -2
  75. package/dist/lib/setups/css/postcss.js +2 -2
  76. package/dist/lib/setups/css/tailwind.js +2 -2
  77. package/dist/lib/setups/css/vanilla-extract.js +2 -2
  78. package/dist/lib/setups/i18n/index.js +3 -5
  79. package/dist/lib/setups/routes/generate.js +17 -16
  80. package/dist/lib/template-diff.js +120 -42
  81. package/dist/lib/template-downloader.js +6 -11
  82. package/dist/lib/transpile/morph/typedefs.js +17 -0
  83. package/dist/lib/virtual-routes.js +2 -2
  84. package/dist/lib/vite-config.js +2 -1
  85. package/oclif.manifest.json +89 -1
  86. package/package.json +13 -9
  87. package/dist/generator-templates/starter/app/components/Aside.tsx +0 -47
  88. package/dist/generator-templates/starter/app/lib/root-data.ts +0 -11
  89. package/dist/generator-templates/starter/app/root.tsx +0 -227
  90. package/dist/generator-templates/starter/app/routes/pages.$handle.tsx +0 -56
  91. package/dist/lib/setups/i18n/mock-i18n-types.js +0 -1
  92. package/dist/lib/setups/i18n/templates/domains.js +0 -14
  93. package/dist/lib/setups/i18n/templates/subdomains.js +0 -14
  94. package/dist/lib/setups/i18n/templates/subfolders.js +0 -13
  95. package/dist/lib/setups/routes/templates/locale-check.js +0 -9
  96. package/dist/virtual-routes/components/IconDiscord.jsx +0 -21
  97. /package/dist/{lib/bundle/bundle-analyzer.html → assets/hydrogen/bundle/analyzer.html} +0 -0
  98. /package/dist/{generator-templates/assets → assets/hydrogen}/css-modules/package.json +0 -0
  99. /package/dist/{generator-templates/assets → assets/hydrogen}/postcss/package.json +0 -0
  100. /package/dist/{generator-templates/assets → assets/hydrogen}/postcss/postcss.config.js +0 -0
  101. /package/dist/{lib/setups/routes/templates → assets/hydrogen/routes}/locale-check.ts +0 -0
  102. /package/dist/{generator-templates → assets/hydrogen}/starter/.eslintignore +0 -0
  103. /package/dist/{generator-templates → assets/hydrogen}/starter/.graphqlrc.yml +0 -0
  104. /package/dist/{generator-templates → assets/hydrogen}/starter/README.md +0 -0
  105. /package/dist/{generator-templates → assets/hydrogen}/starter/app/assets/favicon.svg +0 -0
  106. /package/dist/{generator-templates → assets/hydrogen}/starter/app/entry.client.tsx +0 -0
  107. /package/dist/{generator-templates → assets/hydrogen}/starter/app/graphql/customer-account/CustomerAddressMutations.ts +0 -0
  108. /package/dist/{generator-templates → assets/hydrogen}/starter/app/graphql/customer-account/CustomerDetailsQuery.ts +0 -0
  109. /package/dist/{generator-templates → assets/hydrogen}/starter/app/graphql/customer-account/CustomerOrderQuery.ts +0 -0
  110. /package/dist/{generator-templates → assets/hydrogen}/starter/app/graphql/customer-account/CustomerOrdersQuery.ts +0 -0
  111. /package/dist/{generator-templates → assets/hydrogen}/starter/app/graphql/customer-account/CustomerUpdateMutation.ts +0 -0
  112. /package/dist/{generator-templates → assets/hydrogen}/starter/app/lib/search.ts +0 -0
  113. /package/dist/{generator-templates → assets/hydrogen}/starter/app/lib/session.ts +0 -0
  114. /package/dist/{generator-templates → assets/hydrogen}/starter/app/lib/variants.ts +0 -0
  115. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/$.tsx +0 -0
  116. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/[robots.txt].tsx +0 -0
  117. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/[sitemap.xml].tsx +0 -0
  118. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.$.tsx +0 -0
  119. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account._index.tsx +0 -0
  120. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.orders._index.tsx +0 -0
  121. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account.tsx +0 -0
  122. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account_.authorize.tsx +0 -0
  123. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account_.login.tsx +0 -0
  124. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/account_.logout.tsx +0 -0
  125. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/cart.$lines.tsx +0 -0
  126. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/discount.$code.tsx +0 -0
  127. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/policies.$handle.tsx +0 -0
  128. /package/dist/{generator-templates → assets/hydrogen}/starter/app/routes/policies._index.tsx +0 -0
  129. /package/dist/{generator-templates → assets/hydrogen}/starter/app/styles/reset.css +0 -0
  130. /package/dist/{generator-templates → assets/hydrogen}/starter/customer-accountapi.generated.d.ts +0 -0
  131. /package/dist/{generator-templates → assets/hydrogen}/starter/public/.gitkeep +0 -0
  132. /package/dist/{generator-templates → assets/hydrogen}/starter/server.ts +0 -0
  133. /package/dist/{generator-templates → assets/hydrogen}/starter/tsconfig.json +0 -0
  134. /package/dist/{generator-templates/assets → assets/hydrogen}/tailwind/package.json +0 -0
  135. /package/dist/{generator-templates/assets → assets/hydrogen}/tailwind/postcss.config.js +0 -0
  136. /package/dist/{generator-templates/assets → assets/hydrogen}/tailwind/tailwind.config.js +0 -0
  137. /package/dist/{generator-templates/assets → assets/hydrogen}/tailwind/tailwind.css +0 -0
  138. /package/dist/{generator-templates/assets → assets/hydrogen}/vanilla-extract/package.json +0 -0
  139. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/debug-network.css +0 -0
  140. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/favicon-dark.svg +0 -0
  141. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/favicon.svg +0 -0
  142. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/inter-variable-font.woff2 +0 -0
  143. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/jetbrainsmono-variable-font.woff2 +0 -0
  144. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/assets/styles.css +0 -0
  145. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/FlameChartWrapper.jsx +0 -0
  146. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/HydrogenLogoBaseBW.jsx +0 -0
  147. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/HydrogenLogoBaseColor.jsx +0 -0
  148. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconBanner.jsx +0 -0
  149. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconClose.jsx +0 -0
  150. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconDiscard.jsx +0 -0
  151. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconError.jsx +0 -0
  152. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconGithub.jsx +0 -0
  153. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/IconTwitter.jsx +0 -0
  154. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/Layout.jsx +0 -0
  155. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/RequestDetails.jsx +0 -0
  156. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/RequestTable.jsx +0 -0
  157. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/components/RequestWaterfall.jsx +0 -0
  158. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/lib/useDebugNetworkServer.jsx +0 -0
  159. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/routes/graphiql.jsx +0 -0
  160. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/routes/subrequest-profiler.jsx +0 -0
  161. /package/dist/{virtual-routes → assets/hydrogen/virtual-routes}/virtual-root.jsx +0 -0
  162. /package/dist/{generator-templates/assets → assets/hydrogen}/vite/package.json +0 -0
@@ -1,5 +1,3 @@
1
- import path from 'node:path';
2
- import { fileURLToPath } from 'node:url';
3
1
  import { createRequire } from 'node:module';
4
2
  import semver from 'semver';
5
3
  import cliTruncate from 'cli-truncate';
@@ -10,9 +8,11 @@ import { renderSuccess, renderInfo, renderConfirmationPrompt, renderTasks, rende
10
8
  import { readFile, isDirectory, mkdir, fileExists, touchFile, removeFile, writeFile } from '@shopify/cli-kit/node/fs';
11
9
  import { installNodeModules, getPackageManager, getDependencies } from '@shopify/cli-kit/node/node-package-manager';
12
10
  import { AbortError } from '@shopify/cli-kit/node/error';
11
+ import { resolvePath, joinPath, dirname } from '@shopify/cli-kit/node/path';
13
12
  import { getCliCommand } from '../../lib/shell.js';
14
13
  import { commonFlags, flagsToCamelObject } from '../../lib/flags.js';
15
14
  import { getProjectPaths } from '../../lib/remix-config.js';
15
+ import { isHydrogenMonorepo, hydrogenPackagesPath } from '../../lib/build.js';
16
16
 
17
17
  const INSTRUCTIONS_FOLDER = ".hydrogen";
18
18
  class Upgrade extends Command {
@@ -35,7 +35,7 @@ class Upgrade extends Command {
35
35
  const { flags } = await this.parse(Upgrade);
36
36
  await runUpgrade({
37
37
  ...flagsToCamelObject(flags),
38
- appPath: flags.path ? path.resolve(flags.path) : process.cwd()
38
+ appPath: flags.path ? resolvePath(flags.path) : process.cwd()
39
39
  });
40
40
  }
41
41
  }
@@ -129,7 +129,7 @@ async function checkDirtyGitBranch(appPath) {
129
129
  }
130
130
  async function getHydrogenVersion({ appPath }) {
131
131
  const { root } = getProjectPaths(appPath);
132
- const packageJsonPath = path.join(root, "package.json");
132
+ const packageJsonPath = joinPath(root, "package.json");
133
133
  let packageJson;
134
134
  try {
135
135
  packageJson = JSON.parse(await readFile(packageJsonPath));
@@ -140,8 +140,8 @@ async function getHydrogenVersion({ appPath }) {
140
140
  );
141
141
  }
142
142
  const currentDependencies = {
143
- ...packageJson.dependencies ?? {},
144
- ...packageJson.devDependencies ?? {}
143
+ ...packageJson?.dependencies,
144
+ ...packageJson?.devDependencies
145
145
  };
146
146
  const currentVersion = currentDependencies["@shopify/hydrogen"];
147
147
  if (!currentVersion) {
@@ -155,10 +155,12 @@ async function getHydrogenVersion({ appPath }) {
155
155
  async function getChangelog() {
156
156
  if (CACHED_CHANGELOG)
157
157
  return CACHED_CHANGELOG;
158
- if (process.env.FORCE_CHANGELOG_SOURCE === "local" || process.env.FORCE_CHANGELOG_SOURCE !== "remote" && !!process.env.LOCAL_DEV) {
158
+ if (isHydrogenMonorepo && hydrogenPackagesPath && process.env.FORCE_CHANGELOG_SOURCE !== "remote") {
159
159
  const require2 = createRequire(import.meta.url);
160
- return require2(fileURLToPath(
161
- new URL("../../../../../docs/changelog.json", import.meta.url)
160
+ return require2(joinPath(
161
+ dirname(hydrogenPackagesPath),
162
+ "docs",
163
+ "changelog.json"
162
164
  ));
163
165
  }
164
166
  try {
@@ -201,8 +203,6 @@ function isUpgradeableRelease({
201
203
  currentPinnedVersion,
202
204
  release
203
205
  }) {
204
- if (!currentDependencies)
205
- return false;
206
206
  const isHydrogenOutdated = semver.gt(release.version, currentPinnedVersion);
207
207
  if (isHydrogenOutdated)
208
208
  return true;
@@ -533,9 +533,7 @@ async function validateUpgrade({
533
533
  appPath,
534
534
  selectedRelease
535
535
  }) {
536
- const dependencies = await getDependencies(
537
- path.join(appPath, "package.json")
538
- );
536
+ const dependencies = await getDependencies(joinPath(appPath, "package.json"));
539
537
  const updatedVersion = dependencies["@shopify/hydrogen"];
540
538
  if (!updatedVersion) {
541
539
  throw new AbortError("Hydrogen version not found in package.json");
@@ -599,7 +597,7 @@ async function generateUpgradeInstructionsFile({
599
597
  const absoluteFrom = getAbsoluteVersion(currentVersion);
600
598
  const absoluteTo = getAbsoluteVersion(selectedRelease.version);
601
599
  filename = `upgrade-${absoluteFrom}-to-${absoluteTo}.md`;
602
- const instructionsFolderPath = path.join(appPath, INSTRUCTIONS_FOLDER);
600
+ const instructionsFolderPath = joinPath(appPath, INSTRUCTIONS_FOLDER);
603
601
  const h1 = `# Hydrogen upgrade guide: ${absoluteFrom} to ${absoluteTo}`;
604
602
  let md = `${h1}
605
603
 
@@ -629,7 +627,7 @@ ${fixesMd.join(
629
627
  "\n"
630
628
  )}`;
631
629
  }
632
- const filePath = path.join(instructionsFolderPath, filename);
630
+ const filePath = joinPath(instructionsFolderPath, filename);
633
631
  try {
634
632
  await isDirectory(instructionsFolderPath);
635
633
  } catch (error) {
@@ -657,8 +655,10 @@ async function displayDevUpgradeNotice({
657
655
  targetPath
658
656
  }) {
659
657
  try {
660
- const appPath = targetPath ? path.resolve(targetPath) : process.cwd();
661
- const { currentVersion } = await getHydrogenVersion({ appPath });
658
+ const appPath = targetPath ? resolvePath(targetPath) : process.cwd();
659
+ const { currentVersion, currentDependencies } = await getHydrogenVersion({
660
+ appPath
661
+ });
662
662
  const isPrerelease = semver.prerelease(currentVersion);
663
663
  if (isPrerelease || /^[a-z]+$/i.test(currentVersion)) {
664
664
  return;
@@ -666,7 +666,8 @@ async function displayDevUpgradeNotice({
666
666
  const changelog = await getChangelog();
667
667
  const { availableUpgrades, uniqueAvailableUpgrades } = getAvailableUpgrades({
668
668
  releases: changelog.releases,
669
- currentVersion
669
+ currentVersion,
670
+ currentDependencies
670
671
  });
671
672
  if (availableUpgrades.length === 0 || !availableUpgrades[0]?.version) {
672
673
  return;
@@ -675,54 +676,56 @@ async function displayDevUpgradeNotice({
675
676
  availableUpgrades[0].version
676
677
  );
677
678
  const pinnedCurrentVersion = getAbsoluteVersion(currentVersion);
678
- const currentReleaseIndex = changelog.releases.findIndex((release) => {
679
- const pinnedReleaseVersion = getAbsoluteVersion(release.version);
680
- return pinnedReleaseVersion === pinnedCurrentVersion;
681
- });
682
- const uniqueNextReleases = changelog.releases.slice(0, currentReleaseIndex).reverse().reduce((acc, release) => {
683
- if (acc[release.version])
679
+ const isLatestHydrogenPackage = pinnedCurrentVersion === pinnedLatestVersion;
680
+ const currentReleaseIndex = isLatestHydrogenPackage ? changelog.releases.findIndex(
681
+ (release) => getAbsoluteVersion(release.version) !== pinnedCurrentVersion
682
+ ) : changelog.releases.findIndex(
683
+ (release) => getAbsoluteVersion(release.version) === pinnedCurrentVersion
684
+ );
685
+ const relevantReleases = changelog.releases.slice(0, currentReleaseIndex);
686
+ const nextReleases = Object.values(
687
+ [...relevantReleases].reverse().reduce((acc, release) => {
688
+ acc[release.version] ??= `${release.version} - ${release.title}`;
684
689
  return acc;
685
- acc[release.version] = release;
686
- return acc;
687
- }, {});
688
- const nextReleases = Object.keys(uniqueNextReleases).length ? Object.entries(uniqueNextReleases).map(([version, release]) => {
689
- return `${version} - ${release.title}`;
690
- }).slice(0, 5) : [];
690
+ }, {})
691
+ ).slice(0, 5);
691
692
  let headline = Object.keys(uniqueAvailableUpgrades).length > 1 ? `There are ${Object.keys(uniqueAvailableUpgrades).length} new @shopify/hydrogen versions available.` : `There's a new @shopify/hydrogen version available.`;
692
693
  const cliCommand = await getCliCommand();
693
694
  renderInfo({
694
695
  headline,
695
- body: [`Current: ${currentVersion} | Latest: ${pinnedLatestVersion}`],
696
- //@ts-ignore will always be an array
697
- customSections: nextReleases.length ? [
698
- {
699
- title: `The next ${nextReleases.length} version(s) include`,
700
- body: [
701
- {
702
- list: {
703
- items: [
704
- ...nextReleases,
705
- availableUpgrades.length > 5 && `...more`
706
- ].flat().filter(Boolean)
696
+ body: [
697
+ `Current: ${currentVersion} | Latest: ${pinnedLatestVersion}` + (isLatestHydrogenPackage ? " with updated dependencies" : "")
698
+ ],
699
+ customSections: [
700
+ ...nextReleases.length > 0 ? [
701
+ {
702
+ title: `The next ${nextReleases.length} version(s) include`,
703
+ body: [
704
+ {
705
+ list: {
706
+ items: [
707
+ ...nextReleases,
708
+ availableUpgrades.length > 5 ? `...more` : ""
709
+ ].flat().filter(Boolean)
710
+ }
707
711
  }
708
- }
709
- ].filter(Boolean)
710
- },
712
+ ].filter(Boolean)
713
+ }
714
+ ] : [],
711
715
  {
712
716
  title: "Next steps",
713
717
  body: [
714
718
  {
715
719
  list: {
716
720
  items: [
717
- `Run \`${cliCommand} upgrade\` or \`${cliCommand} upgrade --version XXXX.X.XX\``,
718
- ,
721
+ `Run \`${cliCommand} upgrade\` or \`${cliCommand} upgrade --version ${relevantReleases[0]?.version ?? "<version>"}\``,
719
722
  `Read release notes at https://hydrogen.shopify.dev/releases`
720
723
  ]
721
724
  }
722
725
  }
723
726
  ]
724
727
  }
725
- ] : []
728
+ ]
726
729
  });
727
730
  } catch (error) {
728
731
  const abortError = error;
@@ -733,4 +736,4 @@ async function displayDevUpgradeNotice({
733
736
  }
734
737
  }
735
738
 
736
- export { buildUpgradeCommandArgs, Upgrade as default, displayConfirmation, displayDevUpgradeNotice, getAbsoluteVersion, getAvailableUpgrades, getChangelog, getCummulativeRelease, getHydrogenVersion, getSelectedRelease, isUpgradeableRelease, runUpgrade, upgradeNodeModules };
739
+ export { buildUpgradeCommandArgs, Upgrade as default, displayConfirmation, displayDevUpgradeNotice, getAbsoluteVersion, getAvailableUpgrades, getChangelog, getCummulativeRelease, getHydrogenVersion, getSelectedRelease, runUpgrade, upgradeNodeModules };
@@ -0,0 +1,403 @@
1
+ import * as _oclif_core from '@oclif/core';
2
+ import * as _oclif_core_lib_interfaces_parser_js from '@oclif/core/lib/interfaces/parser.js';
3
+ import Command from '@shopify/cli-kit/node/base-command';
4
+ import * as _oclif_core_lib_interfaces_alphabet_js from '@oclif/core/lib/interfaces/alphabet.js';
5
+ import Init from './commands/hydrogen/init.js';
6
+ import '@shopify/cli-kit/node/node-package-manager';
7
+
8
+ declare class Build extends Command {
9
+ static descriptionWithMarkdown: string;
10
+ static description: string;
11
+ static flags: {
12
+ watch: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
13
+ 'bundle-stats': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
14
+ diff: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
15
+ codegen: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
16
+ 'codegen-config-path': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
17
+ 'disable-route-warning': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
18
+ 'lockfile-check': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
19
+ sourcemap: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
20
+ entry: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
21
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
22
+ };
23
+ run(): Promise<void>;
24
+ }
25
+
26
+ declare class GenerateRoute$1 extends Command {
27
+ static descriptionWithMarkdown: string;
28
+ static description: string;
29
+ static flags: {
30
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
31
+ };
32
+ static args: {
33
+ resource: _oclif_core_lib_interfaces_parser_js.Arg<string, Record<string, unknown>>;
34
+ };
35
+ run(): Promise<void>;
36
+ }
37
+
38
+ declare class Codegen extends Command {
39
+ static descriptionWithMarkdown: string;
40
+ static description: string;
41
+ static flags: {
42
+ 'codegen-config-path': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
43
+ 'force-sfapi-version': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
44
+ watch: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
45
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
46
+ };
47
+ run(): Promise<void>;
48
+ }
49
+
50
+ declare class CustomerAccountPush extends Command {
51
+ static description: string;
52
+ static flags: {
53
+ 'storefront-id': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
54
+ 'dev-origin': _oclif_core_lib_interfaces_parser_js.OptionFlag<string, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
55
+ 'relative-redirect-uri': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
56
+ 'relative-logout-uri': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
57
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
58
+ };
59
+ run(): Promise<void>;
60
+ }
61
+
62
+ declare class DebugCpu extends Command {
63
+ static descriptionWithMarkdown: string;
64
+ static description: string;
65
+ static flags: {
66
+ output: _oclif_core_lib_interfaces_parser_js.OptionFlag<string, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
67
+ entry: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
68
+ diff: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
69
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
70
+ };
71
+ run(): Promise<void>;
72
+ }
73
+
74
+ declare class Deploy extends Command {
75
+ static descriptionWithMarkdown: string;
76
+ static description: string;
77
+ static flags: any;
78
+ run(): Promise<void>;
79
+ private flagsToOxygenDeploymentOptions;
80
+ }
81
+
82
+ declare class Dev extends Command {
83
+ static descriptionWithMarkdown: string;
84
+ static description: string;
85
+ static flags: {
86
+ sourcemap: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
87
+ 'legacy-runtime': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
88
+ host: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
89
+ 'disable-deps-optimizer': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
90
+ worker: {
91
+ type: "option";
92
+ name: string;
93
+ char?: _oclif_core_lib_interfaces_alphabet_js.AlphabetLowercase | _oclif_core_lib_interfaces_alphabet_js.AlphabetUppercase | undefined;
94
+ summary?: string | undefined;
95
+ description?: string | undefined;
96
+ helpLabel?: string | undefined;
97
+ helpGroup?: string | undefined;
98
+ env?: string | undefined;
99
+ hidden?: boolean | undefined;
100
+ required?: boolean | undefined;
101
+ dependsOn?: string[] | undefined;
102
+ exclusive?: string[] | undefined;
103
+ exactlyOne?: string[] | undefined;
104
+ relationships?: _oclif_core_lib_interfaces_parser_js.Relationship[] | undefined;
105
+ deprecated?: true | _oclif_core_lib_interfaces_parser_js.Deprecation | undefined;
106
+ aliases?: string[] | undefined;
107
+ charAliases?: (_oclif_core_lib_interfaces_alphabet_js.AlphabetLowercase | _oclif_core_lib_interfaces_alphabet_js.AlphabetUppercase)[] | undefined;
108
+ deprecateAliases?: boolean | undefined;
109
+ noCacheDefault?: boolean | undefined;
110
+ helpValue?: string | undefined;
111
+ options?: readonly string[] | undefined;
112
+ multiple?: boolean | undefined;
113
+ multipleNonGreedy?: boolean | undefined;
114
+ delimiter?: "," | undefined;
115
+ allowStdin?: boolean | "only" | undefined;
116
+ parse: _oclif_core_lib_interfaces_parser_js.FlagParser<unknown, string, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
117
+ defaultHelp?: unknown;
118
+ input: string[];
119
+ default?: unknown;
120
+ };
121
+ verbose: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
122
+ 'customer-account-push__unstable': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
123
+ diff: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
124
+ 'disable-version-check': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
125
+ 'env-branch': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
126
+ env: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
127
+ 'inspector-port': _oclif_core_lib_interfaces_parser_js.OptionFlag<number | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
128
+ debug: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
129
+ 'disable-virtual-routes': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
130
+ codegen: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
131
+ 'codegen-config-path': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
132
+ port: _oclif_core_lib_interfaces_parser_js.OptionFlag<number | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
133
+ entry: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
134
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
135
+ };
136
+ run(): Promise<void>;
137
+ }
138
+
139
+ declare class EnvList extends Command {
140
+ static descriptionWithMarkdown: string;
141
+ static description: string;
142
+ static flags: {
143
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
144
+ };
145
+ run(): Promise<void>;
146
+ }
147
+
148
+ declare class EnvPull extends Command {
149
+ static descriptionWithMarkdown: string;
150
+ static description: string;
151
+ static flags: {
152
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
153
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
154
+ 'env-branch': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
155
+ env: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
156
+ };
157
+ run(): Promise<void>;
158
+ }
159
+
160
+ declare class EnvPush extends Command {
161
+ static description: string;
162
+ static flags: {
163
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
164
+ 'env-file': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
165
+ env: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
166
+ };
167
+ run(): Promise<void>;
168
+ }
169
+
170
+ declare class GenerateRouteShortcut extends Command {
171
+ static description: string;
172
+ static strict: boolean;
173
+ static hidden: boolean;
174
+ run(): Promise<void>;
175
+ }
176
+
177
+ declare class GenerateRoute extends Command {
178
+ static descriptionWithMarkdown: string;
179
+ static description: string;
180
+ static flags: {
181
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
182
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
183
+ adapter: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
184
+ typescript: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
185
+ 'locale-param': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
186
+ };
187
+ static hidden: true;
188
+ static args: {
189
+ routeName: _oclif_core_lib_interfaces_parser_js.Arg<string, Record<string, unknown>>;
190
+ };
191
+ run(): Promise<void>;
192
+ }
193
+
194
+ declare class GenerateRoutes extends Command {
195
+ static description: string;
196
+ static hidden: true;
197
+ static flags: {
198
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
199
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
200
+ adapter: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
201
+ typescript: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
202
+ 'locale-param': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
203
+ };
204
+ run(): Promise<void>;
205
+ }
206
+
207
+ declare class Link extends Command {
208
+ static descriptionWithMarkdown: string;
209
+ static description: string;
210
+ static flags: {
211
+ storefront: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
212
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
213
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
214
+ };
215
+ run(): Promise<void>;
216
+ }
217
+
218
+ declare class List extends Command {
219
+ static descriptionWithMarkdown: string;
220
+ static description: string;
221
+ static flags: {
222
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
223
+ };
224
+ run(): Promise<void>;
225
+ }
226
+
227
+ declare class Login extends Command {
228
+ static descriptionWithMarkdown: string;
229
+ static description: string;
230
+ static flags: {
231
+ shop: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
232
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
233
+ };
234
+ run(): Promise<void>;
235
+ }
236
+
237
+ declare class Logout extends Command {
238
+ static descriptionWithMarkdown: string;
239
+ static description: string;
240
+ static flags: {
241
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
242
+ };
243
+ run(): Promise<void>;
244
+ }
245
+
246
+ declare class Preview extends Command {
247
+ static descriptionWithMarkdown: string;
248
+ static description: string;
249
+ static flags: {
250
+ diff: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
251
+ codegen: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
252
+ 'codegen-config-path': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
253
+ entry: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
254
+ build: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
255
+ watch: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
256
+ verbose: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
257
+ debug: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
258
+ 'inspector-port': _oclif_core_lib_interfaces_parser_js.OptionFlag<number | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
259
+ 'env-branch': _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
260
+ env: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
261
+ 'legacy-runtime': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
262
+ worker: {
263
+ type: "option";
264
+ name: string;
265
+ char?: _oclif_core_lib_interfaces_alphabet_js.AlphabetLowercase | _oclif_core_lib_interfaces_alphabet_js.AlphabetUppercase | undefined;
266
+ summary?: string | undefined;
267
+ description?: string | undefined;
268
+ helpLabel?: string | undefined;
269
+ helpGroup?: string | undefined;
270
+ env?: string | undefined;
271
+ hidden?: boolean | undefined;
272
+ required?: boolean | undefined;
273
+ dependsOn?: string[] | undefined;
274
+ exclusive?: string[] | undefined;
275
+ exactlyOne?: string[] | undefined;
276
+ relationships?: _oclif_core_lib_interfaces_parser_js.Relationship[] | undefined;
277
+ deprecated?: true | _oclif_core_lib_interfaces_parser_js.Deprecation | undefined;
278
+ aliases?: string[] | undefined;
279
+ charAliases?: (_oclif_core_lib_interfaces_alphabet_js.AlphabetLowercase | _oclif_core_lib_interfaces_alphabet_js.AlphabetUppercase)[] | undefined;
280
+ deprecateAliases?: boolean | undefined;
281
+ noCacheDefault?: boolean | undefined;
282
+ helpValue?: string | undefined;
283
+ options?: readonly string[] | undefined;
284
+ multiple?: boolean | undefined;
285
+ multipleNonGreedy?: boolean | undefined;
286
+ delimiter?: "," | undefined;
287
+ allowStdin?: boolean | "only" | undefined;
288
+ parse: _oclif_core_lib_interfaces_parser_js.FlagParser<unknown, string, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
289
+ defaultHelp?: unknown;
290
+ input: string[];
291
+ default?: unknown;
292
+ };
293
+ port: _oclif_core_lib_interfaces_parser_js.OptionFlag<number | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
294
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
295
+ };
296
+ run(): Promise<void>;
297
+ }
298
+
299
+ declare class Setup extends Command {
300
+ static description: string;
301
+ static flags: {
302
+ 'install-deps': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
303
+ shortcut: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
304
+ markets: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
305
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
306
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
307
+ };
308
+ run(): Promise<void>;
309
+ }
310
+
311
+ declare class SetupCSS extends Command {
312
+ static descriptionWithMarkdown: string;
313
+ static description: string;
314
+ static flags: {
315
+ 'install-deps': _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
316
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
317
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
318
+ };
319
+ static args: {
320
+ strategy: _oclif_core_lib_interfaces_parser_js.Arg<string | undefined, Record<string, unknown>>;
321
+ };
322
+ run(): Promise<void>;
323
+ }
324
+
325
+ declare class SetupMarkets extends Command {
326
+ static descriptionWithMarkdown: string;
327
+ static description: string;
328
+ static flags: {
329
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
330
+ };
331
+ static args: {
332
+ strategy: _oclif_core_lib_interfaces_parser_js.Arg<string | undefined, Record<string, unknown>>;
333
+ };
334
+ run(): Promise<void>;
335
+ }
336
+
337
+ declare class SetupVite extends Command {
338
+ static description: string;
339
+ static flags: {
340
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
341
+ };
342
+ run(): Promise<void>;
343
+ }
344
+
345
+ declare class Shortcut extends Command {
346
+ static descriptionWithMarkdown: string;
347
+ static description: string;
348
+ run(): Promise<void>;
349
+ }
350
+
351
+ declare class Unlink extends Command {
352
+ static descriptionWithMarkdown: string;
353
+ static description: string;
354
+ static flags: {
355
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
356
+ };
357
+ run(): Promise<void>;
358
+ }
359
+
360
+ declare class Upgrade extends Command {
361
+ static descriptionWithMarkdown: string;
362
+ static description: string;
363
+ static flags: {
364
+ version: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
365
+ force: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
366
+ path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
367
+ };
368
+ run(): Promise<void>;
369
+ }
370
+
371
+ declare const COMMANDS: {
372
+ 'hydrogen:dev': typeof Dev;
373
+ 'hydrogen:build': typeof Build;
374
+ 'hydrogen:check': typeof GenerateRoute$1;
375
+ 'hydrogen:codegen': typeof Codegen;
376
+ 'hydrogen:deploy': typeof Deploy;
377
+ 'hydrogen:g': typeof GenerateRouteShortcut;
378
+ 'hydrogen:init': typeof Init;
379
+ 'hydrogen:link': typeof Link;
380
+ 'hydrogen:list': typeof List;
381
+ 'hydrogen:login': typeof Login;
382
+ 'hydrogen:logout': typeof Logout;
383
+ 'hydrogen:preview': typeof Preview;
384
+ 'hydrogen:setup': typeof Setup;
385
+ 'hydrogen:shortcut': typeof Shortcut;
386
+ 'hydrogen:unlink': typeof Unlink;
387
+ 'hydrogen:upgrade': typeof Upgrade;
388
+ 'hydrogen:customer-account-push': typeof CustomerAccountPush;
389
+ 'hydrogen:debug:cpu': typeof DebugCpu;
390
+ 'hydrogen:env:list': typeof EnvList;
391
+ 'hydrogen:env:pull': typeof EnvPull;
392
+ 'hydrogen:env:push': typeof EnvPush;
393
+ 'hydrogen:generate:route': typeof GenerateRoute;
394
+ 'hydrogen:generate:routes': typeof GenerateRoutes;
395
+ 'hydrogen:setup:css': typeof SetupCSS;
396
+ 'hydrogen:setup:markets': typeof SetupMarkets;
397
+ 'hydrogen:setup:vite': typeof SetupVite;
398
+ };
399
+ declare const HOOKS: {
400
+ init: _oclif_core.Hook<"init">;
401
+ };
402
+
403
+ export { COMMANDS, HOOKS };