@sitecore-content-sdk/nextjs 1.6.1 → 1.6.2-canary.20261106205936
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/client/sitecore-nextjs-client.js +57 -94
- package/dist/cjs/components/BYOCWrapper.js +3 -12
- package/dist/cjs/components/DesignLibrary/DesignLibraryApp.js +22 -0
- package/dist/cjs/components/FEaaSWrapper.js +3 -12
- package/dist/cjs/editing/constants.js +7 -1
- package/dist/cjs/editing/editing-config-middleware.js +2 -11
- package/dist/cjs/editing/editing-render-middleware.js +3 -12
- package/dist/cjs/editing/feaas-render-middleware.js +2 -11
- package/dist/cjs/editing/utils.js +3 -12
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/middleware/locale-middleware.js +2 -11
- package/dist/cjs/middleware/middleware.js +3 -12
- package/dist/cjs/middleware/multisite-middleware.js +2 -11
- package/dist/cjs/middleware/personalize-middleware.js +22 -35
- package/dist/cjs/middleware/preview-middleware.js +4 -13
- package/dist/cjs/middleware/redirects-middleware.js +61 -72
- package/dist/cjs/middleware/robots-middleware.js +14 -25
- package/dist/cjs/middleware/sitemap-middleware.js +17 -28
- package/dist/cjs/monitoring/healthcheck-middleware.js +2 -11
- package/dist/cjs/route-handler/editing-config-route-handler.js +4 -13
- package/dist/cjs/route-handler/editing-render-route-handler.js +23 -31
- package/dist/cjs/route-handler/robots-route-handler.js +5 -14
- package/dist/cjs/route-handler/sitemap-route-handler.js +5 -14
- package/dist/cjs/server-actions/update-server-component-action.js +65 -0
- package/dist/cjs/services/component-props-service.js +63 -80
- package/dist/cjs/utils/utils.js +73 -1
- package/dist/esm/client/sitecore-nextjs-client.js +57 -94
- package/dist/esm/components/BYOCWrapper.js +3 -12
- package/dist/esm/components/DesignLibrary/DesignLibraryApp.js +15 -0
- package/dist/esm/components/FEaaSWrapper.js +3 -12
- package/dist/esm/editing/constants.js +6 -0
- package/dist/esm/editing/editing-config-middleware.js +2 -11
- package/dist/esm/editing/editing-render-middleware.js +3 -12
- package/dist/esm/editing/feaas-render-middleware.js +2 -11
- package/dist/esm/editing/utils.js +3 -12
- package/dist/esm/index.js +2 -1
- package/dist/esm/middleware/locale-middleware.js +2 -11
- package/dist/esm/middleware/middleware.js +3 -12
- package/dist/esm/middleware/multisite-middleware.js +2 -11
- package/dist/esm/middleware/personalize-middleware.js +22 -35
- package/dist/esm/middleware/preview-middleware.js +4 -13
- package/dist/esm/middleware/redirects-middleware.js +61 -72
- package/dist/esm/middleware/robots-middleware.js +14 -25
- package/dist/esm/middleware/sitemap-middleware.js +17 -28
- package/dist/esm/monitoring/healthcheck-middleware.js +2 -11
- package/dist/esm/route-handler/editing-config-route-handler.js +4 -13
- package/dist/esm/route-handler/editing-render-route-handler.js +24 -32
- package/dist/esm/route-handler/robots-route-handler.js +5 -14
- package/dist/esm/route-handler/sitemap-route-handler.js +5 -14
- package/dist/esm/server-actions/update-server-component-action.js +61 -0
- package/dist/esm/services/component-props-service.js +63 -80
- package/dist/esm/utils/utils.js +36 -0
- package/package.json +1 -1
- package/types/components/DesignLibrary/DesignLibraryApp.d.ts +14 -0
- package/types/components/DesignLibrary/DesignLibraryApp.d.ts.map +1 -0
- package/types/editing/constants.d.ts +6 -0
- package/types/editing/constants.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/route-handler/editing-render-route-handler.d.ts.map +1 -1
- package/types/server-actions/update-server-component-action.d.ts +58 -0
- package/types/server-actions/update-server-component-action.d.ts.map +1 -0
- package/types/utils/utils.d.ts +21 -0
- package/types/utils/utils.d.ts.map +1 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.SitecoreNextjsClient = void 0;
|
|
13
4
|
const client_1 = require("@sitecore-content-sdk/core/client");
|
|
@@ -45,23 +36,17 @@ class SitecoreNextjsClient extends client_1.SitecoreClient {
|
|
|
45
36
|
const basePath = super.parsePath(path);
|
|
46
37
|
return (0, site_1.normalizeSiteRewrite)((0, personalize_1.normalizePersonalizedRewrite)(basePath));
|
|
47
38
|
}
|
|
48
|
-
getPage(path, pageOptions, options) {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
locale: pageOptions.locale,
|
|
60
|
-
site,
|
|
61
|
-
personalize: personalizeData,
|
|
62
|
-
}, options);
|
|
63
|
-
return page;
|
|
64
|
-
});
|
|
39
|
+
async getPage(path, pageOptions, options) {
|
|
40
|
+
const resolvedPath = this.parsePath(path);
|
|
41
|
+
// Get variant(s) for personalization (from path), must ensure path is of type string
|
|
42
|
+
const personalizeData = pageOptions.personalize || (0, personalize_1.getPersonalizedRewriteData)(super.parsePath(path));
|
|
43
|
+
const site = pageOptions.site || this.getSiteNameFromPath(path);
|
|
44
|
+
const page = await super.getPage(resolvedPath, {
|
|
45
|
+
locale: pageOptions.locale,
|
|
46
|
+
site,
|
|
47
|
+
personalize: personalizeData,
|
|
48
|
+
}, options);
|
|
49
|
+
return page;
|
|
65
50
|
}
|
|
66
51
|
/**
|
|
67
52
|
* Get design library page details for Design Library mode of your app
|
|
@@ -69,26 +54,16 @@ class SitecoreNextjsClient extends client_1.SitecoreClient {
|
|
|
69
54
|
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
70
55
|
* @returns {Page} preview page for Design Library
|
|
71
56
|
*/
|
|
72
|
-
getDesignLibraryData(designLibData, fetchOptions) {
|
|
73
|
-
|
|
74
|
-
getDesignLibraryData: { get: () => super.getDesignLibraryData }
|
|
75
|
-
});
|
|
76
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
return _super.getDesignLibraryData.call(this, designLibData, fetchOptions);
|
|
78
|
-
});
|
|
57
|
+
async getDesignLibraryData(designLibData, fetchOptions) {
|
|
58
|
+
return super.getDesignLibraryData(designLibData, fetchOptions);
|
|
79
59
|
}
|
|
80
60
|
/**
|
|
81
61
|
* Retrieves preview page and layout details
|
|
82
62
|
* @param {PreviewData} previewData - The editing preview data for metadata mode.
|
|
83
63
|
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests (like retries and fetch)
|
|
84
64
|
*/
|
|
85
|
-
getPreview(previewData, fetchOptions) {
|
|
86
|
-
|
|
87
|
-
getPreview: { get: () => super.getPreview }
|
|
88
|
-
});
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
return _super.getPreview.call(this, previewData, fetchOptions);
|
|
91
|
-
});
|
|
65
|
+
async getPreview(previewData, fetchOptions) {
|
|
66
|
+
return super.getPreview(previewData, fetchOptions);
|
|
92
67
|
}
|
|
93
68
|
/**
|
|
94
69
|
* Generates static params for the Next.js App Router from Sitecore routes.
|
|
@@ -104,25 +79,20 @@ class SitecoreNextjsClient extends client_1.SitecoreClient {
|
|
|
104
79
|
* @param {FetchOptions} [fetchOptions] - Additional fetch options.
|
|
105
80
|
* @returns {Promise<StaticParams[]>} Array of `{ site, locale, path }` entries for `generateStaticParams`.
|
|
106
81
|
*/
|
|
107
|
-
getAppRouterStaticParams(sites, languages, fetchOptions) {
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
params.push({
|
|
119
|
-
locale: (_a = path.locale) !== null && _a !== void 0 ? _a : this.initOptions.defaultLanguage,
|
|
120
|
-
site: this.getSiteNameFromPath(path.params.path),
|
|
121
|
-
path: normalizedPath,
|
|
122
|
-
});
|
|
82
|
+
async getAppRouterStaticParams(sites, languages, fetchOptions) {
|
|
83
|
+
const staticPaths = await super.getPagePaths(sites, languages, fetchOptions);
|
|
84
|
+
const params = new Array();
|
|
85
|
+
staticPaths.map((path) => {
|
|
86
|
+
var _a;
|
|
87
|
+
// remove _site_ segments
|
|
88
|
+
const normalizedPath = (0, site_1.normalizeSiteRewrite)(path.params.path.join('/')).split('/');
|
|
89
|
+
params.push({
|
|
90
|
+
locale: (_a = path.locale) !== null && _a !== void 0 ? _a : this.initOptions.defaultLanguage,
|
|
91
|
+
site: this.getSiteNameFromPath(path.params.path),
|
|
92
|
+
path: normalizedPath,
|
|
123
93
|
});
|
|
124
|
-
return params;
|
|
125
94
|
});
|
|
95
|
+
return params;
|
|
126
96
|
}
|
|
127
97
|
/**
|
|
128
98
|
* Retrieves the static paths for pages based on the given languages.
|
|
@@ -131,21 +101,16 @@ class SitecoreNextjsClient extends client_1.SitecoreClient {
|
|
|
131
101
|
* @param {FetchOptions} [fetchOptions] - Additional fetch options.
|
|
132
102
|
* @returns {Promise<StaticPath[]>} A promise that resolves to an array of static paths.
|
|
133
103
|
*/
|
|
134
|
-
getPagePaths(sites, languages, fetchOptions) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
path.params.path = (0, site_1.normalizeSiteRewrite)(path.params.path.join('/')).split('/');
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
return staticPaths;
|
|
148
|
-
});
|
|
104
|
+
async getPagePaths(sites, languages, fetchOptions) {
|
|
105
|
+
var _a;
|
|
106
|
+
const staticPaths = await super.getPagePaths(sites, languages, fetchOptions);
|
|
107
|
+
if (!((_a = this.initOptions.multisite) === null || _a === void 0 ? void 0 : _a.enabled)) {
|
|
108
|
+
// remove _site_ segments when multisite is disabled
|
|
109
|
+
staticPaths.map((path) => {
|
|
110
|
+
path.params.path = (0, site_1.normalizeSiteRewrite)(path.params.path.join('/')).split('/');
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return staticPaths;
|
|
149
114
|
}
|
|
150
115
|
/**
|
|
151
116
|
* Parses components from nextjs component map and layoutData, executes getServerProps/getStaticProps methods
|
|
@@ -155,30 +120,28 @@ class SitecoreNextjsClient extends client_1.SitecoreClient {
|
|
|
155
120
|
* @param {ComponentMap<NextjsContentSdkComponent>} components component map to get props for
|
|
156
121
|
* @returns {ComponentPropsCollection} component props
|
|
157
122
|
*/
|
|
158
|
-
getComponentData(layoutData, context, components) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if (!layoutData.sitecore.route)
|
|
162
|
-
return componentProps;
|
|
163
|
-
// Retrieve component props using side-effects defined on components level
|
|
164
|
-
componentProps = yield this.componentPropsService.fetchComponentProps({
|
|
165
|
-
layoutData: layoutData,
|
|
166
|
-
context,
|
|
167
|
-
components,
|
|
168
|
-
});
|
|
169
|
-
const errors = Object.keys(componentProps)
|
|
170
|
-
.map((id) => {
|
|
171
|
-
const component = componentProps[id];
|
|
172
|
-
return component.error
|
|
173
|
-
? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
|
|
174
|
-
: '';
|
|
175
|
-
})
|
|
176
|
-
.join('');
|
|
177
|
-
if (errors.length) {
|
|
178
|
-
throw new Error(errors);
|
|
179
|
-
}
|
|
123
|
+
async getComponentData(layoutData, context, components) {
|
|
124
|
+
let componentProps = {};
|
|
125
|
+
if (!layoutData.sitecore.route)
|
|
180
126
|
return componentProps;
|
|
127
|
+
// Retrieve component props using side-effects defined on components level
|
|
128
|
+
componentProps = await this.componentPropsService.fetchComponentProps({
|
|
129
|
+
layoutData: layoutData,
|
|
130
|
+
context,
|
|
131
|
+
components,
|
|
181
132
|
});
|
|
133
|
+
const errors = Object.keys(componentProps)
|
|
134
|
+
.map((id) => {
|
|
135
|
+
const component = componentProps[id];
|
|
136
|
+
return component.error
|
|
137
|
+
? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
|
|
138
|
+
: '';
|
|
139
|
+
})
|
|
140
|
+
.join('');
|
|
141
|
+
if (errors.length) {
|
|
142
|
+
throw new Error(errors);
|
|
143
|
+
}
|
|
144
|
+
return componentProps;
|
|
182
145
|
}
|
|
183
146
|
/**
|
|
184
147
|
* **NOTE**: App Router only.
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getComponentServerProps = void 0;
|
|
13
4
|
const react_1 = require("@sitecore-content-sdk/react");
|
|
@@ -22,10 +13,10 @@ const react_1 = require("@sitecore-content-sdk/react");
|
|
|
22
13
|
* @returns {GetStaticPropsContext | GetStaticPropsContext} context with type depending on SSR or SSG mode
|
|
23
14
|
* @internal
|
|
24
15
|
*/
|
|
25
|
-
const getComponentServerProps = (rendering) =>
|
|
16
|
+
const getComponentServerProps = async (rendering) => {
|
|
26
17
|
const params = rendering.params || {};
|
|
27
|
-
const result =
|
|
18
|
+
const result = await (0, react_1.fetchBYOCComponentServerProps)(params);
|
|
28
19
|
return result;
|
|
29
|
-
}
|
|
20
|
+
};
|
|
30
21
|
exports.getComponentServerProps = getComponentServerProps;
|
|
31
22
|
exports.default = react_1.BYOCWrapper;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DesignLibraryApp = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const react_2 = require("@sitecore-content-sdk/react");
|
|
9
|
+
const update_server_component_action_1 = require("../../server-actions/update-server-component-action");
|
|
10
|
+
/**
|
|
11
|
+
* Next.js Design Library entry. Passes server actions that authorize the editing
|
|
12
|
+
* secret header into the React Design Library. The React package keeps empty
|
|
13
|
+
* default actions and uses these props instead.
|
|
14
|
+
* @param {DesignLibraryAppProps} props - Design Library app props from the sample layout.
|
|
15
|
+
* @returns The Design Library tree, or null when the page has no route.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
const DesignLibraryApp = async (props) => {
|
|
19
|
+
return (react_1.default.createElement(react_2.DesignLibraryApp, Object.assign({}, props, { updateComponentAction: update_server_component_action_1.updateComponentAction, previewComponentAction: update_server_component_action_1.previewComponentAction })));
|
|
20
|
+
};
|
|
21
|
+
exports.DesignLibraryApp = DesignLibraryApp;
|
|
22
|
+
exports.default = exports.DesignLibraryApp;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getComponentServerProps = void 0;
|
|
13
4
|
const react_1 = require("@sitecore-content-sdk/react");
|
|
@@ -23,11 +14,11 @@ const react_1 = require("@sitecore-content-sdk/react");
|
|
|
23
14
|
* @returns {GetStaticPropsContext | GetServerSideProps} context
|
|
24
15
|
* @internal
|
|
25
16
|
*/
|
|
26
|
-
const getComponentServerProps = (rendering, layoutData) =>
|
|
17
|
+
const getComponentServerProps = async (rendering, layoutData) => {
|
|
27
18
|
const params = rendering.params || {};
|
|
28
19
|
const isPageStateNormal = !layoutData.sitecore.context.pageState ||
|
|
29
20
|
layoutData.sitecore.context.pageState === react_1.LayoutServicePageState.Normal;
|
|
30
|
-
return
|
|
31
|
-
}
|
|
21
|
+
return await (0, react_1.fetchFEaaSComponentServerProps)(params, isPageStateNormal);
|
|
22
|
+
};
|
|
32
23
|
exports.getComponentServerProps = getComponentServerProps;
|
|
33
24
|
exports.default = react_1.FEaaSWrapper;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EDITING_PARAMS_HEADER = exports.EDITING_PASS_THROUGH_HEADERS = exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = void 0;
|
|
3
|
+
exports.EDITING_SECRET_HEADER = exports.EDITING_PARAMS_HEADER = exports.EDITING_PASS_THROUGH_HEADERS = exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = void 0;
|
|
4
4
|
exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
|
|
5
5
|
exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
|
|
6
6
|
/**
|
|
@@ -13,3 +13,9 @@ exports.EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
|
|
|
13
13
|
* route handler to the Next.js page when running in App Router.
|
|
14
14
|
*/
|
|
15
15
|
exports.EDITING_PARAMS_HEADER = 'x-sitecore-editing-params';
|
|
16
|
+
/**
|
|
17
|
+
* Header used to forward the already-validated editing secret from the editing
|
|
18
|
+
* render handler/middleware to the internal Next.js page or server-action request.
|
|
19
|
+
* Do not put this value in `EDITING_PARAMS_HEADER` JSON.
|
|
20
|
+
*/
|
|
21
|
+
exports.EDITING_SECRET_HEADER = 'x-sitecore-editing-secret';
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.EditingConfigMiddleware = void 0;
|
|
13
4
|
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
@@ -26,7 +17,7 @@ class EditingConfigMiddleware {
|
|
|
26
17
|
*/
|
|
27
18
|
constructor(config) {
|
|
28
19
|
this.config = config;
|
|
29
|
-
this.handler = (_req, res) =>
|
|
20
|
+
this.handler = async (_req, res) => {
|
|
30
21
|
const secret = _req.query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
31
22
|
const corsHeaders = (0, utils_1.getEnforcedCorsHeaders)({
|
|
32
23
|
requestMethod: _req.method,
|
|
@@ -57,7 +48,7 @@ class EditingConfigMiddleware {
|
|
|
57
48
|
packages: this.config.metadata.packages,
|
|
58
49
|
editMode: layout_1.EditMode.Metadata,
|
|
59
50
|
});
|
|
60
|
-
}
|
|
51
|
+
};
|
|
61
52
|
}
|
|
62
53
|
/**
|
|
63
54
|
* Gets the Next.js API route handler
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.EditingRenderMiddleware = void 0;
|
|
13
4
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
@@ -30,7 +21,7 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
30
21
|
constructor(config) {
|
|
31
22
|
super();
|
|
32
23
|
this.config = config;
|
|
33
|
-
this.handler = (req, res) =>
|
|
24
|
+
this.handler = async (req, res) => {
|
|
34
25
|
var _a, _b, _c, _d, _e;
|
|
35
26
|
const { body, method, headers, query } = req;
|
|
36
27
|
core_1.debug.editing('editing render middleware start: %o', {
|
|
@@ -111,7 +102,7 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
111
102
|
const propagatedQsParams = (0, utils_3.getQueryParamsForPropagation)(query);
|
|
112
103
|
// Get headers to propagate on subsequent requests
|
|
113
104
|
const propagatedHeaders = Object.assign(Object.assign({}, (0, utils_3.getHeadersForPropagation)(headers)), { [constants_1.EDITING_PARAMS_HEADER]: JSON.stringify(previewData) });
|
|
114
|
-
const html =
|
|
105
|
+
const html = await (0, utils_3.getEditingRequestHtml)(requestUrl, propagatedQsParams, propagatedHeaders, cookies, this.dataFetcher);
|
|
115
106
|
// remove preview cookies to not leak them to the browser
|
|
116
107
|
if (cookies && Array.isArray(cookies)) {
|
|
117
108
|
const filteredCookies = (0, utils_3.cleanupNextPreviewCookies)(cookies);
|
|
@@ -133,7 +124,7 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
133
124
|
}
|
|
134
125
|
res.status(500).send(`<html><body>${error}</body></html>`);
|
|
135
126
|
}
|
|
136
|
-
}
|
|
127
|
+
};
|
|
137
128
|
this.dataFetcher = new core_1.NativeDataFetcher({ debugger: core_1.debug.editing });
|
|
138
129
|
}
|
|
139
130
|
/**
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.FEAASRenderMiddleware = void 0;
|
|
13
4
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
@@ -29,7 +20,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
29
20
|
super();
|
|
30
21
|
this.config = config;
|
|
31
22
|
this.defaultPageUrl = '/feaas/render';
|
|
32
|
-
this.handler = (req, res) =>
|
|
23
|
+
this.handler = async (req, res) => {
|
|
33
24
|
var _a;
|
|
34
25
|
const { method, query, headers } = req;
|
|
35
26
|
const startTimestamp = Date.now();
|
|
@@ -88,7 +79,7 @@ class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
|
88
79
|
"Hint: for non-standard server or Next.js route configurations, you may need to override the 'pageUrl' available on the 'FEAASRenderMiddleware' config.");
|
|
89
80
|
res.status(500).send(`<html><body>${error}</body></html>`);
|
|
90
81
|
}
|
|
91
|
-
}
|
|
82
|
+
};
|
|
92
83
|
this.pageUrl = (_a = config === null || config === void 0 ? void 0 : config.pageUrl) !== null && _a !== void 0 ? _a : this.defaultPageUrl;
|
|
93
84
|
}
|
|
94
85
|
/**
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getCSPHeader = exports.resolveServerUrl = exports.isDesignLibraryPreviewData = exports.getEditingRequestHtml = exports.getHeadersForPropagation = exports.getQueryParamsForPropagation = exports.getRequiredEditingParamsList = exports.getPreviewCookies = exports.cleanupNextPreviewCookies = exports.mapEditingParams = exports.getEditingSecretFromRequest = void 0;
|
|
13
4
|
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
@@ -162,7 +153,7 @@ exports.getHeadersForPropagation = getHeadersForPropagation;
|
|
|
162
153
|
* @param {NativeDataFetcher} dataFetcher NativeFetcher instance to send request with
|
|
163
154
|
* @returns {string} HTML with editing markup
|
|
164
155
|
*/
|
|
165
|
-
const getEditingRequestHtml = (requestUrl, propagatedQsParams, propagatedHeaders, cookies, dataFetcher) =>
|
|
156
|
+
const getEditingRequestHtml = async (requestUrl, propagatedQsParams, propagatedHeaders, cookies, dataFetcher) => {
|
|
166
157
|
var _a;
|
|
167
158
|
// Grab the Next.js preview cookies to send on to the render request
|
|
168
159
|
propagatedHeaders.cookie = `${propagatedHeaders.cookie ? propagatedHeaders.cookie + ';' : ''}${cookies.join(';')}`;
|
|
@@ -174,7 +165,7 @@ const getEditingRequestHtml = (requestUrl, propagatedQsParams, propagatedHeaders
|
|
|
174
165
|
}
|
|
175
166
|
}
|
|
176
167
|
requestUrl.searchParams.append('timestamp', Date.now().toString());
|
|
177
|
-
const pageRes =
|
|
168
|
+
const pageRes = await dataFetcher
|
|
178
169
|
.get(requestUrl.toString(), {
|
|
179
170
|
credentials: 'include',
|
|
180
171
|
headers: propagatedHeaders,
|
|
@@ -204,7 +195,7 @@ const getEditingRequestHtml = (requestUrl, propagatedQsParams, propagatedHeaders
|
|
|
204
195
|
// The following line will trick it into thinking we're SSR, thus avoiding any router.replace.
|
|
205
196
|
html = html.replace(constants_2.STATIC_PROPS_ID, constants_2.SERVER_PROPS_ID);
|
|
206
197
|
return html;
|
|
207
|
-
}
|
|
198
|
+
};
|
|
208
199
|
exports.getEditingRequestHtml = getEditingRequestHtml;
|
|
209
200
|
/**
|
|
210
201
|
* Type guard for Design Library mode
|
package/dist/cjs/index.js
CHANGED
|
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.BYOCWrapper = exports.FEaaSWrapper = exports.BYOCServerWrapper = exports.BYOCClientWrapper = exports.FEaaSServerWrapper = exports.FEaaSClientWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.ComponentPropsService = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.SiteInfoService = exports.SiteResolver = exports.RobotsService = exports.ErrorPagesService = exports.SitemapXmlService = exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = exports.RedirectsService = exports.SitePathService = exports.PersonalizeService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.DictionaryService = exports.mediaApi = exports.ComponentLayoutService = exports.ErrorPage = exports.RenderingType = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.LayoutService = exports.LayoutServicePageState = exports.MemoryCacheClient = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.constants = void 0;
|
|
37
|
-
exports.AppPlaceholder = exports.ClientEditingChromesUpdate = exports.Form = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecore = exports.withSitecore = exports.SitecoreProviderReactContext = exports.SitecoreProvider = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.
|
|
37
|
+
exports.AppPlaceholder = exports.ClientEditingChromesUpdate = exports.Form = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecore = exports.withSitecore = exports.SitecoreProviderReactContext = exports.SitecoreProvider = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.DesignLibrary = exports.File = exports.getDesignLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.Image = exports.DesignLibraryApp = void 0;
|
|
38
38
|
var core_1 = require("@sitecore-content-sdk/core");
|
|
39
39
|
Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return core_1.constants; } });
|
|
40
40
|
// generic data access
|
|
@@ -104,6 +104,8 @@ Object.defineProperty(exports, "FEaaSClientWrapper", { enumerable: true, get: fu
|
|
|
104
104
|
Object.defineProperty(exports, "FEaaSServerWrapper", { enumerable: true, get: function () { return react_1.FEaaSServerWrapper; } });
|
|
105
105
|
Object.defineProperty(exports, "BYOCClientWrapper", { enumerable: true, get: function () { return react_1.BYOCClientWrapper; } });
|
|
106
106
|
Object.defineProperty(exports, "BYOCServerWrapper", { enumerable: true, get: function () { return react_1.BYOCServerWrapper; } });
|
|
107
|
+
var DesignLibraryApp_1 = require("./components/DesignLibrary/DesignLibraryApp");
|
|
108
|
+
Object.defineProperty(exports, "DesignLibraryApp", { enumerable: true, get: function () { return DesignLibraryApp_1.DesignLibraryApp; } });
|
|
107
109
|
var react_2 = require("@sitecore-content-sdk/react");
|
|
108
110
|
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return react_2.Image; } });
|
|
109
111
|
Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return react_2.Text; } });
|
|
@@ -114,7 +116,6 @@ Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: functio
|
|
|
114
116
|
Object.defineProperty(exports, "getDesignLibraryStylesheetLinks", { enumerable: true, get: function () { return react_2.getDesignLibraryStylesheetLinks; } });
|
|
115
117
|
Object.defineProperty(exports, "File", { enumerable: true, get: function () { return react_2.File; } });
|
|
116
118
|
Object.defineProperty(exports, "DesignLibrary", { enumerable: true, get: function () { return react_2.DesignLibrary; } });
|
|
117
|
-
Object.defineProperty(exports, "DesignLibraryApp", { enumerable: true, get: function () { return react_2.DesignLibraryApp; } });
|
|
118
119
|
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return react_2.DefaultEmptyFieldEditingComponentImage; } });
|
|
119
120
|
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return react_2.DefaultEmptyFieldEditingComponentText; } });
|
|
120
121
|
Object.defineProperty(exports, "SitecoreProvider", { enumerable: true, get: function () { return react_2.SitecoreProvider; } });
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
4
|
exports.LocaleMiddleware = void 0;
|
|
14
5
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
@@ -27,7 +18,7 @@ class LocaleMiddleware extends middleware_1.MiddlewareBase {
|
|
|
27
18
|
constructor(config) {
|
|
28
19
|
super(config);
|
|
29
20
|
this.config = config;
|
|
30
|
-
this.handle = (req, res) =>
|
|
21
|
+
this.handle = async (req, res) => {
|
|
31
22
|
try {
|
|
32
23
|
const { pathname } = req.nextUrl;
|
|
33
24
|
const localeFromPath = this.getLocaleFromPath(pathname);
|
|
@@ -64,7 +55,7 @@ class LocaleMiddleware extends middleware_1.MiddlewareBase {
|
|
|
64
55
|
console.log(error);
|
|
65
56
|
return res;
|
|
66
57
|
}
|
|
67
|
-
}
|
|
58
|
+
};
|
|
68
59
|
}
|
|
69
60
|
disabled(req, res) {
|
|
70
61
|
// ignore files
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.defineMiddleware = exports.MiddlewareBase = exports.Middleware = exports.LOCALE_HEADER_NAME = exports.REWRITE_HEADER_NAME = void 0;
|
|
13
4
|
const site_1 = require("@sitecore-content-sdk/core/site");
|
|
@@ -182,11 +173,11 @@ const defineMiddleware = (...middlewares) => {
|
|
|
182
173
|
* @param {NextFetchEvent} ev fetch event
|
|
183
174
|
* @param {NextResponse} [res] response
|
|
184
175
|
*/
|
|
185
|
-
exec: (req, ev, res) =>
|
|
176
|
+
exec: async (req, ev, res) => {
|
|
186
177
|
const response = res || server_1.NextResponse.next();
|
|
187
178
|
core_1.debug.common('middleware start');
|
|
188
179
|
const start = Date.now();
|
|
189
|
-
const middlewareResponse =
|
|
180
|
+
const middlewareResponse = await middlewares.reduce((p, middleware) => p.then((res) => {
|
|
190
181
|
// Short-circuit the remaining middlewares once a previous one
|
|
191
182
|
// denied the request (e.g. PreviewMiddleware returning 403).
|
|
192
183
|
if (res.status === 403)
|
|
@@ -195,7 +186,7 @@ const defineMiddleware = (...middlewares) => {
|
|
|
195
186
|
}), Promise.resolve(response));
|
|
196
187
|
core_1.debug.common('middleware end in %dms', Date.now() - start);
|
|
197
188
|
return middlewareResponse;
|
|
198
|
-
}
|
|
189
|
+
},
|
|
199
190
|
};
|
|
200
191
|
};
|
|
201
192
|
exports.defineMiddleware = defineMiddleware;
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
4
|
exports.MultisiteMiddleware = void 0;
|
|
14
5
|
const site_1 = require("@sitecore-content-sdk/core/site");
|
|
@@ -26,7 +17,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
|
|
|
26
17
|
constructor(config) {
|
|
27
18
|
super(config);
|
|
28
19
|
this.config = config;
|
|
29
|
-
this.handle = (req, res) =>
|
|
20
|
+
this.handle = async (req, res) => {
|
|
30
21
|
var _a, _b, _c;
|
|
31
22
|
try {
|
|
32
23
|
// Path can be rewritten by previously executed middleware
|
|
@@ -104,7 +95,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
|
|
|
104
95
|
console.log(error);
|
|
105
96
|
return res;
|
|
106
97
|
}
|
|
107
|
-
}
|
|
98
|
+
};
|
|
108
99
|
}
|
|
109
100
|
disabled(req, res) {
|
|
110
101
|
// ignore files
|