@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,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CdpHelper = exports.VARIANT_PREFIX = exports.DEFAULT_VARIANT = void 0;
4
- exports.getPersonalizedRewrite = getPersonalizedRewrite;
5
- exports.getPersonalizedRewriteData = getPersonalizedRewriteData;
6
- exports.getGroomedVariantIds = getGroomedVariantIds;
7
- exports.normalizePersonalizedRewrite = normalizePersonalizedRewrite;
8
- /** @internal */
9
- exports.DEFAULT_VARIANT = '_default';
10
- /** @internal */
11
- exports.VARIANT_PREFIX = '_variantId_';
12
- /**
13
- * Get a personalized rewrite path for given pathname
14
- * @param {string} pathname the pathname
15
- * @param {string[]} variantIds the variantIds to include in the rewrite
16
- * @returns {string} the rewrite path
17
- * @public
18
- */
19
- function getPersonalizedRewrite(pathname, variantIds) {
20
- const path = pathname.endsWith('/') ? pathname.slice(0, -1) : pathname;
21
- return `${path}${variantIds.map((variantId) => `/${exports.VARIANT_PREFIX}${variantId}`).join('')}`;
22
- }
23
- /**
24
- * Get personalize data from the rewrite path
25
- * @param {string} pathname the pathname
26
- * @returns {PersonalizedRewriteData} the personalize data from the rewrite
27
- * @public
28
- */
29
- function getPersonalizedRewriteData(pathname) {
30
- const segments = pathname.split('/');
31
- const variantIds = [];
32
- segments.forEach((segment) => {
33
- const result = segment.match(`${exports.VARIANT_PREFIX}(.*$)`);
34
- if (result) {
35
- variantIds.push(result[1]);
36
- }
37
- });
38
- return getGroomedVariantIds(variantIds);
39
- }
40
- /**
41
- * Parses a list of variantIds and divides into layout and component variants
42
- * @param {string[]} variantIds the list of variant IDs for a page
43
- * @returns {PersonalizedRewriteData} object with variant IDs sorted
44
- * @public
45
- */
46
- function getGroomedVariantIds(variantIds) {
47
- const data = {
48
- variantId: exports.DEFAULT_VARIANT,
49
- componentVariantIds: [],
50
- };
51
- variantIds.forEach((variantId) => {
52
- var _a;
53
- if (variantId.includes('_')) {
54
- // Component-level personalization in format "<ComponentID>_<VariantID>"
55
- // There can be multiple
56
- (_a = data.componentVariantIds) === null || _a === void 0 ? void 0 : _a.push(variantId);
57
- }
58
- else {
59
- // Embedded (page-level) personalization in format "<VariantID>"
60
- // There should be only one
61
- data.variantId = variantId;
62
- }
63
- });
64
- return data;
65
- }
66
- /**
67
- * Normalize a personalized rewrite path (remove personalize data)
68
- * @param {string} pathname the pathname
69
- * @returns {string} the pathname with personalize data removed
70
- * @public
71
- */
72
- function normalizePersonalizedRewrite(pathname) {
73
- if (!pathname.includes(exports.VARIANT_PREFIX)) {
74
- return pathname;
75
- }
76
- let segments = pathname.split('/');
77
- segments = segments.filter((segment) => !segment.includes(exports.VARIANT_PREFIX));
78
- const result = segments.join('/');
79
- // return root path if all segments were personalize data
80
- return result ? result : '/';
81
- }
82
- /**
83
- * Static utility class for Sitecore CDP
84
- * @public
85
- */
86
- class CdpHelper {
87
- /**
88
- * Gets the page variant id for CDP in the required format
89
- * @param {string} pageId the page id
90
- * @param {string} language the language
91
- * @param {string} variantId the variant id
92
- * @param {string} [scope] the scope value
93
- * @returns {string} the formatted page variant id
94
- */
95
- static getPageVariantId(pageId, language, variantId, scope) {
96
- const formattedPageId = pageId.replace(/[{}-]/g, '');
97
- const formattedLanguage = language.replace('-', '_');
98
- const scopeId = scope ? `${this.normalizeScope(scope)}_` : '';
99
- let formattedVariantId = variantId;
100
- if (!variantId || variantId === exports.DEFAULT_VARIANT) {
101
- formattedVariantId = 'default';
102
- }
103
- return `${scopeId}${formattedPageId}_${formattedLanguage}_${formattedVariantId}`.toLowerCase();
104
- }
105
- /**
106
- * Gets the friendly id for (page-level) Embedded Personalization in the required format `embedded_[<scope>_]<id>_<lang>`
107
- * @param {string} pageId the page id
108
- * @param {string} language the language
109
- * @param {string} [scope] the scope value
110
- * @returns {string} the friendly id
111
- */
112
- static getPageFriendlyId(pageId, language, scope) {
113
- const formattedPageId = pageId.replace(/[{}-]/g, '');
114
- const formattedLanguage = language.replace('-', '_');
115
- const scopeId = scope ? `${this.normalizeScope(scope)}_` : '';
116
- return `embedded_${scopeId}${formattedPageId}_${formattedLanguage}`.toLowerCase();
117
- }
118
- /**
119
- * Gets the friendly id for Component A/B Testing in the required format `component_[<scope>_]<pageId>_<componentId>_<language>*`
120
- * @param {string} pageId the page id
121
- * @param {string} componentId the component id
122
- * @param {string} language the language
123
- * @param {string} [scope] the scope value
124
- * @returns {string} the friendly id
125
- */
126
- static getComponentFriendlyId(pageId, componentId, language, scope) {
127
- const formattedPageId = pageId.replace(/[{}-]/g, '');
128
- const formattedComponentId = componentId.replace(/[{}-]/g, '');
129
- const formattedLanguage = language.replace('-', '_');
130
- const scopeId = scope ? `${this.normalizeScope(scope)}_` : '';
131
- return `component_${scopeId}${formattedPageId}_${formattedComponentId}_${formattedLanguage}*`.toLowerCase();
132
- }
133
- /**
134
- * Normalizes the scope from the given string value
135
- * Removes all non-alphanumeric characters
136
- * @param {string} [scope] the scope value
137
- * @returns {string} normalized scope value
138
- */
139
- static normalizeScope(scope) {
140
- return (scope === null || scope === void 0 ? void 0 : scope.replace(/[^a-zA-Z0-9]+/g, '')) || '';
141
- }
142
- }
143
- exports.CdpHelper = CdpHelper;
@@ -1,82 +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.ErrorPagesService = void 0;
7
- const constants_1 = require("../constants");
8
- const debug_1 = __importDefault(require("../debug"));
9
- // The default query for request error handling
10
- const defaultQuery = /* GraphQL */ `
11
- query ErrorPagesQuery($siteName: String!, $language: String!) {
12
- site {
13
- siteInfo(site: $siteName) {
14
- errorHandling(language: $language) {
15
- notFoundPage {
16
- rendered
17
- }
18
- notFoundPagePath
19
- serverErrorPage {
20
- rendered
21
- }
22
- serverErrorPagePath
23
- }
24
- }
25
- }
26
- }
27
- `;
28
- /**
29
- * Service that fetch the error pages data using Sitecore's GraphQL API.
30
- * @public
31
- */
32
- class ErrorPagesService {
33
- /**
34
- * Creates an instance of graphQL error pages service with the provided options
35
- * @param {ErrorPagesServiceConfig} options instance
36
- */
37
- constructor(options) {
38
- this.options = options;
39
- this.graphQLClient = this.getGraphQLClient();
40
- }
41
- get query() {
42
- return defaultQuery;
43
- }
44
- /**
45
- * Fetch list of error pages for the site
46
- * @param {string} siteName The site name
47
- * @param {string} locale The language
48
- * @param {FetchOptions} [fetchOptions] Options to override graphQL client details like retries and fetch implementation
49
- * @returns {ErrorPages} list of url's error pages
50
- * @throws {Error} if the siteName is empty.
51
- */
52
- async fetchErrorPages(siteName, locale, fetchOptions) {
53
- const language = locale || this.options.language;
54
- if (!siteName) {
55
- throw new Error(constants_1.siteNameError);
56
- }
57
- return this.graphQLClient.request(this.query, {
58
- siteName,
59
- language,
60
- }, fetchOptions)
61
- .then((result) => result.site.siteInfo ? result.site.siteInfo.errorHandling : null)
62
- .catch((e) => Promise.reject(e));
63
- }
64
- /**
65
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
66
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
67
- * want to use something else.
68
- * @returns {GraphQLClient} implementation
69
- */
70
- getGraphQLClient() {
71
- var _a, _b;
72
- if (!this.options.clientFactory) {
73
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
74
- }
75
- return this.options.clientFactory({
76
- debugger: debug_1.default.errorpages,
77
- retries: (_a = this.options.retries) === null || _a === void 0 ? void 0 : _a.count,
78
- retryStrategy: (_b = this.options.retries) === null || _b === void 0 ? void 0 : _b.retryStrategy,
79
- });
80
- }
81
- }
82
- exports.ErrorPagesService = ErrorPagesService;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SiteResolver = exports.SITE_KEY = exports.SITE_PREFIX = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.SitePathService = exports.SiteInfoService = exports.ErrorPagesService = exports.SitemapXmlService = exports.RedirectsService = exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = exports.RobotsService = void 0;
4
- var robots_service_1 = require("./robots-service");
5
- Object.defineProperty(exports, "RobotsService", { enumerable: true, get: function () { return robots_service_1.RobotsService; } });
6
- var redirects_service_1 = require("./redirects-service");
7
- Object.defineProperty(exports, "REDIRECT_TYPE_301", { enumerable: true, get: function () { return redirects_service_1.REDIRECT_TYPE_301; } });
8
- Object.defineProperty(exports, "REDIRECT_TYPE_302", { enumerable: true, get: function () { return redirects_service_1.REDIRECT_TYPE_302; } });
9
- Object.defineProperty(exports, "REDIRECT_TYPE_SERVER_TRANSFER", { enumerable: true, get: function () { return redirects_service_1.REDIRECT_TYPE_SERVER_TRANSFER; } });
10
- Object.defineProperty(exports, "RedirectsService", { enumerable: true, get: function () { return redirects_service_1.RedirectsService; } });
11
- var sitemap_xml_service_1 = require("./sitemap-xml-service");
12
- Object.defineProperty(exports, "SitemapXmlService", { enumerable: true, get: function () { return sitemap_xml_service_1.SitemapXmlService; } });
13
- var error_pages_service_1 = require("./error-pages-service");
14
- Object.defineProperty(exports, "ErrorPagesService", { enumerable: true, get: function () { return error_pages_service_1.ErrorPagesService; } });
15
- var siteinfo_service_1 = require("./siteinfo-service");
16
- Object.defineProperty(exports, "SiteInfoService", { enumerable: true, get: function () { return siteinfo_service_1.SiteInfoService; } });
17
- var sitepath_service_1 = require("./sitepath-service");
18
- Object.defineProperty(exports, "SitePathService", { enumerable: true, get: function () { return sitepath_service_1.SitePathService; } });
19
- var utils_1 = require("./utils");
20
- Object.defineProperty(exports, "getSiteRewrite", { enumerable: true, get: function () { return utils_1.getSiteRewrite; } });
21
- Object.defineProperty(exports, "getSiteRewriteData", { enumerable: true, get: function () { return utils_1.getSiteRewriteData; } });
22
- Object.defineProperty(exports, "normalizeSiteRewrite", { enumerable: true, get: function () { return utils_1.normalizeSiteRewrite; } });
23
- Object.defineProperty(exports, "SITE_PREFIX", { enumerable: true, get: function () { return utils_1.SITE_PREFIX; } });
24
- Object.defineProperty(exports, "SITE_KEY", { enumerable: true, get: function () { return utils_1.SITE_KEY; } });
25
- var site_resolver_1 = require("./site-resolver");
26
- Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_resolver_1.SiteResolver; } });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,108 +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.RedirectsService = exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = void 0;
7
- const constants_1 = require("../constants");
8
- const debug_1 = __importDefault(require("../debug"));
9
- const cache_client_1 = require("../cache-client");
10
- /**
11
- * Redirect type for 301 redirects
12
- * @public
13
- */
14
- exports.REDIRECT_TYPE_301 = 'REDIRECT_301';
15
- /**
16
- * Redirect type for 302 redirects
17
- * @public
18
- */
19
- exports.REDIRECT_TYPE_302 = 'REDIRECT_302';
20
- /**
21
- * Redirect type for server transfer
22
- * @public
23
- */
24
- exports.REDIRECT_TYPE_SERVER_TRANSFER = 'SERVER_TRANSFER';
25
- // The default query for request redirects of site
26
- const defaultQuery = /* GraphQL */ `
27
- query RedirectsQuery($siteName: String!) {
28
- site {
29
- siteInfo(site: $siteName) {
30
- redirects {
31
- pattern
32
- target
33
- redirectType
34
- isQueryStringPreserved
35
- locale
36
- }
37
- }
38
- }
39
- }
40
- `;
41
- /**
42
- * The RedirectsService class is used to query the Content SDK redirects using Graphql endpoint
43
- * @public
44
- */
45
- class RedirectsService {
46
- /**
47
- * Creates an instance of graphQL redirects service with the provided options
48
- * @param {RedirectsServiceConfig} options instance
49
- */
50
- constructor(options) {
51
- this.options = options;
52
- this.graphQLClient = this.getGraphQLClient();
53
- this.cache = this.getCacheClient();
54
- }
55
- get query() {
56
- return defaultQuery;
57
- }
58
- /**
59
- * Fetch an array of redirects from API
60
- * @param {string} siteName site name
61
- * @returns Promise<RedirectInfo[]>
62
- * @param {FetchOptions} [fetchOptions] Options to override graphQL client details like retries and fetch implementation
63
- * @throws {Error} if the siteName is empty.
64
- */
65
- async fetchRedirects(siteName, fetchOptions) {
66
- var _a, _b;
67
- if (!siteName) {
68
- throw new Error(constants_1.siteNameError);
69
- }
70
- const cacheKey = `redirects-${siteName}`;
71
- let data = this.cache.getCacheValue(cacheKey);
72
- if (!data) {
73
- data = await this.graphQLClient.request(this.query, {
74
- siteName,
75
- }, fetchOptions);
76
- this.cache.setCacheValue(cacheKey, data);
77
- }
78
- return ((_b = (_a = data === null || data === void 0 ? void 0 : data.site) === null || _a === void 0 ? void 0 : _a.siteInfo) === null || _b === void 0 ? void 0 : _b.redirects) || [];
79
- }
80
- /**
81
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
82
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
83
- * want to use something else.
84
- * @returns {GraphQLClient} implementation
85
- */
86
- getGraphQLClient() {
87
- if (!this.options.clientFactory) {
88
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
89
- }
90
- return this.options.clientFactory({
91
- debugger: debug_1.default.redirects,
92
- fetch: this.options.fetch,
93
- });
94
- }
95
- /**
96
- * Gets cache client implementation
97
- * Override this method if custom cache needs to be used
98
- * @returns CacheClient instance
99
- */
100
- getCacheClient() {
101
- var _a, _b;
102
- return new cache_client_1.MemoryCacheClient({
103
- cacheEnabled: (_a = this.options.cacheEnabled) !== null && _a !== void 0 ? _a : true,
104
- cacheTimeout: (_b = this.options.cacheTimeout) !== null && _b !== void 0 ? _b : 10,
105
- });
106
- }
107
- }
108
- exports.RedirectsService = RedirectsService;
@@ -1,74 +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.RobotsService = void 0;
7
- const constants_1 = require("../constants");
8
- const debug_1 = __importDefault(require("../debug"));
9
- // The default query for request robots.txt
10
- const defaultQuery = /* GraphQL */ `
11
- query RobotsQuery($siteName: String!) {
12
- site {
13
- siteInfo(site: $siteName) {
14
- robots
15
- }
16
- }
17
- }
18
- `;
19
- /**
20
- * Service that fetch the robots.txt data using Sitecore's GraphQL API.
21
- * @public
22
- */
23
- class RobotsService {
24
- /**
25
- * Creates an instance of graphQL robots.txt service with the provided options
26
- * @param {RobotsServiceConfig} options instance
27
- */
28
- constructor(options) {
29
- this.options = options;
30
- this.graphQLClient = this.getGraphQLClient();
31
- }
32
- get query() {
33
- return defaultQuery;
34
- }
35
- /**
36
- * Fetch a data of robots.txt from API
37
- * @param {FetchOptions} fetchOptions - The fetch options to be used for the request.
38
- * @returns text of robots.txt
39
- * @throws {Error} if the siteName is empty.
40
- */
41
- async fetchRobots(fetchOptions) {
42
- const siteName = this.options.siteName;
43
- if (!siteName) {
44
- throw new Error(constants_1.siteNameError);
45
- }
46
- const robotsResult = this.graphQLClient.request(this.query, {
47
- siteName,
48
- }, fetchOptions);
49
- try {
50
- return robotsResult.then((result) => {
51
- var _a, _b;
52
- return (_b = (_a = result === null || result === void 0 ? void 0 : result.site) === null || _a === void 0 ? void 0 : _a.siteInfo) === null || _b === void 0 ? void 0 : _b.robots;
53
- });
54
- }
55
- catch (e) {
56
- return Promise.reject(e);
57
- }
58
- }
59
- /**
60
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
61
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
62
- * want to use something else.
63
- * @returns {GraphQLClient} implementation
64
- */
65
- getGraphQLClient() {
66
- if (!this.options.clientFactory) {
67
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
68
- }
69
- return this.options.clientFactory({
70
- debugger: debug_1.default.robots,
71
- });
72
- }
73
- }
74
- exports.RobotsService = RobotsService;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SiteResolver = void 0;
4
- // Delimiters for multi-value hostnames
5
- const DELIMITERS = /\||,|;/g;
6
- /**
7
- * Resolves site based on the provided host or site name
8
- * @public
9
- */
10
- class SiteResolver {
11
- /**
12
- * @param {SiteInfo[]} sites Array of sites to be used in resolution
13
- */
14
- constructor(sites) {
15
- this.sites = sites;
16
- /**
17
- * Resolve site by host name
18
- * @param {string} hostName the host name
19
- * @returns {SiteInfo} the resolved site
20
- * @throws {Error} if a matching site is not found
21
- */
22
- this.getByHost = (hostName) => {
23
- for (const [hostname, site] of this.getHostMap()) {
24
- if (this.matchesPattern(hostName, hostname)) {
25
- return site;
26
- }
27
- }
28
- throw new Error(`Could not resolve site for host ${hostName}`);
29
- };
30
- /**
31
- * Resolve site by site name
32
- * @param {string} siteName the site name
33
- * @returns {SiteInfo} the resolved site or undefined if not found
34
- */
35
- this.getByName = (siteName) => {
36
- const siteInfo = this.sites.find((info) => info.name.toLocaleLowerCase() === siteName.toLocaleLowerCase());
37
- return siteInfo;
38
- };
39
- this.getHostMap = () => {
40
- const map = new Map();
41
- // First collect unique hostnames.
42
- // For sites with same hostname defined, priority is given to the first encountered.
43
- this.sites.forEach((site) => {
44
- const hostnames = site.hostName.replace(/\s/g, '').toLocaleLowerCase().split(DELIMITERS);
45
- hostnames.forEach((hostname) => {
46
- if (!map.has(hostname)) {
47
- map.set(hostname, site);
48
- }
49
- });
50
- });
51
- // Now order by specificity.
52
- // This equivalates to sorting from longest to shortest with the assumption
53
- // that your match is less specific as wildcards are introduced.
54
- // E.g. order.eu.site.com → *.eu.site.com → *.site.com → *
55
- // In case of a tie (e.g. *.site.com vs i.site.com), prefer one with less wildcards.
56
- return new Map(Array.from(map).sort((a, b) => {
57
- if (a[0].length === b[0].length) {
58
- return (a[0].match(/\*/g) || []).length - (b[0].match(/\*/g) || []).length;
59
- }
60
- return b[0].length - a[0].length;
61
- }));
62
- };
63
- }
64
- // b[0].match(/\*/g) || []).length
65
- matchesPattern(hostname, pattern) {
66
- // dots should be treated as chars
67
- // stars should be treated as wildcards
68
- const regExpPattern = pattern.replace(/\./g, '\\.').replace(/\*/g, '.*');
69
- const regExp = new RegExp(`^${regExpPattern}$`, 'gi');
70
- return !!hostname.match(regExp);
71
- }
72
- }
73
- exports.SiteResolver = SiteResolver;
@@ -1,94 +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.SiteInfoService = void 0;
7
- const debug_1 = __importDefault(require("../debug"));
8
- const cache_client_1 = require("../cache-client");
9
- const siteQuery = /* GraphQL */ `
10
- query {
11
- site {
12
- siteInfoCollection {
13
- name
14
- hostName: hostname
15
- language
16
- }
17
- }
18
- }
19
- `;
20
- /**
21
- * Service to fetch site information
22
- * @public
23
- */
24
- class SiteInfoService {
25
- /**
26
- * Creates an instance of graphQL service to retrieve site configuration list from Sitecore
27
- * @param {SiteInfoServiceConfig} config instance
28
- */
29
- constructor(config) {
30
- this.config = config;
31
- this.graphQLClient = this.getGraphQLClient();
32
- this.cache = this.getCacheClient();
33
- }
34
- /**
35
- * site query is available on XM Cloud and XP 10.4+
36
- */
37
- get siteQuery() {
38
- return siteQuery;
39
- }
40
- async fetchSiteInfo(fetchOptions) {
41
- var _a, _b;
42
- const cachedResult = this.cache.getCacheValue(this.getCacheKey());
43
- if (cachedResult) {
44
- return cachedResult;
45
- }
46
- if (process.env.SITECORE) {
47
- debug_1.default.multisite('Skipping site information fetch (building on XM Cloud)');
48
- return [];
49
- }
50
- const response = await this.graphQLClient.request(this.siteQuery, {}, fetchOptions);
51
- const results = (_b = (_a = response === null || response === void 0 ? void 0 : response.site) === null || _a === void 0 ? void 0 : _a.siteInfoCollection) === null || _b === void 0 ? void 0 : _b.reduce((result, current) => {
52
- // filter out built in website
53
- current.name !== 'website' &&
54
- result.push({
55
- name: current.name,
56
- hostName: current.hostName,
57
- language: current.language,
58
- });
59
- return result;
60
- }, []);
61
- this.cache.setCacheValue(this.getCacheKey(), results);
62
- return results;
63
- }
64
- /**
65
- * Gets cache client implementation
66
- * Override this method if custom cache needs to be used
67
- * @returns CacheClient instance
68
- */
69
- getCacheClient() {
70
- var _a, _b;
71
- return new cache_client_1.MemoryCacheClient({
72
- cacheEnabled: (_a = this.config.cacheEnabled) !== null && _a !== void 0 ? _a : true,
73
- cacheTimeout: (_b = this.config.cacheTimeout) !== null && _b !== void 0 ? _b : 10,
74
- });
75
- }
76
- /**
77
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
78
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
79
- * want to use something else.
80
- * @returns {GraphQLClient} implementation
81
- */
82
- getGraphQLClient() {
83
- if (!this.config.clientFactory) {
84
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
85
- }
86
- return this.config.clientFactory({
87
- debugger: debug_1.default.multisite,
88
- });
89
- }
90
- getCacheKey() {
91
- return 'siteinfo-service-cache';
92
- }
93
- }
94
- exports.SiteInfoService = SiteInfoService;