@sitecore-jss/sitecore-jss-nextjs 22.2.0-canary.37 → 22.2.0-canary.39
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/dist/cjs/editing/constants.js +1 -6
- package/dist/cjs/editing/editing-config-middleware.js +3 -3
- package/dist/cjs/editing/editing-data-middleware.js +3 -3
- package/dist/cjs/editing/editing-data-service.js +2 -2
- package/dist/cjs/editing/editing-render-middleware.js +5 -4
- package/dist/cjs/editing/feaas-render-middleware.js +3 -3
- package/dist/esm/editing/constants.js +0 -5
- package/dist/esm/editing/editing-config-middleware.js +1 -1
- package/dist/esm/editing/editing-data-middleware.js +1 -1
- package/dist/esm/editing/editing-data-service.js +1 -1
- package/dist/esm/editing/editing-render-middleware.js +2 -1
- package/dist/esm/editing/feaas-render-middleware.js +1 -1
- package/package.json +5 -5
- package/types/editing/constants.d.ts +0 -5
- package/types/editing/editing-render-middleware.d.ts +3 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.QUERY_PARAM_EDITING_SECRET = 'secret';
|
|
3
|
+
exports.EDITING_PASS_THROUGH_HEADERS = exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = void 0;
|
|
5
4
|
exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
|
|
6
5
|
exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
|
|
7
6
|
/**
|
|
@@ -9,7 +8,3 @@ exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
|
|
|
9
8
|
* Note these are in lowercase format to match expected `IncomingHttpHeaders`.
|
|
10
9
|
*/
|
|
11
10
|
exports.EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
|
|
12
|
-
/**
|
|
13
|
-
* Default allowed origins for editing requests. This is used to enforce CORS, CSP headers.
|
|
14
|
-
*/
|
|
15
|
-
exports.EDITING_ALLOWED_ORIGINS = ['https://pages.sitecorecloud.io'];
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.EditingConfigMiddleware = void 0;
|
|
13
|
-
const
|
|
13
|
+
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
14
14
|
const utils_1 = require("../utils/utils");
|
|
15
15
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
16
16
|
const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
|
|
@@ -26,8 +26,8 @@ class EditingConfigMiddleware {
|
|
|
26
26
|
constructor(config) {
|
|
27
27
|
this.config = config;
|
|
28
28
|
this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const secret = _req.query[
|
|
30
|
-
if (!(0, utils_2.enforceCors)(_req, res,
|
|
29
|
+
const secret = _req.query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
30
|
+
if (!(0, utils_2.enforceCors)(_req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
31
31
|
sitecore_jss_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
32
32
|
return res.status(401).json({ message: 'Invalid origin' });
|
|
33
33
|
}
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.EditingDataMiddleware = void 0;
|
|
13
13
|
const editing_data_cache_1 = require("./editing-data-cache");
|
|
14
14
|
const editing_data_1 = require("./editing-data");
|
|
15
|
-
const
|
|
15
|
+
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
16
16
|
const utils_1 = require("../utils/utils");
|
|
17
17
|
const utils_2 = require("@sitecore-jss/sitecore-jss/utils");
|
|
18
18
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
@@ -28,9 +28,9 @@ class EditingDataMiddleware {
|
|
|
28
28
|
var _a, _b;
|
|
29
29
|
this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
30
30
|
const { method, query, body } = req;
|
|
31
|
-
const secret = query[
|
|
31
|
+
const secret = query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
32
32
|
const key = query[this.queryParamKey];
|
|
33
|
-
if (!(0, utils_2.enforceCors)(req, res,
|
|
33
|
+
if (!(0, utils_2.enforceCors)(req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
34
34
|
sitecore_jss_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
35
35
|
return res.status(401).json({ message: 'Invalid origin' });
|
|
36
36
|
}
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.editingDataService = exports.ServerlessEditingDataService = exports.BasicEditingDataService = exports.generateKey = void 0;
|
|
13
|
-
const
|
|
13
|
+
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
14
14
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
15
15
|
const editing_data_cache_1 = require("./editing-data-cache");
|
|
16
16
|
const utils_1 = require("../utils/utils");
|
|
@@ -137,7 +137,7 @@ class ServerlessEditingDataService {
|
|
|
137
137
|
// http://localhost:3000/api/editing/data/52961eea-bafd-5287-a532-a72e36bd8a36-qkb4e3fv5x?secret=1234secret
|
|
138
138
|
const apiRoute = (_a = this.apiRoute) === null || _a === void 0 ? void 0 : _a.replace('[key]', key);
|
|
139
139
|
const url = new URL(apiRoute, serverUrl);
|
|
140
|
-
url.searchParams.append(
|
|
140
|
+
url.searchParams.append(editing_1.QUERY_PARAM_EDITING_SECRET, (0, utils_1.getJssEditingSecret)());
|
|
141
141
|
if (params) {
|
|
142
142
|
for (const key in params) {
|
|
143
143
|
if ({}.hasOwnProperty.call(params, key)) {
|
|
@@ -13,8 +13,8 @@ exports.EditingRenderMiddleware = exports.MetadataHandler = exports.isEditingMet
|
|
|
13
13
|
const constants_1 = require("next/constants");
|
|
14
14
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
15
15
|
const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
|
|
16
|
+
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
16
17
|
const editing_data_service_1 = require("./editing-data-service");
|
|
17
|
-
const constants_2 = require("./constants");
|
|
18
18
|
const utils_1 = require("../utils/utils");
|
|
19
19
|
const render_middleware_1 = require("./render-middleware");
|
|
20
20
|
const utils_2 = require("@sitecore-jss/sitecore-jss/utils");
|
|
@@ -221,6 +221,7 @@ class MetadataHandler {
|
|
|
221
221
|
version: query.sc_version,
|
|
222
222
|
editMode: layout_1.EditMode.Metadata,
|
|
223
223
|
pageState: query.mode,
|
|
224
|
+
layoutKind: query.sc_layoutKind,
|
|
224
225
|
},
|
|
225
226
|
// Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
|
|
226
227
|
{
|
|
@@ -264,7 +265,7 @@ class MetadataHandler {
|
|
|
264
265
|
* @returns Content-Security-Policy header value
|
|
265
266
|
*/
|
|
266
267
|
getSCPHeader() {
|
|
267
|
-
return `frame-ancestors 'self' ${[(0, utils_2.getAllowedOriginsFromEnv)(), ...
|
|
268
|
+
return `frame-ancestors 'self' ${[(0, utils_2.getAllowedOriginsFromEnv)(), ...editing_1.EDITING_ALLOWED_ORIGINS].join(' ')}`;
|
|
268
269
|
}
|
|
269
270
|
}
|
|
270
271
|
exports.MetadataHandler = MetadataHandler;
|
|
@@ -288,14 +289,14 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
288
289
|
headers,
|
|
289
290
|
body,
|
|
290
291
|
});
|
|
291
|
-
if (!(0, utils_2.enforceCors)(req, res,
|
|
292
|
+
if (!(0, utils_2.enforceCors)(req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
292
293
|
sitecore_jss_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
293
294
|
return res.status(401).json({
|
|
294
295
|
html: `<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} not allowed</body></html>`,
|
|
295
296
|
});
|
|
296
297
|
}
|
|
297
298
|
// Validate secret
|
|
298
|
-
const secret = (_b = query[
|
|
299
|
+
const secret = (_b = query[editing_1.QUERY_PARAM_EDITING_SECRET]) !== null && _b !== void 0 ? _b : body === null || body === void 0 ? void 0 : body.jssEditingSecret;
|
|
299
300
|
if (secret !== (0, utils_1.getJssEditingSecret)()) {
|
|
300
301
|
sitecore_jss_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_1.getJssEditingSecret)());
|
|
301
302
|
return res.status(401).json({
|
|
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.FEAASRenderMiddleware = void 0;
|
|
13
13
|
const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
14
|
-
const
|
|
14
|
+
const editing_1 = require("@sitecore-jss/sitecore-jss/editing");
|
|
15
15
|
const utils_1 = require("../utils/utils");
|
|
16
16
|
const render_middleware_1 = require("./render-middleware");
|
|
17
17
|
const utils_2 = require("@sitecore-jss/sitecore-jss/utils");
|
|
@@ -37,7 +37,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
37
37
|
query,
|
|
38
38
|
headers,
|
|
39
39
|
});
|
|
40
|
-
if (!(0, utils_2.enforceCors)(req, res,
|
|
40
|
+
if (!(0, utils_2.enforceCors)(req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
41
41
|
sitecore_jss_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
42
42
|
return res
|
|
43
43
|
.status(401)
|
|
@@ -49,7 +49,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
49
49
|
return res.status(405).send(`<html><body>Invalid request method '${method}'</body></html>`);
|
|
50
50
|
}
|
|
51
51
|
// Validate secret
|
|
52
|
-
const secret = query[
|
|
52
|
+
const secret = query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
53
53
|
if (secret !== (0, utils_1.getJssEditingSecret)()) {
|
|
54
54
|
sitecore_jss_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_1.getJssEditingSecret)());
|
|
55
55
|
return res.status(401).send('<html><body>Missing or invalid secret</body></html>');
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export const QUERY_PARAM_EDITING_SECRET = 'secret';
|
|
2
1
|
export const QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
|
|
3
2
|
export const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
|
|
4
3
|
/**
|
|
@@ -6,7 +5,3 @@ export const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie'
|
|
|
6
5
|
* Note these are in lowercase format to match expected `IncomingHttpHeaders`.
|
|
7
6
|
*/
|
|
8
7
|
export const EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
|
|
9
|
-
/**
|
|
10
|
-
* Default allowed origins for editing requests. This is used to enforce CORS, CSP headers.
|
|
11
|
-
*/
|
|
12
|
-
export const EDITING_ALLOWED_ORIGINS = ['https://pages.sitecorecloud.io'];
|
|
@@ -7,7 +7,7 @@ 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 { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from '
|
|
10
|
+
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-jss/sitecore-jss/editing';
|
|
11
11
|
import { getJssEditingSecret } from '../utils/utils';
|
|
12
12
|
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
13
13
|
import { EditMode } from '@sitecore-jss/sitecore-jss/layout';
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { editingDataDiskCache } from './editing-data-cache';
|
|
11
11
|
import { isEditingData } from './editing-data';
|
|
12
|
-
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from '
|
|
12
|
+
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-jss/sitecore-jss/editing';
|
|
13
13
|
import { getJssEditingSecret } from '../utils/utils';
|
|
14
14
|
import { enforceCors } from '@sitecore-jss/sitecore-jss/utils';
|
|
15
15
|
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
@@ -7,7 +7,7 @@ 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 { QUERY_PARAM_EDITING_SECRET } from '
|
|
10
|
+
import { QUERY_PARAM_EDITING_SECRET } from '@sitecore-jss/sitecore-jss/editing';
|
|
11
11
|
import { AxiosDataFetcher, debug } from '@sitecore-jss/sitecore-jss';
|
|
12
12
|
import { editingDataDiskCache } from './editing-data-cache';
|
|
13
13
|
import { getJssEditingSecret } from '../utils/utils';
|
|
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { STATIC_PROPS_ID, SERVER_PROPS_ID } from 'next/constants';
|
|
11
11
|
import { AxiosDataFetcher, debug } from '@sitecore-jss/sitecore-jss';
|
|
12
12
|
import { EditMode } from '@sitecore-jss/sitecore-jss/layout';
|
|
13
|
+
import { QUERY_PARAM_EDITING_SECRET, EDITING_ALLOWED_ORIGINS, } from '@sitecore-jss/sitecore-jss/editing';
|
|
13
14
|
import { editingDataService } from './editing-data-service';
|
|
14
|
-
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from './constants';
|
|
15
15
|
import { getJssEditingSecret } from '../utils/utils';
|
|
16
16
|
import { RenderMiddlewareBase } from './render-middleware';
|
|
17
17
|
import { enforceCors, getAllowedOriginsFromEnv } from '@sitecore-jss/sitecore-jss/utils';
|
|
@@ -216,6 +216,7 @@ export class MetadataHandler {
|
|
|
216
216
|
version: query.sc_version,
|
|
217
217
|
editMode: EditMode.Metadata,
|
|
218
218
|
pageState: query.mode,
|
|
219
|
+
layoutKind: query.sc_layoutKind,
|
|
219
220
|
},
|
|
220
221
|
// Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
|
|
221
222
|
{
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
11
|
-
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from '
|
|
11
|
+
import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-jss/sitecore-jss/editing';
|
|
12
12
|
import { getJssEditingSecret } from '../utils/utils';
|
|
13
13
|
import { RenderMiddlewareBase } from './render-middleware';
|
|
14
14
|
import { enforceCors } from '@sitecore-jss/sitecore-jss/utils';
|
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.39",
|
|
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.39",
|
|
76
|
+
"@sitecore-jss/sitecore-jss-dev-tools": "^22.2.0-canary.39",
|
|
77
|
+
"@sitecore-jss/sitecore-jss-react": "^22.2.0-canary.39",
|
|
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": "b4f4b36dd7b9b0aadabfeca4c8886ca3db8cfec5",
|
|
86
86
|
"files": [
|
|
87
87
|
"dist",
|
|
88
88
|
"types",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export declare const QUERY_PARAM_EDITING_SECRET = "secret";
|
|
2
1
|
export declare const QUERY_PARAM_VERCEL_PROTECTION_BYPASS = "x-vercel-protection-bypass";
|
|
3
2
|
export declare const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = "x-vercel-set-bypass-cookie";
|
|
4
3
|
/**
|
|
@@ -6,7 +5,3 @@ export declare const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = "x-vercel-set-bypass
|
|
|
6
5
|
* Note these are in lowercase format to match expected `IncomingHttpHeaders`.
|
|
7
6
|
*/
|
|
8
7
|
export declare const EDITING_PASS_THROUGH_HEADERS: string[];
|
|
9
|
-
/**
|
|
10
|
-
* Default allowed origins for editing requests. This is used to enforce CORS, CSP headers.
|
|
11
|
-
*/
|
|
12
|
-
export declare const EDITING_ALLOWED_ORIGINS: string[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NextApiRequest, NextApiResponse } from 'next';
|
|
2
2
|
import { AxiosDataFetcher } from '@sitecore-jss/sitecore-jss';
|
|
3
3
|
import { EditMode, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';
|
|
4
|
+
import { LayoutKind } from '@sitecore-jss/sitecore-jss/editing';
|
|
4
5
|
import { EditingDataService } from './editing-data-service';
|
|
5
6
|
import { RenderMiddlewareBase } from './render-middleware';
|
|
6
7
|
/**
|
|
@@ -108,6 +109,7 @@ export type MetadataQueryParams = {
|
|
|
108
109
|
mode: Exclude<LayoutServicePageState, 'normal'>;
|
|
109
110
|
sc_variant?: string;
|
|
110
111
|
sc_version?: string;
|
|
112
|
+
sc_layoutKind?: LayoutKind;
|
|
111
113
|
};
|
|
112
114
|
/**
|
|
113
115
|
* Next.js API request with Metadata query parameters.
|
|
@@ -126,6 +128,7 @@ export type EditingMetadataPreviewData = {
|
|
|
126
128
|
pageState: Exclude<LayoutServicePageState, 'Normal'>;
|
|
127
129
|
variantIds: string[];
|
|
128
130
|
version?: string;
|
|
131
|
+
layoutKind?: LayoutKind;
|
|
129
132
|
};
|
|
130
133
|
/**
|
|
131
134
|
* Type guard for EditingMetadataPreviewData
|