@sitecore-jss/sitecore-jss-nextjs 22.6.0-canary.20 → 22.6.0-canary.22

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.
@@ -69,17 +69,23 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
69
69
  const language = this.getLanguage(req);
70
70
  const modifyRedirects = structuredClone(redirects);
71
71
  let matchedQueryString;
72
- const localePath = `/${locale}${normalizedPath}`.toLowerCase();
72
+ const localePath = `/${locale.toLowerCase()}${normalizedPath}`;
73
73
  return modifyRedirects.length
74
74
  ? modifyRedirects.find((redirect) => {
75
75
  // process static URL (non-regex) rules
76
76
  if ((0, utils_1.isRegexOrUrl)(redirect.pattern) === 'url') {
77
- const [patternPath, patternQS] = redirect.pattern.endsWith('/')
78
- ? redirect.pattern
79
- .toLowerCase()
80
- .slice(0, -1)
81
- .split('?')
82
- : redirect.pattern.toLowerCase().split('?');
77
+ const urlArray = redirect.pattern.endsWith('/')
78
+ ? redirect.pattern.slice(0, -1).split('?')
79
+ : redirect.pattern.split('?');
80
+ const patternQS = urlArray[1];
81
+ let patternPath = urlArray[0];
82
+ // nextjs routes are case-sensitive, but locales should be compared case-insensitively
83
+ const patternParts = patternPath.split('/');
84
+ const maybeLocale = patternParts[1].toLowerCase();
85
+ // case insensitive lookup of locales
86
+ if (new RegExp(this.locales.join('|'), 'i').test(maybeLocale)) {
87
+ patternPath = patternPath.replace(`/${patternParts[1]}`, `/${maybeLocale}`);
88
+ }
83
89
  return ((patternPath === localePath || patternPath === normalizedPath) &&
84
90
  (!patternQS ||
85
91
  (0, utils_1.areURLSearchParamsEqual)(new URLSearchParams(patternQS), new URLSearchParams(incomingQS))));
@@ -63,17 +63,23 @@ export class RedirectsMiddleware extends MiddlewareBase {
63
63
  const language = this.getLanguage(req);
64
64
  const modifyRedirects = structuredClone(redirects);
65
65
  let matchedQueryString;
66
- const localePath = `/${locale}${normalizedPath}`.toLowerCase();
66
+ const localePath = `/${locale.toLowerCase()}${normalizedPath}`;
67
67
  return modifyRedirects.length
68
68
  ? modifyRedirects.find((redirect) => {
69
69
  // process static URL (non-regex) rules
70
70
  if (isRegexOrUrl(redirect.pattern) === 'url') {
71
- const [patternPath, patternQS] = redirect.pattern.endsWith('/')
72
- ? redirect.pattern
73
- .toLowerCase()
74
- .slice(0, -1)
75
- .split('?')
76
- : redirect.pattern.toLowerCase().split('?');
71
+ const urlArray = redirect.pattern.endsWith('/')
72
+ ? redirect.pattern.slice(0, -1).split('?')
73
+ : redirect.pattern.split('?');
74
+ const patternQS = urlArray[1];
75
+ let patternPath = urlArray[0];
76
+ // nextjs routes are case-sensitive, but locales should be compared case-insensitively
77
+ const patternParts = patternPath.split('/');
78
+ const maybeLocale = patternParts[1].toLowerCase();
79
+ // case insensitive lookup of locales
80
+ if (new RegExp(this.locales.join('|'), 'i').test(maybeLocale)) {
81
+ patternPath = patternPath.replace(`/${patternParts[1]}`, `/${maybeLocale}`);
82
+ }
77
83
  return ((patternPath === localePath || patternPath === normalizedPath) &&
78
84
  (!patternQS ||
79
85
  areURLSearchParamsEqual(new URLSearchParams(patternQS), new URLSearchParams(incomingQS))));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.6.0-canary.20",
3
+ "version": "22.6.0-canary.22",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -74,9 +74,9 @@
74
74
  "react-dom": "^18.2.0"
75
75
  },
76
76
  "dependencies": {
77
- "@sitecore-jss/sitecore-jss": "22.6.0-canary.20",
78
- "@sitecore-jss/sitecore-jss-dev-tools": "22.6.0-canary.20",
79
- "@sitecore-jss/sitecore-jss-react": "22.6.0-canary.20",
77
+ "@sitecore-jss/sitecore-jss": "22.6.0-canary.22",
78
+ "@sitecore-jss/sitecore-jss-dev-tools": "22.6.0-canary.22",
79
+ "@sitecore-jss/sitecore-jss-react": "22.6.0-canary.22",
80
80
  "@vercel/kv": "^0.2.1",
81
81
  "prop-types": "^15.8.1",
82
82
  "regex-parser": "^2.2.11",
@@ -84,7 +84,7 @@
84
84
  },
85
85
  "description": "",
86
86
  "types": "types/index.d.ts",
87
- "gitHead": "4e59803c65beb6bab91cc63da0f87635ecc908a7",
87
+ "gitHead": "7f6a3e9d0e767dd5e879da1b8cdc4a8ea1d5c68c",
88
88
  "files": [
89
89
  "dist",
90
90
  "types",