@sitecore-jss/sitecore-jss-nextjs 21.3.0-canary.9 → 21.3.1-canary.1

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/README.md CHANGED
@@ -2,9 +2,6 @@
2
2
 
3
3
  This module is provided as a part of Sitecore JavaScript Rendering SDK. It contains Next.js components and integration for JSS.
4
4
 
5
- <!---
6
- @TODO: Update to next version docs before release
7
- -->
8
5
  [Documentation (Experience Platform)](https://doc.sitecore.com/xp/en/developers/hd/21/sitecore-headless-development/sitecore-javascript-rendering-sdk--jss--for-next-js.html)
9
6
 
10
7
  [Documentation (XM Cloud)](https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-javascript-rendering-sdk--jss--for-next-js.html)
@@ -18,8 +18,7 @@ class MiddlewareBase {
18
18
  }
19
19
  excludeRoute(pathname) {
20
20
  var _a, _b;
21
- return (pathname.includes('.') || // Ignore files
22
- pathname.startsWith('/api/') || // Ignore Next.js API calls
21
+ return (pathname.startsWith('/api/') || // Ignore Next.js API calls
23
22
  pathname.startsWith('/sitecore/') || // Ignore Sitecore API calls
24
23
  pathname.startsWith('/_next') || // Ignore next service calls
25
24
  (((_a = this.config) === null || _a === void 0 ? void 0 : _a.excludeRoute) && ((_b = this.config) === null || _b === void 0 ? void 0 : _b.excludeRoute(pathname))));
@@ -83,5 +83,9 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
83
83
  }
84
84
  });
85
85
  }
86
+ excludeRoute(pathname) {
87
+ // ignore files
88
+ return pathname.includes('.') || super.excludeRoute(pathname);
89
+ }
86
90
  }
87
91
  exports.MultisiteMiddleware = MultisiteMiddleware;
@@ -158,5 +158,9 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
158
158
  },
159
159
  };
160
160
  }
161
+ excludeRoute(pathname) {
162
+ // ignore files
163
+ return pathname.includes('.') || super.excludeRoute(pathname);
164
+ }
161
165
  }
162
166
  exports.PersonalizeMiddleware = PersonalizeMiddleware;
@@ -71,11 +71,11 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
71
71
  const urlFirstPart = existsRedirect.target.split('/')[1];
72
72
  if (this.locales.includes(urlFirstPart)) {
73
73
  url.locale = urlFirstPart;
74
- url.pathname = existsRedirect.target.replace(`/${urlFirstPart}`, '');
75
- }
76
- else {
77
- url.pathname = existsRedirect.target;
74
+ existsRedirect.target = existsRedirect.target.replace(`/${urlFirstPart}`, '');
78
75
  }
76
+ url.pathname = url.pathname
77
+ .replace((0, regex_parser_1.default)(existsRedirect.pattern), existsRedirect.target)
78
+ .replace(/^\/\//, '/');
79
79
  }
80
80
  const redirectUrl = decodeURIComponent(url.href);
81
81
  /** return Response redirect with http code of redirect type **/
@@ -137,13 +137,14 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
137
137
  const targetQS = req.nextUrl.search || '';
138
138
  return redirects.length
