@shopify/cli-hydrogen 11.1.14 → 11.1.16

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,4 +1,4 @@
1
- import type {LoaderFunctionArgs} from '@shopify/remix-oxygen';
1
+ import type {LoaderFunctionArgs} from 'react-router';
2
2
 
3
3
  export async function loader({params, context}: LoaderFunctionArgs) {
4
4
  const {language, country} = context.storefront.i18n;
@@ -1,5 +1,14 @@
1
1
  # skeleton
2
2
 
3
+ ## 2026.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix `set-cookie-parser` and `cookie` resolution warnings during `dev` by using Vite's nested dependency syntax (`react-router > dep`). These are CJS transitive dependencies of `react-router` that weren't resolvable by bare name with strict package managers like pnpm. ([#3698](https://github.com/Shopify/hydrogen/pull/3698)) by [@fredericoo](https://github.com/fredericoo)
8
+
9
+ - Updated dependencies [[`f84ab400c62d89827574d0fa65ba310a2e75f36f`](https://github.com/Shopify/hydrogen/commit/f84ab400c62d89827574d0fa65ba310a2e75f36f)]:
10
+ - @shopify/hydrogen@2026.4.1
11
+
3
12
  ## 2026.4.0
4
13
 
5
14
  ### Major Changes
@@ -2,7 +2,7 @@
2
2
  "name": "skeleton",
3
3
  "private": true,
4
4
  "sideEffects": false,
5
- "version": "2026.4.0",
5
+ "version": "2026.4.1",
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "build": "shopify hydrogen build --codegen",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "prettier": "@shopify/prettier-config",
16
16
  "dependencies": {
17
- "@shopify/hydrogen": "2026.4.0",
17
+ "@shopify/hydrogen": "2026.4.1",
18
18
  "graphql": "^16.10.0",
19
19
  "graphql-tag": "^2.12.6",
20
20
  "isbot": "^5.1.22",
@@ -30,7 +30,7 @@
30
30
  "@graphql-codegen/cli": "5.0.2",
31
31
  "@react-router/dev": "7.12.0",
32
32
  "@react-router/fs-routes": "7.12.0",
33
- "@shopify/cli": "3.91.1",
33
+ "@shopify/cli": "3.93.2",
34
34
  "@shopify/hydrogen-codegen": "0.3.3",
35
35
  "@shopify/mini-oxygen": "4.0.2",
36
36
  "@shopify/oxygen-workers-types": "^4.1.6",
@@ -23,7 +23,11 @@ export default defineConfig({
23
23
  * Include 'example-dep' in the array below.
24
24
  * @see https://vitejs.dev/config/dep-optimization-options
25
25
  */
26
- include: ['set-cookie-parser', 'cookie', 'react-router'],
26
+ include: [
27
+ 'react-router > set-cookie-parser',
28
+ 'react-router > cookie',
29
+ 'react-router',
30
+ ],
27
31
  },
28
32
  },
29
33
  server: {
@@ -12,7 +12,7 @@ class GenerateRoute extends Command {
12
12
  static description = "Generates a standard Shopify route.";
13
13
  static flags = {
14
14
  adapter: Flags.string({
15
- description: "Remix adapter used in the route. The default is `@shopify/remix-oxygen`.",
15
+ description: "React Router adapter used in the route. The default is `react-router`.",
16
16
  env: "SHOPIFY_HYDROGEN_FLAG_ADAPTER"
17
17
  }),
18
18
  typescript: Flags.boolean({
@@ -45,7 +45,7 @@ async function runSetupMarkets({
45
45
  }
46
46
  ]);
47
47
  renderSuccess({
48
- headline: `Makerts support setup complete with strategy ${I18N_STRATEGY_NAME_MAP[strategy].toLocaleLowerCase()}.`,
48
+ headline: `Markets support setup complete with strategy ${I18N_STRATEGY_NAME_MAP[strategy].toLowerCase()}.`,
49
49
  body: `You can now modify the supported locales in ${remixConfig.serverEntryPoint ?? "your server entry file."}
50
50
  `
51
51
  });
@@ -175,7 +175,7 @@ async function isRunningFromHydrogenMonorepo() {
175
175
  }
176
176
  function createNextRelease(latestRelease) {
177
177
  const dependencies = { ...latestRelease.dependencies };
178
- const devDependencies = { ...latestRelease.devDependencies };
178
+ const devDependencies = { ...latestRelease.devDependencies ?? {} };
179
179
  if (dependencies["@shopify/hydrogen"]) {
180
180
  dependencies["@shopify/hydrogen"] = "next";
181
181
  }
@@ -276,7 +276,7 @@ function hasOutdatedDependencies({
276
276
  }) {
277
277
  return Object.entries({
278
278
  ...release.dependencies,
279
- ...release.devDependencies
279
+ ...release.devDependencies ?? {}
280
280
  }).some(([name, version]) => {
281
281
  if (name === "@shopify/cli") return false;
282
282
  const currentDependencyVersion = currentDependencies?.[name];
@@ -538,7 +538,7 @@ function buildUpgradeCommandArgs({
538
538
  };
539
539
  const effectiveDevDependencies = {
540
540
  ...cumulativeDevDependencies ?? {},
541
- ...selectedRelease.devDependencies
541
+ ...selectedRelease.devDependencies ?? {}
542
542
  };
543
543
  for (const dependency of Object.entries(effectiveDependencies)) {
544
544
  const shouldUpgradeDep = maybeIncludeDependency({
@@ -186,7 +186,10 @@ async function generateProjectFile(routeFrom, {
186
186
  return result;
187
187
  }
188
188
  function replaceAdapters(templateContent, adapter) {
189
- return templateContent.replace(/@shopify\/remix-oxygen/g, adapter);
189
+ return templateContent.replace(
190
+ /(from\s+['"])react-router(['"])/g,
191
+ `$1${adapter}$2`
192
+ );
190
193
  }
191
194
  function getDestinationRoute(routeFrom, localePrefix, options) {
192
195
  const routePath = routeFrom.replace(ASSETS_STARTER_DIR_ROUTES + "/", "");
@@ -35,7 +35,7 @@ function isAnnotableType(type) {
35
35
  }
36
36
  function normalizeType(type) {
37
37
  const normalizedType = type.replace(/^\(\)\s+=>\s+/, "").replace(/typeof import\("[^"]+"\)\./, "typeof ");
38
- return normalizedType === "SerializeFrom<any>" ? `{SerializeFrom<loader>}` : `{${normalizedType}}`;
38
+ return normalizedType === "SerializeFrom<any>" ? `{ReturnType<typeof useLoaderData<typeof loader>>}` : `{${normalizedType}}`;
39
39
  }
40
40
  function generateParameterDocumentation(functionNode, docNode) {
41
41
  const params = functionNode.getParameters();
@@ -28,7 +28,6 @@ function generateTypeDefs(sourceFile, code) {
28
28
  typedefs.push("");
29
29
  const knownGenerics = {
30
30
  MetaFunction: "T",
31
- SerializeFrom: "T",
32
31
  Fetcher: "T",
33
32
  PartialPredictiveSearchResult: "ItemType, ExtraProps",
34
33
  PartialSearchResult: "ItemType"
@@ -52,7 +51,7 @@ function generateTypeDefs(sourceFile, code) {
52
51
  }
53
52
  if (/(function loader\(|const loader =)/.test(source)) {
54
53
  typedefs.push(
55
- `/** @typedef {import('@shopify/remix-oxygen').SerializeFrom<typeof loader>} LoaderReturnData */`
54
+ `/** @typedef {ReturnType<typeof useLoaderData<typeof loader>>} LoaderReturnData */`
56
55
  );
57
56
  code = code.replace(
58
57
  /^\s+?const\s+([\w\d]+|\{[\w\d\s,.]+\})\s+?=\s+?useLoaderData\(\)/gms,
@@ -72,7 +71,7 @@ function generateTypeDefs(sourceFile, code) {
72
71
  }
73
72
  if (/(function action\(|const action =)/.test(source)) {
74
73
  typedefs.push(
75
- `/** @typedef {import('@shopify/remix-oxygen').SerializeFrom<typeof action>} ActionReturnData */`
74
+ `/** @typedef {ReturnType<typeof useActionData<typeof action>>} ActionReturnData */`
76
75
  );
77
76
  code = code.replace(
78
77
  /^\s+?const\s+([\w\d]+|\{[\w\d\s,.]+\})\s+?=\s+?useActionData\(\)/gms,
@@ -854,7 +854,7 @@
854
854
  "description": "Generates a standard Shopify route.",
855
855
  "flags": {
856
856
  "adapter": {
857
- "description": "Remix adapter used in the route. The default is `@shopify/remix-oxygen`.",
857
+ "description": "React Router adapter used in the route. The default is `react-router`.",
858
858
  "env": "SHOPIFY_HYDROGEN_FLAG_ADAPTER",
859
859
  "name": "adapter",
860
860
  "hasDynamicHelp": false,
@@ -917,7 +917,7 @@
917
917
  "description": "Generates all supported standard shopify routes.",
918
918
  "flags": {
919
919
  "adapter": {
920
- "description": "Remix adapter used in the route. The default is `@shopify/remix-oxygen`.",
920
+ "description": "React Router adapter used in the route. The default is `react-router`.",
921
921
  "env": "SHOPIFY_HYDROGEN_FLAG_ADAPTER",
922
922
  "name": "adapter",
923
923
  "hasDynamicHelp": false,
@@ -1675,5 +1675,5 @@
1675
1675
  ]
1676
1676
  }
1677
1677
  },
1678
- "version": "11.1.14"
1678
+ "version": "11.1.16"
1679
1679
  }
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.14",
7
+ "version": "11.1.16",
8
8
  "license": "MIT",
9
9
  "type": "module",
10
10
  "repository": {