@sitecore-content-sdk/nextjs 1.3.0-canary.9 → 1.4.0-canary.2

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 (234) hide show
  1. package/README.md +11 -11
  2. package/dist/cjs/client/index.js +10 -10
  3. package/dist/cjs/client/models.js +2 -2
  4. package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
  5. package/dist/cjs/components/BYOCWrapper.js +31 -30
  6. package/dist/cjs/components/ComponentPropsContext.js +66 -59
  7. package/dist/cjs/components/FEaaSWrapper.js +33 -32
  8. package/dist/cjs/components/Link.js +117 -90
  9. package/dist/cjs/components/NextImage.js +66 -62
  10. package/dist/cjs/components/Placeholder.js +55 -50
  11. package/dist/cjs/components/RichText.js +133 -128
  12. package/dist/cjs/config/define-config.js +26 -25
  13. package/dist/cjs/config/index.js +5 -5
  14. package/dist/cjs/config-cli/define-cli-config.js +40 -39
  15. package/dist/cjs/config-cli/index.js +5 -5
  16. package/dist/cjs/editing/codegen/import-map.js +129 -118
  17. package/dist/cjs/editing/codegen/index.js +6 -6
  18. package/dist/cjs/editing/constants.js +10 -10
  19. package/dist/cjs/editing/editing-config-middleware.js +70 -69
  20. package/dist/cjs/editing/editing-render-middleware.js +145 -144
  21. package/dist/cjs/editing/feaas-render-middleware.js +102 -101
  22. package/dist/cjs/editing/index.js +19 -19
  23. package/dist/cjs/editing/render-middleware.js +46 -46
  24. package/dist/cjs/editing/utils.js +260 -257
  25. package/dist/cjs/index.js +132 -131
  26. package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
  27. package/dist/cjs/middleware/index.js +30 -30
  28. package/dist/cjs/middleware/locale-middleware.js +85 -84
  29. package/dist/cjs/middleware/middleware.js +195 -192
  30. package/dist/cjs/middleware/multisite-middleware.js +141 -118
  31. package/dist/cjs/middleware/personalize-middleware.js +240 -236
  32. package/dist/cjs/middleware/redirects-middleware.js +323 -297
  33. package/dist/cjs/middleware/robots-middleware.js +45 -44
  34. package/dist/cjs/middleware/sitemap-middleware.js +50 -49
  35. package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
  36. package/dist/cjs/monitoring/index.js +5 -5
  37. package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
  38. package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
  39. package/dist/cjs/route-handler/index.js +11 -11
  40. package/dist/cjs/route-handler/robots-route-handler.js +69 -68
  41. package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
  42. package/dist/cjs/search/index.js +17 -0
  43. package/dist/cjs/services/component-props-service.js +142 -138
  44. package/dist/cjs/sharedTypes/component-props.js +2 -2
  45. package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
  46. package/dist/cjs/site/index.js +5 -5
  47. package/dist/cjs/tools/codegen/import-map.js +15 -0
  48. package/dist/cjs/tools/component-props.loader.js +95 -95
  49. package/dist/cjs/tools/generate-map.js +317 -317
  50. package/dist/cjs/tools/index.js +14 -13
  51. package/dist/cjs/tools/templating/byoc-component.js +36 -36
  52. package/dist/cjs/tools/templating/constants.js +7 -7
  53. package/dist/cjs/tools/templating/default-component.js +35 -35
  54. package/dist/cjs/tools/templating/utils.js +200 -0
  55. package/dist/cjs/utils/index.js +14 -14
  56. package/dist/cjs/utils/utils.js +82 -73
  57. package/dist/esm/client/index.js +2 -2
  58. package/dist/esm/client/models.js +1 -1
  59. package/dist/esm/client/sitecore-nextjs-client.js +156 -152
  60. package/dist/esm/components/BYOCWrapper.js +27 -26
  61. package/dist/esm/components/ComponentPropsContext.js +28 -21
  62. package/dist/esm/components/FEaaSWrapper.js +29 -28
  63. package/dist/esm/components/Link.js +78 -51
  64. package/dist/esm/components/NextImage.js +60 -56
  65. package/dist/esm/components/Placeholder.js +18 -13
  66. package/dist/esm/components/RichText.js +96 -91
  67. package/dist/esm/config/define-config.js +21 -20
  68. package/dist/esm/config/index.js +1 -1
  69. package/dist/esm/config-cli/define-cli-config.js +36 -35
  70. package/dist/esm/config-cli/index.js +1 -1
  71. package/dist/esm/editing/codegen/import-map.js +92 -81
  72. package/dist/esm/editing/codegen/index.js +1 -1
  73. package/dist/esm/editing/constants.js +7 -7
  74. package/dist/esm/editing/editing-config-middleware.js +66 -65
  75. package/dist/esm/editing/editing-render-middleware.js +141 -140
  76. package/dist/esm/editing/feaas-render-middleware.js +98 -97
  77. package/dist/esm/editing/index.js +6 -6
  78. package/dist/esm/editing/render-middleware.js +42 -42
  79. package/dist/esm/editing/utils.js +246 -243
  80. package/dist/esm/index.js +25 -25
  81. package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
  82. package/dist/esm/middleware/index.js +11 -11
  83. package/dist/esm/middleware/locale-middleware.js +81 -80
  84. package/dist/esm/middleware/middleware.js +189 -186
  85. package/dist/esm/middleware/multisite-middleware.js +137 -114
  86. package/dist/esm/middleware/personalize-middleware.js +236 -232
  87. package/dist/esm/middleware/redirects-middleware.js +316 -290
  88. package/dist/esm/middleware/robots-middleware.js +41 -40
  89. package/dist/esm/middleware/sitemap-middleware.js +46 -45
  90. package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
  91. package/dist/esm/monitoring/index.js +1 -1
  92. package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
  93. package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
  94. package/dist/esm/route-handler/index.js +4 -4
  95. package/dist/esm/route-handler/robots-route-handler.js +65 -64
  96. package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
  97. package/dist/esm/search/index.js +1 -0
  98. package/dist/esm/services/component-props-service.js +135 -131
  99. package/dist/esm/sharedTypes/component-props.js +1 -1
  100. package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
  101. package/dist/esm/site/index.js +1 -1
  102. package/dist/esm/tools/codegen/import-map.js +11 -0
  103. package/dist/esm/tools/component-props.loader.js +59 -59
  104. package/dist/esm/tools/generate-map.js +279 -279
  105. package/dist/esm/tools/index.js +3 -2
  106. package/dist/esm/tools/templating/byoc-component.js +30 -30
  107. package/dist/esm/tools/templating/constants.js +4 -4
  108. package/dist/esm/tools/templating/default-component.js +29 -29
  109. package/dist/esm/tools/templating/utils.js +190 -0
  110. package/dist/esm/utils/index.js +3 -3
  111. package/dist/esm/utils/utils.js +74 -65
  112. package/package.json +87 -13
  113. package/search.d.ts +1 -0
  114. package/types/client/index.d.ts +3 -2
  115. package/types/client/index.d.ts.map +1 -0
  116. package/types/client/models.d.ts +9 -8
  117. package/types/client/models.d.ts.map +1 -0
  118. package/types/client/sitecore-nextjs-client.d.ts +68 -63
  119. package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
  120. package/types/components/BYOCWrapper.d.ts +16 -14
  121. package/types/components/BYOCWrapper.d.ts.map +1 -0
  122. package/types/components/ComponentPropsContext.d.ts +30 -18
  123. package/types/components/ComponentPropsContext.d.ts.map +1 -0
  124. package/types/components/FEaaSWrapper.d.ts +17 -15
  125. package/types/components/FEaaSWrapper.d.ts.map +1 -0
  126. package/types/components/Link.d.ts +25 -15
  127. package/types/components/Link.d.ts.map +1 -0
  128. package/types/components/NextImage.d.ts +11 -6
  129. package/types/components/NextImage.d.ts.map +1 -0
  130. package/types/components/Placeholder.d.ts +14 -8
  131. package/types/components/Placeholder.d.ts.map +1 -0
  132. package/types/components/RichText.d.ts +35 -25
  133. package/types/components/RichText.d.ts.map +1 -0
  134. package/types/config/define-config.d.ts +42 -38
  135. package/types/config/define-config.d.ts.map +1 -0
  136. package/types/config/index.d.ts +2 -1
  137. package/types/config/index.d.ts.map +1 -0
  138. package/types/config-cli/define-cli-config.d.ts +10 -8
  139. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  140. package/types/config-cli/index.d.ts +2 -1
  141. package/types/config-cli/index.d.ts.map +1 -0
  142. package/types/editing/codegen/import-map.d.ts +15 -3
  143. package/types/editing/codegen/import-map.d.ts.map +1 -0
  144. package/types/editing/codegen/index.d.ts +3 -2
  145. package/types/editing/codegen/index.d.ts.map +1 -0
  146. package/types/editing/constants.d.ts +8 -7
  147. package/types/editing/constants.d.ts.map +1 -0
  148. package/types/editing/editing-config-middleware.d.ts +37 -31
  149. package/types/editing/editing-config-middleware.d.ts.map +1 -0
  150. package/types/editing/editing-render-middleware.d.ts +47 -44
  151. package/types/editing/editing-render-middleware.d.ts.map +1 -0
  152. package/types/editing/feaas-render-middleware.d.ts +35 -32
  153. package/types/editing/feaas-render-middleware.d.ts.map +1 -0
  154. package/types/editing/index.d.ts +7 -6
  155. package/types/editing/index.d.ts.map +1 -0
  156. package/types/editing/render-middleware.d.ts +26 -25
  157. package/types/editing/render-middleware.d.ts.map +1 -0
  158. package/types/editing/utils.d.ts +110 -106
  159. package/types/editing/utils.d.ts.map +1 -0
  160. package/types/index.d.ts +25 -24
  161. package/types/index.d.ts.map +1 -0
  162. package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
  163. package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
  164. package/types/middleware/index.d.ts +12 -11
  165. package/types/middleware/index.d.ts.map +1 -0
  166. package/types/middleware/locale-middleware.d.ts +35 -32
  167. package/types/middleware/locale-middleware.d.ts.map +1 -0
  168. package/types/middleware/middleware.d.ts +135 -127
  169. package/types/middleware/middleware.d.ts.map +1 -0
  170. package/types/middleware/multisite-middleware.d.ts +54 -37
  171. package/types/middleware/multisite-middleware.d.ts.map +1 -0
  172. package/types/middleware/personalize-middleware.d.ts +81 -65
  173. package/types/middleware/personalize-middleware.d.ts.map +1 -0
  174. package/types/middleware/redirects-middleware.d.ts +68 -65
  175. package/types/middleware/redirects-middleware.d.ts.map +1 -0
  176. package/types/middleware/robots-middleware.d.ts +15 -13
  177. package/types/middleware/robots-middleware.d.ts.map +1 -0
  178. package/types/middleware/sitemap-middleware.d.ts +16 -14
  179. package/types/middleware/sitemap-middleware.d.ts.map +1 -0
  180. package/types/monitoring/healthcheck-middleware.d.ts +14 -12
  181. package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
  182. package/types/monitoring/index.d.ts +2 -1
  183. package/types/monitoring/index.d.ts.map +1 -0
  184. package/types/route-handler/editing-config-route-handler.d.ts +30 -24
  185. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
  186. package/types/route-handler/editing-render-route-handler.d.ts +33 -25
  187. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
  188. package/types/route-handler/index.d.ts +5 -4
  189. package/types/route-handler/index.d.ts.map +1 -0
  190. package/types/route-handler/robots-route-handler.d.ts +30 -28
  191. package/types/route-handler/robots-route-handler.d.ts.map +1 -0
  192. package/types/route-handler/sitemap-route-handler.d.ts +30 -28
  193. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
  194. package/types/search/index.d.ts +2 -0
  195. package/types/search/index.d.ts.map +1 -0
  196. package/types/services/component-props-service.d.ts +62 -57
  197. package/types/services/component-props-service.d.ts.map +1 -0
  198. package/types/sharedTypes/component-props.d.ts +62 -47
  199. package/types/sharedTypes/component-props.d.ts.map +1 -0
  200. package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
  201. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
  202. package/types/site/index.d.ts +2 -1
  203. package/types/site/index.d.ts.map +1 -0
  204. package/types/tools/codegen/import-map.d.ts +10 -0
  205. package/types/tools/codegen/import-map.d.ts.map +1 -0
  206. package/types/tools/component-props.loader.d.ts +8 -7
  207. package/types/tools/component-props.loader.d.ts.map +1 -0
  208. package/types/tools/generate-map.d.ts +26 -24
  209. package/types/tools/generate-map.d.ts.map +1 -0
  210. package/types/tools/index.d.ts +4 -2
  211. package/types/tools/index.d.ts.map +1 -0
  212. package/types/tools/templating/byoc-component.d.ts +3 -2
  213. package/types/tools/templating/byoc-component.d.ts.map +1 -0
  214. package/types/tools/templating/constants.d.ts +5 -4
  215. package/types/tools/templating/constants.d.ts.map +1 -0
  216. package/types/tools/templating/default-component.d.ts +3 -2
  217. package/types/tools/templating/default-component.d.ts.map +1 -0
  218. package/types/tools/templating/utils.d.ts +44 -0
  219. package/types/tools/templating/utils.d.ts.map +1 -0
  220. package/types/utils/index.d.ts +4 -3
  221. package/types/utils/index.d.ts.map +1 -0
  222. package/types/utils/utils.d.ts +34 -24
  223. package/types/utils/utils.d.ts.map +1 -0
  224. package/client.js +0 -1
  225. package/codegen.js +0 -1
  226. package/config-cli.js +0 -1
  227. package/config.js +0 -1
  228. package/editing.js +0 -1
  229. package/middleware.js +0 -1
  230. package/monitoring.js +0 -1
  231. package/route-handler.js +0 -1
  232. package/site.js +0 -1
  233. package/tools.js +0 -1
  234. package/utils.js +0 -1
