@sitecore-jss/sitecore-jss-nextjs 21.3.0-canary.17 → 21.3.0-canary.18

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.
@@ -61,21 +61,22 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
61
61
  existsRedirect.target = existsRedirect.target.replace(REGEXP_CONTEXT_SITE_LANG, site.language);
62
62
  }
63
63
  const url = req.nextUrl.clone();
64
- const parseURL = new URL(url.href);
65
64
  const absoluteUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');
66
65
  if (absoluteUrlRegex.test(existsRedirect.target)) {
67
66
  url.href = existsRedirect.target;
68
67
  url.locale = req.nextUrl.locale;
69
68
  }
70
69
  else {
70
+ url.search = existsRedirect.isQueryStringPreserved ? url.search : '';
71
71
  const urlFirstPart = existsRedirect.target.split('/')[1];
72
72
  if (this.locales.includes(urlFirstPart)) {
73
73
  url.locale = urlFirstPart;
74
74
  existsRedirect.target = existsRedirect.target.replace(`/${urlFirstPart}`, '');
75
75
  }
76
76
  url.pathname = existsRedirect.target;
77
- url.pathname = url.pathname.replace((0, regex_parser_1.default)(existsRedirect.pattern), existsRedirect.target);
78
- url.href = `${parseURL.origin}/${url.pathname}${existsRedirect.isQueryStringPreserved ? '?' + url.search : ''}`;
77
+ url.pathname = url.pathname
78
+ .replace((0, regex_parser_1.default)(existsRedirect.pattern), existsRedirect.target)
79
+ .replace(/^\/\//, '/');
79
80
  }
80
81
  const redirectUrl = decodeURIComponent(url.href);
81
82
  /** return Response redirect with http code of redirect type **/
@@ -137,7 +138,7 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
137
138
  const targetQS = req.nextUrl.search || '';
138
139
  return redirects.length
139
140
  ? redirects.find((redirect) => {
140
- const pattern = `/^/${redirect.pattern
141
+ const pattern = `/^\/${redirect.pattern
141
142
  .replace(/^\/|\/$/g, '')
142
143
  .replace(/^\^|\$$/g, '')}$/gi`;
143
144
  return (((0, regex_parser_1.default)(pattern).test(tragetURL) ||
@@ -55,21 +55,22 @@ export class RedirectsMiddleware extends MiddlewareBase {
55
55
  existsRedirect.target = existsRedirect.target.replace(REGEXP_CONTEXT_SITE_LANG, site.language);
56
56
  }
57
57
  const url = req.nextUrl.clone();
58
- const parseURL = new URL(url.href);
59
58
  const absoluteUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');
60
59
  if (absoluteUrlRegex.test(existsRedirect.target)) {
61
60
  url.href = existsRedirect.target;
62
61
  url.locale = req.nextUrl.locale;
63
62
  }
64
63
  else {
64
+ url.search = existsRedirect.isQueryStringPreserved ? url.search : '';
65
65
  const urlFirstPart = existsRedirect.target.split('/')[1];
66
66
  if (this.locales.includes(urlFirstPart)) {
67
67
  url.locale = urlFirstPart;
68
68
  existsRedirect.target = existsRedirect.target.replace(`/${urlFirstPart}`, '');
69
69
  }
70
70
  url.pathname = existsRedirect.target;
71
- url.pathname = url.pathname.replace(regexParser(existsRedirect.pattern), existsRedirect.target);
72
- url.href = `${parseURL.origin}/${url.pathname}${existsRedirect.isQueryStringPreserved ? '?' + url.search : ''}`;
71
+ url.pathname = url.pathname
72
+ .replace(regexParser(existsRedirect.pattern), existsRedirect.target)
73
+ .replace(/^\/\//, '/');
73
74
  }
74
75
  const redirectUrl = decodeURIComponent(url.href);
75
76
  /** return Response redirect with http code of redirect type **/
@@ -131,7 +132,7 @@ export class RedirectsMiddleware extends MiddlewareBase {
131
132
  const targetQS = req.nextUrl.search || '';
132
133
  return redirects.length
133
134
  ? redirects.find((redirect) => {
134
- const pattern = `/^/${redirect.pattern
135
+ const pattern = `/^\/${redirect.pattern
135
136
  .replace(/^\/|\/$/g, '')
136
137
  .replace(/^\^|\$$/g, '')}$/gi`;
137
138
  return ((regexParser(pattern).test(tragetURL) ||
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "21.3.0-canary.17",
3
+ "version": "21.3.0-canary.18",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -70,9 +70,9 @@
70
70
  "react-dom": "^18.2.0"
71
71
  },
72
72
  "dependencies": {
73
- "@sitecore-jss/sitecore-jss": "^21.3.0-canary.17",
74
- "@sitecore-jss/sitecore-jss-dev-tools": "^21.3.0-canary.17",
75
- "@sitecore-jss/sitecore-jss-react": "^21.3.0-canary.17",
73
+ "@sitecore-jss/sitecore-jss": "^21.3.0-canary.18",
74
+ "@sitecore-jss/sitecore-jss-dev-tools": "^21.3.0-canary.18",
75
+ "@sitecore-jss/sitecore-jss-react": "^21.3.0-canary.18",
76
76
  "@vercel/kv": "^0.2.1",
77
77
  "node-html-parser": "^6.1.4",
78
78
  "prop-types": "^15.8.1",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  "description": "",
83
83
  "types": "types/index.d.ts",
84
- "gitHead": "f2fc3d9b615dc300af7bf045ec7015f333bcb6cb",
84
+ "gitHead": "cb29facddb69f0d261c6d7da93959fd05f23bc01",
85
85
  "files": [
86
86
  "dist",
87
87
  "types",