@sitecore-jss/sitecore-jss-nextjs 22.2.0-canary.41 → 22.2.0-canary.42
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.
|
@@ -13,10 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.RedirectsMiddleware = void 0;
|
|
16
|
-
const regex_parser_1 = __importDefault(require("regex-parser"));
|
|
17
|
-
const server_1 = require("next/server");
|
|
18
|
-
const site_1 = require("@sitecore-jss/sitecore-jss/site");
|
|
19
16
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
17
|
+
const site_1 = require("@sitecore-jss/sitecore-jss/site");
|
|
18
|
+
const server_1 = require("next/server");
|
|
19
|
+
const regex_parser_1 = __importDefault(require("regex-parser"));
|
|
20
20
|
const middleware_1 = require("./middleware");
|
|
21
21
|
const REGEXP_CONTEXT_SITE_LANG = new RegExp(/\$siteLang/, 'i');
|
|
22
22
|
const REGEXP_ABSOLUTE_URL = new RegExp('^(?:[a-z]+:)?//', 'i');
|
|
@@ -96,10 +96,12 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
|
|
|
96
96
|
const redirectUrl = decodeURIComponent(url.href);
|
|
97
97
|
/** return Response redirect with http code of redirect type **/
|
|
98
98
|
switch (existsRedirect.redirectType) {
|
|
99
|
-
case site_1.REDIRECT_TYPE_301:
|
|
100
|
-
return
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
case site_1.REDIRECT_TYPE_301: {
|
|
100
|
+
return this.createRedirectResponse(redirectUrl, res, 301, 'Moved Permanently');
|
|
101
|
+
}
|
|
102
|
+
case site_1.REDIRECT_TYPE_302: {
|
|
103
|
+
return this.createRedirectResponse(redirectUrl, res, 302, 'Found');
|
|
104
|
+
}
|
|
103
105
|
case site_1.REDIRECT_TYPE_SERVER_TRANSFER: {
|
|
104
106
|
return this.rewrite(redirectUrl, req, res || server_1.NextResponse.next());
|
|
105
107
|
}
|
|
@@ -211,5 +213,21 @@ class RedirectsMiddleware extends middleware_1.MiddlewareBase {
|
|
|
211
213
|
}
|
|
212
214
|
return new URL(`${url.pathname}`, url.origin);
|
|
213
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Helper function to create a redirect response and remove the x-middleware-next header.
|
|
218
|
+
* @param {string} url The URL to redirect to.
|
|
219
|
+
* @param {Response} res The response object.
|
|
220
|
+
* @param {number} status The HTTP status code of the redirect.
|
|
221
|
+
* @param {string} statusText The status text of the redirect.
|
|
222
|
+
* @returns {NextResponse<unknown>} The redirect response.
|
|
223
|
+
*/
|
|
224
|
+
createRedirectResponse(url, res, status, statusText) {
|
|
225
|
+
const redirect = server_1.NextResponse.redirect(url, Object.assign(Object.assign({}, (res || {})), { status,
|
|
226
|
+
statusText, headers: res === null || res === void 0 ? void 0 : res.headers }));
|
|
227
|
+
if (res === null || res === void 0 ? void 0 : res.headers) {
|
|
228
|
+
redirect.headers.delete('x-middleware-next');
|
|
229
|
+
}
|
|
230
|
+
return redirect;
|
|
231
|
+
}
|
|
214
232
|
}
|
|
215
233
|
exports.RedirectsMiddleware = RedirectsMiddleware;
|
|
@@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import regexParser from 'regex-parser';
|
|
11
|
-
import { NextResponse } from 'next/server';
|
|
12
|
-
import { GraphQLRedirectsService, REDIRECT_TYPE_301, REDIRECT_TYPE_302, REDIRECT_TYPE_SERVER_TRANSFER, } from '@sitecore-jss/sitecore-jss/site';
|
|
13
10
|
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
11
|
+
import { GraphQLRedirectsService, REDIRECT_TYPE_301, REDIRECT_TYPE_302, REDIRECT_TYPE_SERVER_TRANSFER, } from '@sitecore-jss/sitecore-jss/site';
|
|
12
|
+
import { NextResponse } from 'next/server';
|
|
13
|
+
import regexParser from 'regex-parser';
|
|
14
14
|
import { MiddlewareBase } from './middleware';
|
|
15
15
|
const REGEXP_CONTEXT_SITE_LANG = new RegExp(/\$siteLang/, 'i');
|
|
16
16
|
const REGEXP_ABSOLUTE_URL = new RegExp('^(?:[a-z]+:)?//', 'i');
|
|
@@ -90,10 +90,12 @@ export class RedirectsMiddleware extends MiddlewareBase {
|
|
|
90
90
|
const redirectUrl = decodeURIComponent(url.href);
|
|
91
91
|
/** return Response redirect with http code of redirect type **/
|
|
92
92
|
switch (existsRedirect.redirectType) {
|
|
93
|
-
case REDIRECT_TYPE_301:
|
|
94
|
-
return
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
case REDIRECT_TYPE_301: {
|
|
94
|
+
return this.createRedirectResponse(redirectUrl, res, 301, 'Moved Permanently');
|
|
95
|
+
}
|
|
96
|
+
case REDIRECT_TYPE_302: {
|
|
97
|
+
return this.createRedirectResponse(redirectUrl, res, 302, 'Found');
|
|
98
|
+
}
|
|
97
99
|
case REDIRECT_TYPE_SERVER_TRANSFER: {
|
|
98
100
|
return this.rewrite(redirectUrl, req, res || NextResponse.next());
|
|
99
101
|
}
|
|
@@ -205,4 +207,20 @@ export class RedirectsMiddleware extends MiddlewareBase {
|
|
|
205
207
|
}
|
|
206
208
|
return new URL(`${url.pathname}`, url.origin);
|
|
207
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Helper function to create a redirect response and remove the x-middleware-next header.
|
|
212
|
+
* @param {string} url The URL to redirect to.
|
|
213
|
+
* @param {Response} res The response object.
|
|
214
|
+
* @param {number} status The HTTP status code of the redirect.
|
|
215
|
+
* @param {string} statusText The status text of the redirect.
|
|
216
|
+
* @returns {NextResponse<unknown>} The redirect response.
|
|
217
|
+
*/
|
|
218
|
+
createRedirectResponse(url, res, status, statusText) {
|
|
219
|
+
const redirect = NextResponse.redirect(url, Object.assign(Object.assign({}, (res || {})), { status,
|
|
220
|
+
statusText, headers: res === null || res === void 0 ? void 0 : res.headers }));
|
|
221
|
+
if (res === null || res === void 0 ? void 0 : res.headers) {
|
|
222
|
+
redirect.headers.delete('x-middleware-next');
|
|
223
|
+
}
|
|
224
|
+
return redirect;
|
|
225
|
+
}
|
|
208
226
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-jss/sitecore-jss-nextjs",
|
|
3
|
-
"version": "22.2.0-canary.
|
|
3
|
+
"version": "22.2.0-canary.42",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"react-dom": "^18.2.0"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@sitecore-jss/sitecore-jss": "^22.2.0-canary.
|
|
76
|
-
"@sitecore-jss/sitecore-jss-dev-tools": "^22.2.0-canary.
|
|
77
|
-
"@sitecore-jss/sitecore-jss-react": "^22.2.0-canary.
|
|
75
|
+
"@sitecore-jss/sitecore-jss": "^22.2.0-canary.42",
|
|
76
|
+
"@sitecore-jss/sitecore-jss-dev-tools": "^22.2.0-canary.42",
|
|
77
|
+
"@sitecore-jss/sitecore-jss-react": "^22.2.0-canary.42",
|
|
78
78
|
"@vercel/kv": "^0.2.1",
|
|
79
79
|
"prop-types": "^15.8.1",
|
|
80
80
|
"regex-parser": "^2.2.11",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
},
|
|
83
83
|
"description": "",
|
|
84
84
|
"types": "types/index.d.ts",
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "93b6c7552e5e8913be0d37ddd08a802a264edff3",
|
|
86
86
|
"files": [
|
|
87
87
|
"dist",
|
|
88
88
|
"types",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NextResponse, NextRequest } from 'next/server';
|
|
2
1
|
import { GraphQLRedirectsServiceConfig } from '@sitecore-jss/sitecore-jss/site';
|
|
2
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
3
3
|
import { MiddlewareBase, MiddlewareBaseConfig } from './middleware';
|
|
4
4
|
/**
|
|
5
5
|
* extended RedirectsMiddlewareConfig config type for RedirectsMiddleware
|
|
@@ -45,4 +45,13 @@ export declare class RedirectsMiddleware extends MiddlewareBase {
|
|
|
45
45
|
* @returns {string} normalize url
|
|
46
46
|
*/
|
|
47
47
|
private normalizeUrl;
|
|
48
|
+
/**
|
|
49
|
+
* Helper function to create a redirect response and remove the x-middleware-next header.
|
|
50
|
+
* @param {string} url The URL to redirect to.
|
|
51
|
+
* @param {Response} res The response object.
|
|
52
|
+
* @param {number} status The HTTP status code of the redirect.
|
|
53
|
+
* @param {string} statusText The status text of the redirect.
|
|
54
|
+
* @returns {NextResponse<unknown>} The redirect response.
|
|
55
|
+
*/
|
|
56
|
+
private createRedirectResponse;
|
|
48
57
|
}
|