@sitecore-content-sdk/nextjs 0.1.0-beta.8 → 0.1.0-canary.0

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.
Files changed (99) hide show
  1. package/README.md +5 -4
  2. package/client.d.ts +1 -0
  3. package/client.js +1 -0
  4. package/component-props-loader.d.ts +1 -0
  5. package/component-props-loader.js +3 -0
  6. package/dist/cjs/client/index.js +10 -0
  7. package/dist/cjs/client/sitecore-nextjs-client.js +117 -0
  8. package/dist/cjs/components/RichText.js +16 -4
  9. package/dist/cjs/config/define-cli-config.js +30 -0
  10. package/dist/cjs/config/index.js +3 -1
  11. package/dist/cjs/editing/editing-config-middleware.js +1 -3
  12. package/dist/cjs/editing/editing-render-middleware.js +13 -9
  13. package/dist/cjs/editing/index.js +2 -2
  14. package/dist/cjs/index.js +16 -18
  15. package/dist/cjs/middleware/index.js +3 -1
  16. package/dist/cjs/middleware/middleware.js +23 -12
  17. package/dist/cjs/middleware/multisite-middleware.js +19 -8
  18. package/dist/cjs/middleware/personalize-middleware.js +3 -3
  19. package/dist/cjs/middleware/redirects-middleware.js +28 -13
  20. package/dist/cjs/middleware/sitemap-middleware.js +47 -0
  21. package/dist/cjs/services/component-props-service.js +41 -50
  22. package/dist/cjs/tools/component-props.loader.js +101 -0
  23. package/dist/cjs/tools/index.js +9 -0
  24. package/dist/cjs/tools/templating/byoc-component.js +75 -0
  25. package/dist/cjs/tools/templating/constants.js +7 -0
  26. package/dist/cjs/tools/templating/default-component.js +54 -0
  27. package/dist/cjs/tools/templating/utils.js +18 -0
  28. package/dist/cjs/utils/index.js +2 -1
  29. package/dist/cjs/utils/utils.js +10 -1
  30. package/dist/esm/client/index.js +2 -0
  31. package/dist/esm/client/sitecore-nextjs-client.js +113 -0
  32. package/dist/esm/components/RichText.js +14 -2
  33. package/dist/esm/config/define-cli-config.js +26 -0
  34. package/dist/esm/config/index.js +1 -0
  35. package/dist/esm/editing/editing-config-middleware.js +1 -3
  36. package/dist/esm/editing/editing-render-middleware.js +11 -7
  37. package/dist/esm/editing/index.js +1 -1
  38. package/dist/esm/index.js +3 -5
  39. package/dist/esm/middleware/index.js +1 -0
  40. package/dist/esm/middleware/middleware.js +23 -12
  41. package/dist/esm/middleware/multisite-middleware.js +20 -9
  42. package/dist/esm/middleware/personalize-middleware.js +4 -4
  43. package/dist/esm/middleware/redirects-middleware.js +29 -14
  44. package/dist/esm/middleware/sitemap-middleware.js +43 -0
  45. package/dist/esm/services/component-props-service.js +41 -50
  46. package/dist/esm/tools/component-props.loader.js +65 -0
  47. package/dist/esm/tools/index.js +1 -0
  48. package/dist/esm/tools/templating/byoc-component.js +69 -0
  49. package/dist/esm/tools/templating/constants.js +4 -0
  50. package/dist/esm/tools/templating/default-component.js +48 -0
  51. package/dist/esm/tools/templating/utils.js +12 -0
  52. package/dist/esm/utils/index.js +1 -1
  53. package/dist/esm/utils/utils.js +8 -0
  54. package/package.json +16 -13
  55. package/tools.d.ts +1 -0
  56. package/tools.js +1 -0
  57. package/types/client/index.d.ts +2 -0
  58. package/types/client/sitecore-nextjs-client.d.ts +44 -0
  59. package/types/components/RichText.d.ts +7 -1
  60. package/types/config/define-cli-config.d.ts +8 -0
  61. package/types/config/index.d.ts +1 -0
  62. package/types/editing/editing-config-middleware.d.ts +4 -2
  63. package/types/editing/editing-render-middleware.d.ts +3 -31
  64. package/types/editing/index.d.ts +1 -1
  65. package/types/index.d.ts +6 -8
  66. package/types/middleware/index.d.ts +1 -0
  67. package/types/middleware/middleware.d.ts +13 -7
  68. package/types/middleware/sitemap-middleware.d.ts +12 -0
  69. package/types/services/component-props-service.d.ts +10 -26
  70. package/types/sharedTypes/component-props.d.ts +18 -0
  71. package/types/sharedTypes/sitecore-page-props.d.ts +5 -0
  72. package/types/tools/component-props.loader.d.ts +7 -0
  73. package/types/tools/index.d.ts +1 -0
  74. package/types/tools/templating/byoc-component.d.ts +2 -0
  75. package/types/tools/templating/constants.d.ts +4 -0
  76. package/types/tools/templating/default-component.d.ts +2 -0
  77. package/types/tools/templating/utils.d.ts +6 -0
  78. package/types/utils/index.d.ts +1 -1
  79. package/types/utils/utils.d.ts +2 -0
  80. package/dist/cjs/ComponentBuilder.js +0 -63
  81. package/dist/cjs/graphql/index.js +0 -7
  82. package/dist/cjs/services/base-graphql-sitemap-service.js +0 -206
  83. package/dist/cjs/services/graphql-sitemap-service.js +0 -64
  84. package/dist/cjs/services/mutisite-graphql-sitemap-service.js +0 -81
  85. package/dist/esm/ComponentBuilder.js +0 -59
  86. package/dist/esm/graphql/index.js +0 -1
  87. package/dist/esm/services/base-graphql-sitemap-service.js +0 -201
  88. package/dist/esm/services/graphql-sitemap-service.js +0 -59
  89. package/dist/esm/services/mutisite-graphql-sitemap-service.js +0 -77
  90. package/graphql.d.ts +0 -1
  91. package/graphql.js +0 -1
  92. package/types/ComponentBuilder.d.ts +0 -59
  93. package/types/graphql/index.d.ts +0 -1
  94. package/types/services/base-graphql-sitemap-service.d.ts +0 -148
  95. package/types/services/graphql-sitemap-service.d.ts +0 -51
  96. package/types/services/mutisite-graphql-sitemap-service.d.ts +0 -42
  97. package/types/sharedTypes/module-factory.d.ts +0 -32
  98. /package/dist/cjs/sharedTypes/{module-factory.js → sitecore-page-props.js} +0 -0
  99. /package/dist/esm/sharedTypes/{module-factory.js → sitecore-page-props.js} +0 -0
