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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/cache-client.js +55 -54
  3. package/dist/cjs/client/constants.js +7 -7
  4. package/dist/cjs/client/edge-proxy.js +24 -22
  5. package/dist/cjs/client/index.js +15 -15
  6. package/dist/cjs/client/models.js +2 -2
  7. package/dist/cjs/client/sitecore-client.js +421 -419
  8. package/dist/cjs/client/utils.js +47 -46
  9. package/dist/cjs/config/define-config.js +194 -193
  10. package/dist/cjs/config/index.js +7 -7
  11. package/dist/cjs/config/models.js +12 -11
  12. package/dist/cjs/config-cli/define-cli-config.js +23 -22
  13. package/dist/cjs/config-cli/index.js +7 -7
  14. package/dist/cjs/config-cli/models.js +8 -7
  15. package/dist/cjs/constants.js +49 -17
  16. package/dist/cjs/debug.js +48 -46
  17. package/dist/cjs/editing/codegen/index.js +14 -9
  18. package/dist/cjs/editing/codegen/preview.js +277 -193
  19. package/dist/cjs/editing/component-layout-service.js +62 -61
  20. package/dist/cjs/editing/design-library.js +183 -126
  21. package/dist/cjs/editing/editing-service.js +75 -74
  22. package/dist/cjs/editing/index.js +33 -27
  23. package/dist/cjs/editing/metadata.js +42 -42
  24. package/dist/cjs/editing/models.js +44 -38
  25. package/dist/cjs/editing/utils.js +108 -90
  26. package/dist/cjs/form/form.js +81 -78
  27. package/dist/cjs/form/index.js +7 -7
  28. package/dist/cjs/graphql-request-client.js +108 -107
  29. package/dist/cjs/i18n/dictionary-service.js +122 -121
  30. package/dist/cjs/i18n/index.js +7 -7
  31. package/dist/cjs/i18n/utils.js +16 -15
  32. package/dist/cjs/index.js +60 -60
  33. package/dist/cjs/layout/content-styles.js +72 -71
  34. package/dist/cjs/layout/index.js +24 -24
  35. package/dist/cjs/layout/layout-service.js +62 -57
  36. package/dist/cjs/layout/models.js +39 -34
  37. package/dist/cjs/layout/themes.js +76 -75
  38. package/dist/cjs/layout/utils.js +117 -110
  39. package/dist/cjs/media/index.js +38 -38
  40. package/dist/cjs/media/media-api.js +100 -96
  41. package/dist/cjs/models.js +2 -2
  42. package/dist/cjs/native-fetcher.js +194 -179
  43. package/dist/cjs/personalize/index.js +15 -15
  44. package/dist/cjs/personalize/layout-personalizer.js +98 -97
  45. package/dist/cjs/personalize/personalize-service.js +98 -94
  46. package/dist/cjs/personalize/utils.js +143 -136
  47. package/dist/cjs/retries.js +43 -42
  48. package/dist/cjs/site/error-pages-service.js +65 -64
  49. package/dist/cjs/site/index.js +26 -26
  50. package/dist/cjs/site/models.js +2 -2
  51. package/dist/cjs/site/redirects-service.js +94 -81
  52. package/dist/cjs/site/robots-service.js +66 -65
  53. package/dist/cjs/site/site-resolver.js +73 -72
  54. package/dist/cjs/site/siteinfo-service.js +84 -80
  55. package/dist/cjs/site/sitemap-xml-service.js +84 -83
  56. package/dist/cjs/site/sitepath-service.js +165 -164
  57. package/dist/cjs/site/utils.js +55 -47
  58. package/dist/cjs/sitecore-service-base.js +36 -36
  59. package/dist/cjs/tools/auth/flow.js +65 -64
  60. package/dist/cjs/tools/auth/index.js +5 -5
  61. package/dist/cjs/tools/auth/models.js +2 -2
  62. package/dist/cjs/tools/auth/tenant-store.js +38 -38
  63. package/dist/cjs/tools/codegen/component-generation.js +52 -50
  64. package/dist/cjs/tools/codegen/extract-files.js +105 -107
  65. package/dist/cjs/tools/codegen/import-map.js +401 -349
  66. package/dist/cjs/tools/codegen/utils.js +418 -418
  67. package/dist/cjs/tools/generate-map.js +2 -2
  68. package/dist/cjs/tools/generateMetadata.js +36 -35
  69. package/dist/cjs/tools/generateSites.js +59 -58
  70. package/dist/cjs/tools/index.js +75 -73
  71. package/dist/cjs/tools/scaffold.js +60 -59
  72. package/dist/cjs/tools/templating/components.js +96 -266
  73. package/dist/cjs/tools/templating/index.js +11 -14
  74. package/dist/cjs/tools/templating/plugins.js +80 -78
  75. package/dist/cjs/tools/templating/utils.js +67 -66
  76. package/dist/cjs/utils/ensurePath.js +20 -20
  77. package/dist/cjs/utils/env.js +28 -27
  78. package/dist/cjs/utils/globalCache.js +55 -0
  79. package/dist/cjs/utils/index.js +26 -21
  80. package/dist/cjs/utils/is-server.js +11 -10
  81. package/dist/cjs/utils/normalize-url.js +5 -5
  82. package/dist/cjs/utils/timeout-promise.js +31 -31
  83. package/dist/cjs/utils/utils.js +254 -229
  84. package/dist/esm/cache-client.js +51 -50
  85. package/dist/esm/client/constants.js +4 -4
  86. package/dist/esm/client/edge-proxy.js +19 -17
  87. package/dist/esm/client/index.js +5 -5
  88. package/dist/esm/client/models.js +1 -1
  89. package/dist/esm/client/sitecore-client.js +414 -412
  90. package/dist/esm/client/utils.js +43 -42
  91. package/dist/esm/config/define-config.js +188 -187
  92. package/dist/esm/config/index.js +2 -2
  93. package/dist/esm/config/models.js +9 -8
  94. package/dist/esm/config-cli/define-cli-config.js +19 -18
  95. package/dist/esm/config-cli/index.js +2 -2
  96. package/dist/esm/config-cli/models.js +5 -4
  97. package/dist/esm/constants.js +46 -14
  98. package/dist/esm/debug.js +41 -39
  99. package/dist/esm/editing/codegen/index.js +1 -1
  100. package/dist/esm/editing/codegen/preview.js +263 -185
  101. package/dist/esm/editing/component-layout-service.js +55 -54
  102. package/dist/esm/editing/design-library.js +171 -117
  103. package/dist/esm/editing/editing-service.js +68 -67
  104. package/dist/esm/editing/index.js +6 -5
  105. package/dist/esm/editing/metadata.js +39 -39
  106. package/dist/esm/editing/models.js +41 -35
  107. package/dist/esm/editing/utils.js +98 -80
  108. package/dist/esm/form/form.js +72 -69
  109. package/dist/esm/form/index.js +1 -1
  110. package/dist/esm/graphql-request-client.js +101 -100
  111. package/dist/esm/i18n/dictionary-service.js +115 -114
  112. package/dist/esm/i18n/index.js +2 -2
  113. package/dist/esm/i18n/utils.js +13 -12
  114. package/dist/esm/index.js +13 -13
  115. package/dist/esm/layout/content-styles.js +64 -63
  116. package/dist/esm/layout/index.js +6 -6
  117. package/dist/esm/layout/layout-service.js +55 -50
  118. package/dist/esm/layout/models.js +36 -31
  119. package/dist/esm/layout/themes.js +71 -70
  120. package/dist/esm/layout/utils.js +109 -102
  121. package/dist/esm/media/index.js +2 -2
  122. package/dist/esm/media/media-api.js +90 -86
  123. package/dist/esm/models.js +1 -1
  124. package/dist/esm/native-fetcher.js +187 -172
  125. package/dist/esm/personalize/index.js +3 -3
  126. package/dist/esm/personalize/layout-personalizer.js +93 -92
  127. package/dist/esm/personalize/personalize-service.js +91 -87
  128. package/dist/esm/personalize/utils.js +135 -128
  129. package/dist/esm/retries.js +39 -38
  130. package/dist/esm/site/error-pages-service.js +58 -57
  131. package/dist/esm/site/index.js +8 -8
  132. package/dist/esm/site/models.js +1 -1
  133. package/dist/esm/site/redirects-service.js +87 -74
  134. package/dist/esm/site/robots-service.js +59 -58
  135. package/dist/esm/site/site-resolver.js +69 -68
  136. package/dist/esm/site/siteinfo-service.js +77 -73
  137. package/dist/esm/site/sitemap-xml-service.js +77 -76
  138. package/dist/esm/site/sitepath-service.js +157 -156
  139. package/dist/esm/site/utils.js +49 -41
  140. package/dist/esm/sitecore-service-base.js +29 -29
  141. package/dist/esm/tools/auth/flow.js +62 -61
  142. package/dist/esm/tools/auth/index.js +1 -1
  143. package/dist/esm/tools/auth/models.js +1 -1
  144. package/dist/esm/tools/auth/tenant-store.js +35 -35
  145. package/dist/esm/tools/codegen/component-generation.js +44 -42
  146. package/dist/esm/tools/codegen/extract-files.js +99 -101
  147. package/dist/esm/tools/codegen/import-map.js +358 -306
  148. package/dist/esm/tools/codegen/utils.js +373 -373
  149. package/dist/esm/tools/generate-map.js +1 -1
  150. package/dist/esm/tools/generateMetadata.js +29 -28
  151. package/dist/esm/tools/generateSites.js +52 -51
  152. package/dist/esm/tools/index.js +28 -27
  153. package/dist/esm/tools/scaffold.js +52 -51
  154. package/dist/esm/tools/templating/components.js +59 -223
  155. package/dist/esm/tools/templating/index.js +3 -3
  156. package/dist/esm/tools/templating/plugins.js +72 -70
  157. package/dist/esm/tools/templating/utils.js +59 -58
  158. package/dist/esm/utils/ensurePath.js +13 -13
  159. package/dist/esm/utils/env.js +24 -23
  160. package/dist/esm/utils/globalCache.js +49 -0
  161. package/dist/esm/utils/index.js +4 -3
  162. package/dist/esm/utils/is-server.js +9 -8
  163. package/dist/esm/utils/normalize-url.js +1 -1
  164. package/dist/esm/utils/timeout-promise.js +28 -28
  165. package/dist/esm/utils/utils.js +238 -213
  166. package/package.json +73 -5
  167. package/types/cache-client.d.ts +68 -64
  168. package/types/cache-client.d.ts.map +1 -0
  169. package/types/client/constants.d.ts +5 -4
  170. package/types/client/constants.d.ts.map +1 -0
  171. package/types/client/edge-proxy.d.ts +18 -15
  172. package/types/client/edge-proxy.d.ts.map +1 -0
  173. package/types/client/index.d.ts +8 -7
  174. package/types/client/index.d.ts.map +1 -0
  175. package/types/client/models.d.ts +21 -19
  176. package/types/client/models.d.ts.map +1 -0
  177. package/types/client/sitecore-client.d.ts +338 -327
  178. package/types/client/sitecore-client.d.ts.map +1 -0
  179. package/types/client/utils.d.ts +15 -9
  180. package/types/client/utils.d.ts.map +1 -0
  181. package/types/config/define-config.d.ts +20 -18
  182. package/types/config/define-config.d.ts.map +1 -0
  183. package/types/config/index.d.ts +3 -2
  184. package/types/config/index.d.ts.map +1 -0
  185. package/types/config/models.d.ts +287 -268
  186. package/types/config/models.d.ts.map +1 -0
  187. package/types/config-cli/define-cli-config.d.ts +9 -7
  188. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  189. package/types/config-cli/index.d.ts +3 -2
  190. package/types/config-cli/index.d.ts.map +1 -0
  191. package/types/config-cli/models.d.ts +6 -4
  192. package/types/config-cli/models.d.ts.map +1 -0
  193. package/types/constants.d.ts +44 -11
  194. package/types/constants.d.ts.map +1 -0
  195. package/types/debug.d.ts +35 -28
  196. package/types/debug.d.ts.map +1 -0
  197. package/types/editing/codegen/index.d.ts +2 -1
  198. package/types/editing/codegen/index.d.ts.map +1 -0
  199. package/types/editing/codegen/preview.d.ts +256 -195
  200. package/types/editing/codegen/preview.d.ts.map +1 -0
  201. package/types/editing/component-layout-service.d.ts +84 -80
  202. package/types/editing/component-layout-service.d.ts.map +1 -0
  203. package/types/editing/design-library.d.ts +111 -63
  204. package/types/editing/design-library.d.ts.map +1 -0
  205. package/types/editing/editing-service.d.ts +72 -62
  206. package/types/editing/editing-service.d.ts.map +1 -0
  207. package/types/editing/index.d.ts +7 -6
  208. package/types/editing/index.d.ts.map +1 -0
  209. package/types/editing/metadata.d.ts +8 -7
  210. package/types/editing/metadata.d.ts.map +1 -0
  211. package/types/editing/models.d.ts +103 -92
  212. package/types/editing/models.d.ts.map +1 -0
  213. package/types/editing/utils.d.ts +91 -74
  214. package/types/editing/utils.d.ts.map +1 -0
  215. package/types/form/form.d.ts +25 -21
  216. package/types/form/form.d.ts.map +1 -0
  217. package/types/form/index.d.ts +2 -1
  218. package/types/form/index.d.ts.map +1 -0
  219. package/types/graphql-request-client.d.ts +112 -105
  220. package/types/graphql-request-client.d.ts.map +1 -0
  221. package/types/i18n/dictionary-service.d.ts +135 -131
  222. package/types/i18n/dictionary-service.d.ts.map +1 -0
  223. package/types/i18n/index.d.ts +3 -2
  224. package/types/i18n/index.d.ts.map +1 -0
  225. package/types/i18n/utils.d.ts +9 -7
  226. package/types/i18n/utils.d.ts.map +1 -0
  227. package/types/index.d.ts +13 -12
  228. package/types/index.d.ts.map +1 -0
  229. package/types/layout/content-styles.d.ts +20 -18
  230. package/types/layout/content-styles.d.ts.map +1 -0
  231. package/types/layout/index.d.ts +6 -5
  232. package/types/layout/index.d.ts.map +1 -0
  233. package/types/layout/layout-service.d.ts +45 -35
  234. package/types/layout/layout-service.d.ts.map +1 -0
  235. package/types/layout/models.d.ts +174 -151
  236. package/types/layout/models.d.ts.map +1 -0
  237. package/types/layout/themes.d.ts +13 -11
  238. package/types/layout/themes.d.ts.map +1 -0
  239. package/types/layout/utils.d.ts +56 -41
  240. package/types/layout/utils.d.ts.map +1 -0
  241. package/types/media/index.d.ts +3 -2
  242. package/types/media/index.d.ts.map +1 -0
  243. package/types/media/media-api.d.ts +60 -55
  244. package/types/media/media-api.d.ts.map +1 -0
  245. package/types/models.d.ts +94 -84
  246. package/types/models.d.ts.map +1 -0
  247. package/types/native-fetcher.d.ts +124 -114
  248. package/types/native-fetcher.d.ts.map +1 -0
  249. package/types/personalize/index.d.ts +4 -3
  250. package/types/personalize/index.d.ts.map +1 -0
  251. package/types/personalize/layout-personalizer.d.ts +29 -27
  252. package/types/personalize/layout-personalizer.d.ts.map +1 -0
  253. package/types/personalize/personalize-service.d.ts +90 -80
  254. package/types/personalize/personalize-service.d.ts.map +1 -0
  255. package/types/personalize/utils.d.ts +78 -69
  256. package/types/personalize/utils.d.ts.map +1 -0
  257. package/types/retries.d.ts +26 -24
  258. package/types/retries.d.ts.map +1 -0
  259. package/types/site/error-pages-service.d.ts +64 -57
  260. package/types/site/error-pages-service.d.ts.map +1 -0
  261. package/types/site/index.d.ts +10 -9
  262. package/types/site/index.d.ts.map +1 -0
  263. package/types/site/models.d.ts +23 -18
  264. package/types/site/models.d.ts.map +1 -0
  265. package/types/site/redirects-service.d.ts +92 -69
  266. package/types/site/redirects-service.d.ts.map +1 -0
  267. package/types/site/robots-service.d.ts +57 -50
  268. package/types/site/robots-service.d.ts.map +1 -0
  269. package/types/site/site-resolver.d.ts +28 -26
  270. package/types/site/site-resolver.d.ts.map +1 -0
  271. package/types/site/siteinfo-service.d.ts +65 -52
  272. package/types/site/siteinfo-service.d.ts.map +1 -0
  273. package/types/site/sitemap-xml-service.d.ts +63 -56
  274. package/types/site/sitemap-xml-service.d.ts.map +1 -0
  275. package/types/site/sitepath-service.d.ts +137 -134
  276. package/types/site/sitepath-service.d.ts.map +1 -0
  277. package/types/site/utils.d.ts +41 -28
  278. package/types/site/utils.d.ts.map +1 -0
  279. package/types/sitecore-service-base.d.ts +31 -30
  280. package/types/sitecore-service-base.d.ts.map +1 -0
  281. package/types/tools/auth/flow.d.ts +29 -27
  282. package/types/tools/auth/flow.d.ts.map +1 -0
  283. package/types/tools/auth/index.d.ts +2 -1
  284. package/types/tools/auth/index.d.ts.map +1 -0
  285. package/types/tools/auth/models.d.ts +35 -33
  286. package/types/tools/auth/models.d.ts.map +1 -0
  287. package/types/tools/auth/tenant-store.d.ts +12 -11
  288. package/types/tools/auth/tenant-store.d.ts.map +1 -0
  289. package/types/tools/codegen/component-generation.d.ts +50 -47
  290. package/types/tools/codegen/component-generation.d.ts.map +1 -0
  291. package/types/tools/codegen/extract-files.d.ts +24 -22
  292. package/types/tools/codegen/extract-files.d.ts.map +1 -0
  293. package/types/tools/codegen/import-map.d.ts +103 -70
  294. package/types/tools/codegen/import-map.d.ts.map +1 -0
  295. package/types/tools/codegen/utils.d.ts +76 -75
  296. package/types/tools/codegen/utils.d.ts.map +1 -0
  297. package/types/tools/generate-map.d.ts +36 -26
  298. package/types/tools/generate-map.d.ts.map +1 -0
  299. package/types/tools/generateMetadata.d.ts +24 -22
  300. package/types/tools/generateMetadata.d.ts.map +1 -0
  301. package/types/tools/generateSites.d.ts +25 -22
  302. package/types/tools/generateSites.d.ts.map +1 -0
  303. package/types/tools/index.d.ts +22 -20
  304. package/types/tools/index.d.ts.map +1 -0
  305. package/types/tools/scaffold.d.ts +27 -25
  306. package/types/tools/scaffold.d.ts.map +1 -0
  307. package/types/tools/templating/components.d.ts +104 -103
  308. package/types/tools/templating/components.d.ts.map +1 -0
  309. package/types/tools/templating/index.d.ts +4 -3
  310. package/types/tools/templating/index.d.ts.map +1 -0
  311. package/types/tools/templating/plugins.d.ts +71 -67
  312. package/types/tools/templating/plugins.d.ts.map +1 -0
  313. package/types/tools/templating/utils.d.ts +42 -40
  314. package/types/tools/templating/utils.d.ts.map +1 -0
  315. package/types/utils/ensurePath.d.ts +7 -6
  316. package/types/utils/ensurePath.d.ts.map +1 -0
  317. package/types/utils/env.d.ts +9 -7
  318. package/types/utils/env.d.ts.map +1 -0
  319. package/types/utils/globalCache.d.ts +37 -0
  320. package/types/utils/globalCache.d.ts.map +1 -0
  321. package/types/utils/index.d.ts +5 -3
  322. package/types/utils/index.d.ts.map +1 -0
  323. package/types/utils/is-server.d.ts +8 -6
  324. package/types/utils/is-server.d.ts.map +1 -0
  325. package/types/utils/normalize-url.d.ts +2 -1
  326. package/types/utils/normalize-url.d.ts.map +1 -0
  327. package/types/utils/timeout-promise.d.ts +18 -17
  328. package/types/utils/timeout-promise.d.ts.map +1 -0
  329. package/types/utils/utils.d.ts +104 -79
  330. package/types/utils/utils.d.ts.map +1 -0
  331. package/client.js +0 -1
  332. package/codegen.js +0 -1
  333. package/config-cli.js +0 -1
  334. package/config.js +0 -1
  335. package/editing.js +0 -1
  336. package/i18n.js +0 -1
  337. package/layout.js +0 -1
  338. package/media.js +0 -1
  339. package/personalize.js +0 -1
  340. package/site.js +0 -1
  341. package/tools.js +0 -1
  342. package/utils.js +0 -1
