@sitecore-content-sdk/nextjs 1.5.0 → 2.0.0-canary.10

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 (172) hide show
  1. package/LICENSE.txt +202 -202
  2. package/dist/cjs/client/index.js +1 -1
  3. package/dist/cjs/client/sitecore-nextjs-client.js +4 -4
  4. package/dist/cjs/components/BYOCWrapper.js +0 -5
  5. package/dist/cjs/components/FEaaSWrapper.js +0 -5
  6. package/dist/cjs/components/NextImage.js +2 -2
  7. package/dist/cjs/config/define-config.js +7 -4
  8. package/dist/cjs/config-cli/define-cli-config.js +1 -1
  9. package/dist/cjs/debug.js +11 -0
  10. package/dist/cjs/editing/codegen/import-map-server.js +1 -1
  11. package/dist/cjs/editing/editing-config-middleware.js +13 -11
  12. package/dist/cjs/editing/editing-render-middleware.js +41 -29
  13. package/dist/cjs/editing/feaas-render-middleware.js +24 -13
  14. package/dist/cjs/editing/index.js +2 -2
  15. package/dist/cjs/editing/types.js +2 -0
  16. package/dist/cjs/editing/utils.js +35 -6
  17. package/dist/cjs/index.js +17 -11
  18. package/dist/cjs/middleware/index.js +1 -24
  19. package/dist/cjs/{middleware/app-router-multisite-middleware.js → proxy/app-router-multisite-proxy.js} +8 -8
  20. package/dist/cjs/proxy/index.js +29 -0
  21. package/dist/cjs/{middleware/locale-middleware.js → proxy/locale-proxy.js} +18 -15
  22. package/dist/cjs/{middleware/multisite-middleware.js → proxy/multisite-proxy.js} +23 -20
  23. package/dist/cjs/{middleware/personalize-middleware.js → proxy/personalize-proxy.js} +31 -28
  24. package/dist/cjs/{middleware/middleware.js → proxy/proxy.js} +31 -28
  25. package/dist/cjs/{middleware/redirects-middleware.js → proxy/redirects-proxy.js} +121 -111
  26. package/dist/cjs/route-handler/editing-config-route-handler.js +16 -13
  27. package/dist/cjs/route-handler/editing-render-route-handler.js +43 -32
  28. package/dist/cjs/route-handler/robots-route-handler.js +14 -6
  29. package/dist/cjs/route-handler/sitemap-route-handler.js +13 -5
  30. package/dist/cjs/site/index.js +1 -1
  31. package/dist/cjs/tools/codegen/import-map.js +2 -2
  32. package/dist/cjs/tools/generate-map.js +1 -1
  33. package/dist/cjs/tools/index.js +7 -8
  34. package/dist/cjs/tools/templating/byoc-component.js +1 -1
  35. package/dist/cjs/tools/templating/default-component.js +1 -1
  36. package/dist/cjs/tools/templating/utils.js +5 -6
  37. package/dist/cjs/utils/index.js +4 -5
  38. package/dist/cjs/utils/utils.js +3 -3
  39. package/dist/esm/client/index.js +1 -1
  40. package/dist/esm/client/sitecore-nextjs-client.js +4 -4
  41. package/dist/esm/components/BYOCWrapper.js +0 -5
  42. package/dist/esm/components/FEaaSWrapper.js +0 -5
  43. package/dist/esm/components/NextImage.js +2 -2
  44. package/dist/esm/config/define-config.js +7 -4
  45. package/dist/esm/config-cli/define-cli-config.js +1 -1
  46. package/dist/esm/debug.js +9 -0
  47. package/dist/esm/editing/codegen/import-map-server.js +1 -1
  48. package/dist/esm/editing/editing-config-middleware.js +4 -5
  49. package/dist/esm/editing/editing-render-middleware.js +22 -13
  50. package/dist/esm/editing/feaas-render-middleware.js +14 -6
  51. package/dist/esm/editing/index.js +2 -2
  52. package/dist/esm/editing/types.js +1 -0
  53. package/dist/esm/editing/utils.js +32 -4
  54. package/dist/esm/index.js +11 -12
  55. package/dist/esm/middleware/index.js +0 -9
  56. package/dist/esm/{middleware/app-router-multisite-middleware.js → proxy/app-router-multisite-proxy.js} +6 -6
  57. package/dist/esm/proxy/index.js +9 -0
  58. package/dist/esm/{middleware/locale-middleware.js → proxy/locale-proxy.js} +12 -12
  59. package/dist/esm/{middleware/multisite-middleware.js → proxy/multisite-proxy.js} +16 -16
  60. package/dist/esm/{middleware/personalize-middleware.js → proxy/personalize-proxy.js} +17 -17
  61. package/dist/esm/{middleware/middleware.js → proxy/proxy.js} +24 -24
  62. package/dist/esm/{middleware/redirects-middleware.js → proxy/redirects-proxy.js} +112 -102
  63. package/dist/esm/route-handler/editing-config-route-handler.js +4 -4
  64. package/dist/esm/route-handler/editing-render-route-handler.js +19 -11
  65. package/dist/esm/route-handler/robots-route-handler.js +8 -3
  66. package/dist/esm/route-handler/sitemap-route-handler.js +8 -3
  67. package/dist/esm/site/index.js +1 -1
  68. package/dist/esm/tools/codegen/import-map.js +1 -1
  69. package/dist/esm/tools/generate-map.js +1 -1
  70. package/dist/esm/tools/index.js +2 -1
  71. package/dist/esm/tools/templating/byoc-component.js +1 -1
  72. package/dist/esm/tools/templating/default-component.js +1 -1
  73. package/dist/esm/tools/templating/utils.js +1 -2
  74. package/dist/esm/utils/index.js +2 -2
  75. package/dist/esm/utils/utils.js +2 -2
  76. package/package.json +187 -181
  77. package/proxy.d.ts +1 -0
  78. package/types/client/index.d.ts +1 -1
  79. package/types/client/index.d.ts.map +1 -1
  80. package/types/client/sitecore-nextjs-client.d.ts +3 -3
  81. package/types/client/sitecore-nextjs-client.d.ts.map +1 -1
  82. package/types/components/BYOCWrapper.d.ts +0 -5
  83. package/types/components/BYOCWrapper.d.ts.map +1 -1
  84. package/types/components/FEaaSWrapper.d.ts +0 -5
  85. package/types/components/FEaaSWrapper.d.ts.map +1 -1
  86. package/types/components/Placeholder.d.ts +2 -2
  87. package/types/components/Placeholder.d.ts.map +1 -1
  88. package/types/config/define-config.d.ts +1 -1
  89. package/types/config/define-config.d.ts.map +1 -1
  90. package/types/config-cli/define-cli-config.d.ts +1 -1
  91. package/types/config-cli/define-cli-config.d.ts.map +1 -1
  92. package/types/debug.d.ts +7 -0
  93. package/types/debug.d.ts.map +1 -0
  94. package/types/editing/codegen/import-map-server.d.ts +1 -1
  95. package/types/editing/codegen/import-map-server.d.ts.map +1 -1
  96. package/types/editing/codegen/import-map-utils.d.ts +1 -1
  97. package/types/editing/codegen/import-map-utils.d.ts.map +1 -1
  98. package/types/editing/codegen/import-map.d.ts +1 -1
  99. package/types/editing/codegen/import-map.d.ts.map +1 -1
  100. package/types/editing/codegen/index.d.ts +1 -1
  101. package/types/editing/codegen/index.d.ts.map +1 -1
  102. package/types/editing/editing-config-middleware.d.ts +1 -1
  103. package/types/editing/editing-config-middleware.d.ts.map +1 -1
  104. package/types/editing/editing-render-middleware.d.ts +8 -1
  105. package/types/editing/editing-render-middleware.d.ts.map +1 -1
  106. package/types/editing/feaas-render-middleware.d.ts +1 -1
  107. package/types/editing/feaas-render-middleware.d.ts.map +1 -1
  108. package/types/editing/index.d.ts +3 -2
  109. package/types/editing/index.d.ts.map +1 -1
  110. package/types/editing/types.d.ts +37 -0
  111. package/types/editing/types.d.ts.map +1 -0
  112. package/types/editing/utils.d.ts +12 -1
  113. package/types/editing/utils.d.ts.map +1 -1
  114. package/types/index.d.ts +13 -11
  115. package/types/index.d.ts.map +1 -1
  116. package/types/middleware/index.d.ts +0 -9
  117. package/types/middleware/index.d.ts.map +1 -1
  118. package/types/middleware/robots-middleware.d.ts +1 -1
  119. package/types/middleware/robots-middleware.d.ts.map +1 -1
  120. package/types/middleware/sitemap-middleware.d.ts +1 -1
  121. package/types/middleware/sitemap-middleware.d.ts.map +1 -1
  122. package/types/{middleware/app-router-multisite-middleware.d.ts → proxy/app-router-multisite-proxy.d.ts} +6 -6
  123. package/types/proxy/app-router-multisite-proxy.d.ts.map +1 -0
  124. package/types/proxy/index.d.ts +10 -0
  125. package/types/proxy/index.d.ts.map +1 -0
  126. package/types/proxy/locale-proxy.d.ts +35 -0
  127. package/types/proxy/locale-proxy.d.ts.map +1 -0
  128. package/types/{middleware/multisite-middleware.d.ts → proxy/multisite-proxy.d.ts} +11 -11
  129. package/types/proxy/multisite-proxy.d.ts.map +1 -0
  130. package/types/{middleware/personalize-middleware.d.ts → proxy/personalize-proxy.d.ts} +10 -10
  131. package/types/proxy/personalize-proxy.d.ts.map +1 -0
  132. package/types/{middleware/middleware.d.ts → proxy/proxy.d.ts} +24 -26
  133. package/types/proxy/proxy.d.ts.map +1 -0
  134. package/types/{middleware/redirects-middleware.d.ts → proxy/redirects-proxy.d.ts} +11 -11
  135. package/types/proxy/redirects-proxy.d.ts.map +1 -0
  136. package/types/route-handler/editing-config-route-handler.d.ts +1 -1
  137. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -1
  138. package/types/route-handler/editing-render-route-handler.d.ts +7 -0
  139. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -1
  140. package/types/route-handler/robots-route-handler.d.ts +2 -2
  141. package/types/route-handler/robots-route-handler.d.ts.map +1 -1
  142. package/types/route-handler/sitemap-route-handler.d.ts +2 -2
  143. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -1
  144. package/types/services/component-props-service.d.ts +1 -1
  145. package/types/services/component-props-service.d.ts.map +1 -1
  146. package/types/sharedTypes/component-props.d.ts +1 -1
  147. package/types/sharedTypes/component-props.d.ts.map +1 -1
  148. package/types/sharedTypes/sitecore-page-props.d.ts +2 -2
  149. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -1
  150. package/types/site/index.d.ts +1 -1
  151. package/types/site/index.d.ts.map +1 -1
  152. package/types/tools/codegen/import-map.d.ts +3 -3
  153. package/types/tools/codegen/import-map.d.ts.map +1 -1
  154. package/types/tools/generate-map.d.ts +1 -1
  155. package/types/tools/generate-map.d.ts.map +1 -1
  156. package/types/tools/index.d.ts +3 -1
  157. package/types/tools/index.d.ts.map +1 -1
  158. package/types/tools/templating/byoc-component.d.ts +1 -1
  159. package/types/tools/templating/byoc-component.d.ts.map +1 -1
  160. package/types/tools/templating/default-component.d.ts +1 -1
  161. package/types/tools/templating/default-component.d.ts.map +1 -1
  162. package/types/tools/templating/utils.d.ts +2 -2
  163. package/types/tools/templating/utils.d.ts.map +1 -1
  164. package/types/utils/index.d.ts +2 -2
  165. package/types/utils/index.d.ts.map +1 -1
  166. package/types/middleware/app-router-multisite-middleware.d.ts.map +0 -1
  167. package/types/middleware/locale-middleware.d.ts +0 -35
  168. package/types/middleware/locale-middleware.d.ts.map +0 -1
  169. package/types/middleware/middleware.d.ts.map +0 -1
  170. package/types/middleware/multisite-middleware.d.ts.map +0 -1
  171. package/types/middleware/personalize-middleware.d.ts.map +0 -1
  172. package/types/middleware/redirects-middleware.d.ts.map +0 -1