package/README.md CHANGED
@@ -1,10 +1,11 @@
1
- # Sitecore JavaScript Rendering SDK for Next.js
1
+ # Sitecore Content SDK for Next.js
2
+
3
+ This module is provided as a part of Sitecore Content SDK. It contains Next.js components and integration for Sitecore Content SDK.
2
4
 
3
5
  <!---
4
- @TODO: use new name when decided
6
+ @TODO: Update link with appropriate page when avaiable
5
7
  -->
6
- This module is provided as a part of Sitecore JavaScript Rendering SDK. It contains Next.js components and integration for JSS.
7
8
 
8
- [Documentation (XM Cloud)](https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-javascript-rendering-sdk--jss--for-next-js.html)
9
+ [Documentation](https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-javascript-rendering-sdk--jss--for-next-js.html)
9
10
 
10
11
  [API reference documentation](/ref-docs/nextjs/)
package/client.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './types/client/index';
package/client.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/cjs/client/index');
@@ -0,0 +1 @@
1
+ export * from './types/tools/component-props.loader';
@@ -0,0 +1,3 @@
1
+ const loader = require('./dist/cjs/tools/component-props.loader');
2
+
3
+ module.exports = loader;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SitecoreClient = exports.createGraphQLClientFactory = exports.getEdgeProxyContentUrl = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = void 0;
4
+ var client_1 = require("@sitecore-content-sdk/core/client");
5
+ Object.defineProperty(exports, "DefaultRetryStrategy", { enumerable: true, get: function () { return client_1.DefaultRetryStrategy; } });
6
+ Object.defineProperty(exports, "GraphQLRequestClient", { enumerable: true, get: function () { return client_1.GraphQLRequestClient; } });
7
+ Object.defineProperty(exports, "getEdgeProxyContentUrl", { enumerable: true, get: function () { return client_1.getEdgeProxyContentUrl; } });
8
+ Object.defineProperty(exports, "createGraphQLClientFactory", { enumerable: true, get: function () { return client_1.createGraphQLClientFactory; } });
9
+ var sitecore_nextjs_client_1 = require("./sitecore-nextjs-client");
10
+ Object.defineProperty(exports, "SitecoreClient", { enumerable: true, get: function () { return sitecore_nextjs_client_1.SitecoreNextjsClient; } });
@@ -0,0 +1,117 @@
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.SitecoreNextjsClient = void 0;
13
+ const client_1 = require("@sitecore-content-sdk/core/client");
14
+ const component_props_service_1 = require("../services/component-props-service");
15
+ const site_1 = require("@sitecore-content-sdk/core/site");
16
+ const personalize_1 = require("@sitecore-content-sdk/core/personalize");
17
+ class SitecoreNextjsClient extends client_1.SitecoreClient {
18
+ constructor(initOptions) {
19
+ super(initOptions);
20
+ this.initOptions = initOptions;
21
+ this.componentPropsService = this.getComponentPropsService();
22
+ }
23
+ /**
24
+ * Resolves site based on the provided path
25
+ * @param {string | string[]} path path to resolve site from
26
+ * @returns resolved site, or default site info if not found
27
+ */
28
+ resolveSiteFromPath(path) {
29
+ const resolvedPath = super.parsePath(path);
30
+ // Get site name (from path rewritten in middleware)
31
+ const siteData = (0, site_1.getSiteRewriteData)(resolvedPath, this.initOptions.defaultSite);
32
+ // Resolve site by name
33
+ return (this.siteResolver.getByName(siteData.siteName) || {
34
+ name: siteData.siteName,
35
+ hostName: '',
36
+ language: '',
37
+ });
38
+ }
39
+ /**
40
+ * Normalizes a nextjs path that could have been rewritten
41
+ * @param {string | string[]} path nextjs path
42
+ * @returns path string without nextjs prefixes
43
+ */
44
+ parsePath(path) {
45
+ const basePath = super.parsePath(path);
46
+ return (0, site_1.normalizeSiteRewrite)((0, personalize_1.normalizePersonalizedRewrite)(basePath));
47
+ }
48
+ getPage(path, pageOptions, options) {
49
+ const _super = Object.create(null, {
50
+ parsePath: { get: () => super.parsePath },
51
+ getPage: { get: () => super.getPage }
52
+ });
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ var _a;
55
+ const resolvedPath = this.parsePath(path);
56
+ // Get variant(s) for personalization (from path), must ensure path is of type string
57
+ const personalizeData = pageOptions.personalize || (0, personalize_1.getPersonalizedRewriteData)(_super.parsePath.call(this, path));
58
+ const site = pageOptions.site || ((_a = this.resolveSiteFromPath(path)) === null || _a === void 0 ? void 0 : _a.name);
59
+ const page = yield _super.getPage.call(this, resolvedPath, {
60
+ locale: pageOptions.locale,
61
+ site,
62
+ personalize: personalizeData,
63
+ }, options);
64
+ return page;
65
+ });
66
+ }
67
+ /**
68
+ * Retrieves preview page and layout details
69
+ * @param {PreviewData} previewData - The editing preview data for metadata mode.
70
+ * @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests (like retries and fetch)
71
+ */
72
+ getPreview(previewData, fetchOptions) {
73
+ const _super = Object.create(null, {
74
+ getPreview: { get: () => super.getPreview }
75
+ });
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return _super.getPreview.call(this, previewData, fetchOptions);
78
+ });
79
+ }
80
+ /**
81
+ * Parses components from nextjs component map and layoutData, executes getServerProps/getStaticProps methods
82
+ * and returns resulting props from components
83
+ * @param {LayoutServiceData} layoutData layout data to parse compnents from
84
+ * @param {PreviewData} context Nextjs preview data
85
+ * @param {ComponentMap<NextjsJssComponent>} components component map to get props for
86
+ * @returns {ComponentPropsCollection} component props
87
+ */
88
+ getComponentData(layoutData, context, components) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ let componentProps = {};
91
+ if (!layoutData.sitecore.route)
92
+ return componentProps;
93
+ // Retrieve component props using side-effects defined on components level
94
+ componentProps = yield this.componentPropsService.fetchComponentProps({
95
+ layoutData: layoutData,
96
+ context,
97
+ components,
98
+ });
99
+ const errors = Object.keys(componentProps)
100
+ .map((id) => {
101
+ const component = componentProps[id];
102
+ return component.error
103
+ ? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
104
+ : '';
105
+ })
106
+ .join('');
107
+ if (errors.length) {
108
+ throw new Error(errors);
109
+ }
110
+ return componentProps;
111
+ });
112
+ }
113
+ getComponentPropsService() {
114
+ return new component_props_service_1.ComponentPropsService();
115
+ }
116
+ }
117
+ exports.SitecoreNextjsClient = SitecoreNextjsClient;
@@ -47,12 +47,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
47
47
  return (mod && mod.__esModule) ? mod : { "default": mod };
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.RichText = void 0;
50
+ exports.RichText = exports.prefetched = void 0;
51
51
  const react_1 = __importStar(require("react"));