package/README.md CHANGED
@@ -1,11 +1,11 @@
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.
4
-
5
- <!---
6
- @TODO: Update link with appropriate page when avaiable
7
- -->
8
-
9
- [Documentation](https://doc.sitecore.com/xmc/en/developers/content-sdk/creating-a-content-sdk-app.html)
10
-
11
- [API reference documentation](/ref-docs/nextjs/)
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.
4
+
5
+ <!---
6
+ @TODO: Update link with appropriate page when avaiable
7
+ -->
8
+
9
+ [Documentation](https://doc.sitecore.com/xmc/en/developers/content-sdk/creating-a-content-sdk-app.html)
10
+
11
+ [API reference documentation](/ref-docs/nextjs/)
@@ -1,10 +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; } });
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; } });
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,156 +1,160 @@
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
- * Gets site name based on the provided path
25
- * @param {string | string[]} path path to get site name from
26
- * @returns site name, or default site info if not found
27
- */
28
- getSiteNameFromPath(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
- return siteData.siteName;
33
- }
34
- /**
35
- * Normalizes a nextjs path that could have been rewritten
36
- * @param {string | string[]} path nextjs path
37
- * @returns path string without nextjs prefixes
38
- */
39
- parsePath(path) {
40
- const basePath = super.parsePath(path);
41
- return (0, site_1.normalizeSiteRewrite)((0, personalize_1.normalizePersonalizedRewrite)(basePath));
42
- }
43
- getPage(path, pageOptions, options) {
44
- const _super = Object.create(null, {
45
- parsePath: { get: () => super.parsePath },
46
- getPage: { get: () => super.getPage }
47
- });
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const resolvedPath = this.parsePath(path);
50
- // Get variant(s) for personalization (from path), must ensure path is of type string
51
- const personalizeData = pageOptions.personalize || (0, personalize_1.getPersonalizedRewriteData)(_super.parsePath.call(this, path));
52
- const site = pageOptions.site || this.getSiteNameFromPath(path);
53
- const page = yield _super.getPage.call(this, resolvedPath, {
54
- locale: pageOptions.locale,
55
- site,
56
- personalize: personalizeData,
57
- }, options);
58
- return page;
59
- });
60
- }
61
- /**
62
- * Get design library page details for Design Library mode of your app
63
- * @param {PreviewData} designLibData preview data set in 'library' mode of the app
64
- * @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
65
- * @returns {Page} preview page for Design Library
66
- */
67
- getDesignLibraryData(designLibData, fetchOptions) {
68
- const _super = Object.create(null, {
69
- getDesignLibraryData: { get: () => super.getDesignLibraryData }
70
- });
71
- return __awaiter(this, void 0, void 0, function* () {
72
- return _super.getDesignLibraryData.call(this, designLibData, fetchOptions);
73
- });
74
- }
75
- /**
76
- * Retrieves preview page and layout details
77
- * @param {PreviewData} previewData - The editing preview data for metadata mode.
78
- * @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests (like retries and fetch)
79
- */
80
- getPreview(previewData, fetchOptions) {
81
- const _super = Object.create(null, {
82
- getPreview: { get: () => super.getPreview }
83
- });
84
- return __awaiter(this, void 0, void 0, function* () {
85
- return _super.getPreview.call(this, previewData, fetchOptions);
86
- });
87
- }
88
- /**
89
- * Generates static params for the Next.js App Router from Sitecore routes.
90
- *
91
- * Fetches routes for the specified `sites` and `languages`, then converts them into
92
- * objects consumable by `generateStaticParams`. Internal multisite segments are removed.
93
- * The `site` name is resolved from the path. If a route lacks a locale, the
94
- * client's `defaultLanguage` is used.
95
- *
96
- * **NOTE**: App Router only. For the Pages Router, use `getPagePaths`.
97
- * @param {string[]} sites - An array of site names to fetch routes for.
98
- * @param {string[]} [languages] - Language codes to generate params for.
99
- * @param {FetchOptions} [fetchOptions] - Additional fetch options.
100
- * @returns {Promise<StaticParams[]>} Array of `{ site, locale, path }` entries for `generateStaticParams`.
101
- */
102
- getAppRouterStaticParams(sites, languages, fetchOptions) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const staticPaths = yield this.getPagePaths(sites, languages, fetchOptions);
105
- const params = new Array();
106
- staticPaths.map((path) => {
107
- var _a;
108
- // remove _site_ segments
109
- const normalizedPath = (0, site_1.normalizeSiteRewrite)(path.params.path.join('/')).split('/');
110
- params.push({
111
- locale: (_a = path.locale) !== null && _a !== void 0 ? _a : this.initOptions.defaultLanguage,
112
- site: this.getSiteNameFromPath(path.params.path),
113
- path: normalizedPath,
114
- });
115
- });
116
- return params;
117
- });
118
- }
119
- /**
120
- * Parses components from nextjs component map and layoutData, executes getServerProps/getStaticProps methods
121
- * and returns resulting props from components
122
- * @param {LayoutServiceData} layoutData layout data to parse compnents from
123
- * @param {PreviewData} context Nextjs preview data
124
- * @param {ComponentMap<NextjsContentSdkComponent>} components component map to get props for
125
- * @returns {ComponentPropsCollection} component props
126
- */
127
- getComponentData(layoutData, context, components) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- let componentProps = {};
130
- if (!layoutData.sitecore.route)
131
- return componentProps;
132
- // Retrieve component props using side-effects defined on components level
133
- componentProps = yield this.componentPropsService.fetchComponentProps({
134
- layoutData: layoutData,
135
- context,
136
- components,
137
- });
138
- const errors = Object.keys(componentProps)
139
- .map((id) => {
140
- const component = componentProps[id];
141
- return component.error
142
- ? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
143
- : '';
144
- })
145
- .join('');
146
- if (errors.length) {
147
- throw new Error(errors);
148
- }
149
- return componentProps;
150
- });
151
- }
152
- getComponentPropsService() {
153
- return new component_props_service_1.ComponentPropsService();
154
- }
155
- }
156
- exports.SitecoreNextjsClient = SitecoreNextjsClient;
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
+ /**
18
+ * The SitecoreNextjsClient class extends the SitecoreClient class to provide additional functionality for Next.js.
19
+ * @public
20
+ */
21
+ class SitecoreNextjsClient extends client_1.SitecoreClient {
22
+ constructor(initOptions) {
23
+ super(initOptions);
24
+ this.initOptions = initOptions;
25
+ this.componentPropsService = this.getComponentPropsService();
26
+ }
27
+ /**
28
+ * Gets site name based on the provided path
29
+ * @param {string | string[]} path path to get site name from
30
+ * @returns site name, or default site info if not found
31
+ */
32
+ getSiteNameFromPath(path) {
33
+ const resolvedPath = super.parsePath(path);
34
+ // Get site name (from path rewritten in middleware)
35
+ const siteData = (0, site_1.getSiteRewriteData)(resolvedPath, this.initOptions.defaultSite);
36
+ return siteData.siteName;
37
+ }
38
+ /**
39
+ * Normalizes a nextjs path that could have been rewritten
40
+ * @param {string | string[]} path nextjs path
41
+ * @returns path string without nextjs prefixes
42
+ */
43
+ parsePath(path) {
44
+ const basePath = super.parsePath(path);
45
+ return (0, site_1.normalizeSiteRewrite)((0, personalize_1.normalizePersonalizedRewrite)(basePath));
46
+ }
47
+ getPage(path, pageOptions, options) {
48
+ const _super = Object.create(null, {
49
+ parsePath: { get: () => super.parsePath },
50
+ getPage: { get: () => super.getPage }
51
+ });
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const resolvedPath = this.parsePath(path);
54
+ // Get variant(s) for personalization (from path), must ensure path is of type string
55
+ const personalizeData = pageOptions.personalize || (0, personalize_1.getPersonalizedRewriteData)(_super.parsePath.call(this, path));
56
+ const site = pageOptions.site || this.getSiteNameFromPath(path);
57
+ const page = yield _super.getPage.call(this, resolvedPath, {
58
+ locale: pageOptions.locale,
59
+ site,
60
+ personalize: personalizeData,
61
+ }, options);
62
+ return page;
63
+ });
64
+ }
65
+ /**
66
+ * Get design library page details for Design Library mode of your app
67
+ * @param {PreviewData} designLibData preview data set in 'library' mode of the app
68
+ * @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
69
+ * @returns {Page} preview page for Design Library
70
+ */
71
+ getDesignLibraryData(designLibData, fetchOptions) {
72
+ const _super = Object.create(null, {
73
+ getDesignLibraryData: { get: () => super.getDesignLibraryData }
74
+ });
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ return _super.getDesignLibraryData.call(this, designLibData, fetchOptions);
77
+ });
78
+ }
79
+ /**
80
+ * Retrieves preview page and layout details
81
+ * @param {PreviewData} previewData - The editing preview data for metadata mode.
82
+ * @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests (like retries and fetch)
83
+ */
84
+ getPreview(previewData, fetchOptions) {
85
+ const _super = Object.create(null, {
86
+ getPreview: { get: () => super.getPreview }
87
+ });
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ return _super.getPreview.call(this, previewData, fetchOptions);
90
+ });
91
+ }
92
+ /**
93
+ * Generates static params for the Next.js App Router from Sitecore routes.
94
+ *
95
+ * Fetches routes for the specified `sites` and `languages`, then converts them into
96
+ * objects consumable by `generateStaticParams`. Internal multisite segments are removed.
97
+ * The `site` name is resolved from the path. If a route lacks a locale, the
98
+ * client's `defaultLanguage` is used.
99
+ *
100
+ * **NOTE**: App Router only. For the Pages Router, use `getPagePaths`.
101
+ * @param {string[]} sites - An array of site names to fetch routes for.
102
+ * @param {string[]} [languages] - Language codes to generate params for.
103
+ * @param {FetchOptions} [fetchOptions] - Additional fetch options.
104
+ * @returns {Promise<StaticParams[]>} Array of `{ site, locale, path }` entries for `generateStaticParams`.
105
+ */
106
+ getAppRouterStaticParams(sites, languages, fetchOptions) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ const staticPaths = yield this.getPagePaths(sites, languages, fetchOptions);
109
+ const params = new Array();
110
+ staticPaths.map((path) => {
111
+ var _a;
112
+ // remove _site_ segments
113
+ const normalizedPath = (0, site_1.normalizeSiteRewrite)(path.params.path.join('/')).split('/');
114
+ params.push({
115
+ locale: (_a = path.locale) !== null && _a !== void 0 ? _a : this.initOptions.defaultLanguage,
116
+ site: this.getSiteNameFromPath(path.params.path),
117
+ path: normalizedPath,
118
+ });
119
+ });
120
+ return params;
121
+ });
122
+ }
123
+ /**
124
+ * Parses components from nextjs component map and layoutData, executes getServerProps/getStaticProps methods
125
+ * and returns resulting props from components
126
+ * @param {LayoutServiceData} layoutData layout data to parse compnents from
127
+ * @param {PreviewData} context Nextjs preview data
128
+ * @param {ComponentMap<NextjsContentSdkComponent>} components component map to get props for
129
+ * @returns {ComponentPropsCollection} component props
130
+ */
131
+ getComponentData(layoutData, context, components) {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ let componentProps = {};
134
+ if (!layoutData.sitecore.route)
135
+ return componentProps;
136
+ // Retrieve component props using side-effects defined on components level
137
+ componentProps = yield this.componentPropsService.fetchComponentProps({
138
+ layoutData: layoutData,
139
+ context,
140
+ components,
141
+ });
142
+ const errors = Object.keys(componentProps)
143
+ .map((id) => {
144
+ const component = componentProps[id];
145
+ return component.error
146
+ ? `\nUnable to get component props for ${component.componentName} (${id}): ${component.error}`
147
+ : '';
148
+ })
149
+ .join('');
150
+ if (errors.length) {
151
+ throw new Error(errors);
152
+ }
153
+ return componentProps;
154
+ });
155
+ }
156
+ getComponentPropsService() {
157
+ return new component_props_service_1.ComponentPropsService();
158
+ }
159
+ }
160
+ exports.SitecoreNextjsClient = SitecoreNextjsClient;
@@ -1,30 +1,31 @@
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.getComponentServerProps = void 0;
13
- const react_1 = require("@sitecore-content-sdk/react");
14
- /**
15
- * TODO: remove when framework agnostic forms implemented
16
- * This is a repackaged version of the React BYOCWrapper component with support for
17
- * server rendering in Next.js (using component-level data-fetching feature of Content SDK).
18
- */
19
- /**
20
- * Will be called during SSG or SSR
21
- * @param {ComponentRendering} rendering
22
- * @returns {GetStaticPropsContext | GetStaticPropsContext} context with type depending on SSR or SSG mode
23
- */
24
- const getComponentServerProps = (rendering) => __awaiter(void 0, void 0, void 0, function* () {
25
- const params = rendering.params || {};
26
- const result = yield (0, react_1.fetchBYOCComponentServerProps)(params);
27
- return result;
28
- });
29
- exports.getComponentServerProps = getComponentServerProps;
30
- exports.default = react_1.BYOCWrapper;
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.getComponentServerProps = void 0;
13
+ const react_1 = require("@sitecore-content-sdk/react");
14
+ /**
15
+ * TODO: remove when framework agnostic forms implemented
16
+ * This is a repackaged version of the React BYOCWrapper component with support for
17
+ * server rendering in Next.js (using component-level data-fetching feature of Content SDK).
18
+ */
19
+ /**
20
+ * Will be called during SSG or SSR
21
+ * @param {ComponentRendering} rendering
22
+ * @returns {GetStaticPropsContext | GetStaticPropsContext} context with type depending on SSR or SSG mode
23
+ * @internal
24
+ */
25
+ const getComponentServerProps = (rendering) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const params = rendering.params || {};
27
+ const result = yield (0, react_1.fetchBYOCComponentServerProps)(params);
28
+ return result;
29
+ });
30
+ exports.getComponentServerProps = getComponentServerProps;
31
+ exports.default = react_1.BYOCWrapper;
@@ -1,59 +1,66 @@
1
- "use strict";
2
- 'use client';
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.ComponentPropsContext = exports.ComponentPropsReactContext = void 0;
38
- exports.useComponentProps = useComponentProps;
39
- const react_1 = __importStar(require("react"));
40
- /**
41
- * Component props context which we are using in order to store data fetched on components level (getComponentServerProps)
42
- */
43
- exports.ComponentPropsReactContext = (0, react_1.createContext)({});
44
- /**
45
- * Hook in order to get access to props related to specific component. Data comes from ComponentPropsContext.
46
- * @see ComponentPropsContext
47
- * @param {string | undefined} componentUid component uId
48
- * @returns {ComponentData | undefined} component props
49
- */
50
- function useComponentProps(componentUid) {
51
- if (!componentUid) {
52
- return undefined;
53
- }
54
- // eslint-disable-next-line react-hooks/rules-of-hooks
55
- const data = (0, react_1.useContext)(exports.ComponentPropsReactContext);
56
- return data[componentUid];
57
- }
58
- const ComponentPropsContext = ({ children, value, }) => (react_1.default.createElement(exports.ComponentPropsReactContext.Provider, { value: value }, children));
59
- exports.ComponentPropsContext = ComponentPropsContext;
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.ComponentPropsContext = exports.ComponentPropsReactContext = void 0;
38
+ exports.useComponentProps = useComponentProps;
39
+ const react_1 = __importStar(require("react"));
40
+ /**
41
+ * Component props context which we are using in order to store data fetched on components level (getComponentServerProps)
42
+ * @public
43
+ */
44
+ exports.ComponentPropsReactContext = (0, react_1.createContext)({});
45
+ /**
46
+ * Hook in order to get access to props related to specific component. Data comes from ComponentPropsContext.
47
+ * @see ComponentPropsContext
48
+ * @param {string | undefined} componentUid component uId
49
+ * @returns {ComponentData | undefined} component props
50
+ * @public
51
+ */
52
+ function useComponentProps(componentUid) {
53
+ if (!componentUid) {
54
+ return undefined;
55
+ }
56
+ // eslint-disable-next-line react-hooks/rules-of-hooks
57
+ const data = (0, react_1.useContext)(exports.ComponentPropsReactContext);
58
+ return data[componentUid];
59
+ }
60
+ /**
61
+ * The ComponentPropsContext component. Stores component props in a context.
62
+ * @param {ComponentPropsContextProps} props component props
63
+ * @public
64
+ */
65
+ const ComponentPropsContext = ({ children, value, }) => (react_1.default.createElement(exports.ComponentPropsReactContext.Provider, { value: value }, children));
66
+ exports.ComponentPropsContext = ComponentPropsContext;