@sitecore-jss/sitecore-jss-nextjs 22.8.0-canary.7 → 22.8.0-canary.8

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.
@@ -25,12 +25,15 @@ class MiddlewareBase {
25
25
  */
26
26
  isPrefetch(req) {
27
27
  const isMobile = req.headers.get('sec-ch-ua-mobile') === '?1';
28
+ const userAgent = req.headers.get('user-agent') || '';
29
+ const isKnownPlatform = /iPhone|Mac|Linux|Windows|Android/i.test(userAgent);
30
+ const isKnownDevice = isMobile || isKnownPlatform;
28
31
  const purpose = req.headers.get('purpose');
29
32
  const nextRouterPrefetch = req.headers.get('Next-Router-Prefetch');
30
33
  const middlewarePrefetch = req.headers.get('x-middleware-prefetch');
31
- // Mobile requests often include 'prefetch' headers even during real navigations.
32
- // We rely on 'x-middleware-prefetch' to more accurately identify actual prefetches on mobile.
33
- if (isMobile && middlewarePrefetch === '1') {
34
+ // Some real navigations on different devices may incorrectly include 'prefetch' headers.
35
+ // To avoid skipping personalization in such cases, we treat 'x-middleware-prefetch' as a more reliable signal of true prefetch behavior.
36
+ if (isKnownDevice && middlewarePrefetch === '1') {
34
37
  return false;
35
38
  }
36
39
  // Otherwise, standard prefetch detection
@@ -22,12 +22,15 @@ export class MiddlewareBase {
22
22
  */
23
23
  isPrefetch(req) {
24
24
  const isMobile = req.headers.get('sec-ch-ua-mobile') === '?1';
25
+ const userAgent = req.headers.get('user-agent') || '';
26
+ const isKnownPlatform = /iPhone|Mac|Linux|Windows|Android/i.test(userAgent);
27
+ const isKnownDevice = isMobile || isKnownPlatform;
25
28
  const purpose = req.headers.get('purpose');
26
29
  const nextRouterPrefetch = req.headers.get('Next-Router-Prefetch');
27
30
  const middlewarePrefetch = req.headers.get('x-middleware-prefetch');
28
- // Mobile requests often include 'prefetch' headers even during real navigations.
29
- // We rely on 'x-middleware-prefetch' to more accurately identify actual prefetches on mobile.
30
- if (isMobile && middlewarePrefetch === '1') {
31
+ // Some real navigations on different devices may incorrectly include 'prefetch' headers.
32
+ // To avoid skipping personalization in such cases, we treat 'x-middleware-prefetch' as a more reliable signal of true prefetch behavior.
33
+ if (isKnownDevice && middlewarePrefetch === '1') {
31
34
  return false;
32
35
  }
33
36
  // Otherwise, standard prefetch detection
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.8.0-canary.7",
3
+ "version": "22.8.0-canary.8",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -72,16 +72,16 @@
72
72
  "react-dom": "^19.1.0"
73
73
  },
74
74
  "dependencies": {
75
- "@sitecore-jss/sitecore-jss": "22.8.0-canary.7",
76
- "@sitecore-jss/sitecore-jss-dev-tools": "22.8.0-canary.7",
77
- "@sitecore-jss/sitecore-jss-react": "22.8.0-canary.7",
75
+ "@sitecore-jss/sitecore-jss": "22.8.0-canary.8",
76
+ "@sitecore-jss/sitecore-jss-dev-tools": "22.8.0-canary.8",
77
+ "@sitecore-jss/sitecore-jss-react": "22.8.0-canary.8",
78
78
  "@vercel/kv": "^0.2.1",
79
79
  "regex-parser": "^2.2.11",
80
80
  "sync-disk-cache": "^2.1.0"
81
81
  },
82
82
  "description": "",
83
83
  "types": "types/index.d.ts",
84
- "gitHead": "06b8c1b7aff8531a82c24e23a79414229e005d20",
84
+ "gitHead": "f7a631d93918998cbdb4a61e6cf07e7668adc3b6",
85
85
  "files": [
86
86
  "dist",
87
87
  "types",