@shopify/cli-hydrogen 11.1.5 → 11.1.7
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.
- package/dist/assets/hydrogen/starter/.graphqlrc.ts +4 -2
- package/dist/assets/hydrogen/starter/CHANGELOG.md +68 -0
- package/dist/assets/hydrogen/starter/app/routes/account_.login.tsx +10 -0
- package/dist/assets/hydrogen/starter/eslint.config.js +1 -0
- package/dist/assets/hydrogen/starter/package.json +7 -6
- package/dist/assets/hydrogen/starter/server.ts +5 -7
- package/dist/commands/hydrogen/dev.js +2 -0
- package/dist/commands/hydrogen/upgrade.js +10 -2
- package/dist/lib/react-router-version-check.js +2 -2
- package/oclif.manifest.json +1 -1
- package/package.json +3 -3
|
@@ -6,7 +6,7 @@ import {getSchema} from '@shopify/hydrogen-codegen';
|
|
|
6
6
|
* @see https://the-guild.dev/graphql/config/docs/user/usage
|
|
7
7
|
* @type {IGraphQLConfig}
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
const graphqlConfig: IGraphQLConfig = {
|
|
10
10
|
projects: {
|
|
11
11
|
default: {
|
|
12
12
|
schema: getSchema('storefront'),
|
|
@@ -24,4 +24,6 @@ export default {
|
|
|
24
24
|
|
|
25
25
|
// Add your own GraphQL projects here for CMS, Shopify Admin API, etc.
|
|
26
26
|
},
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default graphqlConfig;
|
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
# skeleton
|
|
2
2
|
|
|
3
|
+
## 2025.7.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Support OAuth parameters via URL query strings in skeleton login route ([#3391](https://github.com/Shopify/hydrogen/pull/3391)) by [@kdaviduik](https://github.com/kdaviduik)
|
|
8
|
+
|
|
9
|
+
The skeleton template's login route (`account_.login.tsx`) now reads OAuth parameters from the URL and forwards them to `customerAccount.login()`. This enables deep linking to the login page with pre-configured authentication options.
|
|
10
|
+
|
|
11
|
+
### Supported Query Parameters
|
|
12
|
+
|
|
13
|
+
| Query Parameter | Description |
|
|
14
|
+
| ----------------- | ---------------------------------------------------------------------------------- |
|
|
15
|
+
| `acr_values` | Direct users to a specific login method (e.g., `provider:google` for social login) |
|
|
16
|
+
| `login_hint` | Pre-fill the email address field |
|
|
17
|
+
| `login_hint_mode` | When set to `submit` with `login_hint`, auto-submits the login form |
|
|
18
|
+
| `locale` | Display the login page in a specific language (e.g., `fr`, `zh-CN`) |
|
|
19
|
+
|
|
20
|
+
### Usage Examples
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
/account/login?login_hint=user@example.com
|
|
24
|
+
/account/login?login_hint=user@example.com&login_hint_mode=submit
|
|
25
|
+
/account/login?acr_values=provider:google
|
|
26
|
+
/account/login?locale=fr
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Updated dependencies [[`7c077f5f21a595c0355873ac8073b716dfeaf4d0`](https://github.com/Shopify/hydrogen/commit/7c077f5f21a595c0355873ac8073b716dfeaf4d0), [`7c077f5f21a595c0355873ac8073b716dfeaf4d0`](https://github.com/Shopify/hydrogen/commit/7c077f5f21a595c0355873ac8073b716dfeaf4d0), [`7c077f5f21a595c0355873ac8073b716dfeaf4d0`](https://github.com/Shopify/hydrogen/commit/7c077f5f21a595c0355873ac8073b716dfeaf4d0)]:
|
|
30
|
+
- @shopify/hydrogen@2025.8.0
|
|
31
|
+
|
|
32
|
+
## 2025.7.2
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies [[`6d22e45d29e89a7a8dddfe3c06459d89e4590483`](https://github.com/Shopify/hydrogen/commit/6d22e45d29e89a7a8dddfe3c06459d89e4590483), [`702f966c8e60eba7434363c9012f12bed92a8e4d`](https://github.com/Shopify/hydrogen/commit/702f966c8e60eba7434363c9012f12bed92a8e4d)]:
|
|
37
|
+
- @shopify/hydrogen@2025.7.2
|
|
38
|
+
|
|
39
|
+
## 2025.7.1
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- 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)
|
|
44
|
+
|
|
45
|
+
This release uses React Router's newly stabilized future flags (`v8_splitRouteModules`, `v8_middleware`) instead of their unstable counterparts
|
|
46
|
+
|
|
47
|
+
- 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)
|
|
48
|
+
|
|
49
|
+
```diff
|
|
50
|
+
// server.ts
|
|
51
|
+
|
|
52
|
+
+import * as serverBuild from 'virtual:react-router/server-build';
|
|
53
|
+
|
|
54
|
+
const handleRequest = createRequestHandler({
|
|
55
|
+
- build: await import('virtual:react-router/server-build'),
|
|
56
|
+
+ build: serverBuild,
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Updated ESLint config to allow `virtual:` imports:
|
|
60
|
+
|
|
61
|
+
```diff
|
|
62
|
+
// eslint.config.js
|
|
63
|
+
|
|
64
|
+
rules: {
|
|
65
|
+
+ 'import/no-unresolved': ['error', {ignore: ['^virtual:']}],
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
- 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)]:
|
|
69
|
+
- @shopify/hydrogen@2025.7.1
|
|
70
|
+
|
|
3
71
|
## 2025.7.0
|
|
4
72
|
|
|
5
73
|
### Major Changes
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type {Route} from './+types/account_.login';
|
|
2
2
|
|
|
3
3
|
export async function loader({request, context}: Route.LoaderArgs) {
|
|
4
|
+
const url = new URL(request.url);
|
|
5
|
+
const acrValues = url.searchParams.get('acr_values') || undefined;
|
|
6
|
+
const loginHint = url.searchParams.get('login_hint') || undefined;
|
|
7
|
+
const loginHintMode = url.searchParams.get('login_hint_mode') || undefined;
|
|
8
|
+
const locale = url.searchParams.get('locale') || undefined;
|
|
9
|
+
|
|
4
10
|
return context.customerAccount.login({
|
|
5
11
|
countryCode: context.storefront.i18n.country,
|
|
12
|
+
acrValues,
|
|
13
|
+
loginHint,
|
|
14
|
+
loginHintMode,
|
|
15
|
+
locale,
|
|
6
16
|
});
|
|
7
17
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "skeleton",
|
|
3
3
|
"private": true,
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "2025.7.
|
|
5
|
+
"version": "2025.7.3",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "shopify hydrogen build --codegen",
|
|
@@ -14,22 +14,22 @@
|
|
|
14
14
|
},
|
|
15
15
|
"prettier": "@shopify/prettier-config",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@shopify/hydrogen": "2025.7.
|
|
17
|
+
"@shopify/hydrogen": "2025.7.3",
|
|
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.
|
|
24
|
-
"react-router-dom": "7.
|
|
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.
|
|
32
|
-
"@react-router/fs-routes": "7.
|
|
31
|
+
"@react-router/dev": "7.12.0",
|
|
32
|
+
"@react-router/fs-routes": "7.12.0",
|
|
33
33
|
"@shopify/cli": "3.85.4",
|
|
34
34
|
"@shopify/hydrogen-codegen": "^0.3.3",
|
|
35
35
|
"@shopify/mini-oxygen": "^4.0.0",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"eslint-plugin-react": "^7.37.4",
|
|
52
52
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
53
53
|
"globals": "^15.14.0",
|
|
54
|
+
"graphql-config": "^5.0.3",
|
|
54
55
|
"prettier": "^3.4.2",
|
|
55
56
|
"typescript": "^5.9.2",
|
|
56
57
|
"vite": "^6.2.4",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
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
|
|
24
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
68
|
+
"Hydrogen requires React Router 7.12.0 for proper functionality.",
|
|
69
69
|
"",
|
|
70
70
|
"Version mismatches found:",
|
|
71
71
|
mismatchList,
|
package/oclif.manifest.json
CHANGED
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.
|
|
7
|
+
"version": "11.1.7",
|
|
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.
|
|
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.
|
|
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",
|