@@ -8,11 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.createRobotsRouteHandler = void 0;
13
- const site_1 = require("@sitecore-content-sdk/core/site");
14
- const core_1 = require("@sitecore-content-sdk/core");
16
+ const site_1 = require("@sitecore-content-sdk/content/site");
15
17
  const cache_1 = require("next/cache");
18
+ const debug_1 = __importDefault(require("../debug"));
16
19
  /**
17
20
  * Creates a route handler to serve the robots.txt file.
18
21
  * @param {RouteHandlerOptions} options - The options for the route handler.
@@ -31,18 +34,19 @@ const createRobotsRouteHandler = (options) => {
31
34
  const GET = (req) => __awaiter(void 0, void 0, void 0, function* () {
32
35
  var _a;
33
36
  try {
34
- const startTimestamp = Date.now();
35
37
  const hostName = req.headers.get('x-forwarded-host') ||
36
38
  ((_a = req.headers.get('host')) === null || _a === void 0 ? void 0 : _a.split(':')[0]) ||
37
39
  'localhost';
38
40
  const site = siteResolver.getByHost(hostName);
39
- core_1.debug.robots('robots route handler start: %o', {
41
+ // Access request data first, then capture timestamp for Next.js 16 compatibility
42
+ const startTimestamp = Date.now();
43
+ debug_1.default.robots('robots route handler start: %o', {
40
44
  hostName,
41
45
  siteName: site.name,
42
46
  });
43
47
  const robotsContent = yield getRobots(site.name);
44
48
  if (!robotsContent) {
45
- core_1.debug.robots('robots route handler end in %dms', Date.now() - startTimestamp);
49
+ debug_1.default.robots('robots route handler end in %dms', Date.now() - startTimestamp);
46
50
  return new Response('User-agent: *\nDisallow: /', {
47
51
  status: 404,
48
52
  headers: {
@@ -50,7 +54,7 @@ const createRobotsRouteHandler = (options) => {
50
54
  },
51
55
  });
52
56
  }
53
- core_1.debug.robots('robots route handler end in %dms', Date.now() - startTimestamp);
57
+ debug_1.default.robots('robots route handler end in %dms', Date.now() - startTimestamp);
54
58
  return new Response(robotsContent, {
55
59
  status: 200,
56
60
  headers: {
@@ -59,6 +63,10 @@ const createRobotsRouteHandler = (options) => {
59
63
  });
60
64
  }
61
65
  catch (error) {
66
+ // Re-throw prerender bail-out errors so Next.js can handle them properly
67
+ if (error instanceof Error && error.digest === 'NEXT_PRERENDER_INTERRUPTED') {
68
+ throw error;
69
+ }
62
70
  console.log('Robots route handler failed:');
63
71
  console.log(error);
64
72
  return new Response('Internal Server Error', {
@@ -8,11 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.createSitemapRouteHandler = createSitemapRouteHandler;
13
- const site_1 = require("@sitecore-content-sdk/core/site");
14
- const core_1 = require("@sitecore-content-sdk/core");
16
+ const site_1 = require("@sitecore-content-sdk/content/site");
15
17
  const cache_1 = require("next/cache");
18
+ const debug_1 = __importDefault(require("../debug"));
16
19
  /**
17
20
  * Creates a route handler to serve the sitemap.xml file.
18
21
  * @param {RouteHandlerOptions} options - The options for the route handler.
@@ -38,13 +41,14 @@ function createSitemapRouteHandler(options) {
38
41
  });
39
42
  const GET = (req) => __awaiter(this, void 0, void 0, function* () {
40
43
  try {
41
- const startTimestamp = Date.now();
42
44
  const options = getOptions(req);
43
- core_1.debug.sitemap('sitemap route handler start: %o', {
45
+ // Access request data first, then capture timestamp for Next.js 16 compatibility
46
+ const startTimestamp = Date.now();
47
+ debug_1.default.sitemap('sitemap route handler start: %o', {
44
48
  options,
45
49
  });
46
50
  const xml = yield getSitemap(options);
47
- core_1.debug.sitemap('sitemap route handler end in %dms', Date.now() - startTimestamp);
51
+ debug_1.default.sitemap('sitemap route handler end in %dms', Date.now() - startTimestamp);
48
52
  return new Response(xml, {
49
53
  headers: {
50
54
  'Content-Type': 'text/xml;charset=utf-8',
@@ -52,6 +56,10 @@ function createSitemapRouteHandler(options) {
52
56
  });
53
57
  }
54
58
  catch (error) {
59
+ // Re-throw prerender bail-out errors so Next.js can handle them properly
60
+ if (error instanceof Error && error.digest === 'NEXT_PRERENDER_INTERRUPTED') {
61
+ throw error;
62
+ }
55
63
  console.log('Sitemap route handler failed:');
56
64
  console.log(error);
57
65
  if (error instanceof Error && error.message === 'REDIRECT_404') {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SiteResolver = void 0;
4
- var site_1 = require("@sitecore-content-sdk/core/site");
4
+ var site_1 = require("@sitecore-content-sdk/content/site");
5
5
  Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_1.SiteResolver; } });
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeImportMap = exports.__mockDependencies = void 0;
4
- const tools_1 = require("@sitecore-content-sdk/core/tools");
4
+ const node_tools_1 = require("@sitecore-content-sdk/content/node-tools");
5
5
  const utils_1 = require("../templating/utils");
6
- let writeImportMapCore = tools_1.writeImportMap;
6
+ let writeImportMapCore = node_tools_1.writeImportMap;
7
7
  const __mockDependencies = (mocks) => {
8
8
  if (mocks.writeImportMapCore) {
9
9
  writeImportMapCore = mocks.writeImportMapCore;
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.generateMap = exports.defaultClientMapTemplate = void 0;
37
- const tools_1 = require("@sitecore-content-sdk/core/tools");
37
+ const tools_1 = require("@sitecore-content-sdk/content/tools");
38
38
  const path = __importStar(require("path"));
39
39
  const fs = __importStar(require("fs"));
40
40
  const utils_1 = require("./templating/utils");
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeImportMap = exports.generateMap = exports.extractFiles = exports.ModuleType = exports.generatePlugins = exports.getComponentList = exports.generateMetadata = exports.generateSites = void 0;
4
- var tools_1 = require("@sitecore-content-sdk/core/tools");
5
- Object.defineProperty(exports, "generateSites", { enumerable: true, get: function () { return tools_1.generateSites; } });
6
- Object.defineProperty(exports, "generateMetadata", { enumerable: true, get: function () { return tools_1.generateMetadata; } });
7
- Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return tools_1.getComponentList; } });
8
- Object.defineProperty(exports, "generatePlugins", { enumerable: true, get: function () { return tools_1.generatePlugins; } });
9
- Object.defineProperty(exports, "ModuleType", { enumerable: true, get: function () { return tools_1.ModuleType; } });
10
- Object.defineProperty(exports, "extractFiles", { enumerable: true, get: function () { return tools_1.extractFiles; } });
3
+ exports.writeImportMap = exports.generateMap = exports.generateMetadata = exports.extractFiles = exports.getComponentList = exports.generateSites = void 0;
4
+ var node_tools_1 = require("@sitecore-content-sdk/content/node-tools");
5
+ Object.defineProperty(exports, "generateSites", { enumerable: true, get: function () { return node_tools_1.generateSites; } });
6
+ Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return node_tools_1.getComponentList; } });
7
+ Object.defineProperty(exports, "extractFiles", { enumerable: true, get: function () { return node_tools_1.extractFiles; } });
8
+ var node_tools_2 = require("@sitecore-content-sdk/core/node-tools");
9
+ Object.defineProperty(exports, "generateMetadata", { enumerable: true, get: function () { return node_tools_2.generateMetadata; } });
11
10
  var generate_map_1 = require("./generate-map");
12
11
  Object.defineProperty(exports, "generateMap", { enumerable: true, get: function () { return generate_map_1.generateMap; } });
13
12
  var import_map_1 = require("./codegen/import-map");
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.byocTemplate = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const config_1 = require("@sitecore-content-sdk/core/config");
8
+ const config_1 = require("@sitecore-content-sdk/content/config");
9
9
  const constants_1 = require("./constants");
10
10
  /**
11
11
  * Next.js BYOC component boilerplate
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.defaultTemplate = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
- const config_1 = require("@sitecore-content-sdk/core/config");
8
+ const config_1 = require("@sitecore-content-sdk/content/config");
9
9
  const constants_1 = require("./constants");
10
10
  /**
11
11
  * Next.js component boilerplate
@@ -9,10 +9,9 @@ exports.getComponentListWithTypes = getComponentListWithTypes;
9
9
  exports.nextjsClientMapTemplate = nextjsClientMapTemplate;
10
10
  exports.nextjsServertMapTemplate = nextjsServertMapTemplate;
11
11
  exports.nextjsDefaultMapTemplate = nextjsDefaultMapTemplate;
12
- const tools_1 = require("@sitecore-content-sdk/core/tools");
12
+ const node_tools_1 = require("@sitecore-content-sdk/content/node-tools");
13
13
  const typescript_1 = __importDefault(require("typescript"));
14
14
  const fs_1 = __importDefault(require("fs"));
15
- const tools_2 = require("@sitecore-content-sdk/core/tools");
16
15
  /**
17
16
  * Detects the Next.js router type (App Router or Pages Router) based on directory structure.
18
17
  * @param {string} projectRoot - The project root directory. Defaults to current working directory.
@@ -178,7 +177,7 @@ function detectComponentType(filePath, routerType) {
178
177
  * @internal
179
178
  */
