@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,16 +1,28 @@
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
- exports.REDIRECT_TYPE_301 = 'REDIRECT_301';
11
- exports.REDIRECT_TYPE_302 = 'REDIRECT_302';
12
- exports.REDIRECT_TYPE_SERVER_TRANSFER = 'SERVER_TRANSFER';
13
- // The default query for request redirects of site
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
14
26
  const defaultQuery = /* GraphQL */ `
15
27
  query RedirectsQuery($siteName: String!) {
16
28
  site {
@@ -25,71 +37,72 @@ const defaultQuery = /* GraphQL */ `
25
37
  }
26
38
  }
27
39
  }
28
- `;
29
- /**
30
- * The RedirectsService class is used to query the Content SDK redirects using Graphql endpoint
31
- */
32
- class RedirectsService {
33
- /**
34
- * Creates an instance of graphQL redirects service with the provided options
35
- * @param {RedirectsServiceConfig} options instance
36
- */
37
- constructor(options) {
38
- this.options = options;
39
- this.graphQLClient = this.getGraphQLClient();
40
- this.cache = this.getCacheClient();
41
- }
42
- get query() {
43
- return defaultQuery;
44
- }
45
- /**
46
- * Fetch an array of redirects from API
47
- * @param {string} siteName site name
48
- * @returns Promise<RedirectInfo[]>
49
- * @param {FetchOptions} [fetchOptions] Options to override graphQL client details like retries and fetch implementation
50
- * @throws {Error} if the siteName is empty.
51
- */
52
- async fetchRedirects(siteName, fetchOptions) {
53
- var _a, _b;
54
- if (!siteName) {
55
- throw new Error(constants_1.siteNameError);
56
- }
57
- const cacheKey = `redirects-${siteName}`;
58
- let data = this.cache.getCacheValue(cacheKey);
59
- if (!data) {
60
- data = await this.graphQLClient.request(this.query, {
61
- siteName,
62
- }, fetchOptions);
63
- this.cache.setCacheValue(cacheKey, data);
64
- }
65
- 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) || [];
66
- }
67
- /**
68
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
69
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
70
- * want to use something else.
71
- * @returns {GraphQLClient} implementation
72
- */
73
- getGraphQLClient() {
74
- if (!this.options.clientFactory) {
75
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
76
- }
77
- return this.options.clientFactory({
78
- debugger: debug_1.default.redirects,
79
- fetch: this.options.fetch,
80
- });
81
- }
82
- /**
83
- * Gets cache client implementation
84
- * Override this method if custom cache needs to be used
85
- * @returns CacheClient instance
86
- */
87
- getCacheClient() {
88
- var _a, _b;
89
- return new cache_client_1.MemoryCacheClient({
90
- cacheEnabled: (_a = this.options.cacheEnabled) !== null && _a !== void 0 ? _a : true,
91
- cacheTimeout: (_b = this.options.cacheTimeout) !== null && _b !== void 0 ? _b : 10,
92
- });
93
- }
94
- }
95
- exports.RedirectsService = RedirectsService;
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,12 +1,12 @@
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
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
10
  const defaultQuery = /* GraphQL */ `
