@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
@@ -1,65 +1,66 @@
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.createSitemapRouteHandler = createSitemapRouteHandler;
13
- const site_1 = require("@sitecore-content-sdk/core/site");
14
- const core_1 = require("@sitecore-content-sdk/core");
15
- const cache_1 = require("next/cache");
16
- /**
17
- * Creates a route handler to serve the sitemap.xml file.
18
- * @param {RouteHandlerOptions} options - The options for the route handler.
19
- * @returns The route handler.
20
- */
21
- function createSitemapRouteHandler(options) {
22
- const { client, sites, revalidate = 60 } = options;
23
- const siteResolver = new site_1.SiteResolver(sites);
24
- const getOptions = (req) => {
25
- var _a;
26
- const id = ((_a = req.nextUrl.pathname.match(/^\/sitemap-(\d+)\.xml$/i)) === null || _a === void 0 ? void 0 : _a[1]) || '';
27
- const reqHost = req.headers.get('host') || '';
28
- const reqProtocol = req.headers.get('x-forwarded-proto') || 'https';
29
- const site = siteResolver.getByHost(reqHost);
30
- return { reqHost, reqProtocol, id, siteName: site.name };
31
- };
32
- const getSitemap = (0, cache_1.unstable_cache)((options) => __awaiter(this, void 0, void 0, function* () {
33
- return client.getSiteMap(options);
34
- }), ['sitemap'], {
35
- revalidate,
36
- tags: ['sitemap'],
37
- });
38
- const GET = (req) => __awaiter(this, void 0, void 0, function* () {
39
- try {
40
- const startTimestamp = Date.now();
41
- const options = getOptions(req);
42
- core_1.debug.sitemap('sitemap route handler start: %o', {
43
- options,
44
- });
45
- const xml = yield getSitemap(options);
46
- core_1.debug.sitemap('sitemap route handler end in %dms', Date.now() - startTimestamp);
47
- return new Response(xml, {
48
- headers: {
49
- 'Content-Type': 'text/xml;charset=utf-8',
50
- },
51
- });
52
- }
53
- catch (error) {
54
- console.log('Sitemap route handler failed:');
55
- console.log(error);
56
- if (error instanceof Error && error.message === 'REDIRECT_404') {
57
- return new Response('Not Found', { status: 404 });
58
- }
59
- else {
60
- return new Response('Internal Server Error', { status: 500 });
61
- }
62
- }
63
- });
64
- return { GET };
65
- }
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.createSitemapRouteHandler = createSitemapRouteHandler;
13
+ const site_1 = require("@sitecore-content-sdk/core/site");
14
+ const core_1 = require("@sitecore-content-sdk/core");
15
+ const cache_1 = require("next/cache");
16
+ /**
17
+ * Creates a route handler to serve the sitemap.xml file.
18
+ * @param {RouteHandlerOptions} options - The options for the route handler.
19
+ * @returns The route handler.
20
+ * @public
21
+ */
22
+ function createSitemapRouteHandler(options) {
23
+ const { client, sites, revalidate = 60 } = options;
24
+ const siteResolver = new site_1.SiteResolver(sites);
25
+ const getOptions = (req) => {
26
+ var _a;
27
+ const id = ((_a = req.nextUrl.pathname.match(/^\/sitemap-(\d+)\.xml$/i)) === null || _a === void 0 ? void 0 : _a[1]) || '';
28
+ const reqHost = req.headers.get('host') || '';
29
+ const reqProtocol = req.headers.get('x-forwarded-proto') || 'https';
30
+ const site = siteResolver.getByHost(reqHost);
31
+ return { reqHost, reqProtocol, id, siteName: site.name };
32
+ };
33
+ const getSitemap = (0, cache_1.unstable_cache)((options) => __awaiter(this, void 0, void 0, function* () {
34
+ return client.getSiteMap(options);
35
+ }), ['sitemap'], {
36
+ revalidate,
37
+ tags: ['sitemap'],
38
+ });
39
+ const GET = (req) => __awaiter(this, void 0, void 0, function* () {
40
+ try {
41
+ const startTimestamp = Date.now();
42
+ const options = getOptions(req);
43
+ core_1.debug.sitemap('sitemap route handler start: %o', {
44
+ options,
45
+ });
46
+ const xml = yield getSitemap(options);
47
+ core_1.debug.sitemap('sitemap route handler end in %dms', Date.now() - startTimestamp);
48
+ return new Response(xml, {
49
+ headers: {
50
+ 'Content-Type': 'text/xml;charset=utf-8',
51
+ },
52
+ });
53
+ }
54
+ catch (error) {
55
+ console.log('Sitemap route handler failed:');
56
+ console.log(error);
57
+ if (error instanceof Error && error.message === 'REDIRECT_404') {
58
+ return new Response('Not Found', { status: 404 });
59
+ }
60
+ else {
61
+ return new Response('Internal Server Error', { status: 500 });
62
+ }
63
+ }
64
+ });
65
+ return { GET };
66
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@sitecore-content-sdk/react/search"), exports);
@@ -1,138 +1,142 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ComponentPropsService = void 0;
16
- const chalk_1 = __importDefault(require("chalk"));
17
- class ComponentPropsService {
18
- fetchComponentProps(params) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- var _a;
21
- const { layoutData, context, components } = params;
22
- const requests = yield this.collectRequests({
23
- placeholders: (_a = layoutData.sitecore.route) === null || _a === void 0 ? void 0 : _a.placeholders,
24
- components,
25
- layoutData,
26
- context,
27
- });
28
- return yield this.execRequests(requests);
29
- });
30
- }
31
- /**
32
- * Go through layout service data, check all renderings using displayName, which should make some side effects.
33
- * Write result in requests variable
34
- * @param {object} params params
35
- * @param {PlaceholdersData} [params.placeholders]
36
- * @param {ComponentMap} params.components
37
- * @param {LayoutServiceData} params.layoutData
38
- * @param {NextContext} params.context
39
- * @param {ComponentPropsRequest[]} params.requests
40
- * @returns {ComponentPropsRequest[]} array of requests
41
- */
42
- collectRequests(params) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- const { placeholders = {}, components, layoutData, context } = params;
45
- // Will be called on first round
46
- if (!params.requests) {
47
- params.requests = [];
48
- }
49
- const renderings = this.flatRenderings(placeholders);
50
- const actions = renderings.map((r) => __awaiter(this, void 0, void 0, function* () {
51
- var _a;
52
- const fetchFunc = (_a = (yield this.getModule(components, r.componentName))) === null || _a === void 0 ? void 0 : _a.getComponentServerProps;
53
- if (fetchFunc) {
54
- params.requests &&
55
- params.requests.push({
56
- fetch: fetchFunc,
57
- rendering: r,
58
- layoutData: layoutData,
59
- context,
60
- });
61
- }
62
- // If placeholders exist in current rendering
63
- if (r.placeholders) {
64
- yield this.collectRequests(Object.assign(Object.assign({}, params), { placeholders: r.placeholders }));
65
- }
66
- }));
67
- yield Promise.all(actions);
68
- return params.requests;
69
- });
70
- }
71
- /**
72
- * Execute request for component props
73
- * @param {ComponentPropsRequest[]} requests requests
74
- * @returns {Promise<ComponentPropsCollection>} requests result
75
- */
76
- execRequests(requests) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- const componentProps = {};
79
- const promises = requests.map((req) => {
80
- const { uid } = req.rendering;
81
- if (!uid) {
82
- console.log(`Component ${req.rendering.componentName} doesn't have uid, can't store data for this component`);
83
- return;
84
- }
85
- return req
86
- .fetch(req.rendering, req.layoutData, req.context)
87
- .then((result) => {
88
- // Set component specific data in componentProps store
89
- componentProps[uid] = result;
90
- })
91
- .catch((error) => {
92
- const errLog = `Error during preload data for component ${req.rendering.componentName} (${uid}): ${error.message || error}`;
93
- console.error(chalk_1.default.red(errLog));
94
- componentProps[uid] = {
95
- error: error.message || errLog,
96
- componentName: req.rendering.componentName,
97
- };
98
- });
99
- });
100
- yield Promise.all(promises);
101
- return componentProps;
102
- });
103
- }
104
- /**
105
- * Take renderings from all placeholders and returns a flat array of renderings.
106
- * @example
107
- * const placeholders = {
108
- * x1: [{ uid: 1 }, { uid: 2 }],
109
- * x2: [{ uid: 11 }, { uid: 22 }]
110
- * }
111
- *
112
- * flatRenderings(placeholders);
113
- *
114
- * RESULT: [{ uid: 1 }, { uid: 2 }, { uid: 11 }, { uid: 22 }]
115
- * @param {PlaceholdersData} placeholders placeholders
116
- * @returns {ComponentRendering[]} renderings
117
- */
118
- flatRenderings(placeholders) {
119
- const allComponentRenderings = [];
120
- const placeholdersArr = Object.values(placeholders);
121
- placeholdersArr.forEach((pl) => {
122
- const renderings = pl;
123
- allComponentRenderings.push(...renderings);
124
- });
125
- return allComponentRenderings;
126
- }
127
- getModule(components, componentName) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- var _a;
130
- const component = components.get(componentName);
131
- if (!component)
132
- return null;
133
- const module = component.dynamicModule ? yield ((_a = component === null || component === void 0 ? void 0 : component.dynamicModule) === null || _a === void 0 ? void 0 : _a.call(component)) : component;
134
- return module;
135
- });
136
- }
137
- }
138
- exports.ComponentPropsService = ComponentPropsService;
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ComponentPropsService = void 0;
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ /**
18
+ * The service for fetching component props.
19
+ * @public
20
+ */
21
+ class ComponentPropsService {
22
+ fetchComponentProps(params) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ var _a;
25
+ const { layoutData, context, components } = params;
26
+ const requests = yield this.collectRequests({
27
+ placeholders: (_a = layoutData.sitecore.route) === null || _a === void 0 ? void 0 : _a.placeholders,
28
+ components,
29
+ layoutData,
30
+ context,
31
+ });
32
+ return yield this.execRequests(requests);
33
+ });
34
+ }
35
+ /**
36
+ * Go through layout service data, check all renderings using displayName, which should make some side effects.
37
+ * Write result in requests variable
38
+ * @param {object} params params
39
+ * @param {PlaceholdersData} [params.placeholders]
40
+ * @param {ComponentMap} params.components
41
+ * @param {LayoutServiceData} params.layoutData
42
+ * @param {NextContext} params.context
43
+ * @param {ComponentPropsRequest[]} params.requests
44
+ * @returns {ComponentPropsRequest[]} array of requests
45
+ */
46
+ collectRequests(params) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const { placeholders = {}, components, layoutData, context } = params;
49
+ // Will be called on first round
50
+ if (!params.requests) {
51
+ params.requests = [];
52
+ }
53
+ const renderings = this.flatRenderings(placeholders);
54
+ const actions = renderings.map((r) => __awaiter(this, void 0, void 0, function* () {
55
+ var _a;
56
+ const fetchFunc = (_a = (yield this.getModule(components, r.componentName))) === null || _a === void 0 ? void 0 : _a.getComponentServerProps;
57
+ if (fetchFunc) {
58
+ params.requests &&
59
+ params.requests.push({
60
+ fetch: fetchFunc,
61
+ rendering: r,
62
+ layoutData: layoutData,
63
+ context,
64
+ });
65
+ }
66
+ // If placeholders exist in current rendering
67
+ if (r.placeholders) {
68
+ yield this.collectRequests(Object.assign(Object.assign({}, params), { placeholders: r.placeholders }));
69
+ }
70
+ }));
71
+ yield Promise.all(actions);
72
+ return params.requests;
73
+ });
74
+ }
75
+ /**
76
+ * Execute request for component props
77
+ * @param {ComponentPropsRequest[]} requests requests
78
+ * @returns {Promise<ComponentPropsCollection>} requests result
79
+ */
80
+ execRequests(requests) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const componentProps = {};
83
+ const promises = requests.map((req) => {
84
+ const { uid } = req.rendering;
85
+ if (!uid) {
86
+ console.log(`Component ${req.rendering.componentName} doesn't have uid, can't store data for this component`);
87
+ return;
88
+ }
89
+ return req
90
+ .fetch(req.rendering, req.layoutData, req.context)
91
+ .then((result) => {
92
+ // Set component specific data in componentProps store
93
+ componentProps[uid] = result;
94
+ })
95
+ .catch((error) => {
96
+ const errLog = `Error during preload data for component ${req.rendering.componentName} (${uid}): ${error.message || error}`;
97
+ console.error(chalk_1.default.red(errLog));
98
+ componentProps[uid] = {
99
+ error: error.message || errLog,
100
+ componentName: req.rendering.componentName,
101
+ };
102
+ });
103
+ });
104
+ yield Promise.all(promises);
105
+ return componentProps;
106
+ });
107
+ }
108
+ /**
109
+ * Take renderings from all placeholders and returns a flat array of renderings.
110
+ * @example
111
+ * const placeholders = {
112
+ * x1: [{ uid: 1 }, { uid: 2 }],
113
+ * x2: [{ uid: 11 }, { uid: 22 }]
114
+ * }
115
+ *
116
+ * flatRenderings(placeholders);
117
+ *
118
+ * RESULT: [{ uid: 1 }, { uid: 2 }, { uid: 11 }, { uid: 22 }]
119
+ * @param {PlaceholdersData} placeholders placeholders
120
+ * @returns {ComponentRendering[]} renderings
121
+ */
122
+ flatRenderings(placeholders) {
123
+ const allComponentRenderings = [];
124
+ const placeholdersArr = Object.values(placeholders);
125
+ placeholdersArr.forEach((pl) => {
126
+ const renderings = pl;
127
+ allComponentRenderings.push(...renderings);
128
+ });
129
+ return allComponentRenderings;
130
+ }
131
+ getModule(components, componentName) {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ var _a;
134
+ const component = components.get(componentName);
135
+ if (!component)
136
+ return null;
137
+ const module = component.dynamicModule ? yield ((_a = component === null || component === void 0 ? void 0 : component.dynamicModule) === null || _a === void 0 ? void 0 : _a.call(component)) : component;
138
+ return module;
139
+ });
140
+ }
141
+ }
142
+ exports.ComponentPropsService = ComponentPropsService;
@@ -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,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SiteResolver = void 0;
4
- var site_1 = require("@sitecore-content-sdk/core/site");
5
- Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_1.SiteResolver; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SiteResolver = void 0;
4
+ var site_1 = require("@sitecore-content-sdk/core/site");
5
+ Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_1.SiteResolver; } });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeImportMap = void 0;
4
+ const tools_1 = require("@sitecore-content-sdk/core/tools");
5
+ const utils_1 = require("../templating/utils");
6
+ /**
7
+ * Entry point function for generating import-map. Parses provided paths and outputs the modules and imports from those files into .sitecore/import-map.ts
8
+ * @param {WriteImportMapArgs} args include/exclude paths settings to be processed for import-map, and the Sitecore configuration.
9
+ * @public
10
+ */
11
+ const writeImportMap = (args) => {
12
+ const separateServerClientMaps = (0, utils_1.detectRouterType)() === 'app';
13
+ return (0, tools_1.writeImportMap)(Object.assign(Object.assign({}, args), { separateServerClientMaps, serverTemplate: utils_1.nextjsDefaultMapTemplate, clientTemplate: utils_1.nextjsClientMapTemplate }));
14
+ };
15
+ exports.writeImportMap = writeImportMap;