180
179
  function getComponentListWithTypes(paths, exclude, includeVariants, routerType) {
181
- const components = (0, tools_1.getComponentList)(paths, exclude, includeVariants);
180
+ const components = (0, node_tools_1.getComponentList)(paths, exclude, includeVariants);
182
181
  const detectedRouterType = routerType || detectRouterType();
183
182
  return components.map((component) => (Object.assign(Object.assign({}, component), { componentType: detectComponentType(component.filePath, detectedRouterType) })));
184
183
  }
@@ -189,7 +188,7 @@ function getComponentListWithTypes(paths, exclude, includeVariants, routerType)
189
188
  */
190
189
  function nextjsClientMapTemplate(indexedImportMap) {
191
190
  return `'use client';
192
- ${(0, tools_2.defaultImportMapTemplate)(indexedImportMap, 'nextjs')}`;
191
+ ${(0, node_tools_1.defaultImportMapTemplate)(indexedImportMap, 'nextjs')}`;
193
192
  }
194
193
  /**
195
194
  * React-specific import map template for server side imports only. Used in App Router.
@@ -197,7 +196,7 @@ function nextjsClientMapTemplate(indexedImportMap) {
197
196
  * @returns {string} contents for resulting import map file
198
197
  */
199
198
  function nextjsServertMapTemplate(indexedImportMap) {
200
- return (0, tools_2.defaultImportMapTemplate)(indexedImportMap, 'nextjs', 'defaultServerImportEntries');
199
+ return (0, node_tools_1.defaultImportMapTemplate)(indexedImportMap, 'nextjs', 'defaultServerImportEntries');
201
200
  }
202
201
  /**
203
202
  * React-specific import map template. Used in Pages Router.
@@ -205,5 +204,5 @@ function nextjsServertMapTemplate(indexedImportMap) {
205
204
  * @returns {string} contents for resulting import map file
206
205
  */
207
206
  function nextjsDefaultMapTemplate(indexedImportMap) {
208
- return (0, tools_2.defaultImportMapTemplate)(indexedImportMap, 'nextjs');
207
+ return (0, node_tools_1.defaultImportMapTemplate)(indexedImportMap, 'nextjs');
209
208
  }
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resetEditorChromes = exports.isEditorActive = exports.resolveUrl = exports.tryParseEnvValue = exports.parseRewriteHeader = exports.isServerSidePropsContext = exports.extractPath = exports.handleEditorFastRefresh = void 0;
3
+ exports.resetEditorChromes = exports.isEditorActive = exports.resolveUrl = exports.parseRewriteHeader = exports.isServerSidePropsContext = exports.extractPath = exports.handleEditorFastRefresh = void 0;
4
4
  var utils_1 = require("./utils");
5
5
  Object.defineProperty(exports, "handleEditorFastRefresh", { enumerable: true, get: function () { return utils_1.handleEditorFastRefresh; } });
6
6
  Object.defineProperty(exports, "extractPath", { enumerable: true, get: function () { return utils_1.extractPath; } });
7
7
  Object.defineProperty(exports, "isServerSidePropsContext", { enumerable: true, get: function () { return utils_1.isServerSidePropsContext; } });
8
8
  Object.defineProperty(exports, "parseRewriteHeader", { enumerable: true, get: function () { return utils_1.parseRewriteHeader; } });
9
- var utils_2 = require("@sitecore-content-sdk/core/utils");
10
- Object.defineProperty(exports, "tryParseEnvValue", { enumerable: true, get: function () { return utils_2.tryParseEnvValue; } });
11
- Object.defineProperty(exports, "resolveUrl", { enumerable: true, get: function () { return utils_2.resolveUrl; } });
12
- var editing_1 = require("@sitecore-content-sdk/core/editing");
9
+ var tools_1 = require("@sitecore-content-sdk/core/tools");
10
+ Object.defineProperty(exports, "resolveUrl", { enumerable: true, get: function () { return tools_1.resolveUrl; } });
11
+ var editing_1 = require("@sitecore-content-sdk/content/editing");
13
12
  Object.defineProperty(exports, "isEditorActive", { enumerable: true, get: function () { return editing_1.isEditorActive; } });
14
13
  Object.defineProperty(exports, "resetEditorChromes", { enumerable: true, get: function () { return editing_1.resetEditorChromes; } });
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseRewriteHeader = exports.isServerSidePropsContext = exports.extractPath = exports.getEditingSecret = exports.handleEditorFastRefresh = void 0;
4
- const editing_1 = require("@sitecore-content-sdk/core/editing");
5
- const middleware_1 = require("../middleware/middleware");
4
+ const editing_1 = require("@sitecore-content-sdk/content/editing");
5
+ const proxy_1 = require("../proxy/proxy");
6
6
  /**
7
7
  * Since Sitecore editors do not support Fast Refresh:
8
8
  * 1. Subscribe on events provided by webpack.
@@ -73,7 +73,7 @@ exports.isServerSidePropsContext = isServerSidePropsContext;
73
73
  * @public
74
74
  */
75
75
  const parseRewriteHeader = (headers) => {
76
- const rewriteHeader = headers.get(middleware_1.REWRITE_HEADER_NAME);
76
+ const rewriteHeader = headers.get(proxy_1.REWRITE_HEADER_NAME);
77
77
  const rewriteSegments = (rewriteHeader === null || rewriteHeader === void 0 ? void 0 : rewriteHeader.split('/').filter((segment) => segment)) || [];
78
78
  const site = rewriteSegments[0];
79
79
  const locale = rewriteSegments[1];
@@ -1,2 +1,2 @@
1
- export { DefaultRetryStrategy, GraphQLRequestClient, getEdgeProxyContentUrl, createGraphQLClientFactory, } from '@sitecore-content-sdk/core/client';
1
+ export { DefaultRetryStrategy, GraphQLRequestClient, getEdgeProxyContentUrl, createGraphQLClientFactory, } from '@sitecore-content-sdk/content/client';
2
2
  export { SitecoreNextjsClient as SitecoreClient } from './sitecore-nextjs-client';
@@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { SitecoreClient, } from '@sitecore-content-sdk/core/client';
10
+ import { SitecoreClient, } from '@sitecore-content-sdk/content/client';
11
11
  import { ComponentPropsService } from '../services/component-props-service';
12
- import { getSiteRewriteData, normalizeSiteRewrite } from '@sitecore-content-sdk/core/site';
13
- import { getPersonalizedRewriteData, normalizePersonalizedRewrite, } from '@sitecore-content-sdk/core/personalize';
12
+ import { getSiteRewriteData, normalizeSiteRewrite } from '@sitecore-content-sdk/content/site';
13
+ import { getPersonalizedRewriteData, normalizePersonalizedRewrite, } from '@sitecore-content-sdk/content/personalize';
14
14
  /**
15
15
  * The SitecoreNextjsClient class extends the SitecoreClient class to provide additional functionality for Next.js.
16
16
  * @public
@@ -28,7 +28,7 @@ export class SitecoreNextjsClient extends SitecoreClient {
28
28
  */
29
29
  getSiteNameFromPath(path) {
30
30
  const resolvedPath = super.parsePath(path);
31
- // Get site name (from path rewritten in middleware)
31
+ // Get site name (from path rewritten in proxy)
32
32
  const siteData = getSiteRewriteData(resolvedPath, this.initOptions.defaultSite);
33
33
  return siteData.siteName;
34
34
  }
@@ -8,11 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { BYOCWrapper, fetchBYOCComponentServerProps, } from '@sitecore-content-sdk/react';
11
- /**
12
- * TODO: remove when framework agnostic forms implemented
13
- * This is a repackaged version of the React BYOCWrapper component with support for
14
- * server rendering in Next.js (using component-level data-fetching feature of Content SDK).
15
- */
16
11
  /**
17
12
  * Will be called during SSG or SSR
18
13
  * @param {ComponentRendering} rendering
@@ -8,11 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { FEaaSWrapper, fetchFEaaSComponentServerProps, LayoutServicePageState, } from '@sitecore-content-sdk/react';
11
- /**
12
- * TODO: remove when framework agnostic forms implemented
13
- * This is a repackaged version of the React FEaaSWrapper component with support for
14
- * server rendering in Next.js (using component-level data-fetching feature of Content SDK).
15
- */
16
11
  /**
17
12
  * Will be called during SSG or SSR
18
13
  * @param {ComponentRendering} rendering
@@ -11,11 +11,11 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  /* eslint-disable no-unused-vars */
14
- import { mediaApi } from '@sitecore-content-sdk/core/media';
14
+ import { mediaApi } from '@sitecore-content-sdk/content/media';
15
15
  import React from 'react';
16
16
  import { withFieldMetadata, SitecoreProviderReactContext, DefaultEmptyFieldEditingComponentImage, withEmptyFieldEditingComponent, } from '@sitecore-content-sdk/react';
17
17
  import Image from 'next/image';
18
- import { isFieldValueEmpty } from '@sitecore-content-sdk/core/layout';
18
+ import { isFieldValueEmpty } from '@sitecore-content-sdk/content/layout';
19
19
  /**
20
20
  * Next.js specific Image component implementation.
21
21
  * @public
@@ -1,14 +1,17 @@
1
- import { defineConfig as defineConfigCore, } from '@sitecore-content-sdk/core/config';
1
+ import { defineConfig as defineConfigCore, } from '@sitecore-content-sdk/content/config';
2
+ import { resolveEdgeUrl } from '@sitecore-content-sdk/core/tools';
3
+ /** Next.js env var for Edge hostname; exposed to the browser so client code can use it. */
4
+ const NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME_ENV = 'NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME';
2
5
  /**
3
6
  * Provides default NextJs initial values from env variables for SitecoreConfig
4
7
  * @param {SitecoreConfigInput} config optional override values to be written over default config settings
5
8
  * @returns default nextjs input config
6
9
  */
7
10
  export const getNextFallbackConfig = (config) => {
8
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
9
- return Object.assign(Object.assign({}, config), { api: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.api), { edge: Object.assign(Object.assign({}, (_a = config === null || config === void 0 ? void 0 : config.api) === null || _a === void 0 ? void 0 : _a.edge), { contextId: ((_c = (_b = config === null || config === void 0 ? void 0 : config.api) === null || _b === void 0 ? void 0 : _b.edge) === null || _c === void 0 ? void 0 : _c.contextId) || '', clientContextId: ((_e = (_d = config === null || config === void 0 ? void 0 : config.api) === null || _d === void 0 ? void 0 : _d.edge) === null || _e === void 0 ? void 0 : _e.clientContextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, edgeUrl: ((_g = (_f = config === null || config === void 0 ? void 0 : config.api) === null || _f === void 0 ? void 0 : _f.edge) === null || _g === void 0 ? void 0 : _g.edgeUrl) || process.env.NEXT_PUBLIC_SITECORE_EDGE_URL }), local: Object.assign(Object.assign({}, (_h = config === null || config === void 0 ? void 0 : config.api) === null || _h === void 0 ? void 0 : _h.local), { apiKey: ((_k = (_j = config === null || config === void 0 ? void 0 : config.api) === null || _j === void 0 ? void 0 : _j.local) === null || _k === void 0 ? void 0 : _k.apiKey) || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '', apiHost: ((_m = (_l = config === null || config === void 0 ? void 0 : config.api) === null || _l === void 0 ? void 0 : _l.local) === null || _m === void 0 ? void 0 : _m.apiHost) || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '' }) }), defaultSite: (config === null || config === void 0 ? void 0 : config.defaultSite) || process.env.NEXT_PUBLIC_DEFAULT_SITE_NAME || '', defaultLanguage: (config === null || config === void 0 ? void 0 : config.defaultLanguage) || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en', multisite: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.multisite), { useCookieResolution: (_p = (_o = config === null || config === void 0 ? void 0 : config.multisite) === null || _o === void 0 ? void 0 : _o.useCookieResolution) !== null && _p !== void 0 ? _p : (() => process.env.VERCEL_ENV === 'preview') }), personalize: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.personalize), { scope: ((_q = config === null || config === void 0 ? void 0 : config.personalize) === null || _q === void 0 ? void 0 : _q.scope) || process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE }), generateStaticPaths: process.env.GENERATE_STATIC_PATHS !== undefined
11
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
12
+ return Object.assign(Object.assign({}, config), { api: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.api), { edge: Object.assign(Object.assign({}, (_a = config === null || config === void 0 ? void 0 : config.api) === null || _a === void 0 ? void 0 : _a.edge), { contextId: ((_c = (_b = config === null || config === void 0 ? void 0 : config.api) === null || _b === void 0 ? void 0 : _b.edge) === null || _c === void 0 ? void 0 : _c.contextId) || '', clientContextId: ((_e = (_d = config === null || config === void 0 ? void 0 : config.api) === null || _d === void 0 ? void 0 : _d.edge) === null || _e === void 0 ? void 0 : _e.clientContextId) || process.env.NEXT_PUBLIC_SITECORE_EDGE_CONTEXT_ID, edgeUrl: resolveEdgeUrl((_h = (_g = (_f = config === null || config === void 0 ? void 0 : config.api) === null || _f === void 0 ? void 0 : _f.edge) === null || _g === void 0 ? void 0 : _g.edgeUrl) !== null && _h !== void 0 ? _h : process.env[NEXT_PUBLIC_SITECORE_EDGE_PLATFORM_HOSTNAME_ENV]) }), local: Object.assign(Object.assign({}, (_j = config === null || config === void 0 ? void 0 : config.api) === null || _j === void 0 ? void 0 : _j.local), { apiKey: ((_l = (_k = config === null || config === void 0 ? void 0 : config.api) === null || _k === void 0 ? void 0 : _k.local) === null || _l === void 0 ? void 0 : _l.apiKey) || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '', apiHost: ((_o = (_m = config === null || config === void 0 ? void 0 : config.api) === null || _m === void 0 ? void 0 : _m.local) === null || _o === void 0 ? void 0 : _o.apiHost) || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '' }) }), defaultSite: (config === null || config === void 0 ? void 0 : config.defaultSite) || process.env.NEXT_PUBLIC_DEFAULT_SITE_NAME || '', defaultLanguage: (config === null || config === void 0 ? void 0 : config.defaultLanguage) || process.env.NEXT_PUBLIC_DEFAULT_LANGUAGE || 'en', multisite: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.multisite), { useCookieResolution: (_q = (_p = config === null || config === void 0 ? void 0 : config.multisite) === null || _p === void 0 ? void 0 : _p.useCookieResolution) !== null && _q !== void 0 ? _q : (() => process.env.VERCEL_ENV === 'preview') }), personalize: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.personalize), { scope: ((_r = config === null || config === void 0 ? void 0 : config.personalize) === null || _r === void 0 ? void 0 : _r.scope) || process.env.NEXT_PUBLIC_PERSONALIZE_SCOPE }), generateStaticPaths: process.env.GENERATE_STATIC_PATHS !== undefined
10
13
  ? process.env.GENERATE_STATIC_PATHS.toLowerCase() === 'true'
11
- : (_r = config === null || config === void 0 ? void 0 : config.generateStaticPaths) !== null && _r !== void 0 ? _r : true, sitecoreInternalEditingHostUrl: (config === null || config === void 0 ? void 0 : config.sitecoreInternalEditingHostUrl) || process.env.SITECORE_INTERNAL_EDITING_HOST_URL });
14
+ : (_s = config === null || config === void 0 ? void 0 : config.generateStaticPaths) !== null && _s !== void 0 ? _s : true, sitecoreInternalEditingHostUrl: (config === null || config === void 0 ? void 0 : config.sitecoreInternalEditingHostUrl) || process.env.SITECORE_INTERNAL_EDITING_HOST_URL });
12
15
  };
13
16
  /**
14
17
  * Accepts a SitecoreConfigInput object and returns full sitecore configuration
@@ -1,4 +1,4 @@
1
- import { defineCliConfig as defineCliConfigCore } from '@sitecore-content-sdk/core/config-cli';
1
+ import { defineCliConfig as defineCliConfigCore } from '@sitecore-content-sdk/content/config-cli';
2
2
  import { byocTemplate } from '../tools/templating/byoc-component';
3
3
  import { defaultTemplate } from '../tools/templating/default-component';
4
4
  import { generateMap } from '../tools/generate-map';
@@ -0,0 +1,9 @@
1
+ import { debug as coreDebug } from '@sitecore-content-sdk/core';
2
+ import { debug as contentDebug } from '@sitecore-content-sdk/content';
3
+ import { debug as searchDebug } from '@sitecore-content-sdk/react/search';
4
+ /**
5
+ * Unified debug object containing all debug namespaces from referenced content-sdk packages.
6
+ * @public
7
+ */
8
+ const debug = Object.assign(Object.assign(Object.assign({}, coreDebug), contentDebug), { search: searchDebug });
9
+ export default debug;
@@ -1,5 +1,5 @@
1
1
  import React, { Children, Fragment, createElement, cloneElement, isValidElement, useCallback, useId, useMemo, forwardRef, lazy, memo, Suspense, } from 'react';
2
- import { CdpHelper } from '@sitecore-content-sdk/core/personalize';
2
+ import { CdpHelper } from '@sitecore-content-sdk/content/personalize';
3
3
  import { Link, Text, RichText, NextImage, Placeholder, Image, File, withDatasourceCheck, } from '../..';
4
4
  /**
5
5
  * The default import entries for the import map.
@@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/core/editing';
11
- import { debug } from '@sitecore-content-sdk/core';
12
- import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
13
- import { EditMode } from '@sitecore-content-sdk/core/layout';
10
+ import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/content/editing';
11
+ import debug from '../debug';
12
+ import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/tools';
13
+ import { EditMode } from '@sitecore-content-sdk/content/layout';
14
14
  import { getEditingSecret } from '../utils/utils';
15
15
  /**
16
16
  * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
@@ -45,7 +45,6 @@ export class EditingConfigMiddleware {
45
45
  // Handle preflight request
46
46
  if (_req.method === 'OPTIONS') {
47
47
  debug.editing('preflight request');
48
- // CORS headers are set by enforceCors
49
48
  return res.status(204).send(null);
50
49
  }
51
50
  const components = Array.from(this.config.components.keys());
@@ -7,13 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { debug, NativeDataFetcher } from '@sitecore-content-sdk/core';
11
- import { QUERY_PARAM_EDITING_SECRET, INVALID_SECRET_HTML_MESSAGE, EDITING_ALLOWED_ORIGINS, } from '@sitecore-content-sdk/core/editing';
12
- import { LayoutServicePageState } from '@sitecore-content-sdk/core/layout';
10
+ import { NativeDataFetcher } from '@sitecore-content-sdk/core';
11
+ import { QUERY_PARAM_EDITING_SECRET, INVALID_SECRET_HTML_MESSAGE, EDITING_ALLOWED_ORIGINS, } from '@sitecore-content-sdk/content/editing';
12
+ import { LayoutServicePageState } from '@sitecore-content-sdk/content/layout';
13
13
  import { getEditingSecret } from '../utils/utils';
14
14
  import { RenderMiddlewareBase } from './render-middleware';
15
- import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
16
- import { getPreviewCookies, getRequiredEditingParamsList, mapEditingParams, cleanupNextPreviewCookies, getQueryParamsForPropagation, getHeadersForPropagation, getEditingRequestHtml, getCSPHeader, resolveServerUrl, } from './utils';
15
+ import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/tools';
16
+ import debug from '../debug';
17
+ import { getPreviewCookies, getRequiredEditingParamsList, mapEditingParams, cleanupNextPreviewCookies, getQueryParamsForPropagation, getHeadersForPropagation, getEditingRequestHtml, getCSPHeader, resolveServerUrl, getAllowedQueryParams, } from './utils';
17
18
  /**
18
19
  * Middleware / handler for use in the editing render Next.js API route (e.g. '/api/editing/render')
19
20
  * which is required for Sitecore editing support.
@@ -27,7 +28,7 @@ export class EditingRenderMiddleware extends RenderMiddlewareBase {
27
28
  super();
28
29
  this.config = config;
29
30
  this.handler = (req, res) => __awaiter(this, void 0, void 0, function* () {
30
- var _a, _b, _c, _d, _e;
31
+ var _a, _b, _c, _d, _e, _f;
31
32
  const { body, method, headers, query } = req;
32
33
  debug.editing('editing render middleware start: %o', {
33
34
  method,
@@ -60,7 +61,7 @@ export class EditingRenderMiddleware extends RenderMiddlewareBase {
60
61
  }
61
62
  if (req.method === 'OPTIONS') {
62
63
  debug.editing('preflight request');
63
- // CORS headers are set by enforceCors
64
+ // CORS headers are set by getEnforcedCorsHeaders
64
65
  return res.status(204).send(null);
65
66
  }
66
67
  if (req.method !== 'GET') {
@@ -74,15 +75,22 @@ export class EditingRenderMiddleware extends RenderMiddlewareBase {
74
75
  const mode = query.mode;
75
76
  const requiredQueryParams = getRequiredEditingParamsList(mode);
76
77
  const missingQueryParams = requiredQueryParams.filter((param) => !query[param]);
78
+ const { allowedQueryParams, missingAllowedParams } = getAllowedQueryParams(query, (_b = this.config) === null || _b === void 0 ? void 0 : _b.allowedQueryParams);
77
79
  // Validate query parameters
78
- if (missingQueryParams.length) {
79
- debug.editing('missing required query parameters: %o', missingQueryParams);
80
+ if (missingQueryParams.length || missingAllowedParams.length) {
81
+ debug.editing('missing required query parameters: %o', [
82
+ ...missingQueryParams,
83
+ ...missingAllowedParams,
84
+ ]);
80
85
  return res.status(400).json({
81
- html: `<html><body>Missing required query parameters: ${missingQueryParams.join(', ')}</body></html>`,
86
+ html: `<html><body>Missing required query parameters: ${[
87
+ ...missingQueryParams,
88
+ ...missingAllowedParams,
89
+ ].join(', ')}</body></html>`,
82
90
  });
83
91
  }
84
92
  const previewDataParams = mapEditingParams(query);
85
- res.setPreviewData(Object.assign(Object.assign({}, previewDataParams), { variantIds: (_b = previewDataParams.variantIds) === null || _b === void 0 ? void 0 : _b.split(',') }), {
93
+ res.setPreviewData(Object.assign(Object.assign(Object.assign({}, previewDataParams), allowedQueryParams), { variantIds: (_c = previewDataParams.variantIds) === null || _c === void 0 ? void 0 : _c.split(',') }), {
86
94
  maxAge: 3,
87
95
  });
88
96
  // Set Preview mode identifier cookie, if the page is rendered in Sitecore Preview mode
@@ -94,8 +102,8 @@ export class EditingRenderMiddleware extends RenderMiddlewareBase {
94
102
  // Restrict the page to be rendered only within the allowed origins
95
103
  res.setHeader('Content-Security-Policy', getCSPHeader());
96
104
  const encodedRoute = encodeURI(query.route);
97
- const route = ((_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.resolvePageUrl) === null || _d === void 0 ? void 0 : _d.call(_c, encodedRoute)) || encodedRoute;
98
- const base = ((_e = this.config) === null || _e === void 0 ? void 0 : _e.sitecoreInternalEditingHostUrl) || resolveServerUrl(req);
105
+ const route = ((_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.resolvePageUrl) === null || _e === void 0 ? void 0 : _e.call(_d, encodedRoute)) || encodedRoute;
106
+ const base = ((_f = this.config) === null || _f === void 0 ? void 0 : _f.sitecoreInternalEditingHostUrl) || resolveServerUrl(req);
99
107
  const requestUrl = new URL(route, base);
100
108
  const cookies = res.getHeader('Set-Cookie');
101
109
  // Make actual render request for page route, passing on preview cookies as well as any approved query string parameters.
@@ -116,6 +124,7 @@ export class EditingRenderMiddleware extends RenderMiddlewareBase {
116
124
  status: 200,
117
125
  route,
118
126
  });
127
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
119
128
  res.status(200).send(html);
120
129
  }
121
130
  catch (err) {
@@ -7,11 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { debug } from '@sitecore-content-sdk/core';
11
- import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, INVALID_SECRET_HTML_MESSAGE, } from '@sitecore-content-sdk/core/editing';
10
+ import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, INVALID_SECRET_HTML_MESSAGE, } from '@sitecore-content-sdk/content/editing';
12
11
  import { getEditingSecret } from '../utils/utils';
13
12
  import { RenderMiddlewareBase } from './render-middleware';
14
- import { enforceCors } from '@sitecore-content-sdk/core/utils';
13
+ import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/tools';
14
+ import debug from '../debug';
15
15
  /**
16
16
  * Middleware / handler for use in the feaas render Next.js API route (e.g. '/api/editing/feaas/render')
17
17
  * which is required for Sitecore editing support.
@@ -19,7 +19,7 @@ import { enforceCors } from '@sitecore-content-sdk/core/utils';
19
19
  */
20
20
  export class FEAASRenderMiddleware extends RenderMiddlewareBase {
21
21
  /**
22
- * @param {EditingRenderMiddlewareConfig} [config] Editing render middleware config
22
+ * @param {FEAASRenderMiddlewareConfig} [config] FEAAS render middleware config
23
23
  */
24
24
  constructor(config) {
25
25
  var _a;
@@ -35,12 +35,21 @@ export class FEAASRenderMiddleware extends RenderMiddlewareBase {
35
35
  query,
36
36
  headers,
37
37
  });
38
- if (!enforceCors(req, res, EDITING_ALLOWED_ORIGINS)) {
38
+ const corsHeaders = getEnforcedCorsHeaders({
39
+ requestMethod: method,
40
+ headers: headers,
41
+ presetCorsHeader: headers['Access-Control-Allow-Origin'],
42
+ allowedOrigins: EDITING_ALLOWED_ORIGINS,
43
+ });
44
+ if (!corsHeaders) {
39
45
  debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
40
46
  return res
41
47
  .status(401)
42
48
  .send(`<html><body>Requests from origin ${(_a = req.headers) === null || _a === void 0 ? void 0 : _a.origin} are not allowed</body></html>`);
43
49
  }
50
+ Object.keys(corsHeaders).forEach((key) => {
51
+ res.setHeader(key, corsHeaders[key]);
52
+ });
44
53
  if (!method || !['GET', 'OPTIONS'].includes(method)) {
45
54
  debug.editing('invalid method - sent %s expected GET,OPTIONS', method);
46
55
  res.setHeader('Allow', 'GET, OPTIONS');
@@ -55,7 +64,6 @@ export class FEAASRenderMiddleware extends RenderMiddlewareBase {
55
64
  // Handle preflight request
56
65
  if (method === 'OPTIONS') {
57
66
  debug.editing('preflight request');
58
- // CORS headers are set by enforceCors
59
67
  return res.status(204).send(null);
60
68
  }
61
69
  try {
@@ -1,6 +1,6 @@
1
- export { EditingService } from '@sitecore-content-sdk/core/editing';
1
+ export { EditingService } from '@sitecore-content-sdk/content/editing';
2
2
  export { EditingRenderMiddleware, } from './editing-render-middleware';
3
3
  export { isDesignLibraryPreviewData, getQueryParamsForPropagation, getHeadersForPropagation, } from './utils';
4
4
  export { FEAASRenderMiddleware } from './feaas-render-middleware';
5
5
  export { EditingConfigMiddleware, } from './editing-config-middleware';
6
- export { RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, } from '@sitecore-content-sdk/core/layout';
6
+ export { RenderingType, EDITING_COMPONENT_PLACEHOLDER, EDITING_COMPONENT_ID, } from '@sitecore-content-sdk/content/layout';
@@ -0,0 +1 @@
1
+ export {};