@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,92 +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.SitemapXmlService = void 0;
7
- const constants_1 = require("../constants");
8
- const debug_1 = __importDefault(require("../debug"));
9
- const PREFIX_NAME_SITEMAP = 'sitemap';
10
- // The default query for request sitemaps
11
- const defaultQuery = /* GraphQL */ `
12
- query SitemapQuery($siteName: String!) {
13
- site {
14
- siteInfo(site: $siteName) {
15
- sitemap
16
- }
17
- }
18
- }
19
- `;
20
- /**
21
- * Service that fetch the sitemaps data using Sitecore's GraphQL API.
22
- * @public
23
- */
24
- class SitemapXmlService {
25
- /**
26
- * Creates an instance of graphQL sitemaps service with the provided options
27
- * @param {SitemapXmlServiceConfig} options instance
28
- */
29
- constructor(options) {
30
- this.options = options;
31
- this.graphQLClient = this.getGraphQLClient();
32
- }
33
- get query() {
34
- return defaultQuery;
35
- }
36
- /**
37
- * Fetch list of sitemaps for the site
38
- * @returns {string[]} list of sitemap paths
39
- * @param {FetchOptions} [fetchOptions] Options to override graphQL client details like retries and fetch implementation
40
- * @throws {Error} if the siteName is empty.
41
- */
42
- async fetchSitemaps(fetchOptions) {
43
- const siteName = this.options.siteName;
44
- if (!siteName) {
45
- throw new Error(constants_1.siteNameError);
46
- }
47
- const sitemapResult = this.graphQLClient.request(this.query, {
48
- siteName,
49
- }, fetchOptions);
50
- try {
51
- return sitemapResult.then((result) => result.site.siteInfo.sitemap);
52
- }
53
- catch (e) {
54
- return Promise.reject(e);
55
- }
56
- }
57
- /**
58
- * Get sitemap file path for sitemap id
59
- * @param {string} id the sitemap id (can be empty for default 'sitemap.xml' file)
60
- * @returns {string | undefined} the sitemap file path or undefined if one doesn't exist
61
- */
62
- async getSitemap(id) {
63
- let searchSitemap;
64
- if (id === undefined) {
65
- return undefined;
66
- }
67
- else if (id === '') {
68
- searchSitemap = `${PREFIX_NAME_SITEMAP}.xml`;
69
- }
70
- else {
71
- const normalizedId = id.startsWith('-') ? id.slice(1) : id;
72
- searchSitemap = `${PREFIX_NAME_SITEMAP}-${normalizedId}.xml`;
73
- }
74
- const sitemaps = await this.fetchSitemaps();
75
- return sitemaps.find((sitemap) => sitemap.includes(searchSitemap));
76
- }
77
- /**
78
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
79
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
80
- * want to use something else.
81
- * @returns {GraphQLClient} implementation
82
- */
83
- getGraphQLClient() {
84
- if (!this.options.clientFactory) {
85
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
86
- }
87
- return this.options.clientFactory({
88
- debugger: debug_1.default.sitemap,
89
- });
90
- }
91
- }
92
- exports.SitemapXmlService = SitemapXmlService;
@@ -1,201 +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.SitePathService = exports.sitesError = exports.siteError = exports.languageError = void 0;
7
- exports.getSiteEmptyError = getSiteEmptyError;
8
- const debug_1 = __importDefault(require("../debug"));
9
- const personalize_1 = require("../personalize");
10
- const site_1 = require("../site");
11
- /** @private */
12
- exports.languageError = 'The list of languages cannot be empty';
13
- exports.siteError = 'The service needs a site name';
14
- exports.sitesError = 'The list of sites cannot be empty';
15
- /**
16
- * @param {string} siteName to inject into error text
17
- * @private
18
- */
19
- function getSiteEmptyError(siteName) {
20
- return `Site "${siteName}" does not exist or site item tree is missing`;
21
- }
22
- /**
23
- * GQL query made dynamic based whether personalization is enabled or not
24
- * @param {boolean} usesPersonalize flag to detrmine which variation of a query to run
25
- * @returns GraphQL query to fetch site paths with
26
- */
27
- const defaultQuery = (usesPersonalize) => /* GraphQL */ `
28
- query ${usesPersonalize ? 'PersonalizeSitemapQuery' : 'DefaultSitemapQuery'}(
29
- $siteName: String!
30
- $language: String!
31
- $includedPaths: [String]
32
- $excludedPaths: [String]
33
- $pageSize: Int = 100
34
- $after: String
35
- ) {
36
- site {
37
- siteInfo(site: $siteName) {
38
- routes(
39
- language: $language
40
- includedPaths: $includedPaths
41
- excludedPaths: $excludedPaths
42
- first: $pageSize
43
- after: $after
44
- ){
45
- total
46
- pageInfo {
47
- endCursor
48
- hasNext
49
- }
50
- results {
51
- path: routePath
52
- ${usesPersonalize
53
- ? `
54
- route {
55
- personalization {
56
- variantIds
57
- }
58
- }`
59
- : ''}
60
- }
61
- }
62
- }
63
- }
64
- }
65
- `;
66
- /**
67
- * Service that fetches the list of site pages using Sitecore's GraphQL API.
68
- * Used to handle a single site
69
- * This list is used for SSG and Export functionality.
70
- * @mixes SearchQueryService<PageListQueryResult>
71
- * @public
72
- */
73
- class SitePathService {
74
- /**
75
- * Creates an instance of graphQL sitemap service with the provided options
76
- * @param {SitePathServiceConfig} options instance
77
- */
78
- constructor(options) {
79
- this.options = options;
80
- this._graphQLClient = this.getGraphQLClient();
81
- }
82
- /**
83
- * GraphQL client accessible by descendant classes when needed
84
- */
85
- get graphQLClient() {
86
- return this._graphQLClient;
87
- }
88
- /**
89
- * Gets the default query used for fetching the list of site pages
90
- */
91
- get query() {
92
- return defaultQuery(this.options.includePersonalizedRoutes);
93
- }
94
- /**
95
- * Fetch a flat list of all pages that belong to all the requested sites and have a
96
- * version in the specified language(s).
97
- * @param {string[]} sites Fetch pages for these sites.
98
- * @param {string[]} languages Fetch pages that have versions in this language(s).
99
- * @param {FetchOptions} fetchOptions Options to override graphQL client details like retries and fetch implementation
100
- * @returns list of pages
101
- * @throws {RangeError} if the list of languages is empty.
102
- * @throws {RangeError} if the any of the languages is an empty string.
103
- */
104
- async fetchSiteRoutes(sites, languages, fetchOptions) {
105
- const formatPath = (path, locale) => ({
106
- params: {
107
- path,
108
- },
109
- locale,
110
- });
111
- const paths = new Array();
112
- if (!languages.length) {
113
- throw new RangeError(exports.languageError);
114
- }
115
- // Get all sites
116
- if (!sites || !sites.length) {
117
- throw new RangeError(exports.sitesError);
118
- }
119
- // Fetch paths for each site
120
- for (let i = 0; i < sites.length; i++) {
121
- for (const language of languages) {
122
- // Fetch paths using all locales
123
- const sitePaths = await this.fetchLanguageSitePaths(language, sites[i], fetchOptions);
124
- const transformedPaths = await this.transformLanguageSitePaths(sitePaths, formatPath, language);
125
- paths.push(...transformedPaths);
126
- }
127
- }
128
- return [].concat(...paths);
129
- }
130
- async transformLanguageSitePaths(sitePaths, formatStaticPath, language) {
131
- const toSegments = (p) => decodeURI(p)
132
- .replace(/^\/|\/$/g, '')
133
- .split('/');
134
- const aggregatedPaths = [];
135
- sitePaths.forEach((item) => {
136
- var _a, _b, _c;
137
- if (!item)
138
- return;
139
- aggregatedPaths.push(formatStaticPath(toSegments(item.path), language));
140
- const variantIds = (_c = (_b = (_a = item.route) === null || _a === void 0 ? void 0 : _a.personalization) === null || _b === void 0 ? void 0 : _b.variantIds) === null || _c === void 0 ? void 0 : _c.filter((variantId) => !variantId.includes('_') // exclude component A/B test
141
- );
142
- if (variantIds === null || variantIds === void 0 ? void 0 : variantIds.length) {
143
- aggregatedPaths.push(...variantIds.map((varId) => formatStaticPath(toSegments((0, personalize_1.getPersonalizedRewrite)(item.path, [varId])), language)));
144
- }
145
- });
146
- return aggregatedPaths;
147
- }
148
- /**
149
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
150
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
151
- * want to use something else.
152
- * @returns {GraphQLClient} implementation
153
- */
154
- getGraphQLClient() {
155
- if (!this.options.clientFactory) {
156
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
157
- }
158
- return this.options.clientFactory({
159
- debugger: debug_1.default.sitemap,
160
- });
161
- }
162
- /**
163
- * Fetch and return site paths for multisite implementation, with prefixes included
164
- * @param {string} language path language
165
- * @param {string} siteName site name
166
- * @param {FetchOptions} fetchOptions Options to override graphQL client details like retries and fetch implementation
167
- * @returns modified paths
168
- */
169
- async fetchLanguageSitePaths(language, siteName, fetchOptions) {
170
- var _a, _b, _c, _d;
171
- const args = {
172
- siteName: siteName,
173
- language: language,
174
- pageSize: this.options.pageSize,
175
- includedPaths: this.options.includedPaths,
176
- excludedPaths: this.options.excludedPaths,
177
- };
178
- let results = [];
179
- let hasNext = true;
180
- let after = '';
181
- debug_1.default.sitemap('fetching sitemap data for %s %s', language, siteName);
182
- while (hasNext) {
183
- const fetchResponse = await this.graphQLClient.request(this.query, Object.assign(Object.assign({}, args), { after }), fetchOptions);
184
- if (!((_a = fetchResponse === null || fetchResponse === void 0 ? void 0 : fetchResponse.site) === null || _a === void 0 ? void 0 : _a.siteInfo)) {
185
- throw new RangeError(getSiteEmptyError(siteName));
186
- }
187
- else {
188
- results = results.concat((_b = fetchResponse.site.siteInfo.routes) === null || _b === void 0 ? void 0 : _b.results);
189
- hasNext = (_c = fetchResponse.site.siteInfo.routes) === null || _c === void 0 ? void 0 : _c.pageInfo.hasNext;
190
- after = (_d = fetchResponse.site.siteInfo.routes) === null || _d === void 0 ? void 0 : _d.pageInfo.endCursor;
191
- }
192
- }
193
- results.forEach((item) => {
194
- if (item) {
195
- item.path = (0, site_1.getSiteRewrite)(item.path, { siteName: siteName });
196
- }
197
- });
198
- return results;
199
- }
200
- }
201
- exports.SitePathService = SitePathService;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SITE_KEY = exports.SITE_PREFIX = void 0;
4
- exports.getSiteRewrite = getSiteRewrite;
5
- exports.getSiteRewriteData = getSiteRewriteData;
6
- exports.normalizeSiteRewrite = normalizeSiteRewrite;
7
- /**
8
- * Site prefix for rewrite path
9
- * @public
10
- */
11
- exports.SITE_PREFIX = '_site_';
12
- /**
13
- * Site key for cookie and query string parameter access
14
- * @public
15
- */
16
- exports.SITE_KEY = 'sc_site';
17
- /**
18
- * Get a site rewrite path for given pathname
19
- * @param {string} pathname the pathname
20
- * @param {SiteRewriteData} data the site data to include in the rewrite
21
- * @returns {string} the rewrite path
22
- * @public
23
- */
24
- function getSiteRewrite(pathname, data) {
25
- const path = pathname.startsWith('/') ? pathname : '/' + pathname;
26
- return `/${exports.SITE_PREFIX}${data.siteName}${path}`;
27
- }
28
- /**
29
- * Get site data from the rewrite path
30
- * @param {string} pathname the pathname
31
- * @param {string} defaultSiteName the default site name
32
- * @returns {SiteRewriteData} the site data from the rewrite
33
- * @public
34
- */
35
- function getSiteRewriteData(pathname, defaultSiteName) {
36
- const data = {
37
- siteName: defaultSiteName,
38
- };
39
- const path = pathname.endsWith('/') ? pathname : pathname + '/';
40
- const result = path.match(`${exports.SITE_PREFIX}(.*?)\\/`);
41
- if (result && result[1] !== '') {
42
- data.siteName = result[1];
43
- }
44
- return data;
45
- }
46
- /**
47
- * Normalize a site rewrite path (remove site data)
48
- * @param {string} pathname the pathname
49
- * @returns {string} the pathname with site data removed
50
- * @public
51
- */
52
- function normalizeSiteRewrite(pathname) {
53
- const result = pathname.match(`${exports.SITE_PREFIX}.*?(?:\\/|$)`);
54
- return result === null ? pathname : pathname.replace(result[0], '');
55
- }
@@ -1,36 +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.SitecoreServiceBase = void 0;
7
- const debug_1 = __importDefault(require("./debug"));
8
- /**
9
- * Base abstraction to implement custom layout service
10
- */
11
- class SitecoreServiceBase {
12
- /**
13
- * Fetch layout data using the Sitecore GraphQL endpoint.
14
- * @param {GraphQLServiceConfig} serviceConfig configuration
15
- */
16
- constructor(serviceConfig) {
17
- this.serviceConfig = serviceConfig;
18
- this.graphQLClient = this.getGraphQLClient();
19
- }
20
- /**
21
- * Gets a GraphQL client that can make requests to the API.
22
- * @returns {GraphQLClient} implementation
23
- */
24
- getGraphQLClient() {
25
- var _a, _b;
26
- if (!this.serviceConfig.clientFactory) {
27
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
28
- }
29
- return this.serviceConfig.clientFactory({
30
- debugger: this.serviceConfig.debugger || debug_1.default.http,
31
- retries: (_a = this.serviceConfig.retries) === null || _a === void 0 ? void 0 : _a.count,
32
- retryStrategy: (_b = this.serviceConfig.retries) === null || _b === void 0 ? void 0 : _b.retryStrategy,
33
- });
34
- }
35
- }
36
- exports.SitecoreServiceBase = SitecoreServiceBase;
@@ -1,52 +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.getComponentSpec = exports.getComponentSpecUrl = void 0;
7
- const constants_1 = require("../../constants");
8
- const debug_1 = __importDefault(require("./../../debug"));
9
- /**
10
- * Gets the component spec url.
11
- * @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
12
- * @returns {string} The component spec url.
13
- * @internal
14
- */
15
- const getComponentSpecUrl = ({ componentId, edgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
16
- let url = `${edgeUrl}/authoring/api/v1/components/generated/${componentId}?token=${token}`;
17
- if (targetPath) {
18
- url += `&targetPath=${encodeURIComponent(targetPath)}`;
19
- }
20
- return url;
21
- };
22
- exports.getComponentSpecUrl = getComponentSpecUrl;
23
- /**
24
- * Fetches the component spec.
25
- * @param {GetComponentSpecParams} params - The parameters for fetching the component spec.
26
- * @returns {Promise<ComponentSpec>} The component spec.
27
- * @internal
28
- */
29
- const getComponentSpec = async ({ componentId, edgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
30
- const url = (0, exports.getComponentSpecUrl)({ componentId, edgeUrl, targetPath, token });
31
- debug_1.default.common('Fetching component spec for %s: %s', componentId, url);
32
- try {
33
- const response = await fetch(url);
34
- if (response.status === 404) {
35
- throw new Error(`Component '${componentId}' was not found. Please verify the component ID is correct and exists.`);
36
- }
37
- if (response.status === 401) {
38
- throw new Error('The token is incorrect or expired or the component ID is incorrect.');
39
- }
40
- if (!response.ok) {
41
- throw new Error(`Failed to fetch component ${componentId}`);
42
- }
43
- const spec = await response.json();
44
- debug_1.default.common('Component spec fetched successfully for %s: %o', componentId, spec);
45
- return spec;
46
- }
47
- catch (error) {
48
- debug_1.default.common('Failed to fetch component spec: %s', String(error));
49
- throw error;
50
- }
51
- };
52
- exports.getComponentSpec = getComponentSpec;
@@ -1,105 +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.unitMocks = exports.extractFiles = void 0;
7
- /* eslint-disable jsdoc/require-jsdoc */
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const utils_1 = require("./utils");
10
- const tools_1 = require("../../tools");
11
- const debug_1 = __importDefault(require("./../../debug"));
12
- const path_1 = __importDefault(require("path"));
13
- const fs_1 = __importDefault(require("fs"));
14
- /**
15
- * Extracts components from the app folder and sends them to XMCloud.
16
- * @param {ExtractFilesConfig} args - Config for components extraction
17
- * @public
18
- */
19
- exports.extractFiles = _extractFiles;
20
- // mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
21
- // https://sinonjs.org/how-to/typescript-swc/
22
- // This, plus the `_` names make the exports writable for sinon
23
- exports.unitMocks = {
24
- set extractFiles(mockImplementation) {
25
- exports.extractFiles = mockImplementation;
26
- },
27
- get extractFiles() {
28
- return _extractFiles;
29
- },
30
- };
31
- function _extractFiles(args = {}) {
32
- const authParams = {
33
- clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
34
- clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
35
- authority: process.env.SITECORE_AUTH_AUTHORITY,
36
- audience: process.env.SITECORE_AUTH_AUDIENCE,
37
- };
38
- const renderingHost = process.env.SITECORE_RENDERINGHOST_NAME;
39
- return async ({ scConfig } = {}) => {
40
- var _a;
41
- const config = (_a = args.scConfig) !== null && _a !== void 0 ? _a : scConfig;
42
- if (!config) {
43
- throw new Error('Sitecore configuration is required to be provided');
44
- }
45
- if ((args.customValidateDeployContext && !args.customValidateDeployContext()) ||
46
- !(0, utils_1.validateDeployContext)()) {
47
- debug_1.default.common('Skipping code extraction, not in deploy context');
48
- return;
49
- }
50
- if (config.disableCodeGeneration) {
51
- debug_1.default.common('Skipping code extraction, code generation has been disabled');
52
- return;
53
- }
54
- console.log(chalk_1.default.green('Code extraction started'));
55
- const basePath = process.cwd();
56
- try {
57
- // Use Edge Platform mesh endpoint - staging is ready, prod QA in progress
58
- const targetUrl = config.api.edge.edgeUrl;
59
- const { accessToken } = await tools_1.auth.clientCredentialsFlow(authParams);
60
- if (!accessToken) {
61
- console.error(chalk_1.default.red('Failed to get access token, aborting code extraction'));
62
- return;
63
- }
64
- // Resolve files from component-map
65
- const resolvedImports = await (0, utils_1.resolveComponentImportFiles)(basePath, args.componentMapPath);
66
- const clientComponentMapPath = args.clientComponentMapPath || '.sitecore/component-map.client.ts';
67
- const absClientMapPath = path_1.default.isAbsolute(clientComponentMapPath)
68
- ? clientComponentMapPath
69
- : path_1.default.resolve(basePath, clientComponentMapPath);
70
- const exists = fs_1.default.existsSync(absClientMapPath);
71
- if (exists) {
72
- resolvedImports.push(...(await (0, utils_1.resolveComponentImportFiles)(basePath, absClientMapPath)));
73
- }
74
- const fileDispatches = [];
75
- for (const { componentKey, filePath, fileType } of resolvedImports) {
76
- let extraLabels;
77
- // return an array of export names (e.g., ['Default','Cooler'])
78
- const variantNames = (0, utils_1.readNamedExports)(filePath);
79
- extraLabels = Object.assign(Object.assign({}, (variantNames.length ? { variantNames } : {})), (renderingHost ? { renderingHost } : {}));
80
- fileDispatches.push((0, utils_1.sendCode)({
81
- file: {
82
- labels: extraLabels,
83
- name: componentKey,
84
- path: filePath,
85
- type: fileType,
86
- },
87
- targetUrl,
88
- token: accessToken,
89
- }));
90
- }
91
- fileDispatches.push((0, utils_1.sendCode)({
92
- file: Object.assign(Object.assign({}, (renderingHost ? { labels: { renderingHost } } : {})), { name: 'package.json', path: path_1.default.resolve(basePath, './package.json'), type: utils_1.ExtractedFileType.PackageJson }),
93
- targetUrl,
94
- token: accessToken,
95
- }));
96
- const files = await Promise.all(fileDispatches);
97
- console.log(chalk_1.default.green(`Code extraction completed successfully, files extracted:\r\n${files
98
- .filter((file) => file !== null)
99
- .join('\r\n')}`));
100
- }
101
- catch (error) {
102
- console.warn(chalk_1.default.yellow('Error during code extraction:', error, error.stack));
103
- }
104
- };
105
- }