@@ -1,35 +1,35 @@
1
- /* eslint-disable jsdoc/require-jsdoc */
2
- import { CLAIMS } from './../../constants';
3
- /**
4
- * Decodes a JWT without verifying its signature.
5
- * @param {string} token - The access token string.
6
- * @returns Decoded payload object or null if invalid.
7
- */
8
- export let decodeJwtPayload = _decodeJwtPayload;
9
- // mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
10
- // https://sinonjs.org/how-to/typescript-swc/
11
- // This, plus the `_` names make the exports writable for sinon
12
- export const unitMocks = {
13
- set decodeJwtPayload(mockImplementation) {
14
- decodeJwtPayload = mockImplementation;
15
- },
16
- get decodeJwtPayload() {
17
- return _decodeJwtPayload;
18
- },
19
- };
20
- function _decodeJwtPayload(token) {
21
- try {
22
- const base64Payload = token.split('.')[1];
23
- const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
24
- const decoded = JSON.parse(payload);
25
- return {
26
- tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_id`],
27
- tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/org_id`],
28
- tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_name`],
29
- };
30
- }
31
- catch (error) {
32
- console.error('\n Failed to decode access token:', error.message);
33
- return null;
34
- }
35
- }
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+ import { CLAIMS } from './../../constants';
3
+ /**
4
+ * Decodes a JWT without verifying its signature.
5
+ * @param {string} token - The access token string.
6
+ * @returns Decoded payload object or null if invalid.
7
+ */
8
+ export let decodeJwtPayload = _decodeJwtPayload;
9
+ // mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
10
+ // https://sinonjs.org/how-to/typescript-swc/
11
+ // This, plus the `_` names make the exports writable for sinon
12
+ export const unitMocks = {
13
+ set decodeJwtPayload(mockImplementation) {
14
+ decodeJwtPayload = mockImplementation;
15
+ },
16
+ get decodeJwtPayload() {
17
+ return _decodeJwtPayload;
18
+ },
19
+ };
20
+ function _decodeJwtPayload(token) {
21
+ try {
22
+ const base64Payload = token.split('.')[1];
23
+ const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
24
+ const decoded = JSON.parse(payload);
25
+ return {
26
+ tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_id`],
27
+ tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/org_id`],
28
+ tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_name`],
29
+ };
30
+ }
31
+ catch (error) {
32
+ console.error('\n Failed to decode access token:', error.message);
33
+ return null;
34
+ }
35
+ }
@@ -1,42 +1,44 @@
1
- import { SITECORE_EDGE_URL_DEFAULT } from '../../constants';
2
- import debug from './../../debug';
3
- /**
4
- * Gets the component spec url.
5
- * @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
6
- * @returns {string} The component spec url.
7
- */
8
- export const getComponentSpecUrl = ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
9
- let url = `${edgeUrl}/authoring/api/v1/components/generated/${componentId}?token=${token}`;
10
- if (targetPath) {
11
- url += `&targetPath=${encodeURIComponent(targetPath)}`;
12
- }
13
- return url;
14
- };
15
- /**
16
- * Fetches the component spec.
17
- * @param {GetComponentSpecParams} params - The parameters for fetching the component spec.
18
- * @returns {Promise<ComponentSpec>} The component spec.
19
- */
20
- export const getComponentSpec = async ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
21
- const url = getComponentSpecUrl({ componentId, edgeUrl, targetPath, token });
22
- debug.common('Fetching component spec for %s: %s', componentId, url);
23
- try {
24
- const response = await fetch(url);
25
- if (response.status === 404) {
26
- throw new Error(`Component '${componentId}' was not found. Please verify the component ID is correct and exists.`);
27
- }
28
- if (response.status === 401) {
29
- throw new Error('The token is incorrect or expired or the component ID is incorrect.');
30
- }
31
- if (!response.ok) {
32
- throw new Error(`Failed to fetch component ${componentId}`);
33
- }
34
- const spec = await response.json();
35
- debug.common('Component spec fetched successfully for %s: %o', componentId, spec);
36
- return spec;
37
- }
38
- catch (error) {
39
- debug.common('Failed to fetch component spec: %s', String(error));
40
- throw error;
41
- }
42
- };
1
+ import { SITECORE_EDGE_URL_DEFAULT } from '../../constants';
2
+ import debug from './../../debug';
3
+ /**
4
+ * Gets the component spec url.
5
+ * @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
6
+ * @returns {string} The component spec url.
7
+ * @internal
8
+ */
9
+ export const getComponentSpecUrl = ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
10
+ let url = `${edgeUrl}/authoring/api/v1/components/generated/${componentId}?token=${token}`;
11
+ if (targetPath) {
12
+ url += `&targetPath=${encodeURIComponent(targetPath)}`;
13
+ }
14
+ return url;
15
+ };
16
+ /**
17
+ * Fetches the component spec.
18
+ * @param {GetComponentSpecParams} params - The parameters for fetching the component spec.
19
+ * @returns {Promise<ComponentSpec>} The component spec.
20
+ * @internal
21
+ */
22
+ export const getComponentSpec = async ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
23
+ const url = getComponentSpecUrl({ componentId, edgeUrl, targetPath, token });
24
+ debug.common('Fetching component spec for %s: %s', componentId, url);
25
+ try {
26
+ const response = await fetch(url);
27
+ if (response.status === 404) {
28
+ throw new Error(`Component '${componentId}' was not found. Please verify the component ID is correct and exists.`);
29
+ }
30
+ if (response.status === 401) {
31
+ throw new Error('The token is incorrect or expired or the component ID is incorrect.');
32
+ }
33
+ if (!response.ok) {
34
+ throw new Error(`Failed to fetch component ${componentId}`);
35
+ }
36
+ const spec = await response.json();
37
+ debug.common('Component spec fetched successfully for %s: %o', componentId, spec);
38
+ return spec;
39
+ }
40
+ catch (error) {
41
+ debug.common('Failed to fetch component spec: %s', String(error));
42
+ throw error;
43
+ }
44
+ };
@@ -1,101 +1,99 @@
1
- /* eslint-disable jsdoc/require-jsdoc */
2
- import chalk from 'chalk';
3
- import { ExtractedFileType, resolveComponentImportFiles, sendCode, validateDeployContext, readNamedExports, } from './utils';
4
- import { auth } from '../../tools';
5
- import debug from './../../debug';
6
- import path from 'path';
7
- import fs from 'fs';
8
- /**
9
- * Extracts components from the app folder and sends them to XMCloud.
10
- * @param {ExtractFilesConfig} args - Config for components extraction
11
- */
12
- export let extractFiles = _extractFiles;
13
- // mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
14
- // https://sinonjs.org/how-to/typescript-swc/
15
- // This, plus the `_` names make the exports writable for sinon
16
- export const unitMocks = {
17
- set extractFiles(mockImplementation) {
18
- extractFiles = mockImplementation;
19
- },
20
- get extractFiles() {
21
- return _extractFiles;
22
- },
23
- };
24
- function _extractFiles(args = {}) {
25
- const authParams = {
26
- clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
27
- clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
28
- authority: process.env.SITECORE_AUTH_AUTHORITY,
29
- audience: process.env.SITECORE_AUTH_AUDIENCE,
30
- };
31
- return async ({ scConfig } = {}) => {
32
- var _a;
33
- const config = (_a = args.scConfig) !== null && _a !== void 0 ? _a : scConfig;
34
- if (!config) {
35
- throw new Error('Sitecore configuration is required to be provided');
36
- }
37
- if ((args.customValidateDeployContext && !args.customValidateDeployContext()) ||
38
- !validateDeployContext()) {
39
- debug.common('Skipping code extraction, not in deploy context');
40
- return;
41
- }
42
- if (config.disableCodeGeneration) {
43
- debug.common('Skipping code extraction, code generation has been disabled');
44
- return;
45
- }
46
- console.log(chalk.green('Code extraction started'));
47
- const basePath = process.cwd();
48
- try {
49
- // Use Edge Platform mesh endpoint - staging is ready, prod QA in progress
50
- const targetUrl = config.api.edge.edgeUrl;
51
- const { accessToken } = await auth.clientCredentialsFlow(authParams);
52
- if (!accessToken) {
53
- console.error(chalk.red('Failed to get access token, aborting code extraction'));
54
- return;
55
- }
56
- // Resolve files from component-map
57
- const resolvedImports = await resolveComponentImportFiles(basePath, args.componentMapPath);
58
- const clientComponentMapPath = args.clientComponentMapPath || '.sitecore/component-map.client.ts';
59
- const absClientMapPath = path.isAbsolute(clientComponentMapPath)
60
- ? clientComponentMapPath
61
- : path.resolve(basePath, clientComponentMapPath);
62
- const exists = fs.existsSync(absClientMapPath);
63
- if (exists) {
64
- resolvedImports.push(...(await resolveComponentImportFiles(basePath, absClientMapPath)));
65
- }
66
- const fileDispatches = [];
67
- for (const { componentKey, filePath, fileType } of resolvedImports) {
68
- let extraLabels;
69
- // return an array of export names (e.g., ['Default','Cooler'])
70
- const variantNames = readNamedExports(filePath);
71
- extraLabels = Object.assign({}, (variantNames.length ? { variantNames } : {}));
72
- fileDispatches.push(sendCode({
73
- file: {
74
- name: componentKey,
75
- path: filePath,
76
- type: fileType,
77
- labels: extraLabels,
78
- },
79
- token: accessToken,
80
- targetUrl,
81
- }));
82
- }
83
- fileDispatches.push(sendCode({
84
- file: {
85
- name: 'package.json',
86
- path: path.resolve(basePath, './package.json'),
87
- type: ExtractedFileType.PackageJson,
88
- },
89
- token: accessToken,
90
- targetUrl,
91
- }));
92
- const files = await Promise.all(fileDispatches);
93
- console.log(chalk.green(`Code extraction completed successfully, files extracted:\r\n${files
94
- .filter((file) => file !== null)
95
- .join('\r\n')}`));
96
- }
97
- catch (error) {
98
- console.warn(chalk.yellow('Error during code extraction:', error, error.stack));
99
- }
100
- };
101
- }
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+ import chalk from 'chalk';
3
+ import { ExtractedFileType, resolveComponentImportFiles, sendCode, validateDeployContext, readNamedExports, } from './utils';
4
+ import { auth } from '../../tools';
5
+ import debug from './../../debug';
6
+ import path from 'path';
7
+ import fs from 'fs';
8
+ /**
9
+ * Extracts components from the app folder and sends them to XMCloud.
10
+ * @param {ExtractFilesConfig} args - Config for components extraction
11
+ * @public
12
+ */
13
+ export let extractFiles = _extractFiles;
14
+ // mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
15
+ // https://sinonjs.org/how-to/typescript-swc/
16
+ // This, plus the `_` names make the exports writable for sinon
17
+ export const unitMocks = {
18
+ set extractFiles(mockImplementation) {
19
+ extractFiles = mockImplementation;
20
+ },
21
+ get extractFiles() {
22
+ return _extractFiles;
23
+ },
24
+ };
25
+ function _extractFiles(args = {}) {
26
+ const authParams = {
27
+ clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
28
+ clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
29
+ authority: process.env.SITECORE_AUTH_AUTHORITY,
30
+ audience: process.env.SITECORE_AUTH_AUDIENCE,
31
+ };
32
+ const renderingHost = process.env.SITECORE_RENDERINGHOST_NAME;
33
+ return async ({ scConfig } = {}) => {
34
+ var _a;
35
+ const config = (_a = args.scConfig) !== null && _a !== void 0 ? _a : scConfig;
36
+ if (!config) {
37
+ throw new Error('Sitecore configuration is required to be provided');
38
+ }
39
+ if ((args.customValidateDeployContext && !args.customValidateDeployContext()) ||
40
+ !validateDeployContext()) {
41
+ debug.common('Skipping code extraction, not in deploy context');
42
+ return;
43
+ }
44
+ if (config.disableCodeGeneration) {
45
+ debug.common('Skipping code extraction, code generation has been disabled');
46
+ return;
47
+ }
48
+ console.log(chalk.green('Code extraction started'));
49
+ const basePath = process.cwd();
50
+ try {
51
+ // Use Edge Platform mesh endpoint - staging is ready, prod QA in progress
52
+ const targetUrl = config.api.edge.edgeUrl;
53
+ const { accessToken } = await auth.clientCredentialsFlow(authParams);
54
+ if (!accessToken) {
55
+ console.error(chalk.red('Failed to get access token, aborting code extraction'));
56
+ return;
57
+ }
58
+ // Resolve files from component-map
59
+ const resolvedImports = await resolveComponentImportFiles(basePath, args.componentMapPath);
60
+ const clientComponentMapPath = args.clientComponentMapPath || '.sitecore/component-map.client.ts';
61
+ const absClientMapPath = path.isAbsolute(clientComponentMapPath)
62
+ ? clientComponentMapPath
63
+ : path.resolve(basePath, clientComponentMapPath);
64
+ const exists = fs.existsSync(absClientMapPath);
65
+ if (exists) {
66
+ resolvedImports.push(...(await resolveComponentImportFiles(basePath, absClientMapPath)));
67
+ }
68
+ const fileDispatches = [];
69
+ for (const { componentKey, filePath, fileType } of resolvedImports) {
70
+ let extraLabels;
71
+ // return an array of export names (e.g., ['Default','Cooler'])
72
+ const variantNames = readNamedExports(filePath);
73
+ extraLabels = Object.assign(Object.assign({}, (variantNames.length ? { variantNames } : {})), (renderingHost ? { renderingHost } : {}));
74
+ fileDispatches.push(sendCode({
75
+ file: {
76
+ labels: extraLabels,
77
+ name: componentKey,
78
+ path: filePath,
79
+ type: fileType,
80
+ },
81
+ targetUrl,
82
+ token: accessToken,
83
+ }));
84
+ }
85
+ fileDispatches.push(sendCode({
86
+ file: Object.assign(Object.assign({}, (renderingHost ? { labels: { renderingHost } } : {})), { name: 'package.json', path: path.resolve(basePath, './package.json'), type: ExtractedFileType.PackageJson }),
87
+ targetUrl,
88
+ token: accessToken,
89
+ }));
90
+ const files = await Promise.all(fileDispatches);
91
+ console.log(chalk.green(`Code extraction completed successfully, files extracted:\r\n${files
92
+ .filter((file) => file !== null)
93
+ .join('\r\n')}`));
94
+ }
95
+ catch (error) {
96
+ console.warn(chalk.yellow('Error during code extraction:', error, error.stack));
97
+ }
98
+ };
99
+ }