139
139
  ? redirects.find((redirect) => {
140
- const pattern = `/^/${redirect.pattern
140
+ redirect.pattern = `/^\/${redirect.pattern
141
141
  .replace(/^\/|\/$/g, '')
142
+ .replace(/^\^\/|\/\$$/g, '')
142
143
  .replace(/^\^|\$$/g, '')}$/gi`;
143
- return (((0, regex_parser_1.default)(pattern).test(tragetURL) ||
144
- (0, regex_parser_1.default)(pattern).test(`${tragetURL}${targetQS}`) ||
145
- (0, regex_parser_1.default)(pattern).test(`/${req.nextUrl.locale}${tragetURL}`) ||
146
- (0, regex_parser_1.default)(pattern).test(`/${req.nextUrl.locale}${tragetURL}${targetQS}`)) &&
144
+ return (((0, regex_parser_1.default)(redirect.pattern).test(tragetURL) ||
145
+ (0, regex_parser_1.default)(redirect.pattern).test(`${tragetURL}${targetQS}`) ||
146
+ (0, regex_parser_1.default)(redirect.pattern).test(`/${req.nextUrl.locale}${tragetURL}`) ||
147
+ (0, regex_parser_1.default)(redirect.pattern).test(`/${req.nextUrl.locale}${tragetURL}${targetQS}`)) &&
147
148
  (redirect.locale
148
149
  ? redirect.locale.toLowerCase() === req.nextUrl.locale.toLowerCase()
149
150
  : true));
@@ -12,8 +12,11 @@ const utils_1 = require("@sitecore-jss/sitecore-jss/utils");
12
12
  * This is set to http://localhost:3000 by default.
13
13
  * VERCEL_URL is provided by Vercel in case if we are in Preview deployment (deployment based on the custom branch),
14
14
  * preview deployment has unique url, we don't know exact url.
15
+ * Similarly, DEPLOY_URL is provided by Netlify and would give us the deploy URL
15
16
  */
16
17
  const getPublicUrl = () => {
18
+ if (process.env.NETLIFY && process.env.DEPLOY_URL)
19
+ return process.env.DEPLOY_URL;
17
20
  if (process.env.VERCEL_URL)
18
21
  return `https://${process.env.VERCEL_URL}`;
19
22
  let url = process.env.PUBLIC_URL;
@@ -15,8 +15,7 @@ export class MiddlewareBase {
15
15
  }
16
16
  excludeRoute(pathname) {
17
17
  var _a, _b;
18
- return (pathname.includes('.') || // Ignore files
19
- pathname.startsWith('/api/') || // Ignore Next.js API calls
18
+ return (pathname.startsWith('/api/') || // Ignore Next.js API calls
20
19
  pathname.startsWith('/sitecore/') || // Ignore Sitecore API calls
21
20
  pathname.startsWith('/_next') || // Ignore next service calls
22
21
  (((_a = this.config) === null || _a === void 0 ? void 0 : _a.excludeRoute) && ((_b = this.config) === null || _b === void 0 ? void 0 : _b.excludeRoute(pathname))));
@@ -80,4 +80,8 @@ export class MultisiteMiddleware extends MiddlewareBase {
80
80
  }
81
81
  });
82
82
  }
83
+ excludeRoute(pathname) {
84
+ // ignore files
85
+ return pathname.includes('.') || super.excludeRoute(pathname);
86
+ }
83
87
  }
@@ -155,4 +155,8 @@ export class PersonalizeMiddleware extends MiddlewareBase {
155
155
  },
156
156
  };
157
157
  }
158
+ excludeRoute(pathname) {
159
+ // ignore files
160
+ return pathname.includes('.') || super.excludeRoute(pathname);
161
+ }
158
162
  }
