@sitecore-content-sdk/nextjs 0.1.0-beta.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/LICENSE.txt +202 -0
- package/README.md +10 -0
- package/dist/cjs/ComponentBuilder.js +63 -0
- package/dist/cjs/components/BYOCWrapper.js +41 -0
- package/dist/cjs/components/ComponentPropsContext.js +57 -0
- package/dist/cjs/components/FEaaSWrapper.js +43 -0
- package/dist/cjs/components/Link.js +87 -0
- package/dist/cjs/components/NextImage.js +82 -0
- package/dist/cjs/components/Placeholder.js +49 -0
- package/dist/cjs/components/RichText.js +95 -0
- package/dist/cjs/editing/constants.js +10 -0
- package/dist/cjs/editing/editing-config-middleware.js +62 -0
- package/dist/cjs/editing/editing-render-middleware.js +182 -0
- package/dist/cjs/editing/feaas-render-middleware.js +101 -0
- package/dist/cjs/editing/index.js +16 -0
- package/dist/cjs/editing/render-middleware.js +43 -0
- package/dist/cjs/graphql/index.js +7 -0
- package/dist/cjs/index.js +119 -0
- package/dist/cjs/middleware/index.js +13 -0
- package/dist/cjs/middleware/middleware.js +97 -0
- package/dist/cjs/middleware/multisite-middleware.js +93 -0
- package/dist/cjs/middleware/personalize-middleware.js +231 -0
- package/dist/cjs/middleware/redirects-middleware.js +264 -0
- package/dist/cjs/monitoring/healthcheck-middleware.js +30 -0
- package/dist/cjs/monitoring/index.js +5 -0
- package/dist/cjs/services/base-graphql-sitemap-service.js +206 -0
- package/dist/cjs/services/component-props-service.js +167 -0
- package/dist/cjs/services/graphql-sitemap-service.js +64 -0
- package/dist/cjs/services/mutisite-graphql-sitemap-service.js +81 -0
- package/dist/cjs/sharedTypes/component-props.js +2 -0
- package/dist/cjs/sharedTypes/module-factory.js +2 -0
- package/dist/cjs/site/index.js +5 -0
- package/dist/cjs/utils/index.js +11 -0
- package/dist/cjs/utils/utils.js +42 -0
- package/dist/esm/ComponentBuilder.js +59 -0
- package/dist/esm/components/BYOCWrapper.js +36 -0
- package/dist/esm/components/ComponentPropsContext.js +19 -0
- package/dist/esm/components/FEaaSWrapper.js +38 -0
- package/dist/esm/components/Link.js +48 -0
- package/dist/esm/components/NextImage.js +76 -0
- package/dist/esm/components/Placeholder.js +12 -0
- package/dist/esm/components/RichText.js +55 -0
- package/dist/esm/editing/constants.js +7 -0
- package/dist/esm/editing/editing-config-middleware.js +58 -0
- package/dist/esm/editing/editing-render-middleware.js +177 -0
- package/dist/esm/editing/feaas-render-middleware.js +97 -0
- package/dist/esm/editing/index.js +5 -0
- package/dist/esm/editing/render-middleware.js +39 -0
- package/dist/esm/graphql/index.js +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/middleware/index.js +5 -0
- package/dist/esm/middleware/middleware.js +93 -0
- package/dist/esm/middleware/multisite-middleware.js +89 -0
- package/dist/esm/middleware/personalize-middleware.js +227 -0
- package/dist/esm/middleware/redirects-middleware.js +257 -0
- package/dist/esm/monitoring/healthcheck-middleware.js +26 -0
- package/dist/esm/monitoring/index.js +1 -0
- package/dist/esm/services/base-graphql-sitemap-service.js +201 -0
- package/dist/esm/services/component-props-service.js +160 -0
- package/dist/esm/services/graphql-sitemap-service.js +59 -0
- package/dist/esm/services/mutisite-graphql-sitemap-service.js +77 -0
- package/dist/esm/sharedTypes/component-props.js +1 -0
- package/dist/esm/sharedTypes/module-factory.js +1 -0
- package/dist/esm/site/index.js +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/utils.js +37 -0
- package/editing.d.ts +1 -0
- package/editing.js +1 -0
- package/global.d.ts +21 -0
- package/graphql.d.ts +1 -0
- package/graphql.js +1 -0
- package/middleware.d.ts +1 -0
- package/middleware.js +1 -0
- package/monitoring.d.ts +1 -0
- package/monitoring.js +1 -0
- package/package.json +92 -0
- package/site.d.ts +1 -0
- package/site.js +1 -0
- package/types/ComponentBuilder.d.ts +59 -0
- package/types/components/BYOCWrapper.d.ts +20 -0
- package/types/components/ComponentPropsContext.d.ts +18 -0
- package/types/components/FEaaSWrapper.d.ts +22 -0
- package/types/components/Link.d.ts +10 -0
- package/types/components/NextImage.d.ts +6 -0
- package/types/components/Placeholder.d.ts +8 -0
- package/types/components/RichText.d.ts +32 -0
- package/types/editing/constants.d.ts +7 -0
- package/types/editing/editing-config-middleware.d.ts +29 -0
- package/types/editing/editing-render-middleware.d.ts +79 -0
- package/types/editing/feaas-render-middleware.d.ts +32 -0
- package/types/editing/index.d.ts +5 -0
- package/types/editing/render-middleware.d.ts +24 -0
- package/types/graphql/index.d.ts +1 -0
- package/types/index.d.ts +24 -0
- package/types/middleware/index.d.ts +5 -0
- package/types/middleware/middleware.d.ts +82 -0
- package/types/middleware/multisite-middleware.d.ts +39 -0
- package/types/middleware/personalize-middleware.d.ts +102 -0
- package/types/middleware/redirects-middleware.d.ts +57 -0
- package/types/monitoring/healthcheck-middleware.d.ts +12 -0
- package/types/monitoring/index.d.ts +1 -0
- package/types/services/base-graphql-sitemap-service.d.ts +148 -0
- package/types/services/component-props-service.d.ts +81 -0
- package/types/services/graphql-sitemap-service.d.ts +51 -0
- package/types/services/mutisite-graphql-sitemap-service.d.ts +42 -0
- package/types/sharedTypes/component-props.d.ts +26 -0
- package/types/sharedTypes/module-factory.d.ts +32 -0
- package/types/site/index.d.ts +1 -0
- package/types/utils/index.d.ts +3 -0
- package/types/utils/utils.d.ts +8 -0
- package/utils.d.ts +1 -0
- package/utils.js +1 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
36
|
+
var t = {};
|
|
37
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
38
|
+
t[p] = s[p];
|
|
39
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
40
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
41
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
42
|
+
t[p[i]] = s[p[i]];
|
|
43
|
+
}
|
|
44
|
+
return t;
|
|
45
|
+
};
|
|
46
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.RichText = void 0;
|
|
51
|
+
const react_1 = __importStar(require("react"));
|
|
52
|
+
const prop_types_1 = __importDefault(require("prop-types"));
|
|
53
|
+
const router_1 = require("next/router");
|
|
54
|
+
const react_2 = require("@sitecore-content-sdk/react");
|
|
55
|
+
const prefetched = {};
|
|
56
|
+
const RichText = (props) => {
|
|
57
|
+
const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
|
|
58
|
+
const hasText = props.field && props.field.value;
|
|
59
|
+
const isEditing = editable && props.field && props.field.metadata;
|
|
60
|
+
const router = (0, router_1.useRouter)();
|
|
61
|
+
const richTextRef = (0, react_1.useRef)(null);
|
|
62
|
+
(0, react_1.useEffect)(() => {
|
|
63
|
+
// NOT IN EDIT MODE
|
|
64
|
+
if (hasText && !isEditing) {
|
|
65
|
+
initializeLinks();
|
|
66
|
+
}
|
|
67
|
+
}, [hasText]);
|
|
68
|
+
const routeHandler = (ev) => {
|
|
69
|
+
if (!ev.currentTarget)
|
|
70
|
+
return;
|
|
71
|
+
ev.preventDefault();
|
|
72
|
+
const pathname = ev.currentTarget.href;
|
|
73
|
+
router.push(pathname, pathname, { locale: false });
|
|
74
|
+
};
|
|
75
|
+
const initializeLinks = () => {
|
|
76
|
+
const node = richTextRef.current;
|
|
77
|
+
// selects all links that start with '/'
|
|
78
|
+
const internalLinks = node && node.querySelectorAll(internalLinksSelector);
|
|
79
|
+
if (!internalLinks || !internalLinks.length)
|
|
80
|
+
return;
|
|
81
|
+
internalLinks.forEach((link) => {
|
|
82
|
+
if (link.target === '_blank')
|
|
83
|
+
return;
|
|
84
|
+
if (prefetchLinks && !prefetched[link.pathname]) {
|
|
85
|
+
router.prefetch(link.pathname, undefined, { locale: false });
|
|
86
|
+
prefetched[link.pathname] = true;
|
|
87
|
+
}
|
|
88
|
+
link.addEventListener('click', routeHandler, false);
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
return react_1.default.createElement(react_2.RichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
|
|
92
|
+
};
|
|
93
|
+
exports.RichText = RichText;
|
|
94
|
+
exports.RichText.propTypes = Object.assign({ internalLinksSelector: prop_types_1.default.string }, react_2.RichTextPropTypes);
|
|
95
|
+
exports.RichText.displayName = 'NextRichText';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EDITING_PASS_THROUGH_HEADERS = exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = void 0;
|
|
4
|
+
exports.QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
|
|
5
|
+
exports.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
|
|
6
|
+
/**
|
|
7
|
+
* Headers that should be passed along to (Editing Chromes handler) SSR request.
|
|
8
|
+
* Note these are in lowercase format to match expected `IncomingHttpHeaders`.
|
|
9
|
+
*/
|
|
10
|
+
exports.EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EditingConfigMiddleware = void 0;
|
|
13
|
+
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
14
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
15
|
+
const utils_1 = require("@sitecore-content-sdk/core/utils");
|
|
16
|
+
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
17
|
+
const utils_2 = require("../utils/utils");
|
|
18
|
+
/**
|
|
19
|
+
* Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
|
|
20
|
+
* provides configuration information to determine feature compatibility on Pages side.
|
|
21
|
+
*/
|
|
22
|
+
class EditingConfigMiddleware {
|
|
23
|
+
/**
|
|
24
|
+
* @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
|
|
25
|
+
*/
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.config = config;
|
|
28
|
+
this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const secret = _req.query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
30
|
+
if (!(0, utils_1.enforceCors)(_req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
31
|
+
core_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
32
|
+
return res.status(401).json({ message: 'Invalid origin' });
|
|
33
|
+
}
|
|
34
|
+
if (secret !== (0, utils_2.getJssEditingSecret)()) {
|
|
35
|
+
core_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_2.getJssEditingSecret)());
|
|
36
|
+
return res.status(401).json({ message: 'Missing or invalid editing secret' });
|
|
37
|
+
}
|
|
38
|
+
// Handle preflight request
|
|
39
|
+
if (_req.method === 'OPTIONS') {
|
|
40
|
+
core_1.debug.editing('preflight request');
|
|
41
|
+
// CORS headers are set by enforceCors
|
|
42
|
+
return res.status(204).send(null);
|
|
43
|
+
}
|
|
44
|
+
const components = Array.isArray(this.config.components)
|
|
45
|
+
? this.config.components
|
|
46
|
+
: Array.from(this.config.components.keys());
|
|
47
|
+
return res.status(200).json({
|
|
48
|
+
components,
|
|
49
|
+
packages: this.config.metadata.packages,
|
|
50
|
+
editMode: layout_1.EditMode.Metadata,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets the Next.js API route handler
|
|
56
|
+
* @returns middleware handler
|
|
57
|
+
*/
|
|
58
|
+
getHandler() {
|
|
59
|
+
return this.handler;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.EditingConfigMiddleware = EditingConfigMiddleware;
|
|
@@ -0,0 +1,182 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EditingRenderMiddleware = exports.isComponentLibraryPreviewData = void 0;
|
|
13
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
14
|
+
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
15
|
+
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
16
|
+
const utils_1 = require("../utils/utils");
|
|
17
|
+
const render_middleware_1 = require("./render-middleware");
|
|
18
|
+
const utils_2 = require("@sitecore-content-sdk/core/utils");
|
|
19
|
+
const personalize_1 = require("@sitecore-content-sdk/core/personalize");
|
|
20
|
+
/**
|
|
21
|
+
* Type guard for Component Library mode
|
|
22
|
+
* @param {object} data preview data to check
|
|
23
|
+
* @returns true if the data is EditingPreviewData
|
|
24
|
+
* @see EditingPreviewData
|
|
25
|
+
*/
|
|
26
|
+
const isComponentLibraryPreviewData = (data) => {
|
|
27
|
+
return (typeof data === 'object' &&
|
|
28
|
+
data !== null &&
|
|
29
|
+
'mode' in data &&
|
|
30
|
+
data.mode === 'library');
|
|
31
|
+
};
|
|
32
|
+
exports.isComponentLibraryPreviewData = isComponentLibraryPreviewData;
|
|
33
|
+
/**
|
|
34
|
+
* Middleware / handler for use in the editing render Next.js API route (e.g. '/api/editing/render')
|
|
35
|
+
* which is required for Sitecore editing support.
|
|
36
|
+
*/
|
|
37
|
+
class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
38
|
+
/**
|
|
39
|
+
* @param {EditingRenderMiddlewareConfig} [config] Editing render middleware config
|
|
40
|
+
*/
|
|
41
|
+
constructor(config) {
|
|
42
|
+
super();
|
|
43
|
+
this.config = config;
|
|
44
|
+
this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
var _a, _b, _c, _d, _e;
|
|
46
|
+
const { query, body, method, headers } = req;
|
|
47
|
+
core_1.debug.editing('editing render middleware start: %o', {
|
|
48
|
+
method,
|
|
49
|
+
query,
|
|
50
|
+
headers,
|
|
51
|
+
body,
|
|
52
|
+
});
|
|
53
|
+
if (!(0, utils_2.enforceCors)(req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
54
|
+
core_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
55
|
+
return res.status(401).json({
|
|
56
|
+
html: `<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} not allowed</body></html>`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Validate secret
|
|
60
|
+
const secret = (_b = query[editing_1.QUERY_PARAM_EDITING_SECRET]) !== null && _b !== void 0 ? _b : body === null || body === void 0 ? void 0 : body.jssEditingSecret;
|
|
61
|
+
if (secret !== (0, utils_1.getJssEditingSecret)()) {
|
|
62
|
+
core_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_1.getJssEditingSecret)());
|
|
63
|
+
return res.status(401).json({
|
|
64
|
+
html: '<html><body>Missing or invalid secret</body></html>',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (req.method === 'OPTIONS') {
|
|
68
|
+
core_1.debug.editing('preflight request');
|
|
69
|
+
// CORS headers are set by enforceCors
|
|
70
|
+
return res.status(204).send(null);
|
|
71
|
+
}
|
|
72
|
+
if (req.method !== 'GET') {
|
|
73
|
+
core_1.debug.editing('invalid method - sent %s expected GET', req.method);
|
|
74
|
+
res.setHeader('Allow', 'GET');
|
|
75
|
+
return res.status(405).json({
|
|
76
|
+
html: `<html><body>Invalid request method '${req.method}'</body></html>`,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const startTimestamp = Date.now();
|
|
80
|
+
const mode = query.mode;
|
|
81
|
+
const defaultRequiredParams = ['sc_site', 'sc_itemid', 'sc_lang', 'route', 'mode'];
|
|
82
|
+
const componentRequiredParams = [
|
|
83
|
+
'sc_site',
|
|
84
|
+
'sc_itemid',
|
|
85
|
+
'sc_renderingId',
|
|
86
|
+
'sc_uid',
|
|
87
|
+
'sc_lang',
|
|
88
|
+
'mode',
|
|
89
|
+
];
|
|
90
|
+
const requiredQueryParams = mode === 'library' ? componentRequiredParams : defaultRequiredParams;
|
|
91
|
+
const missingQueryParams = requiredQueryParams.filter((param) => !query[param]);
|
|
92
|
+
// Validate query parameters
|
|
93
|
+
if (missingQueryParams.length) {
|
|
94
|
+
core_1.debug.editing('missing required query parameters: %o', missingQueryParams);
|
|
95
|
+
return res.status(400).json({
|
|
96
|
+
html: `<html><body>Missing required query parameters: ${missingQueryParams.join(', ')}</body></html>`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (mode === 'library') {
|
|
100
|
+
// dedicated route and layout to SSR component library
|
|
101
|
+
query.route = '/component-library/render';
|
|
102
|
+
res.setPreviewData({
|
|
103
|
+
itemId: query.sc_itemid,
|
|
104
|
+
componentUid: query.sc_uid,
|
|
105
|
+
renderingId: query.sc_renderingId,
|
|
106
|
+
language: query.sc_lang,
|
|
107
|
+
site: query.sc_site,
|
|
108
|
+
pageState: layout_1.LayoutServicePageState.Normal,
|
|
109
|
+
mode: 'library',
|
|
110
|
+
dataSourceId: query.sc_datasourceId,
|
|
111
|
+
version: query.sc_version,
|
|
112
|
+
}, {
|
|
113
|
+
maxAge: 3,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
res.setPreviewData({
|
|
118
|
+
site: query.sc_site,
|
|
119
|
+
itemId: query.sc_itemid,
|
|
120
|
+
language: query.sc_lang,
|
|
121
|
+
// for sc_variantId we may employ multiple variants (page-layout + component level)
|
|
122
|
+
variantIds: ((_c = query.sc_variant) === null || _c === void 0 ? void 0 : _c.split(',')) || [personalize_1.DEFAULT_VARIANT],
|
|
123
|
+
version: query.sc_version,
|
|
124
|
+
pageState: query.mode,
|
|
125
|
+
layoutKind: query.sc_layoutKind,
|
|
126
|
+
},
|
|
127
|
+
// Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
|
|
128
|
+
{
|
|
129
|
+
maxAge: 3,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Cookies with the SameSite=Lax policy set by Next.js setPreviewData function causes CORS issue
|
|
133
|
+
// when Next.js preview mode is activated, resulting the page to render in normal mode instead.
|
|
134
|
+
// By replacing it with "SameSite=None; Secure", we ensure cookies are correctly sent with
|
|
135
|
+
// cross-origin requests, allowing the page to be editable. This change should be reverted
|
|
136
|
+
// once vercel addresses this open issue: https://github.com/vercel/next.js/issues/49927
|
|
137
|
+
const setCookieHeader = res.getHeader('Set-Cookie');
|
|
138
|
+
if (setCookieHeader && Array.isArray(setCookieHeader)) {
|
|
139
|
+
const modifiedCookies = setCookieHeader.map((cookie) => {
|
|
140
|
+
const cookieIdentifiers = {
|
|
141
|
+
__prerender_bypass: /^__prerender_bypass=/,
|
|
142
|
+
__next_preview_data: /^__next_preview_data=/,
|
|
143
|
+
};
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
145
|
+
for (const [_, regex] of Object.entries(cookieIdentifiers)) {
|
|
146
|
+
if (cookie.match(regex)) {
|
|
147
|
+
return cookie.replace(/SameSite=Lax/, 'SameSite=None; Secure');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return cookie;
|
|
151
|
+
});
|
|
152
|
+
res.setHeader('Set-Cookie', modifiedCookies);
|
|
153
|
+
}
|
|
154
|
+
const route = ((_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.resolvePageUrl) === null || _e === void 0 ? void 0 : _e.call(_d, query.route)) || query.route;
|
|
155
|
+
core_1.debug.editing('editing render middleware end in %dms: redirect %o', Date.now() - startTimestamp, {
|
|
156
|
+
status: 307,
|
|
157
|
+
route,
|
|
158
|
+
});
|
|
159
|
+
// Restrict the page to be rendered only within the allowed origins
|
|
160
|
+
res.setHeader('Content-Security-Policy', this.getSCPHeader());
|
|
161
|
+
res.redirect(route);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Gets the Next.js API route handler
|
|
166
|
+
* @returns route handler
|
|
167
|
+
*/
|
|
168
|
+
getHandler() {
|
|
169
|
+
return this.handler;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Gets the Content-Security-Policy header value
|
|
173
|
+
* @returns Content-Security-Policy header value
|
|
174
|
+
*/
|
|
175
|
+
getSCPHeader() {
|
|
176
|
+
return `frame-ancestors 'self' ${[
|
|
177
|
+
...(0, utils_2.getAllowedOriginsFromEnv)(),
|
|
178
|
+
...editing_1.EDITING_ALLOWED_ORIGINS,
|
|
179
|
+
].join(' ')}`;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.EditingRenderMiddleware = EditingRenderMiddleware;
|
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FEAASRenderMiddleware = void 0;
|
|
13
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
14
|
+
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
15
|
+
const utils_1 = require("../utils/utils");
|
|
16
|
+
const render_middleware_1 = require("./render-middleware");
|
|
17
|
+
const utils_2 = require("@sitecore-content-sdk/core/utils");
|
|
18
|
+
/**
|
|
19
|
+
* Middleware / handler for use in the feaas render Next.js API route (e.g. '/api/editing/feaas/render')
|
|
20
|
+
* which is required for Sitecore editing support.
|
|
21
|
+
*/
|
|
22
|
+
class FEAASRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
|
|
23
|
+
/**
|
|
24
|
+
* @param {EditingRenderMiddlewareConfig} [config] Editing render middleware config
|
|
25
|
+
*/
|
|
26
|
+
constructor(config) {
|
|
27
|
+
var _a;
|
|
28
|
+
super();
|
|
29
|
+
this.config = config;
|
|
30
|
+
this.defaultPageUrl = '/feaas/render';
|
|
31
|
+
this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
var _a;
|
|
33
|
+
const { method, query, headers } = req;
|
|
34
|
+
const startTimestamp = Date.now();
|
|
35
|
+
core_1.debug.editing('feaas render middleware start: %o', {
|
|
36
|
+
method,
|
|
37
|
+
query,
|
|
38
|
+
headers,
|
|
39
|
+
});
|
|
40
|
+
if (!(0, utils_2.enforceCors)(req, res, editing_1.EDITING_ALLOWED_ORIGINS)) {
|
|
41
|
+
core_1.debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
|
|
42
|
+
return res
|
|
43
|
+
.status(401)
|
|
44
|
+
.send(`<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} are not allowed</body></html>`);
|
|
45
|
+
}
|
|
46
|
+
if (!method || !['GET', 'OPTIONS'].includes(method)) {
|
|
47
|
+
core_1.debug.editing('invalid method - sent %s expected GET,OPTIONS', method);
|
|
48
|
+
res.setHeader('Allow', 'GET, OPTIONS');
|
|
49
|
+
return res.status(405).send(`<html><body>Invalid request method '${method}'</body></html>`);
|
|
50
|
+
}
|
|
51
|
+
// Validate secret
|
|
52
|
+
const secret = query[editing_1.QUERY_PARAM_EDITING_SECRET];
|
|
53
|
+
if (secret !== (0, utils_1.getJssEditingSecret)()) {
|
|
54
|
+
core_1.debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, (0, utils_1.getJssEditingSecret)());
|
|
55
|
+
return res.status(401).send('<html><body>Missing or invalid secret</body></html>');
|
|
56
|
+
}
|
|
57
|
+
// Handle preflight request
|
|
58
|
+
if (method === 'OPTIONS') {
|
|
59
|
+
core_1.debug.editing('preflight request');
|
|
60
|
+
// CORS headers are set by enforceCors
|
|
61
|
+
return res.status(204).send(null);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
// Get query string parameters to propagate on subsequent requests (e.g. for deployment protection bypass)
|
|
65
|
+
const params = this.getQueryParamsForPropagation(query);
|
|
66
|
+
// Enable Next.js Preview Mode
|
|
67
|
+
res.setPreviewData({});
|
|
68
|
+
const queryParams = new URLSearchParams();
|
|
69
|
+
for (const key in params) {
|
|
70
|
+
if ({}.hasOwnProperty.call(params, key)) {
|
|
71
|
+
queryParams.append(key, params[key]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Pass "feaasSrc" in case a FEAASComponent is being requested
|
|
75
|
+
if (query.feaasSrc) {
|
|
76
|
+
queryParams.append('feaasSrc', query.feaasSrc);
|
|
77
|
+
}
|
|
78
|
+
const redirectUrl = this.pageUrl + (queryParams.toString() ? `?${queryParams.toString()}` : '');
|
|
79
|
+
core_1.debug.editing('redirecting to page route %s', redirectUrl);
|
|
80
|
+
core_1.debug.editing('feaas render middleware end in %dms', Date.now() - startTimestamp);
|
|
81
|
+
res.redirect(redirectUrl);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const error = err;
|
|
85
|
+
console.info(
|
|
86
|
+
// eslint-disable-next-line quotes
|
|
87
|
+
"Hint: for non-standard server or Next.js route configurations, you may need to override the 'pageUrl' available on the 'FEAASRenderMiddleware' config.");
|
|
88
|
+
res.status(500).send(`<html><body>${error}</body></html>`);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
this.pageUrl = (_a = config === null || config === void 0 ? void 0 : config.pageUrl) !== null && _a !== void 0 ? _a : this.defaultPageUrl;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Gets the Next.js API route handler
|
|
95
|
+
* @returns route handler
|
|
96
|
+
*/
|
|
97
|
+
getHandler() {
|
|
98
|
+
return this.handler;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.FEAASRenderMiddleware = FEAASRenderMiddleware;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.EditingConfigMiddleware = exports.FEAASRenderMiddleware = exports.isComponentLibraryPreviewData = exports.EditingRenderMiddleware = exports.GraphQLEditingService = void 0;
|
|
4
|
+
var editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
5
|
+
Object.defineProperty(exports, "GraphQLEditingService", { enumerable: true, get: function () { return editing_1.GraphQLEditingService; } });
|
|
6
|
+
var editing_render_middleware_1 = require("./editing-render-middleware");
|
|
7
|
+
Object.defineProperty(exports, "EditingRenderMiddleware", { enumerable: true, get: function () { return editing_render_middleware_1.EditingRenderMiddleware; } });
|
|
8
|
+
Object.defineProperty(exports, "isComponentLibraryPreviewData", { enumerable: true, get: function () { return editing_render_middleware_1.isComponentLibraryPreviewData; } });
|
|
9
|
+
var feaas_render_middleware_1 = require("./feaas-render-middleware");
|
|
10
|
+
Object.defineProperty(exports, "FEAASRenderMiddleware", { enumerable: true, get: function () { return feaas_render_middleware_1.FEAASRenderMiddleware; } });
|
|
11
|
+
var editing_config_middleware_1 = require("./editing-config-middleware");
|
|
12
|
+
Object.defineProperty(exports, "EditingConfigMiddleware", { enumerable: true, get: function () { return editing_config_middleware_1.EditingConfigMiddleware; } });
|
|
13
|
+
var layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
14
|
+
Object.defineProperty(exports, "RenderingType", { enumerable: true, get: function () { return layout_1.RenderingType; } });
|
|
15
|
+
Object.defineProperty(exports, "EDITING_COMPONENT_PLACEHOLDER", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_PLACEHOLDER; } });
|
|
16
|
+
Object.defineProperty(exports, "EDITING_COMPONENT_ID", { enumerable: true, get: function () { return layout_1.EDITING_COMPONENT_ID; } });
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderMiddlewareBase = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
/**
|
|
6
|
+
* Base class for middleware that handles pages and components rendering in Sitecore Editors.
|
|
7
|
+
*/
|
|
8
|
+
class RenderMiddlewareBase {
|
|
9
|
+
constructor() {
|
|
10
|
+
/**
|
|
11
|
+
* Gets query parameters that should be passed along to subsequent requests (e.g. for deployment protection bypass)
|
|
12
|
+
* @param {object} query Object of query parameters from incoming URL
|
|
13
|
+
* @returns Object of approved query parameters
|
|
14
|
+
*/
|
|
15
|
+
this.getQueryParamsForPropagation = (query) => {
|
|
16
|
+
const params = {};
|
|
17
|
+
if (query[constants_1.QUERY_PARAM_VERCEL_PROTECTION_BYPASS]) {
|
|
18
|
+
params[constants_1.QUERY_PARAM_VERCEL_PROTECTION_BYPASS] = query[constants_1.QUERY_PARAM_VERCEL_PROTECTION_BYPASS];
|
|
19
|
+
}
|
|
20
|
+
if (query[constants_1.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE]) {
|
|
21
|
+
params[constants_1.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE] = query[constants_1.QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE];
|
|
22
|
+
}
|
|
23
|
+
return params;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Get headers that should be passed along to subsequent requests
|
|
27
|
+
* @param {IncomingHttpHeaders} headers Incoming HTTP Headers
|
|
28
|
+
* @returns Object of approved headers
|
|
29
|
+
*/
|
|
30
|
+
this.getHeadersForPropagation = (headers) => {
|
|
31
|
+
// Filter and normalize headers
|
|
32
|
+
const filteredHeaders = constants_1.EDITING_PASS_THROUGH_HEADERS.reduce((acc, header) => {
|
|
33
|
+
const value = headers[header];
|
|
34
|
+
if (value) {
|
|
35
|
+
acc[header] = Array.isArray(value) ? value.join(', ') : value;
|
|
36
|
+
}
|
|
37
|
+
return acc;
|
|
38
|
+
}, {});
|
|
39
|
+
return filteredHeaders;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.RenderMiddlewareBase = RenderMiddlewareBase;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEdgeProxyContentUrl = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = void 0;
|
|
4
|
+
var graphql_1 = require("@sitecore-content-sdk/core/graphql");
|
|
5
|
+
Object.defineProperty(exports, "DefaultRetryStrategy", { enumerable: true, get: function () { return graphql_1.DefaultRetryStrategy; } });
|
|
6
|
+
Object.defineProperty(exports, "GraphQLRequestClient", { enumerable: true, get: function () { return graphql_1.GraphQLRequestClient; } });
|
|
7
|
+
Object.defineProperty(exports, "getEdgeProxyContentUrl", { enumerable: true, get: function () { return graphql_1.getEdgeProxyContentUrl; } });
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ComponentLibraryLayout = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.Image = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.GraphQLDictionaryService = exports.mediaApi = exports.RestComponentLayoutService = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.MemoryCacheClient = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.constants = void 0;
|
|
37
|
+
exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = void 0;
|
|
38
|
+
var core_1 = require("@sitecore-content-sdk/core");
|
|
39
|
+
Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return core_1.constants; } });
|
|
40
|
+
// generic data access
|
|
41
|
+
Object.defineProperty(exports, "NativeDataFetcher", { enumerable: true, get: function () { return core_1.NativeDataFetcher; } });
|
|
42
|
+
Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return core_1.enableDebug; } });
|
|
43
|
+
Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return core_1.debug; } });
|
|
44
|
+
Object.defineProperty(exports, "MemoryCacheClient", { enumerable: true, get: function () { return core_1.MemoryCacheClient; } });
|
|
45
|
+
var layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
46
|
+
Object.defineProperty(exports, "LayoutServicePageState", { enumerable: true, get: function () { return layout_1.LayoutServicePageState; } });
|
|
47
|
+
Object.defineProperty(exports, "GraphQLLayoutService", { enumerable: true, get: function () { return layout_1.GraphQLLayoutService; } });
|
|
48
|
+
Object.defineProperty(exports, "getChildPlaceholder", { enumerable: true, get: function () { return layout_1.getChildPlaceholder; } });
|
|
49
|
+
Object.defineProperty(exports, "getFieldValue", { enumerable: true, get: function () { return layout_1.getFieldValue; } });
|
|
50
|
+
Object.defineProperty(exports, "getContentStylesheetLink", { enumerable: true, get: function () { return layout_1.getContentStylesheetLink; } });
|
|
51
|
+
Object.defineProperty(exports, "EditMode", { enumerable: true, get: function () { return layout_1.EditMode; } });
|
|
52
|
+
var editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
53
|
+
Object.defineProperty(exports, "RestComponentLayoutService", { enumerable: true, get: function () { return editing_1.RestComponentLayoutService; } });
|
|
54
|
+
var media_1 = require("@sitecore-content-sdk/core/media");
|
|
55
|
+
Object.defineProperty(exports, "mediaApi", { enumerable: true, get: function () { return media_1.mediaApi; } });
|
|
56
|
+
var i18n_1 = require("@sitecore-content-sdk/core/i18n");
|
|
57
|
+
Object.defineProperty(exports, "GraphQLDictionaryService", { enumerable: true, get: function () { return i18n_1.GraphQLDictionaryService; } });
|
|
58
|
+
var personalize_1 = require("@sitecore-content-sdk/core/personalize");
|
|
59
|
+
Object.defineProperty(exports, "personalizeLayout", { enumerable: true, get: function () { return personalize_1.personalizeLayout; } });
|
|
60
|
+
Object.defineProperty(exports, "getPersonalizedRewrite", { enumerable: true, get: function () { return personalize_1.getPersonalizedRewrite; } });
|
|
61
|
+
Object.defineProperty(exports, "getPersonalizedRewriteData", { enumerable: true, get: function () { return personalize_1.getPersonalizedRewriteData; } });
|
|
62
|
+
Object.defineProperty(exports, "getGroomedVariantIds", { enumerable: true, get: function () { return personalize_1.getGroomedVariantIds; } });
|
|
63
|
+
Object.defineProperty(exports, "normalizePersonalizedRewrite", { enumerable: true, get: function () { return personalize_1.normalizePersonalizedRewrite; } });
|
|
64
|
+
Object.defineProperty(exports, "CdpHelper", { enumerable: true, get: function () { return personalize_1.CdpHelper; } });
|
|
65
|
+
var component_props_service_1 = require("./services/component-props-service");
|
|
66
|
+
Object.defineProperty(exports, "ComponentPropsService", { enumerable: true, get: function () { return component_props_service_1.ComponentPropsService; } });
|
|
67
|
+
var graphql_sitemap_service_1 = require("./services/graphql-sitemap-service");
|
|
68
|
+
Object.defineProperty(exports, "GraphQLSitemapService", { enumerable: true, get: function () { return graphql_sitemap_service_1.GraphQLSitemapService; } });
|
|
69
|
+
var mutisite_graphql_sitemap_service_1 = require("./services/mutisite-graphql-sitemap-service");
|
|
70
|
+
Object.defineProperty(exports, "MultisiteGraphQLSitemapService", { enumerable: true, get: function () { return mutisite_graphql_sitemap_service_1.MultisiteGraphQLSitemapService; } });
|
|
71
|
+
var site_1 = require("@sitecore-content-sdk/core/site");
|
|
72
|
+
Object.defineProperty(exports, "GraphQLSitemapXmlService", { enumerable: true, get: function () { return site_1.GraphQLSitemapXmlService; } });
|
|
73
|
+
Object.defineProperty(exports, "GraphQLErrorPagesService", { enumerable: true, get: function () { return site_1.GraphQLErrorPagesService; } });
|
|
74
|
+
Object.defineProperty(exports, "GraphQLRobotsService", { enumerable: true, get: function () { return site_1.GraphQLRobotsService; } });
|
|
75
|
+
Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_1.SiteResolver; } });
|
|
76
|
+
Object.defineProperty(exports, "GraphQLSiteInfoService", { enumerable: true, get: function () { return site_1.GraphQLSiteInfoService; } });
|
|
77
|
+
Object.defineProperty(exports, "getSiteRewrite", { enumerable: true, get: function () { return site_1.getSiteRewrite; } });
|
|
78
|
+
Object.defineProperty(exports, "getSiteRewriteData", { enumerable: true, get: function () { return site_1.getSiteRewriteData; } });
|
|
79
|
+
Object.defineProperty(exports, "normalizeSiteRewrite", { enumerable: true, get: function () { return site_1.normalizeSiteRewrite; } });
|
|
80
|
+
var ComponentPropsContext_1 = require("./components/ComponentPropsContext");
|
|
81
|
+
Object.defineProperty(exports, "ComponentPropsReactContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsReactContext; } });
|
|
82
|
+
Object.defineProperty(exports, "ComponentPropsContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsContext; } });
|
|
83
|
+
Object.defineProperty(exports, "useComponentProps", { enumerable: true, get: function () { return ComponentPropsContext_1.useComponentProps; } });
|
|
84
|
+
var Link_1 = require("./components/Link");
|
|
85
|
+
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return Link_1.Link; } });
|
|
86
|
+
var RichText_1 = require("./components/RichText");
|
|
87
|
+
Object.defineProperty(exports, "RichText", { enumerable: true, get: function () { return RichText_1.RichText; } });
|
|
88
|
+
var Placeholder_1 = require("./components/Placeholder");
|
|
89
|
+
Object.defineProperty(exports, "Placeholder", { enumerable: true, get: function () { return Placeholder_1.Placeholder; } });
|
|
90
|
+
var NextImage_1 = require("./components/NextImage");
|
|
91
|
+
Object.defineProperty(exports, "NextImage", { enumerable: true, get: function () { return NextImage_1.NextImage; } });
|
|
92
|
+
const FEaaSWrapper = __importStar(require("./components/FEaaSWrapper"));
|
|
93
|
+
exports.FEaaSWrapper = FEaaSWrapper;
|
|
94
|
+
const BYOCWrapper = __importStar(require("./components/BYOCWrapper"));
|
|
95
|
+
exports.BYOCWrapper = BYOCWrapper;
|
|
96
|
+
var ComponentBuilder_1 = require("./ComponentBuilder");
|
|
97
|
+
Object.defineProperty(exports, "ComponentBuilder", { enumerable: true, get: function () { return ComponentBuilder_1.ComponentBuilder; } });
|
|
98
|
+
var react_1 = require("@sitecore-content-sdk/react");
|
|
99
|
+
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return react_1.Image; } });
|
|
100
|
+
Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return react_1.Text; } });
|
|
101
|
+
Object.defineProperty(exports, "DateField", { enumerable: true, get: function () { return react_1.DateField; } });
|
|
102
|
+
Object.defineProperty(exports, "FEaaSComponent", { enumerable: true, get: function () { return react_1.FEaaSComponent; } });
|
|
103
|
+
Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: true, get: function () { return react_1.fetchFEaaSComponentServerProps; } });
|
|
104
|
+
Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return react_1.BYOCComponent; } });
|
|
105
|
+
Object.defineProperty(exports, "getComponentLibraryStylesheetLinks", { enumerable: true, get: function () { return react_1.getComponentLibraryStylesheetLinks; } });
|
|
106
|
+
Object.defineProperty(exports, "File", { enumerable: true, get: function () { return react_1.File; } });
|
|
107
|
+
Object.defineProperty(exports, "ComponentLibraryLayout", { enumerable: true, get: function () { return react_1.ComponentLibraryLayout; } });
|
|
108
|
+
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return react_1.DefaultEmptyFieldEditingComponentImage; } });
|
|
109
|
+
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return react_1.DefaultEmptyFieldEditingComponentText; } });
|
|
110
|
+
Object.defineProperty(exports, "SitecoreContext", { enumerable: true, get: function () { return react_1.SitecoreContext; } });
|
|
111
|
+
Object.defineProperty(exports, "SitecoreContextReactContext", { enumerable: true, get: function () { return react_1.SitecoreContextReactContext; } });
|
|
112
|
+
Object.defineProperty(exports, "withSitecoreContext", { enumerable: true, get: function () { return react_1.withSitecoreContext; } });
|
|
113
|
+
Object.defineProperty(exports, "useSitecoreContext", { enumerable: true, get: function () { return react_1.useSitecoreContext; } });
|
|
114
|
+
Object.defineProperty(exports, "withEditorChromes", { enumerable: true, get: function () { return react_1.withEditorChromes; } });
|
|
115
|
+
Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return react_1.withPlaceholder; } });
|
|
116
|
+
Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: function () { return react_1.withDatasourceCheck; } });
|
|
117
|
+
Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return react_1.withFieldMetadata; } });
|
|
118
|
+
Object.defineProperty(exports, "withEmptyFieldEditingComponent", { enumerable: true, get: function () { return react_1.withEmptyFieldEditingComponent; } });
|
|
119
|
+
Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: function () { return react_1.EditingScripts; } });
|