11
11
  query RobotsQuery($siteName: String!) {
12
12
  site {
@@ -15,59 +15,60 @@ const defaultQuery = /* GraphQL */ `
15
15
  }
16
16
  }
17
17
  }
18
- `;
19
- /**
20
- * Service that fetch the robots.txt data using Sitecore's GraphQL API.
21
- */
22
- class RobotsService {
23
- /**
24
- * Creates an instance of graphQL robots.txt service with the provided options
25
- * @param {RobotsServiceConfig} options instance
26
- */
27
- constructor(options) {
28
- this.options = options;
29
- this.graphQLClient = this.getGraphQLClient();
30
- }
31
- get query() {
32
- return defaultQuery;
33
- }
34
- /**
35
- * Fetch a data of robots.txt from API
36
- * @param {FetchOptions} fetchOptions - The fetch options to be used for the request.
37
- * @returns text of robots.txt
38
- * @throws {Error} if the siteName is empty.
39
- */
40
- async fetchRobots(fetchOptions) {
41
- const siteName = this.options.siteName;
42
- if (!siteName) {
43
- throw new Error(constants_1.siteNameError);
44
- }
45
- const robotsResult = this.graphQLClient.request(this.query, {
46
- siteName,
47
- }, fetchOptions);
48
- try {
49
- return robotsResult.then((result) => {
50
- var _a, _b;
51
- 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;
52
- });
53
- }
54
- catch (e) {
55
- return Promise.reject(e);
56
- }
57
- }
58
- /**
59
- * Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
60
- * library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
61
- * want to use something else.
62
- * @returns {GraphQLClient} implementation
63
- */
64
- getGraphQLClient() {
65
- if (!this.options.clientFactory) {
66
- throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
67
- }
68
- return this.options.clientFactory({
69
- debugger: debug_1.default.robots,
70
- });
71
- }
72
- }
73
- exports.RobotsService = RobotsService;
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,72 +1,73 @@
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
- */
9
- class SiteResolver {
10
- /**
11
- * @param {SiteInfo[]} sites Array of sites to be used in resolution
12
- */
13
- constructor(sites) {
14
- this.sites = sites;
15
- /**
16
- * Resolve site by host name
17
- * @param {string} hostName the host name
18
- * @returns {SiteInfo} the resolved site
19
- * @throws {Error} if a matching site is not found
20
- */
21
- this.getByHost = (hostName) => {
22
- for (const [hostname, site] of this.getHostMap()) {
23
- if (this.matchesPattern(hostName, hostname)) {
24
- return site;
25
- }
26
- }
27
- throw new Error(`Could not resolve site for host ${hostName}`);
28
- };
29
- /**
30
- * Resolve site by site name
31
- * @param {string} siteName the site name
32
- * @returns {SiteInfo} the resolved site or undefined if not found
33
- */
34
- this.getByName = (siteName) => {
35
- const siteInfo = this.sites.find((info) => info.name.toLocaleLowerCase() === siteName.toLocaleLowerCase());
36
- return siteInfo;
37
- };
38
- this.getHostMap = () => {
39
- const map = new Map();
40
- // First collect unique hostnames.
41
- // For sites with same hostname defined, priority is given to the first encountered.
42
- this.sites.forEach((site) => {
43
- const hostnames = site.hostName.replace(/\s/g, '').toLocaleLowerCase().split(DELIMITERS);
44
- hostnames.forEach((hostname) => {
45
- if (!map.has(hostname)) {
46
- map.set(hostname, site);
47
- }
48
- });
49
- });
50
- // Now order by specificity.
51
- // This equivalates to sorting from longest to shortest with the assumption
52
- // that your match is less specific as wildcards are introduced.
53
- // E.g. order.eu.site.com *.eu.site.com *.site.com *
54
- // In case of a tie (e.g. *.site.com vs i.site.com), prefer one with less wildcards.
55
- return new Map(Array.from(map).sort((a, b) => {
56
- if (a[0].length === b[0].length) {
57
- return (a[0].match(/\*/g) || []).length - (b[0].match(/\*/g) || []).length;
58
- }
59
- return b[0].length - a[0].length;
60
- }));
61
- };
62
- }
63
- // b[0].match(/\*/g) || []).length
64
- matchesPattern(hostname, pattern) {
65
- // dots should be treated as chars
66
- // stars should be treated as wildcards
67
- const regExpPattern = pattern.replace(/\./g, '\\.').replace(/\*/g, '.*');
68
- const regExp = new RegExp(`^${regExpPattern}$`, 'gi');
69
- return !!hostname.match(regExp);
70
- }
71
- }
72
- exports.SiteResolver = SiteResolver;
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;