@sitecore-content-sdk/core 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 (337) hide show
  1. package/LICENSE.txt +202 -202
  2. package/dist/cjs/constants.js +7 -21
  3. package/dist/cjs/debug.js +14 -18
  4. package/dist/cjs/graphql-request-client.js +10 -5
  5. package/dist/cjs/index.js +3 -7
  6. package/dist/cjs/native-fetcher.js +1 -1
  7. package/dist/cjs/{utils → tools}/ensurePath.js +1 -0
  8. package/dist/cjs/{media/index.js → tools/index-node.js} +27 -3
  9. package/dist/cjs/tools/index.js +28 -72
  10. package/dist/cjs/tools/{generateMetadata.js → metadata/generateMetadata.js} +2 -2
  11. package/dist/cjs/tools/metadata/index.js +5 -0
  12. package/dist/cjs/{editing → tools/metadata}/metadata.js +1 -6
  13. package/dist/cjs/tools/normalize-env-value.js +22 -0
  14. package/dist/cjs/{utils → tools}/normalize-url.js +6 -0
  15. package/dist/cjs/tools/resolve-edge-url.js +95 -0
  16. package/dist/cjs/{utils → tools}/utils.js +6 -64
  17. package/dist/esm/constants.js +6 -20
  18. package/dist/esm/debug.js +13 -17
  19. package/dist/esm/graphql-request-client.js +10 -5
  20. package/dist/esm/index.js +1 -6
  21. package/dist/esm/native-fetcher.js +1 -1
  22. package/dist/esm/{utils → tools}/ensurePath.js +1 -0
  23. package/dist/esm/tools/index-node.js +22 -0
  24. package/dist/esm/tools/index.js +6 -28
  25. package/dist/esm/tools/{generateMetadata.js → metadata/generateMetadata.js} +2 -2
  26. package/dist/esm/tools/metadata/index.js +1 -0
  27. package/dist/esm/{editing → tools/metadata}/metadata.js +1 -6
  28. package/dist/esm/tools/normalize-env-value.js +19 -0
  29. package/dist/esm/tools/normalize-url.js +7 -0
  30. package/dist/esm/tools/resolve-edge-url.js +89 -0
  31. package/dist/esm/{utils → tools}/utils.js +5 -61
  32. package/node-tools.d.ts +1 -0
  33. package/package.json +98 -163
  34. package/types/constants.d.ts +6 -17
  35. package/types/constants.d.ts.map +1 -1
  36. package/types/debug.d.ts +13 -13
  37. package/types/debug.d.ts.map +1 -1
  38. package/types/graphql-request-client.d.ts +8 -2
  39. package/types/graphql-request-client.d.ts.map +1 -1
  40. package/types/index.d.ts +3 -6
  41. package/types/index.d.ts.map +1 -1
  42. package/types/models.d.ts +0 -31
  43. package/types/models.d.ts.map +1 -1
  44. package/types/{utils → tools}/ensurePath.d.ts +1 -0
  45. package/types/tools/ensurePath.d.ts.map +1 -0
  46. package/types/{utils → tools}/globalCache.d.ts.map +1 -1
  47. package/types/tools/index-node.d.ts +14 -0
  48. package/types/tools/index-node.d.ts.map +1 -0
  49. package/types/tools/index.d.ts +5 -21
  50. package/types/tools/index.d.ts.map +1 -1
  51. package/types/tools/is-server.d.ts.map +1 -0
  52. package/types/tools/metadata/generateMetadata.d.ts.map +1 -0
  53. package/types/tools/metadata/index.d.ts +3 -0
  54. package/types/tools/metadata/index.d.ts.map +1 -0
  55. package/types/{editing → tools/metadata}/metadata.d.ts +9 -1
  56. package/types/tools/metadata/metadata.d.ts.map +1 -0
  57. package/types/tools/normalize-env-value.d.ts +10 -0
  58. package/types/tools/normalize-env-value.d.ts.map +1 -0
  59. package/types/tools/normalize-url.d.ts +8 -0
  60. package/types/tools/normalize-url.d.ts.map +1 -0
  61. package/types/tools/resolve-edge-url.d.ts +52 -0
  62. package/types/tools/resolve-edge-url.d.ts.map +1 -0
  63. package/types/{utils → tools}/timeout-promise.d.ts.map +1 -1
  64. package/types/{utils → tools}/utils.d.ts +6 -26
  65. package/types/tools/utils.d.ts.map +1 -0
  66. package/client.d.ts +0 -1
  67. package/codegen.d.ts +0 -1
  68. package/config-cli.d.ts +0 -1
  69. package/config.d.ts +0 -1
  70. package/dist/cjs/client/constants.js +0 -7
  71. package/dist/cjs/client/edge-proxy.js +0 -24
  72. package/dist/cjs/client/index.js +0 -15
  73. package/dist/cjs/client/models.js +0 -2
  74. package/dist/cjs/client/sitecore-client.js +0 -424
  75. package/dist/cjs/client/utils.js +0 -51
  76. package/dist/cjs/config/define-config.js +0 -195
  77. package/dist/cjs/config/index.js +0 -7
  78. package/dist/cjs/config/models.js +0 -12
  79. package/dist/cjs/config-cli/define-cli-config.js +0 -23
  80. package/dist/cjs/config-cli/index.js +0 -7
  81. package/dist/cjs/config-cli/models.js +0 -8
  82. package/dist/cjs/editing/codegen/index.js +0 -15
  83. package/dist/cjs/editing/codegen/preview.js +0 -306
  84. package/dist/cjs/editing/component-layout-service.js +0 -63
  85. package/dist/cjs/editing/design-library.js +0 -190
  86. package/dist/cjs/editing/editing-service.js +0 -81
  87. package/dist/cjs/editing/index.js +0 -34
  88. package/dist/cjs/editing/models.js +0 -44
  89. package/dist/cjs/editing/utils.js +0 -108
  90. package/dist/cjs/form/form.js +0 -81
  91. package/dist/cjs/form/index.js +0 -7
  92. package/dist/cjs/i18n/dictionary-service.js +0 -144
  93. package/dist/cjs/i18n/index.js +0 -7
  94. package/dist/cjs/i18n/utils.js +0 -16
  95. package/dist/cjs/layout/content-styles.js +0 -72
  96. package/dist/cjs/layout/index.js +0 -24
  97. package/dist/cjs/layout/layout-service.js +0 -68
  98. package/dist/cjs/layout/models.js +0 -39
  99. package/dist/cjs/layout/themes.js +0 -76
  100. package/dist/cjs/layout/utils.js +0 -117
  101. package/dist/cjs/media/media-api.js +0 -100
  102. package/dist/cjs/personalize/index.js +0 -15
  103. package/dist/cjs/personalize/layout-personalizer.js +0 -98
  104. package/dist/cjs/personalize/personalize-service.js +0 -109
  105. package/dist/cjs/personalize/utils.js +0 -143
  106. package/dist/cjs/site/error-pages-service.js +0 -82
  107. package/dist/cjs/site/index.js +0 -26
  108. package/dist/cjs/site/models.js +0 -2
  109. package/dist/cjs/site/redirects-service.js +0 -108
  110. package/dist/cjs/site/robots-service.js +0 -74
  111. package/dist/cjs/site/site-resolver.js +0 -73
  112. package/dist/cjs/site/siteinfo-service.js +0 -94
  113. package/dist/cjs/site/sitemap-xml-service.js +0 -92
  114. package/dist/cjs/site/sitepath-service.js +0 -201
  115. package/dist/cjs/site/utils.js +0 -55
  116. package/dist/cjs/sitecore-service-base.js +0 -36
  117. package/dist/cjs/tools/codegen/component-generation.js +0 -52
  118. package/dist/cjs/tools/codegen/extract-files.js +0 -105
  119. package/dist/cjs/tools/codegen/import-map.js +0 -411
  120. package/dist/cjs/tools/codegen/utils.js +0 -418
  121. package/dist/cjs/tools/generate-map.js +0 -2
  122. package/dist/cjs/tools/generateSites.js +0 -59
  123. package/dist/cjs/tools/scaffold.js +0 -62
  124. package/dist/cjs/tools/templating/components.js +0 -96
  125. package/dist/cjs/tools/templating/index.js +0 -11
  126. package/dist/cjs/tools/templating/plugins.js +0 -80
  127. package/dist/cjs/tools/templating/utils.js +0 -67
  128. package/dist/cjs/utils/env.js +0 -28
  129. package/dist/cjs/utils/index.js +0 -26
  130. package/dist/esm/client/constants.js +0 -4
  131. package/dist/esm/client/edge-proxy.js +0 -19
  132. package/dist/esm/client/index.js +0 -5
  133. package/dist/esm/client/models.js +0 -1
  134. package/dist/esm/client/sitecore-client.js +0 -417
  135. package/dist/esm/client/utils.js +0 -47
  136. package/dist/esm/config/define-config.js +0 -189
  137. package/dist/esm/config/index.js +0 -2
  138. package/dist/esm/config/models.js +0 -9
  139. package/dist/esm/config-cli/define-cli-config.js +0 -19
  140. package/dist/esm/config-cli/index.js +0 -2
  141. package/dist/esm/config-cli/models.js +0 -5
  142. package/dist/esm/editing/codegen/index.js +0 -1
  143. package/dist/esm/editing/codegen/preview.js +0 -288
  144. package/dist/esm/editing/component-layout-service.js +0 -56
  145. package/dist/esm/editing/design-library.js +0 -178
  146. package/dist/esm/editing/editing-service.js +0 -74
  147. package/dist/esm/editing/index.js +0 -6
  148. package/dist/esm/editing/models.js +0 -41
  149. package/dist/esm/editing/utils.js +0 -98
  150. package/dist/esm/form/form.js +0 -72
  151. package/dist/esm/form/index.js +0 -1
  152. package/dist/esm/i18n/dictionary-service.js +0 -137
  153. package/dist/esm/i18n/index.js +0 -2
  154. package/dist/esm/i18n/utils.js +0 -13
  155. package/dist/esm/layout/content-styles.js +0 -64
  156. package/dist/esm/layout/index.js +0 -6
  157. package/dist/esm/layout/layout-service.js +0 -61
  158. package/dist/esm/layout/models.js +0 -36
  159. package/dist/esm/layout/themes.js +0 -71
  160. package/dist/esm/layout/utils.js +0 -109
  161. package/dist/esm/media/index.js +0 -2
  162. package/dist/esm/media/media-api.js +0 -90
  163. package/dist/esm/personalize/index.js +0 -3
  164. package/dist/esm/personalize/layout-personalizer.js +0 -93
  165. package/dist/esm/personalize/personalize-service.js +0 -102
  166. package/dist/esm/personalize/utils.js +0 -135
  167. package/dist/esm/site/error-pages-service.js +0 -75
  168. package/dist/esm/site/index.js +0 -8
  169. package/dist/esm/site/models.js +0 -1
  170. package/dist/esm/site/redirects-service.js +0 -101
  171. package/dist/esm/site/robots-service.js +0 -67
  172. package/dist/esm/site/site-resolver.js +0 -69
  173. package/dist/esm/site/siteinfo-service.js +0 -87
  174. package/dist/esm/site/sitemap-xml-service.js +0 -85
  175. package/dist/esm/site/sitepath-service.js +0 -193
  176. package/dist/esm/site/utils.js +0 -49
  177. package/dist/esm/sitecore-service-base.js +0 -29
  178. package/dist/esm/tools/codegen/component-generation.js +0 -44
  179. package/dist/esm/tools/codegen/extract-files.js +0 -99
  180. package/dist/esm/tools/codegen/import-map.js +0 -368
  181. package/dist/esm/tools/codegen/utils.js +0 -373
  182. package/dist/esm/tools/generate-map.js +0 -1
  183. package/dist/esm/tools/generateSites.js +0 -52
  184. package/dist/esm/tools/scaffold.js +0 -54
  185. package/dist/esm/tools/templating/components.js +0 -59
  186. package/dist/esm/tools/templating/index.js +0 -3
  187. package/dist/esm/tools/templating/plugins.js +0 -72
  188. package/dist/esm/tools/templating/utils.js +0 -59
  189. package/dist/esm/utils/env.js +0 -24
  190. package/dist/esm/utils/index.js +0 -4
  191. package/dist/esm/utils/normalize-url.js +0 -1
  192. package/editing.d.ts +0 -1
  193. package/i18n.d.ts +0 -1
  194. package/layout.d.ts +0 -1
  195. package/media.d.ts +0 -1
  196. package/personalize.d.ts +0 -1
  197. package/site.d.ts +0 -1
  198. package/types/client/constants.d.ts +0 -5
  199. package/types/client/constants.d.ts.map +0 -1
  200. package/types/client/edge-proxy.d.ts +0 -18
  201. package/types/client/edge-proxy.d.ts.map +0 -1
  202. package/types/client/index.d.ts +0 -8
  203. package/types/client/index.d.ts.map +0 -1
  204. package/types/client/models.d.ts +0 -21
  205. package/types/client/models.d.ts.map +0 -1
  206. package/types/client/sitecore-client.d.ts +0 -338
  207. package/types/client/sitecore-client.d.ts.map +0 -1
  208. package/types/client/utils.d.ts +0 -15
  209. package/types/client/utils.d.ts.map +0 -1
  210. package/types/config/define-config.d.ts +0 -20
  211. package/types/config/define-config.d.ts.map +0 -1
  212. package/types/config/index.d.ts +0 -3
  213. package/types/config/index.d.ts.map +0 -1
  214. package/types/config/models.d.ts +0 -287
  215. package/types/config/models.d.ts.map +0 -1
  216. package/types/config-cli/define-cli-config.d.ts +0 -9
  217. package/types/config-cli/define-cli-config.d.ts.map +0 -1
  218. package/types/config-cli/index.d.ts +0 -3
  219. package/types/config-cli/index.d.ts.map +0 -1
  220. package/types/config-cli/models.d.ts +0 -6
  221. package/types/config-cli/models.d.ts.map +0 -1
  222. package/types/editing/codegen/index.d.ts +0 -2
  223. package/types/editing/codegen/index.d.ts.map +0 -1
  224. package/types/editing/codegen/preview.d.ts +0 -289
  225. package/types/editing/codegen/preview.d.ts.map +0 -1
  226. package/types/editing/component-layout-service.d.ts +0 -84
  227. package/types/editing/component-layout-service.d.ts.map +0 -1
  228. package/types/editing/design-library.d.ts +0 -118
  229. package/types/editing/design-library.d.ts.map +0 -1
  230. package/types/editing/editing-service.d.ts +0 -72
  231. package/types/editing/editing-service.d.ts.map +0 -1
  232. package/types/editing/index.d.ts +0 -7
  233. package/types/editing/index.d.ts.map +0 -1
  234. package/types/editing/metadata.d.ts.map +0 -1
  235. package/types/editing/models.d.ts +0 -103
  236. package/types/editing/models.d.ts.map +0 -1
  237. package/types/editing/utils.d.ts +0 -91
  238. package/types/editing/utils.d.ts.map +0 -1
  239. package/types/form/form.d.ts +0 -25
  240. package/types/form/form.d.ts.map +0 -1
  241. package/types/form/index.d.ts +0 -2
  242. package/types/form/index.d.ts.map +0 -1
  243. package/types/i18n/dictionary-service.d.ts +0 -135
  244. package/types/i18n/dictionary-service.d.ts.map +0 -1
  245. package/types/i18n/index.d.ts +0 -3
  246. package/types/i18n/index.d.ts.map +0 -1
  247. package/types/i18n/utils.d.ts +0 -9
  248. package/types/i18n/utils.d.ts.map +0 -1
  249. package/types/layout/content-styles.d.ts +0 -20
  250. package/types/layout/content-styles.d.ts.map +0 -1
  251. package/types/layout/index.d.ts +0 -6
  252. package/types/layout/index.d.ts.map +0 -1
  253. package/types/layout/layout-service.d.ts +0 -45
  254. package/types/layout/layout-service.d.ts.map +0 -1
  255. package/types/layout/models.d.ts +0 -174
  256. package/types/layout/models.d.ts.map +0 -1
  257. package/types/layout/themes.d.ts +0 -13
  258. package/types/layout/themes.d.ts.map +0 -1
  259. package/types/layout/utils.d.ts +0 -56
  260. package/types/layout/utils.d.ts.map +0 -1
  261. package/types/media/index.d.ts +0 -3
  262. package/types/media/index.d.ts.map +0 -1
  263. package/types/media/media-api.d.ts +0 -60
  264. package/types/media/media-api.d.ts.map +0 -1
  265. package/types/personalize/index.d.ts +0 -4
  266. package/types/personalize/index.d.ts.map +0 -1
  267. package/types/personalize/layout-personalizer.d.ts +0 -29
  268. package/types/personalize/layout-personalizer.d.ts.map +0 -1
  269. package/types/personalize/personalize-service.d.ts +0 -90
  270. package/types/personalize/personalize-service.d.ts.map +0 -1
  271. package/types/personalize/utils.d.ts +0 -78
  272. package/types/personalize/utils.d.ts.map +0 -1
  273. package/types/site/error-pages-service.d.ts +0 -64
  274. package/types/site/error-pages-service.d.ts.map +0 -1
  275. package/types/site/index.d.ts +0 -10
  276. package/types/site/index.d.ts.map +0 -1
  277. package/types/site/models.d.ts +0 -23
  278. package/types/site/models.d.ts.map +0 -1
  279. package/types/site/redirects-service.d.ts +0 -92
  280. package/types/site/redirects-service.d.ts.map +0 -1
  281. package/types/site/robots-service.d.ts +0 -57
  282. package/types/site/robots-service.d.ts.map +0 -1
  283. package/types/site/site-resolver.d.ts +0 -28
  284. package/types/site/site-resolver.d.ts.map +0 -1
  285. package/types/site/siteinfo-service.d.ts +0 -65
  286. package/types/site/siteinfo-service.d.ts.map +0 -1
  287. package/types/site/sitemap-xml-service.d.ts +0 -63
  288. package/types/site/sitemap-xml-service.d.ts.map +0 -1
  289. package/types/site/sitepath-service.d.ts +0 -137
  290. package/types/site/sitepath-service.d.ts.map +0 -1
  291. package/types/site/utils.d.ts +0 -41
  292. package/types/site/utils.d.ts.map +0 -1
  293. package/types/sitecore-service-base.d.ts +0 -31
  294. package/types/sitecore-service-base.d.ts.map +0 -1
  295. package/types/tools/codegen/component-generation.d.ts +0 -50
  296. package/types/tools/codegen/component-generation.d.ts.map +0 -1
  297. package/types/tools/codegen/extract-files.d.ts +0 -24
  298. package/types/tools/codegen/extract-files.d.ts.map +0 -1
  299. package/types/tools/codegen/import-map.d.ts +0 -102
  300. package/types/tools/codegen/import-map.d.ts.map +0 -1
  301. package/types/tools/codegen/utils.d.ts +0 -76
  302. package/types/tools/codegen/utils.d.ts.map +0 -1
  303. package/types/tools/generate-map.d.ts +0 -36
  304. package/types/tools/generate-map.d.ts.map +0 -1
  305. package/types/tools/generateMetadata.d.ts.map +0 -1
  306. package/types/tools/generateSites.d.ts +0 -25
  307. package/types/tools/generateSites.d.ts.map +0 -1
  308. package/types/tools/scaffold.d.ts +0 -27
  309. package/types/tools/scaffold.d.ts.map +0 -1
  310. package/types/tools/templating/components.d.ts +0 -104
  311. package/types/tools/templating/components.d.ts.map +0 -1
  312. package/types/tools/templating/index.d.ts +0 -4
  313. package/types/tools/templating/index.d.ts.map +0 -1
  314. package/types/tools/templating/plugins.d.ts +0 -71
  315. package/types/tools/templating/plugins.d.ts.map +0 -1
  316. package/types/tools/templating/utils.d.ts +0 -42
  317. package/types/tools/templating/utils.d.ts.map +0 -1
  318. package/types/utils/ensurePath.d.ts.map +0 -1
  319. package/types/utils/env.d.ts +0 -9
  320. package/types/utils/env.d.ts.map +0 -1
  321. package/types/utils/index.d.ts +0 -5
  322. package/types/utils/index.d.ts.map +0 -1
  323. package/types/utils/is-server.d.ts.map +0 -1
  324. package/types/utils/normalize-url.d.ts +0 -2
  325. package/types/utils/normalize-url.d.ts.map +0 -1
  326. package/types/utils/utils.d.ts.map +0 -1
  327. package/utils.d.ts +0 -1
  328. /package/dist/cjs/{utils → tools}/globalCache.js +0 -0
  329. /package/dist/cjs/{utils → tools}/is-server.js +0 -0
  330. /package/dist/cjs/{utils → tools}/timeout-promise.js +0 -0
  331. /package/dist/esm/{utils → tools}/globalCache.js +0 -0
  332. /package/dist/esm/{utils → tools}/is-server.js +0 -0
  333. /package/dist/esm/{utils → tools}/timeout-promise.js +0 -0
  334. /package/types/{utils → tools}/globalCache.d.ts +0 -0
  335. /package/types/{utils → tools}/is-server.d.ts +0 -0
  336. /package/types/tools/{generateMetadata.d.ts → metadata/generateMetadata.d.ts} +0 -0
  337. /package/types/{utils → tools}/timeout-promise.d.ts +0 -0
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ComponentTemplateType = void 0;
4
- /**
5
- * Enumeration of default component templates
6
- * @internal
7
- */
8
- var ComponentTemplateType;
9
- (function (ComponentTemplateType) {
10
- ComponentTemplateType["BYOC"] = "byoc";
11
- ComponentTemplateType["DEFAULT"] = "default";
12
- })(ComponentTemplateType || (exports.ComponentTemplateType = ComponentTemplateType = {}));
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineCliConfig = void 0;
4
- const validateConfig = (cliConfig) => {
5
- var _a, _b, _c, _d;
6
- if (!((_b = (_a = cliConfig.build) === null || _a === void 0 ? void 0 : _a.commands) === null || _b === void 0 ? void 0 : _b.length)) {
7
- throw new Error('Configuration error: build commands should be defined in sitecore.cli.config');
8
- }
9
- if (!((_d = (_c = cliConfig.scaffold) === null || _c === void 0 ? void 0 : _c.templates) === null || _d === void 0 ? void 0 : _d.length)) {
10
- throw new Error('Configuration error: scaffold templates should be defined in sitecore.cli.config');
11
- }
12
- };
13
- /**
14
- * Accepts a `SitecoreCliConfigInput` object and returns Sitecore Content SDK CLI configuration, updated with required default values
15
- * @param {SitecoreCliConfigInput} cliConfig the cli configuration provided by the application
16
- * @returns {SitecoreCliConfig} full sitecore cli configuration to use with cli
17
- * @public
18
- */
19
- const defineCliConfig = (cliConfig) => {
20
- validateConfig(cliConfig);
21
- return cliConfig;
22
- };
23
- exports.defineCliConfig = defineCliConfig;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SITECORE_CLI_MODE_ENV_VAR = exports.defineCliConfig = void 0;
4
- var define_cli_config_1 = require("./define-cli-config");
5
- Object.defineProperty(exports, "defineCliConfig", { enumerable: true, get: function () { return define_cli_config_1.defineCliConfig; } });
6
- var models_1 = require("./models");
7
- Object.defineProperty(exports, "SITECORE_CLI_MODE_ENV_VAR", { enumerable: true, get: function () { return models_1.SITECORE_CLI_MODE_ENV_VAR; } });
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SITECORE_CLI_MODE_ENV_VAR = void 0;
4
- /**
5
- * Environment variable to indicate that the application is running in CLI mode
6
- * @internal
7
- */
8
- exports.SITECORE_CLI_MODE_ENV_VAR = 'SITECORE_CLI_MODE';
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchGeneratedComponentFromCache = exports.DesignLibraryPreviewError = exports.sendErrorEvent = exports.createComponentInstance = exports.addStyleElement = exports.getImportMapInfo = exports.getDesignLibraryImportMapEvent = exports.getDesignLibraryComponentPropsEvent = exports.getDesignLibraryComponentPreviewErrorEvent = exports.addServerComponentPreviewHandler = exports.addComponentPreviewHandler = void 0;
4
- var preview_1 = require("./preview");
5
- Object.defineProperty(exports, "addComponentPreviewHandler", { enumerable: true, get: function () { return preview_1.addComponentPreviewHandler; } });
6
- Object.defineProperty(exports, "addServerComponentPreviewHandler", { enumerable: true, get: function () { return preview_1.addServerComponentPreviewHandler; } });
7
- Object.defineProperty(exports, "getDesignLibraryComponentPreviewErrorEvent", { enumerable: true, get: function () { return preview_1.getDesignLibraryComponentPreviewErrorEvent; } });
8
- Object.defineProperty(exports, "getDesignLibraryComponentPropsEvent", { enumerable: true, get: function () { return preview_1.getDesignLibraryComponentPropsEvent; } });
9
- Object.defineProperty(exports, "getDesignLibraryImportMapEvent", { enumerable: true, get: function () { return preview_1.getDesignLibraryImportMapEvent; } });
10
- Object.defineProperty(exports, "getImportMapInfo", { enumerable: true, get: function () { return preview_1.getImportMapInfo; } });
11
- Object.defineProperty(exports, "addStyleElement", { enumerable: true, get: function () { return preview_1.addStyleElement; } });
12
- Object.defineProperty(exports, "createComponentInstance", { enumerable: true, get: function () { return preview_1.createComponentInstance; } });
13
- Object.defineProperty(exports, "sendErrorEvent", { enumerable: true, get: function () { return preview_1.sendErrorEvent; } });
14
- Object.defineProperty(exports, "DesignLibraryPreviewError", { enumerable: true, get: function () { return preview_1.DesignLibraryPreviewError; } });
15
- Object.defineProperty(exports, "fetchGeneratedComponentFromCache", { enumerable: true, get: function () { return preview_1.fetchGeneratedComponentFromCache; } });
@@ -1,306 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sendErrorEvent = exports.createComponentInstance = exports.addServerComponentPreviewHandler = exports.addComponentPreviewHandler = exports.DesignLibraryPreviewError = void 0;
7
- exports.buildComponentDependencies = buildComponentDependencies;
8
- exports.addStyleElement = addStyleElement;
9
- exports.getDesignLibraryComponentPreviewErrorEvent = getDesignLibraryComponentPreviewErrorEvent;
10
- exports.getDesignLibraryComponentPropsEvent = getDesignLibraryComponentPropsEvent;
11
- exports.getDesignLibraryImportMapEvent = getDesignLibraryImportMapEvent;
12
- exports.getImportMapInfo = getImportMapInfo;
13
- exports.isImportEntryInfoArray = isImportEntryInfoArray;
14
- exports.fetchGeneratedComponentFromCache = fetchGeneratedComponentFromCache;
15
- const native_fetcher_1 = require("../../native-fetcher");
16
- const constants_1 = require("../../constants");
17
- const design_library_1 = require("../design-library");
18
- const debug_1 = __importDefault(require("../../debug"));
19
- /**
20
- * Event to send import map to design library
21
- */
22
- const DESIGN_LIBRARY_IMPORT_MAP_EVENT_NAME = 'component:generation:import-map';
23
- /**
24
- * Event to send component props to design library
25
- */
26
- const DESIGN_LIBRARY_COMPONENT_PROPS_EVENT_NAME = 'component:generation:component-props';
27
- /**
28
- * Event to receive component data from design library
29
- */
30
- const DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME = 'component:generation:component-preview';
31
- /**
32
- * Event to send component error to design library
33
- */
34
- const DESIGN_LIBRARY_COMPONENT_PREVIEW_ERROR_EVENT_NAME = 'component:generation:component-preview-error';
35
- /**
36
- * Enumeration of error types for the design library preview.
37
- * @internal
38
- */
39
- var DesignLibraryPreviewError;
40
- (function (DesignLibraryPreviewError) {
41
- /**
42
- * Error occurred during component rendering.
43
- */
44
- DesignLibraryPreviewError["Render"] = "render";
45
- /**
46
- * Error occurred during component and event handlers initialization.
47
- */
48
- DesignLibraryPreviewError["RenderInit"] = "render-init";
49
- })(DesignLibraryPreviewError || (exports.DesignLibraryPreviewError = DesignLibraryPreviewError = {}));
50
- /**
51
- * Builds the component dependencies from the component imports and the import map.
52
- * @param {ComponentImport[]} componentImports - The component imports.
53
- * @param {ImportEntry[]} importMap - The import map to be used for the component.
54
- * @returns {Array<{ name: string; value: unknown }>} The component dependencies.
55
- */
56
- function buildComponentDependencies(componentImports, importMap) {
57
- const successful = [];
58
- const missing = {
59
- modules: [],
60
- exports: [],
61
- };
62
- componentImports.forEach((componentImport) => {
63
- const moduleEntry = importMap.find((entry) => entry.module === componentImport.module);
64
- if (!moduleEntry) {
65
- missing.modules.push({
66
- module: componentImport.module,
67
- alias: componentImport.alias,
68
- });
69
- return;
70
- }
71
- const exportEntry = moduleEntry.exports.find((exp) => exp.name === componentImport.export);
72
- if (!exportEntry) {
73
- missing.exports.push({
74
- alias: componentImport.alias,
75
- export: componentImport.export,
76
- module: componentImport.module,
77
- });
78
- return;
79
- }
80
- return successful.push({
81
- name: componentImport.alias,
82
- value: exportEntry.value,
83
- });
84
- });
85
- return {
86
- successful,
87
- missing,
88
- };
89
- }
90
- /**
91
- * Adds the browser-side event handler for 'component:generation:component-preview' message used in Design Library
92
- * The event should contain the component code, styles and imports.
93
- * @param {ImportEntry[]} importMap - The import map to be used for the component.
94
- * @param {Function} callback callback to be called after component is received
95
- * @internal
96
- */
97
- const addComponentPreviewHandler = (importMap, callback) => {
98
- if (!window)
99
- return;
100
- const handler = (e) => {
101
- const eventArgs = e.data;
102
- try {
103
- if (!(0, design_library_1.validateEvent)(e, DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME)) {
104
- return;
105
- }
106
- console.debug('Component Library: message received', eventArgs);
107
- const Component = (0, exports.createComponentInstance)(importMap, eventArgs.message);
108
- addStyleElement(eventArgs.message.styles.content);
109
- callback(null, Component);
110
- }
111
- catch (error) {
112
- (0, exports.sendErrorEvent)(eventArgs.message.uid, error, DesignLibraryPreviewError.RenderInit);
113
- callback(error, null);
114
- }
115
- };
116
- window.addEventListener('message', handler);
117
- const unsubscribe = () => {
118
- window.removeEventListener('message', handler);
119
- };
120
- return unsubscribe;
121
- };
122
- exports.addComponentPreviewHandler = addComponentPreviewHandler;
123
- /**
124
- * Adds the browser-side event handler for 'component:generation:component-preview' message used in Design Library for server components
125
- * The event should contain the cache id and token which will be used to fetch the component code, styles and imports from secured endpoint
126
- * @param {Function} callback callback to be called after component is received
127
- * @internal
128
- */
129
- const addServerComponentPreviewHandler = (callback) => {
130
- const handler = (e) => {
131
- if (!(0, design_library_1.validateEvent)(e, DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME)) {
132
- return;
133
- }
134
- console.debug('Component Library: message received', e.data);
135
- callback(e.data);
136
- };
137
- window.addEventListener('message', handler);
138
- const unsubscribe = () => {
139
- window.removeEventListener('message', handler);
140
- };
141
- return unsubscribe;
142
- };
143
- exports.addServerComponentPreviewHandler = addServerComponentPreviewHandler;
144
- /**
145
- * Adds <style> element in the document head with the provided CSS.
146
- * If an existing style element with the id "content-sdk-style-preview" is found, it is removed
147
- * to prevent duplicates
148
- * @param {string} stylesContent - The raw CSS text to inject into the style element.
149
- * @internal
150
- */
151
- function addStyleElement(stylesContent) {
152
- const styleId = 'content-sdk-style-preview';
153
- const styleElement = document.getElementById(styleId);
154
- // remove existing style element if it exists to avoid duplicates
155
- if (styleElement) {
156
- styleElement.remove();
157
- }
158
- // create new style element and attach it to DOM
159
- const style = document.createElement('style');
160
- style.setAttribute('id', styleId);
161
- style.innerHTML = stylesContent;
162
- document.head.appendChild(style);
163
- }
164
- /**
165
- * Dynamically creates a React component instance from provided importMap and from code, styles, and dependencies provided in the preview event.
166
- * @param {ImportEntry[]} importMap - The import map containing module and export references that might be injected as dependencies in the provided code.
167
- * @param {GeneratedComponentData} generatedComponentData - The generated component data received from design library.
168
- * @returns The dynamically created React component instance.
169
- * @throws If any required modules or exports are missing from the import map, an error is thrown describing the missing dependencies.
170
- * @internal
171
- */
172
- const createComponentInstance = (importMap, generatedComponentData) => {
173
- const dependencies = buildComponentDependencies(generatedComponentData.imports, importMap);
174
- if (dependencies.missing.modules.length > 0 || dependencies.missing.exports.length > 0) {
175
- let errorMessage = '';
176
- dependencies.missing.modules.forEach((mod) => {
177
- errorMessage += `Missing module: '${mod.module}' with alias: '${mod.alias}'\n`;
178
- });
179
- dependencies.missing.exports.forEach((exp) => {
180
- const alias = exp.export !== exp.alias ? ` with alias: '${exp.alias}'` : '';
181
- errorMessage += `Missing export: '${exp.export}' from module: '${exp.module}'${alias}\n`;
182
- });
183
- throw errorMessage;
184
- }
185
- const importNames = dependencies.successful.map((entry) => entry.name);
186
- const importInstances = dependencies.successful.map((entry) => entry.value);
187
- const exports = { Component: null };
188
- const componentFn = new Function('exports', generatedComponentData.styles.styleImport.name, ...importNames, generatedComponentData.code.content);
189
- // Function will set exports.Component
190
- componentFn(exports, generatedComponentData.styles.styleImport.content, ...importInstances);
191
- return exports.Component;
192
- };
193
- exports.createComponentInstance = createComponentInstance;
194
- /**
195
- * Generates a DesignLibraryComponentPreviewErrorEvent with the given uid and error.
196
- * @param {string} uid - The unique identifier for the event.
197
- * @param {unknown} error - The error to be sent.
198
- * @param {DesignLibraryPreviewError} type - The type of error.
199
- * @returns An object representing the DesignLibraryComponentPreviewErrorEvent.
200
- * @internal
201
- */
202
- function getDesignLibraryComponentPreviewErrorEvent(uid, error, type) {
203
- return {
204
- name: DESIGN_LIBRARY_COMPONENT_PREVIEW_ERROR_EVENT_NAME,
205
- message: { uid, error, type },
206
- };
207
- }
208
- /**
209
- * Generates a DesignLibraryComponentPropsEvent with the given uid, fields and parameters.
210
- * @param {string} uid - The unique identifier for the event.
211
- * @param {ComponentFields} fields - The fields of the component.
212
- * @param {ComponentParams} parameters - The parameters of the component.
213
- * @returns An object representing the DesignLibraryComponentPropsEvent.
214
- * @internal
215
- */
216
- function getDesignLibraryComponentPropsEvent(uid, fields = {}, parameters = {}) {
217
- return {
218
- name: DESIGN_LIBRARY_COMPONENT_PROPS_EVENT_NAME,
219
- message: {
220
- uid,
221
- fields,
222
- parameters,
223
- },
224
- };
225
- }
226
- /**
227
- * Generates a DesignLibraryImportMapEvent with the given uid and importMap.
228
- * @param {string} uid - The unique identifier for the event.
229
- * @param {ImportEntry[]} importMap - The imports map to be sent.
230
- * @returns An object representing the DesignLibraryImportMapEvent.
231
- * @internal
232
- */
233
- function getDesignLibraryImportMapEvent(uid, importMap) {
234
- const importMapPayload = isImportEntryInfoArray(importMap)
235
- ? importMap
236
- : getImportMapInfo(importMap);
237
- return {
238
- name: DESIGN_LIBRARY_IMPORT_MAP_EVENT_NAME,
239
- message: {
240
- uid,
241
- importMap: importMapPayload,
242
- },
243
- };
244
- }
245
- /**
246
- * Generates the payload for the import map to be sent to design library.
247
- * @param {ImportEntry[]} importMap - The imports map to be sent.
248
- * @internal
249
- */
250
- function getImportMapInfo(importMap) {
251
- return importMap.map((entry) => ({
252
- module: entry.module,
253
- exports: entry.exports.map((exp) => exp.name),
254
- }));
255
- }
256
- /**
257
- * Type guard for ImportEntryInfo[]
258
- * @param {unknown} data import entry data to check
259
- * @returns true if the data is ImportEntryInfo array
260
- */
261
- function isImportEntryInfoArray(data) {
262
- return (Array.isArray(data) &&
263
- data.length > 0 &&
264
- typeof data[0].module === 'string' &&
265
- Array.isArray(data[0].exports) &&
266
- typeof data[0].exports[0] === 'string');
267
- }
268
- /**
269
- * Sends a component preview error event to the design library
270
- * @param {string} uid - The unique identifier of the component that's being edited.
271
- * @param {unknown} error - The error object or message to be sent.
272
- * @param {DesignLibraryPreviewError} type - The type of error, as defined in DesignLibraryPreviewError.
273
- * @internal
274
- */
275
- const sendErrorEvent = (uid, error, type) => {
276
- const errorEvent = getDesignLibraryComponentPreviewErrorEvent(uid, error, type);
277
- console.error('Component Library: sending error event', errorEvent);
278
- if (typeof window !== 'undefined') {
279
- const target = window.parent && window.parent !== window ? window.parent : window;
280
- target.postMessage(errorEvent, '*');
281
- }
282
- };
283
- exports.sendErrorEvent = sendErrorEvent;
284
- /**
285
- * Fetches generated component data from the authoring cache endpoint.
286
- * This is used by the Design Studio Server to fetch the updated component data from the secured cache endpoint and render it in the Design Library Studio preview iframe.
287
- * @param {string} id - The unique identifier of the component to fetch from cache.
288
- * @param {string} token - The authorization token for authentication.
289
- * @param {string} [edgeUrl] - The URL of the Sitecore Edge endpoint.
290
- * @returns A Promise that resolves to the component rendering data, component generation data, or undefined if the fetch fails.
291
- * @internal
292
- */
293
- async function fetchGeneratedComponentFromCache(id, token, edgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) {
294
- const dataFetcher = new native_fetcher_1.NativeDataFetcher({ debugger: debug_1.default.editing });
295
- const componentDataResponse = await dataFetcher.fetch(`${edgeUrl}/authoring/api/v1/components/cache/${id}`, {
296
- method: 'GET',
297
- headers: {
298
- Authorization: `Bearer ${token}`,
299
- },
300
- });
301
- if (componentDataResponse.status !== 200) {
302
- throw new Error(`Failed to fetch generated component data from cache for id: ${id}. Response Status: ${componentDataResponse.status}, Response Status Text: ${componentDataResponse.statusText}`);
303
- }
304
- const generatedComponentData = JSON.parse(componentDataResponse.data.content);
305
- return generatedComponentData;
306
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ComponentLayoutService = void 0;
7
- const native_fetcher_1 = require("../native-fetcher");
8
- const debug_1 = __importDefault(require("../debug"));
9
- const constants_1 = require("../constants");
10
- const utils_1 = require("../utils");
11
- const models_1 = require("./models");
12
- /**
13
- * REST service that enables Design Library functionality.
14
- * Returns layout data for a single rendered component.
15
- * @public
16
- */
17
- class ComponentLayoutService {
18
- constructor(config) {
19
- this.config = config;
20
- }
21
- fetchComponentData(params, fetchOptions) {
22
- const fetcher = new native_fetcher_1.NativeDataFetcher({ debugger: debug_1.default.layout });
23
- debug_1.default.layout('fetching component with uid %s for %s %s %s %s', params.componentUid, params.itemId, params.language, params.siteName, params.dataSourceId);
24
- return fetcher
25
- .get(this.getFetchUrl(params), Object.assign(Object.assign({}, fetchOptions), { headers: Object.assign(Object.assign({}, fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.headers), { sc_editMode: `${params.mode === models_1.DesignLibraryMode.Metadata}` }) }))
26
- .then((response) => response.data)
27
- .catch((error) => {
28
- var _a;
29
- if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
30
- return error.response.data;
31
- }
32
- throw error;
33
- });
34
- }
35
- getComponentFetchParams(params) {
36
- // Choose the correct Edge ID per environment
37
- const sitecoreContextId = this.config.contextId || this.config.clientContextId;
38
- if (!sitecoreContextId) {
39
- throw new Error(`ComponentLayoutService misconfigured: contextId is missing.
40
- Provide contextId on the server, and clientContextId in the browser if you need to full client-side functionality.`);
41
- }
42
- // strip undefined fields
43
- return JSON.parse(JSON.stringify({
44
- sitecoreContextId,
45
- item: params.itemId,
46
- uid: params.componentUid,
47
- dataSourceId: params.dataSourceId,
48
- renderingItemId: params.renderingId,
49
- version: params.version,
50
- sc_site: params.siteName,
51
- sc_lang: params.language || 'en',
52
- }));
53
- }
54
- /**
55
- * Get the fetch URL for the partial layout data endpoint
56
- * @param {ComponentLayoutRequestParams} params - The parameters for the request
57
- * @returns {string} The fetch URL for the component data
58
- */
59
- getFetchUrl(params) {
60
- return (0, utils_1.resolveUrl)(`${this.config.edgeUrl || constants_1.SITECORE_EDGE_URL_DEFAULT}/layout/component`, this.getComponentFetchParams(params));
61
- }
62
- }
63
- exports.ComponentLayoutService = ComponentLayoutService;
@@ -1,190 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postToDesignLibrary = exports.updateComponent = exports.updateComponentHandler = exports.validateEvent = exports.validateOrigin = exports.addComponentUpdateHandler = exports.DesignLibraryStatus = exports.COMPONENT_PREVIEW_CACHE_KEY_PREFIX = exports.COMPONENT_UPDATE_CACHE_KEY_PREFIX = void 0;
4
- exports.getDesignLibraryStatusEvent = getDesignLibraryStatusEvent;
5
- exports.getDesignLibraryScriptLink = getDesignLibraryScriptLink;
6
- exports.isDesignLibraryMode = isDesignLibraryMode;
7
- const constants_1 = require("../constants");
8
- const normalize_url_1 = require("../utils/normalize-url");
9
- const models_1 = require("./models");
10
- /**
11
- * Event to be sent when report status to design library
12
- */
13
- const DESIGN_LIBRARY_STATUS_EVENT_NAME = 'component:status';
14
- /**
15
- * Prefix for component update cache keys
16
- * @internal
17
- */
18
- exports.COMPONENT_UPDATE_CACHE_KEY_PREFIX = 'component-update-';
19
- /**
20
- * Prefix for component preview cache keys
21
- * @internal
22
- */
23
- exports.COMPONENT_PREVIEW_CACHE_KEY_PREFIX = 'component-preview-';
24
- /**
25
- * Enumeration of statuses for the design library.
26
- * @internal
27
- */
28
- var DesignLibraryStatus;
29
- (function (DesignLibraryStatus) {
30
- DesignLibraryStatus["READY"] = "ready";
31
- DesignLibraryStatus["RENDERED"] = "rendered";
32
- })(DesignLibraryStatus || (exports.DesignLibraryStatus = DesignLibraryStatus = {}));
33
- /**
34
- * Adds the browser-side event handler for 'component:update' message used in Design Library
35
- * The event should update a component on page by uid, with fields and params from event args
36
- * @param {ComponentRendering} rootComponent root component displayed for Design Library page
37
- * @param {Function} successCallback callback to be called after successful component update
38
- * @internal
39
- */
40
- const addComponentUpdateHandler = (rootComponent, successCallback) => {
41
- if (!window)
42
- return;
43
- const handler = (e) => (0, exports.updateComponentHandler)(e, rootComponent, successCallback);
44
- window.addEventListener('message', handler);
45
- // the power to remove handler outside of this function, if needed
46
- const unsubscribe = () => {
47
- window.removeEventListener('message', handler);
48
- };
49
- return unsubscribe;
50
- };
51
- exports.addComponentUpdateHandler = addComponentUpdateHandler;
52
- const validateOrigin = (event) => {
53
- // TODO: use `EDITING_ALLOWED_ORIGINS.concat(getAllowedOriginsFromEnv())` later
54
- // nextjs's JSS_ALLOWED_ORIGINS is not available on the client, need to use NEXT_PUBLIC_ variable, but it's a breaking change for Deploy
55
- const allowedOrigins = ['*'];
56
- return allowedOrigins.some((origin) => origin === event.origin ||
57
- new RegExp('^' + origin.replace('.', '\\.').replace(/\*/g, '.*') + '$').test(event.origin));
58
- };
59
- exports.validateOrigin = validateOrigin;
60
- /**
61
- * Validates that a MessageEvent has the expected event name and required data.
62
- * Logs debug information when validation fails due to invalid origin.
63
- * @param {MessageEvent} e - The message event to validate.
64
- * @param {string} eventName - The expected event name to match against e.data.name.
65
- * @returns {boolean} True if the event has a valid origin, data object, and matching event name; otherwise false.
66
- */
67
- const validateEvent = (e, eventName) => {
68
- if (!e.origin || !e.data || e.data.name !== eventName) {
69
- // avoid extra noise in logs
70
- if (!(0, exports.validateOrigin)(e)) {
71
- console.debug('Component Library: event skipped - invalid origin: message %s from origin %s', e.data.name, e.origin);
72
- }
73
- return false;
74
- }
75
- return true;
76
- };
77
- exports.validateEvent = validateEvent;
78
- const updateComponentHandler = (e, rootComponent, successCallback) => {
79
- var _a;
80
- const eventArgs = e.data;
81
- if (!e.origin || !eventArgs || eventArgs.name !== 'component:update') {
82
- // avoid extra noise in logs
83
- if (!(0, exports.validateOrigin)(e)) {
84
- console.debug('Component Library: event skipped: message %s from origin %s', eventArgs.name, e.origin);
85
- }
86
- return;
87
- }
88
- if (!((_a = eventArgs.details) === null || _a === void 0 ? void 0 : _a.uid)) {
89
- console.debug('Received component:update event without uid, aborting event handler...');
90
- return;
91
- }
92
- const findComponent = (root) => {
93
- var _a, _b;
94
- if (((_a = root.uid) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_b = eventArgs.details) === null || _b === void 0 ? void 0 : _b.uid.toLowerCase()))
95
- return root;
96
- if (root.placeholders) {
97
- for (const plhName of Object.keys(root.placeholders)) {
98
- for (const rendering of root.placeholders[plhName]) {
99
- const result = findComponent(rendering);
100
- if (result)
101
- return result;
102
- }
103
- }
104
- }
105
- return null;
106
- };
107
- const componentToUpdate = findComponent(rootComponent);
108
- if (componentToUpdate) {
109
- console.debug('Found component with uid %s to update. Update fields: %o. Update params: %o.', eventArgs.details.uid, eventArgs.details.fields, eventArgs.details.params);
110
- (0, exports.updateComponent)(componentToUpdate, eventArgs.details.fields, eventArgs.details.params);
111
- if (successCallback)
112
- successCallback(rootComponent);
113
- }
114
- else {
115
- console.debug('Rendering with uid %s not found', eventArgs.details.uid);
116
- }
117
- // strictly for testing
118
- return rootComponent;
119
- };
120
- exports.updateComponentHandler = updateComponentHandler;
121
- /**
122
- * Updates a component's fields and params with the provided values.
123
- * @param {ComponentRendering<ComponentFields>} component - The component to update.
124
- * @param {ComponentFields | undefined} fields - The fields to merge into the component.
125
- * @param {ComponentParams | undefined} params - The params to merge into the component.
126
- * @internal
127
- */
128
- const updateComponent = (component, fields, params) => {
129
- if (fields) {
130
- component.fields = Object.assign(Object.assign({}, component.fields), fields);
131
- }
132
- if (params) {
133
- component.params = Object.assign(Object.assign({}, component.params), params);
134
- }
135
- };
136
- exports.updateComponent = updateComponent;
137
- /**
138
- * Generates a DesignLibraryStatusEvent with the given status and uid.
139
- * @param {DesignLibraryStatus} status - The status of rendering.
140
- * @param {string} uid - The unique identifier for the event.
141
- * @param {boolean} [isRenderingServerComponent] - Indicates if the component being rendered is a server component.
142
- * @returns An object representing the DesignLibraryStatusEvent.
143
- * @internal
144
- */
145
- function getDesignLibraryStatusEvent(status, uid, isRenderingServerComponent = false) {
146
- return {
147
- name: DESIGN_LIBRARY_STATUS_EVENT_NAME,
148
- message: {
149
- status,
150
- uid,
151
- isRenderingServerComponent,
152
- },
153
- };
154
- }
155
- /**
156
- * Generates the URL for the design library script link.
157
- * @param {string} [sitecoreEdgeUrl] Sitecore Edge Platform URL. Default is https://edge-platform.sitecorecloud.io
158
- * @returns The full URL to the design library script.
159
- * @internal
160
- */
161
- function getDesignLibraryScriptLink(sitecoreEdgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT) {
162
- return `${(0, normalize_url_1.normalizeUrl)(sitecoreEdgeUrl)}/v1/files/designlibrary/lib/rh-lib-script.js`;
163
- }
164
- /**
165
- * Checks if the given mode is a Design Library mode.
166
- * @param {unknown} mode - The mode to check.
167
- * @returns {boolean} True if the mode is a Design Library mode, false otherwise.
168
- * @internal
169
- */
170
- function isDesignLibraryMode(mode) {
171
- return mode === models_1.DesignLibraryMode.Normal || mode === models_1.DesignLibraryMode.Metadata;
172
- }
173
- /**
174
- * Sends an event to the Design Library
175
- * @param {DesignLibraryEvent} evt - The event object to send.
176
- * @internal
177
- */
178
- const postToDesignLibrary = (evt) => {
179
- if (typeof window === 'undefined')
180
- return;
181
- const target = window.parent && window.parent !== window ? window.parent : window;
182
- try {
183
- console.log('Component Library: sending event', evt.name, evt);
184
- target.postMessage(evt, '*');
185
- }
186
- catch (err) {
187
- console.error('Component Library: postMessage failed', err, evt);
188
- }
189
- };
190
- exports.postToDesignLibrary = postToDesignLibrary;