@@ -65,11 +65,11 @@ export class RedirectsMiddleware extends MiddlewareBase {
65
65
  const urlFirstPart = existsRedirect.target.split('/')[1];
66
66
  if (this.locales.includes(urlFirstPart)) {
67
67
  url.locale = urlFirstPart;
68
- url.pathname = existsRedirect.target.replace(`/${urlFirstPart}`, '');
69
- }
70
- else {
71
- url.pathname = existsRedirect.target;
68
+ existsRedirect.target = existsRedirect.target.replace(`/${urlFirstPart}`, '');
72
69
  }
70
+ url.pathname = url.pathname
71
+ .replace(regexParser(existsRedirect.pattern), existsRedirect.target)
72
+ .replace(/^\/\//, '/');
73
73
  }
74
74
  const redirectUrl = decodeURIComponent(url.href);
75
75
  /** return Response redirect with http code of redirect type **/
@@ -131,13 +131,14 @@ export class RedirectsMiddleware extends MiddlewareBase {
131
131
  const targetQS = req.nextUrl.search || '';
132
132
  return redirects.length
133
133
  ? redirects.find((redirect) => {
134
- const pattern = `/^/${redirect.pattern
134
+ redirect.pattern = `/^\/${redirect.pattern
135
135
  .replace(/^\/|\/$/g, '')
136
+ .replace(/^\^\/|\/\$$/g, '')
136
137
  .replace(/^\^|\$$/g, '')}$/gi`;
137
- return ((regexParser(pattern).test(tragetURL) ||
138
- regexParser(pattern).test(`${tragetURL}${targetQS}`) ||
139
- regexParser(pattern).test(`/${req.nextUrl.locale}${tragetURL}`) ||
140
- regexParser(pattern).test(`/${req.nextUrl.locale}${tragetURL}${targetQS}`)) &&
138
+ return ((regexParser(redirect.pattern).test(tragetURL) ||
139
+ regexParser(redirect.pattern).test(`${tragetURL}${targetQS}`) ||
140
+ regexParser(redirect.pattern).test(`/${req.nextUrl.locale}${tragetURL}`) ||
141
+ regexParser(redirect.pattern).test(`/${req.nextUrl.locale}${tragetURL}${targetQS}`)) &&
141
142
  (redirect.locale
142
143
  ? redirect.locale.toLowerCase() === req.nextUrl.locale.toLowerCase()
143
144
  : true));
@@ -6,8 +6,11 @@ import { isEditorActive, resetEditorChromes } from '@sitecore-jss/sitecore-jss/u
6
6
  * This is set to http://localhost:3000 by default.
7
7
  * VERCEL_URL is provided by Vercel in case if we are in Preview deployment (deployment based on the custom branch),
8
8
  * preview deployment has unique url, we don't know exact url.
9
+ * Similarly, DEPLOY_URL is provided by Netlify and would give us the deploy URL
9
10
  */
10
11
  export const getPublicUrl = () => {
12
+ if (process.env.NETLIFY && process.env.DEPLOY_URL)
13
+ return process.env.DEPLOY_URL;
11
14
  if (process.env.VERCEL_URL)
12
15
  return `https://${process.env.VERCEL_URL}`;
13
16
  let url = process.env.PUBLIC_URL;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "21.3.0-canary.9",
3
+ "version": "21.3.1-canary.1",
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.9",
74
- "@sitecore-jss/sitecore-jss-dev-tools": "^21.3.0-canary.9",
75
- "@sitecore-jss/sitecore-jss-react": "^21.3.0-canary.9",
73
+ "@sitecore-jss/sitecore-jss": "^21.3.1-canary.1",
74
+ "@sitecore-jss/sitecore-jss-dev-tools": "^21.3.1-canary.1",
75
+ "@sitecore-jss/sitecore-jss-react": "^21.3.1-canary.1",
76
76
  "node-html-parser": "^6.1.4",
77
77
  "prop-types": "^15.8.1",
78
78
  "regex-parser": "^2.2.11",
@@ -80,7 +80,7 @@
80
80
  },
81
81
  "description": "",
82
82
  "types": "types/index.d.ts",
83
- "gitHead": "142054b1019df1816dd3251f8b0149f65ee20fe6",
83
+ "gitHead": "974a723f1e614b859a150b6c8dcd2b9ff68c3e7c",
84
84
  "files": [
85
85
  "dist",
86
86
  "types",
@@ -20,5 +20,6 @@ export declare class MultisiteMiddleware extends MiddlewareBase {
20
20
  * @returns middleware handler
21
21
  */
22
22
  getHandler(): (req: NextRequest, res?: NextResponse) => Promise<NextResponse>;
23
+ protected excludeRoute(pathname: string): boolean | undefined;
23
24
  private handler;
24
25
  }
@@ -39,5 +39,6 @@ export declare class PersonalizeMiddleware extends MiddlewareBase {
39
39
  protected getBrowserId(req: NextRequest): string | undefined;
40
40
  protected setBrowserId(res: NextResponse, browserId: string): void;
41
41
  protected getExperienceParams(req: NextRequest): ExperienceParams;
42
+ protected excludeRoute(pathname: string): boolean | undefined;
42
43
  private handler;
43
44
  }
@@ -4,6 +4,7 @@
4
4
  * This is set to http://localhost:3000 by default.
5
5
  * VERCEL_URL is provided by Vercel in case if we are in Preview deployment (deployment based on the custom branch),
6
6
  * preview deployment has unique url, we don't know exact url.
7
+ * Similarly, DEPLOY_URL is provided by Netlify and would give us the deploy URL
7
8
  */
8
9
  export declare const getPublicUrl: () => string;
9
10
  /**