@shopify/cli-hydrogen 11.1.4 → 11.1.6

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.
@@ -1,5 +1,37 @@
1
1
  # skeleton
2
2
 
3
+ ## 2025.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Update React Router to 7.12.0 with stabilized future flags ([#3346](https://github.com/Shopify/hydrogen/pull/3346)) by [@kdaviduik](https://github.com/kdaviduik)
8
+
9
+ This release uses React Router's newly stabilized future flags (`v8_splitRouteModules`, `v8_middleware`) instead of their unstable counterparts
10
+
11
+ - Moved server build in `server.ts` from a dynamic import to a static import to speed up first rendering during local development (2s => 200ms). ([#3331](https://github.com/Shopify/hydrogen/pull/3331)) by [@frandiox](https://github.com/frandiox)
12
+
13
+ ```diff
14
+ // server.ts
15
+
16
+ +import * as serverBuild from 'virtual:react-router/server-build';
17
+
18
+ const handleRequest = createRequestHandler({
19
+ - build: await import('virtual:react-router/server-build'),
20
+ + build: serverBuild,
21
+ ```
22
+
23
+ Updated ESLint config to allow `virtual:` imports:
24
+
25
+ ```diff
26
+ // eslint.config.js
27
+
28
+ rules: {
29
+ + 'import/no-unresolved': ['error', {ignore: ['^virtual:']}],
30
+ ```
31
+
32
+ - Updated dependencies [[`264e13349168f17cc1f096c84135d13d38cfc8df`](https://github.com/Shopify/hydrogen/commit/264e13349168f17cc1f096c84135d13d38cfc8df), [`6d5e3d371e7e02e15be17029a0f34daae53a978e`](https://github.com/Shopify/hydrogen/commit/6d5e3d371e7e02e15be17029a0f34daae53a978e), [`ee00f1025867c40d5f67fa89d4ffb215bf280e8f`](https://github.com/Shopify/hydrogen/commit/ee00f1025867c40d5f67fa89d4ffb215bf280e8f), [`5a38948133766e358c5f357f52562f6fdcfe7969`](https://github.com/Shopify/hydrogen/commit/5a38948133766e358c5f357f52562f6fdcfe7969), [`264e13349168f17cc1f096c84135d13d38cfc8df`](https://github.com/Shopify/hydrogen/commit/264e13349168f17cc1f096c84135d13d38cfc8df)]:
33
+ - @shopify/hydrogen@2025.7.1
34
+
3
35
  ## 2025.7.0
4
36
 
5
37
  ### Major Changes
@@ -211,6 +211,7 @@ export default [
211
211
  '@typescript-eslint/no-floating-promises': 'error',
212
212
  '@typescript-eslint/no-misused-promises': 'error',
213
213
  'react/prop-types': 'off',
214
+ 'import/no-unresolved': ['error', {ignore: ['^virtual:']}],
214
215
  },
215
216
  },
216
217
  {
@@ -2,7 +2,7 @@
2
2
  "name": "skeleton",
3
3
  "private": true,
4
4
  "sideEffects": false,
5
- "version": "2025.7.0",
5
+ "version": "2025.7.1",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "build": "shopify hydrogen build --codegen",
@@ -14,23 +14,23 @@
14
14
  },
15
15
  "prettier": "@shopify/prettier-config",
16
16
  "dependencies": {
17
- "@shopify/hydrogen": "2025.7.0",
17
+ "@shopify/hydrogen": "2025.7.1",
18
18
  "graphql": "^16.10.0",
19
19
  "graphql-tag": "^2.12.6",
20
20
  "isbot": "^5.1.22",
21
21
  "react": "18.3.1",
22
22
  "react-dom": "18.3.1",
23
- "react-router": "7.9.2",
24
- "react-router-dom": "7.9.2"
23
+ "react-router": "7.12.0",
24
+ "react-router-dom": "7.12.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@eslint/compat": "^1.2.5",
28
28
  "@eslint/eslintrc": "^3.2.0",
29
29
  "@eslint/js": "^9.18.0",
30
30
  "@graphql-codegen/cli": "5.0.2",
31
- "@react-router/dev": "7.9.2",
32
- "@react-router/fs-routes": "7.9.2",
33
- "@shopify/cli": "3.84.1",
31
+ "@react-router/dev": "7.12.0",
32
+ "@react-router/fs-routes": "7.12.0",
33
+ "@shopify/cli": "3.85.4",
34
34
  "@shopify/hydrogen-codegen": "^0.3.3",
35
35
  "@shopify/mini-oxygen": "^4.0.0",
36
36
  "@shopify/oxygen-workers-types": "^4.1.6",
@@ -1,6 +1,5 @@
1
- // Virtual entry point for the app
2
- import {storefrontRedirect} from '@shopify/hydrogen';
3
- import {createRequestHandler} from '@shopify/hydrogen/oxygen';
1
+ import * as serverBuild from 'virtual:react-router/server-build';
2
+ import {createRequestHandler, storefrontRedirect} from '@shopify/hydrogen';
4
3
  import {createHydrogenRouterContext} from '~/lib/context';
5
4
 
6
5
  /**
@@ -20,12 +19,11 @@ export default {
20
19
  );
21
20
 
22
21
  /**
23
- * Create a Remix request handler and pass
24
- * Hydrogen's Storefront client to the loader context.
22
+ * Create a Hydrogen request handler that internally
23
+ * delegates to React Router for routing and rendering.
25
24
  */
26
25
  const handleRequest = createRequestHandler({
27
- // eslint-disable-next-line import/no-unresolved
28
- build: await import('virtual:react-router/server-build'),
26
+ build: serverBuild,
29
27
  mode: process.env.NODE_ENV,
30
28
  getLoadContext: () => hydrogenContext,
31
29
  });
@@ -134,6 +134,8 @@ async function runDev({
134
134
  const viteServer = await vite.createServer({
135
135
  root,
136
136
  clearScreen: false,
137
+ // In unit tests, node_modules is a symlink. Avoid writing .vite cache inside it.
138
+ cacheDir: process.env.SHOPIFY_UNIT_TEST ? joinPath(root, ".vite") : void 0,
137
139
  customLogger: process.env.SHOPIFY_UNIT_TEST ? Object.assign(vite.createLogger(), {
138
140
  info: (msg) => collectLog("info", msg),
139
141
  warn: (msg) => collectLog("warn", msg),
@@ -882,7 +882,15 @@ async function displayDevUpgradeNotice({
882
882
  ) : changelog.releases.findIndex(
883
883
  (release) => getAbsoluteVersion(release.version) === pinnedCurrentVersion
884
884
  );
885
- const relevantReleases = changelog.releases.slice(0, currentReleaseIndex);
885
+ let relevantReleases;
886
+ if (currentReleaseIndex === -1) {
887
+ const insertionIndex = changelog.releases.findIndex(
888
+ (release) => semver.lte(getAbsoluteVersion(release.version), pinnedCurrentVersion)
889
+ );
890
+ relevantReleases = insertionIndex === -1 ? changelog.releases : changelog.releases.slice(0, insertionIndex);
891
+ } else {
892
+ relevantReleases = changelog.releases.slice(0, currentReleaseIndex);
893
+ }
886
894
  const nextReleases = Object.values(
887
895
  [...relevantReleases].reverse().reduce(
888
896
  (acc, release) => {
@@ -891,7 +899,7 @@ async function displayDevUpgradeNotice({
891
899
  },
892
900
  {}
893
901
  )
894
- ).slice(0, 5);
902
+ ).reverse().slice(0, 5);
895
903
  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.`;
896
904
  const cliCommand = await getCliCommand();
897
905
  renderInfo({
@@ -10,7 +10,7 @@ const REACT_ROUTER_PACKAGES = [
10
10
  "@react-router/dev",
11
11
  "@react-router/fs-routes"
12
12
  ];
13
- const EXPECTED_VERSION = "7.9.2";
13
+ const EXPECTED_VERSION = "7.12.0";
14
14
  async function checkReactRouterVersions(appPath) {
15
15
  const mismatches = [];
16
16
  const packageJsonPath = joinPath(appPath, "package.json");
@@ -65,7 +65,7 @@ async function checkReactRouterVersions(appPath) {
65
65
  renderWarning({
66
66
  headline: "React Router version mismatch detected",
67
67
  body: [
68
- "Hydrogen requires React Router 7.9.x for proper functionality.",
68
+ "Hydrogen requires React Router 7.12.0 for proper functionality.",
69
69
  "",
70
70
  "Version mismatches found:",
71
71
  mismatchList,
@@ -1683,5 +1683,5 @@
1683
1683
  ]
1684
1684
  }
1685
1685
  },
1686
- "version": "11.1.4"
1686
+ "version": "11.1.6"
1687
1687
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "@shopify:registry": "https://registry.npmjs.org"
6
6
  },
7
- "version": "11.1.4",
7
+ "version": "11.1.6",
8
8
  "license": "MIT",
9
9
  "type": "module",
10
10
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "test:watch": "cross-env SHOPIFY_UNIT_TEST=1 LANG=en-US.UTF-8 vitest --test-timeout=60000"
22
22
  },
23
23
  "devDependencies": {
24
- "@react-router/dev": "7.9.2",
24
+ "@react-router/dev": "7.12.0",
25
25
  "@types/diff": "^5.0.2",
26
26
  "@types/gunzip-maybe": "^1.4.0",
27
27
  "@types/prettier": "^2.7.2",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@graphql-codegen/cli": "^5.0.2",
63
- "@react-router/dev": "7.9.2",
63
+ "@react-router/dev": "7.12.0",
64
64
  "@shopify/hydrogen-codegen": "^0.3.3",
65
65
  "@shopify/mini-oxygen": "^4.0.0",
66
66
  "graphql-config": "^5.0.3",