52
52
  const prop_types_1 = __importDefault(require("prop-types"));
53
53
  const router_1 = require("next/router");
54
54
  const react_2 = require("@sitecore-content-sdk/react");
55
- const prefetched = {};
55
+ exports.prefetched = {};
56
56
  const RichText = (props) => {
57
57
  const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
58
58
  const hasText = props.field && props.field.value;
@@ -81,9 +81,21 @@ const RichText = (props) => {
81
81
  internalLinks.forEach((link) => {
82
82
  if (link.target === '_blank')
83
83
  return;
84
- if (prefetchLinks && !prefetched[link.pathname]) {
84
+ const prefetch = () => {
85
85
  router.prefetch(link.pathname, undefined, { locale: false });
86
- prefetched[link.pathname] = true;
86
+ exports.prefetched[link.pathname] = true;
87
+ };
88
+ if (!exports.prefetched[link.pathname] && prefetchLinks !== false) {
89
+ if (prefetchLinks === true) {
90
+ prefetch();
91
+ }
92
+ if (prefetchLinks === 'hover') {
93
+ const mouseOverHandler = () => {
94
+ prefetch();
95
+ link.removeEventListener('mouseover', mouseOverHandler);
96
+ };
97
+ link.addEventListener('mouseover', mouseOverHandler, false);
98
+ }
87
99
  }
88
100
  link.addEventListener('click', routeHandler, false);
89
101
  });
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineCliConfig = void 0;
4
+ const config_1 = require("@sitecore-content-sdk/core/config");
5
+ const byoc_component_1 = require("../tools/templating/byoc-component");
6
+ const default_component_1 = require("../tools/templating/default-component");
7
+ /**
8
+ * Accepts a `SitecoreCliConfigInput` object and returns the Sitecore Content SDK CLI configuration from the specified file,
9
+ * updated with the required default values.
10
+ * @param {SitecoreCliConfigInput} cliConfig the cli configuration provided by the application
11
+ * @returns {SitecoreCliConfig} full sitecore cli configuration to use with cli
12
+ */
13
+ const defineCliConfig = (cliConfig) => {
14
+ addDefaultScaffoldTemplates(cliConfig);
15
+ return (0, config_1.defineCliConfig)(cliConfig);
16
+ };
17
+ exports.defineCliConfig = defineCliConfig;
18
+ /**
19
+ * Adds default scaffold templates to the CLI configuration.
20
+ * @param {SitecoreCliConfigInput} cliConfig - The CLI configuration object
21
+ */
22
+ function addDefaultScaffoldTemplates(cliConfig) {
23
+ if (!cliConfig.scaffold) {
24
+ cliConfig.scaffold = {};
25
+ }
26
+ if (!cliConfig.scaffold.templates) {
27
+ cliConfig.scaffold.templates = [];
28
+ }
29
+ cliConfig.scaffold.templates.unshift(default_component_1.defaultTemplate, byoc_component_1.byocTemplate);
30
+ }
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineConfig = void 0;
3
+ exports.defineCliConfig = exports.defineConfig = void 0;
4
4
  var config_1 = require("@sitecore-content-sdk/core/config");
5
5
  Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
6
+ var define_cli_config_1 = require("./define-cli-config");
7
+ Object.defineProperty(exports, "defineCliConfig", { enumerable: true, get: function () { return define_cli_config_1.defineCliConfig; } });
@@ -41,9 +41,7 @@ class EditingConfigMiddleware {
41
41
  // CORS headers are set by enforceCors
42
42
  return res.status(204).send(null);
43
43
  }
44
- const components = Array.isArray(this.config.components)
45
- ? this.config.components
46
- : Array.from(this.config.components.keys());
44
+ const components = Array.from(this.config.components.keys());
47
45
  return res.status(200).json({
48
46
  components,
49
47
  packages: this.config.metadata.packages,
@@ -9,27 +9,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.EditingRenderMiddleware = exports.isComponentLibraryPreviewData = void 0;
12
+ exports.EditingRenderMiddleware = exports.isDesignLibraryPreviewData = void 0;
13
13
  const core_1 = require("@sitecore-content-sdk/core");
14
- const layout_1 = require("@sitecore-content-sdk/core/layout");
15
14
  const editing_1 = require("@sitecore-content-sdk/core/editing");
15
+ const layout_1 = require("@sitecore-content-sdk/core/layout");
16
16
  const utils_1 = require("../utils/utils");
17
17
  const render_middleware_1 = require("./render-middleware");
18
18
  const utils_2 = require("@sitecore-content-sdk/core/utils");
19
19
  const personalize_1 = require("@sitecore-content-sdk/core/personalize");
20
+ const site_1 = require("@sitecore-content-sdk/core/site");
20
21
  /**
21
- * Type guard for Component Library mode
22
+ * Type guard for Design Library mode
22
23
  * @param {object} data preview data to check
23
24
  * @returns true if the data is EditingPreviewData
24
25
  * @see EditingPreviewData
25
26
  */
26
- const isComponentLibraryPreviewData = (data) => {
27
+ const isDesignLibraryPreviewData = (data) => {
27
28
  return (typeof data === 'object' &&
28
29
  data !== null &&
29
30
  'mode' in data &&
30
31
  data.mode === 'library');
31
32
  };
32
- exports.isComponentLibraryPreviewData = isComponentLibraryPreviewData;
33
+ exports.isDesignLibraryPreviewData = isDesignLibraryPreviewData;
33
34
  /**
34
35
  * Middleware / handler for use in the editing render Next.js API route (e.g. '/api/editing/render')
35
36
  * which is required for Sitecore editing support.
@@ -97,15 +98,12 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
97
98
  });
98
99
  }
99
100
  if (mode === 'library') {
100
- // dedicated route and layout to SSR component library
101
- query.route = '/component-library/render';
102
101
  res.setPreviewData({
103
102
  itemId: query.sc_itemid,
104
103
  componentUid: query.sc_uid,
105
104
  renderingId: query.sc_renderingId,
106
105
  language: query.sc_lang,
107
106
  site: query.sc_site,
108
- pageState: layout_1.LayoutServicePageState.Normal,
109
107
  mode: 'library',
110
108
  dataSourceId: query.sc_datasourceId,
111
109
  version: query.sc_version,
@@ -121,7 +119,7 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
121
119
  // for sc_variantId we may employ multiple variants (page-layout + component level)
122
120
  variantIds: ((_c = query.sc_variant) === null || _c === void 0 ? void 0 : _c.split(',')) || [personalize_1.DEFAULT_VARIANT],
123
121
  version: query.sc_version,
124
- pageState: query.mode,
122
+ mode: query.mode,
125
123
  layoutKind: query.sc_layoutKind,
126
124
  },
127
125
  // Cache the preview data for 3 seconds to ensure the page is rendered with the correct preview data not the cached one
@@ -149,6 +147,12 @@ class EditingRenderMiddleware extends render_middleware_1.RenderMiddlewareBase {
149
147
  }
150
148
  return cookie;
151
149
  });
150
+ // Set Preview mode identifier cookie, if the page is rendered in Sitecore Preview mode
151
+ if (mode === layout_1.LayoutServicePageState.Preview) {
152
+ const previewSite = `${site_1.SITE_KEY}=${query.sc_site}; Path=/; HttpOnly; SameSite=None; Secure`;
153
+ const previewCookie = `${editing_1.PREVIEW_KEY}=true; Path=/; HttpOnly; SameSite=None; Secure`;
154
+ modifiedCookies.push(previewSite, previewCookie);
155
+ }
152
156
  res.setHeader('Set-Cookie', modifiedCookies);
153
157
  }
154
158
  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;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
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;
3
+ exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.EditingConfigMiddleware = exports.FEAASRenderMiddleware = exports.isDesignLibraryPreviewData = exports.EditingRenderMiddleware = exports.GraphQLEditingService = void 0;
4
4
  var editing_1 = require("@sitecore-content-sdk/core/editing");
5
5
  Object.defineProperty(exports, "GraphQLEditingService", { enumerable: true, get: function () { return editing_1.GraphQLEditingService; } });
6
6
  var editing_render_middleware_1 = require("./editing-render-middleware");
7
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; } });
8
+ Object.defineProperty(exports, "isDesignLibraryPreviewData", { enumerable: true, get: function () { return editing_render_middleware_1.isDesignLibraryPreviewData; } });
9
9
  var feaas_render_middleware_1 = require("./feaas-render-middleware");
10
10
  Object.defineProperty(exports, "FEAASRenderMiddleware", { enumerable: true, get: function () { return feaas_render_middleware_1.FEAASRenderMiddleware; } });
11
11
  var editing_config_middleware_1 = require("./editing-config-middleware");
package/dist/cjs/index.js CHANGED
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
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;
36
+ exports.DefaultEmptyFieldEditingComponentImage = exports.DesignLibrary = exports.File = exports.getDesignLibraryStylesheetLinks = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.Image = 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.GraphQLSitePathService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getGroomedVariantIds = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.GraphQLDictionaryService = exports.mediaApi = exports.RestComponentLayoutService = exports.RenderingType = 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.Form = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.DefaultEmptyFieldEditingComponentText = 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
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "getChildPlaceholder", { enumerable: true, get: f
49
49
  Object.defineProperty(exports, "getFieldValue", { enumerable: true, get: function () { return layout_1.getFieldValue; } });
50
50
  Object.defineProperty(exports, "getContentStylesheetLink", { enumerable: true, get: function () { return layout_1.getContentStylesheetLink; } });
51
51
  Object.defineProperty(exports, "EditMode", { enumerable: true, get: function () { return layout_1.EditMode; } });
52
+ Object.defineProperty(exports, "RenderingType", { enumerable: true, get: function () { return layout_1.RenderingType; } });
52
53
  var editing_1 = require("@sitecore-content-sdk/core/editing");
53
54
  Object.defineProperty(exports, "RestComponentLayoutService", { enumerable: true, get: function () { return editing_1.RestComponentLayoutService; } });
54
55
  var media_1 = require("@sitecore-content-sdk/core/media");
@@ -64,19 +65,17 @@ Object.defineProperty(exports, "normalizePersonalizedRewrite", { enumerable: tru
64
65
  Object.defineProperty(exports, "CdpHelper", { enumerable: true, get: function () { return personalize_1.CdpHelper; } });
65
66
  var component_props_service_1 = require("./services/component-props-service");
66
67
  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
68
  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; } });
69
+ Object.defineProperty(exports, "GraphQLSitePathService", { enumerable: true, get: function () { return site_1.GraphQLSitePathService; } });
70
+ var site_2 = require("@sitecore-content-sdk/core/site");
71
+ Object.defineProperty(exports, "GraphQLSitemapXmlService", { enumerable: true, get: function () { return site_2.GraphQLSitemapXmlService; } });
72
+ Object.defineProperty(exports, "GraphQLErrorPagesService", { enumerable: true, get: function () { return site_2.GraphQLErrorPagesService; } });
73
+ Object.defineProperty(exports, "GraphQLRobotsService", { enumerable: true, get: function () { return site_2.GraphQLRobotsService; } });
74
+ Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_2.SiteResolver; } });
75
+ Object.defineProperty(exports, "GraphQLSiteInfoService", { enumerable: true, get: function () { return site_2.GraphQLSiteInfoService; } });
76
+ Object.defineProperty(exports, "getSiteRewrite", { enumerable: true, get: function () { return site_2.getSiteRewrite; } });
77
+ Object.defineProperty(exports, "getSiteRewriteData", { enumerable: true, get: function () { return site_2.getSiteRewriteData; } });
78
+ Object.defineProperty(exports, "normalizeSiteRewrite", { enumerable: true, get: function () { return site_2.normalizeSiteRewrite; } });
80
79
  var ComponentPropsContext_1 = require("./components/ComponentPropsContext");
81
80
  Object.defineProperty(exports, "ComponentPropsReactContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsReactContext; } });
82
81
  Object.defineProperty(exports, "ComponentPropsContext", { enumerable: true, get: function () { return ComponentPropsContext_1.ComponentPropsContext; } });
@@ -93,8 +92,6 @@ const FEaaSWrapper = __importStar(require("./components/FEaaSWrapper"));
93
92
  exports.FEaaSWrapper = FEaaSWrapper;
94
93
  const BYOCWrapper = __importStar(require("./components/BYOCWrapper"));
95
94
  exports.BYOCWrapper = BYOCWrapper;
96
- var ComponentBuilder_1 = require("./ComponentBuilder");
97
- Object.defineProperty(exports, "ComponentBuilder", { enumerable: true, get: function () { return ComponentBuilder_1.ComponentBuilder; } });
98
95
  var react_1 = require("@sitecore-content-sdk/react");
99
96
  Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return react_1.Image; } });
100
97
  Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return react_1.Text; } });
@@ -102,9 +99,9 @@ Object.defineProperty(exports, "DateField", { enumerable: true, get: function ()
102
99
  Object.defineProperty(exports, "FEaaSComponent", { enumerable: true, get: function () { return react_1.FEaaSComponent; } });
103
100
  Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: true, get: function () { return react_1.fetchFEaaSComponentServerProps; } });
104
101
  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; } });
102
+ Object.defineProperty(exports, "getDesignLibraryStylesheetLinks", { enumerable: true, get: function () { return react_1.getDesignLibraryStylesheetLinks; } });
106
103
  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; } });
104
+ Object.defineProperty(exports, "DesignLibrary", { enumerable: true, get: function () { return react_1.DesignLibrary; } });
108
105
  Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return react_1.DefaultEmptyFieldEditingComponentImage; } });
109
106
  Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return react_1.DefaultEmptyFieldEditingComponentText; } });
110
107
  Object.defineProperty(exports, "SitecoreContext", { enumerable: true, get: function () { return react_1.SitecoreContext; } });
@@ -117,3 +114,4 @@ Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: f
117
114
  Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return react_1.withFieldMetadata; } });
118
115
  Object.defineProperty(exports, "withEmptyFieldEditingComponent", { enumerable: true, get: function () { return react_1.withEmptyFieldEditingComponent; } });
119
116
  Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: function () { return react_1.EditingScripts; } });
117
+ Object.defineProperty(exports, "Form", { enumerable: true, get: function () { return react_1.Form; } });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MultisiteMiddleware = exports.PersonalizeMiddleware = exports.RedirectsMiddleware = exports.defineMiddleware = exports.Middleware = exports.MiddlewareBase = exports.debug = void 0;
3
+ exports.SitemapMiddleware = exports.MultisiteMiddleware = exports.PersonalizeMiddleware = exports.RedirectsMiddleware = exports.defineMiddleware = exports.Middleware = exports.MiddlewareBase = exports.debug = void 0;
4
4
  var core_1 = require("@sitecore-content-sdk/core");
5
5
  Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return core_1.debug; } });
6
6
  var middleware_1 = require("./middleware");
@@ -13,3 +13,5 @@ var personalize_middleware_1 = require("./personalize-middleware");
13
13
  Object.defineProperty(exports, "PersonalizeMiddleware", { enumerable: true, get: function () { return personalize_middleware_1.PersonalizeMiddleware; } });
14
14
  var multisite_middleware_1 = require("./multisite-middleware");
15
15
  Object.defineProperty(exports, "MultisiteMiddleware", { enumerable: true, get: function () { return multisite_middleware_1.MultisiteMiddleware; } });
16
+ var sitemap_middleware_1 = require("./sitemap-middleware");
17
+ Object.defineProperty(exports, "SitemapMiddleware", { enumerable: true, get: function () { return sitemap_middleware_1.SitemapMiddleware; } });
@@ -9,10 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.defineMiddleware = exports.MiddlewareBase = exports.Middleware = void 0;
12
+ exports.defineMiddleware = exports.MiddlewareBase = exports.Middleware = exports.REWRITE_HEADER_NAME = void 0;
13
13
  const site_1 = require("@sitecore-content-sdk/core/site");
14
14
  const core_1 = require("@sitecore-content-sdk/core");
15
15
  const server_1 = require("next/server");
16
+ exports.REWRITE_HEADER_NAME = 'x-sc-rewrite';
16
17
  /**
17
18
  * Middleware class to be extended by all middleware implementations
18
19
  */
@@ -26,8 +27,6 @@ class MiddlewareBase extends Middleware {
26
27
  constructor(config) {
27
28
  super();
28
29
  this.config = config;
29
- this.SITE_SYMBOL = 'sc_site';
30
- this.REWRITE_HEADER_NAME = 'x-sc-rewrite';
31
30
  this.siteResolver = new site_1.SiteResolver(config.sites);
32
31
  this.defaultHostname = config.defaultHostname || 'localhost';
33
32
  }
@@ -56,7 +55,7 @@ class MiddlewareBase extends Middleware {
56
55
  return (pathname.startsWith('/api/') || // Ignore Next.js API calls
57
56
  pathname.startsWith('/sitecore/') || // Ignore Sitecore API calls
58
57
  pathname.startsWith('/_next') || // Ignore next service calls
59
- (this.config.disabled && this.config.disabled(req, res)));
58
+ (this.config.skip && this.config.skip(req, res)));
60
59
  }
61
60
  /**
62
61
  * Safely extract all headers for debug logging
@@ -75,7 +74,7 @@ class MiddlewareBase extends Middleware {
75
74
  * @returns {string} language
76
75
  */
77
76
  getLanguage(req) {
78
- return req.nextUrl.locale || req.nextUrl.defaultLocale || 'en';
77
+ return req.nextUrl.locale || req.nextUrl.defaultLocale || this.config.defaultLanguage || 'en';
79
78
  }
80
79
  /**
81
80
  * Extract 'host' header
@@ -86,18 +85,27 @@ class MiddlewareBase extends Middleware {
86
85
  return (_a = req.headers.get('host')) === null || _a === void 0 ? void 0 : _a.split(':')[0];
87
86
  }
88
87
  /**
89
- * Get site information.
90
- * Can not be used in **Preview** mode, since site will not be resolved
88
+ * Get site information. If site name is stored in cookie, use it, otherwise resolve by hostname
89
+ * - If site can't be resolved by site name cookie use default site info based on provided parameters
90
+ * - If site can't be resolved by hostname throw an error
91
91
  * @param {NextRequest} req request
92
92
  * @param {NextResponse} [res] response
93
93
  * @returns {SiteInfo} site information
94
94
  */
95
95
  getSite(req, res) {
96
96
  var _a;
97
- const siteNameCookie = (_a = res === null || res === void 0 ? void 0 : res.cookies.get(this.SITE_SYMBOL)) === null || _a === void 0 ? void 0 : _a.value;
98
- if (siteNameCookie)
99
- return this.siteResolver.getByName(siteNameCookie);
97
+ const siteNameCookie = (_a = res === null || res === void 0 ? void 0 : res.cookies.get(site_1.SITE_KEY)) === null || _a === void 0 ? void 0 : _a.value;
100
98
  const hostname = this.getHostHeader(req) || this.defaultHostname;
99
+ if (siteNameCookie) {
100
+ // Usually we should be able to resolve site by cookie
101
+ // in case of Sitecore Preview mode, there can be a case that new site was created
102
+ // but it's not present in the sitemap, so we fallback to default site info
103
+ return (this.siteResolver.getByName(siteNameCookie) || {
104
+ name: siteNameCookie,
105
+ language: this.getLanguage(req),
106
+ hostName: '*',
107
+ });
108
+ }
101
109
  return this.siteResolver.getByHost(hostname);
102
110
  }
103
111
  /**
@@ -105,14 +113,17 @@ class MiddlewareBase extends Middleware {
105
113
  * @param {string} rewritePath the destionation path
106
114
  * @param {NextRequest} req the current request
107
115
  * @param {NextResponse} res the current response
116
+ * @param {boolean} [skipHeader] don't write 'x-sc-rewrite' header
108
117
  */
109
- rewrite(rewritePath, req, res) {
118
+ rewrite(rewritePath, req, res, skipHeader) {
110
119
  // Note an absolute URL is required: https://nextjs.org/docs/messages/middleware-relative-urls
111
120
  const rewriteUrl = req.nextUrl.clone();
112
121
  rewriteUrl.pathname = rewritePath;
113
122
  const response = server_1.NextResponse.rewrite(rewriteUrl, res);
114
123
  // Share rewrite path with following executed middlewares
115
- response.headers.set(this.REWRITE_HEADER_NAME, rewritePath);
124
+ if (!skipHeader) {
125
+ response.headers.set(exports.REWRITE_HEADER_NAME, rewritePath);
126
+ }
116
127
  return response;
117
128
  }
118
129
  }
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
2
3
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
4
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
5
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -13,6 +14,7 @@ exports.MultisiteMiddleware = void 0;
13
14
  const site_1 = require("@sitecore-content-sdk/core/site");
14
15
  const core_1 = require("@sitecore-content-sdk/core");
15
16
  const middleware_1 = require("./middleware");
17
+ const editing_1 = require("@sitecore-content-sdk/core/editing");
16
18
  /**
17
19
  * Middleware / handler for multisite support
18
20
  */
@@ -24,7 +26,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
24
26
  super(config);
25
27
  this.config = config;
26
28
  this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
27
- var _a;
29
+ var _a, _b, _c;
28
30
  if (!this.config.enabled) {
29
31
  core_1.debug.multisite('skipped (multisite middleware is disabled globally)');
30
32
  return res;
@@ -47,12 +49,21 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
47
49
  core_1.debug.multisite('skipped (preview)');
48
50
  return res;
49
51
  }
50
- // Site name can be forced by query string parameter or cookie
51
- const siteName = req.nextUrl.searchParams.get(this.SITE_SYMBOL) ||
52
- (this.config.useCookieResolution &&
53
- this.config.useCookieResolution(req) &&
54
- ((_a = req.cookies.get(this.SITE_SYMBOL)) === null || _a === void 0 ? void 0 : _a.value)) ||
55
- this.siteResolver.getByHost(hostname).name;
52
+ let siteName;
53
+ const isSitecorePreview = (_a = req.cookies.get(editing_1.PREVIEW_KEY)) === null || _a === void 0 ? void 0 : _a.value;
54
+ if (isSitecorePreview) {
55
+ // This cookie is required to be set in the Sitecore Preview mode
56
+ siteName = (_b = req.cookies.get(site_1.SITE_KEY)) === null || _b === void 0 ? void 0 : _b.value;
57
+ }
58
+ else {
59
+ // Site name can be forced by query string parameter or cookie
60
+ siteName =
61
+ req.nextUrl.searchParams.get(site_1.SITE_KEY) ||
62
+ (this.config.useCookieResolution &&
63
+ this.config.useCookieResolution(req) &&
64
+ ((_c = req.cookies.get(site_1.SITE_KEY)) === null || _c === void 0 ? void 0 : _c.value)) ||
65
+ this.siteResolver.getByHost(hostname).name;
66
+ }
56
67
  // Rewrite to site specific path
57
68
  const rewritePath = (0, site_1.getSiteRewrite)(pathname, {
58
69
  siteName,
@@ -65,7 +76,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
65
76
  sameSite: 'none',
66
77
  };
67
78
  // Share site name with the following executed middlewares
68
- response.cookies.set(this.SITE_SYMBOL, siteName, defaultCookieAttributes);
79
+ response.cookies.set(site_1.SITE_KEY, siteName, defaultCookieAttributes);
69
80
  core_1.debug.multisite('multisite middleware end in %dms: %o', Date.now() - startTimestamp, {
70
81
  rewritePath,
71
82
  siteName,
@@ -35,7 +35,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
35
35
  const language = this.getLanguage(req);
36
36
  const hostname = this.getHostHeader(req) || this.defaultHostname;
37
37
  const startTimestamp = Date.now();
38
- const timeout = this.config.cdpTimeout;
38
+ const cdpTimeout = this.config.cdpTimeout;
39
39
  core_1.debug.personalize('personalize middleware start: %o', {
40
40
  pathname,
41
41
  language,
@@ -87,7 +87,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
87
87
  variantIds: execution.variantIds,
88
88
  params,
89
89
  language,
90
- timeout,
90
+ timeout: cdpTimeout,
91
91
  }, req).then((personalization) => {
92
92
  const variantId = personalization.variantId;
93
93
  if (variantId) {
@@ -104,7 +104,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
104
104
  return res;
105
105
  }
106
106
  // Path can be rewritten by previously executed middleware
107
- const basePath = (res === null || res === void 0 ? void 0 : res.headers.get('x-sc-rewrite')) || pathname;
107
+ const basePath = (res === null || res === void 0 ? void 0 : res.headers.get(middleware_1.REWRITE_HEADER_NAME)) || pathname;
108
108
  // Rewrite to persononalized path
109
109
  const rewritePath = (0, personalize_1.getPersonalizedRewrite)(basePath, identifiedVariantIds);
110
110
  const response = this.rewrite(rewritePath, req, res);