@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 +0 -3
- package/dist/cjs/middleware/middleware.js +1 -2
- package/dist/cjs/middleware/multisite-middleware.js +4 -0
- package/dist/cjs/middleware/personalize-middleware.js +4 -0
- package/dist/cjs/middleware/redirects-middleware.js +10 -9
- package/dist/cjs/utils/utils.js +3 -0
- package/dist/esm/middleware/middleware.js +1 -2
- package/dist/esm/middleware/multisite-middleware.js +4 -0
- package/dist/esm/middleware/personalize-middleware.js +4 -0
- package/dist/esm/middleware/redirects-middleware.js +10 -9
- package/dist/esm/utils/utils.js +3 -0
- package/package.json +5 -5
- package/types/middleware/multisite-middleware.d.ts +1 -0
- package/types/middleware/personalize-middleware.d.ts +1 -0
- package/types/utils/utils.d.ts +1 -0
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.
|
|
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))));
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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));
|
package/dist/cjs/utils/utils.js
CHANGED
|
@@ -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.
|
|
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))));
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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));
|
package/dist/esm/utils/utils.js
CHANGED
|
@@ -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.
|
|
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.
|
|
74
|
-
"@sitecore-jss/sitecore-jss-dev-tools": "^21.3.
|
|
75
|
-
"@sitecore-jss/sitecore-jss-react": "^21.3.
|
|
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": "
|
|
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
|
}
|
package/types/utils/utils.d.ts
CHANGED
|
@@ -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
|
/**
|