@se-studio/contentful-rest-api 0.0.0-next16-20260822103555

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 (472) hide show
  1. package/CHANGELOG.md +2036 -0
  2. package/README.md +764 -0
  3. package/dist/api/article-type.d.ts +37 -0
  4. package/dist/api/article-type.d.ts.map +1 -0
  5. package/dist/api/article-type.js +140 -0
  6. package/dist/api/article-type.js.map +1 -0
  7. package/dist/api/article.d.ts +32 -0
  8. package/dist/api/article.d.ts.map +1 -0
  9. package/dist/api/article.js +43 -0
  10. package/dist/api/article.js.map +1 -0
  11. package/dist/api/asset.d.ts +28 -0
  12. package/dist/api/asset.d.ts.map +1 -0
  13. package/dist/api/asset.js +56 -0
  14. package/dist/api/asset.js.map +1 -0
  15. package/dist/api/banner.d.ts +8 -0
  16. package/dist/api/banner.d.ts.map +1 -0
  17. package/dist/api/banner.js +96 -0
  18. package/dist/api/banner.js.map +1 -0
  19. package/dist/api/breadcrumb.d.ts +40 -0
  20. package/dist/api/breadcrumb.d.ts.map +1 -0
  21. package/dist/api/breadcrumb.js +60 -0
  22. package/dist/api/breadcrumb.js.map +1 -0
  23. package/dist/api/componentPreview.d.ts +59 -0
  24. package/dist/api/componentPreview.d.ts.map +1 -0
  25. package/dist/api/componentPreview.js +88 -0
  26. package/dist/api/componentPreview.js.map +1 -0
  27. package/dist/api/context.d.ts +24 -0
  28. package/dist/api/context.d.ts.map +1 -0
  29. package/dist/api/context.js +73 -0
  30. package/dist/api/context.js.map +1 -0
  31. package/dist/api/custom-type.d.ts +37 -0
  32. package/dist/api/custom-type.d.ts.map +1 -0
  33. package/dist/api/custom-type.js +44 -0
  34. package/dist/api/custom-type.js.map +1 -0
  35. package/dist/api/document.d.ts +8 -0
  36. package/dist/api/document.d.ts.map +1 -0
  37. package/dist/api/document.js +84 -0
  38. package/dist/api/document.js.map +1 -0
  39. package/dist/api/helpers.d.ts +59 -0
  40. package/dist/api/helpers.d.ts.map +1 -0
  41. package/dist/api/helpers.js +313 -0
  42. package/dist/api/helpers.js.map +1 -0
  43. package/dist/api/index.d.ts +33 -0
  44. package/dist/api/index.d.ts.map +1 -0
  45. package/dist/api/index.js +37 -0
  46. package/dist/api/index.js.map +1 -0
  47. package/dist/api/links.d.ts +124 -0
  48. package/dist/api/links.d.ts.map +1 -0
  49. package/dist/api/links.js +307 -0
  50. package/dist/api/links.js.map +1 -0
  51. package/dist/api/listing-fetch-params.d.ts +70 -0
  52. package/dist/api/listing-fetch-params.d.ts.map +1 -0
  53. package/dist/api/listing-fetch-params.js +124 -0
  54. package/dist/api/listing-fetch-params.js.map +1 -0
  55. package/dist/api/media-library.d.ts +59 -0
  56. package/dist/api/media-library.d.ts.map +1 -0
  57. package/dist/api/media-library.js +315 -0
  58. package/dist/api/media-library.js.map +1 -0
  59. package/dist/api/navigation.d.ts +10 -0
  60. package/dist/api/navigation.d.ts.map +1 -0
  61. package/dist/api/navigation.js +18 -0
  62. package/dist/api/navigation.js.map +1 -0
  63. package/dist/api/page.d.ts +15 -0
  64. package/dist/api/page.d.ts.map +1 -0
  65. package/dist/api/page.js +39 -0
  66. package/dist/api/page.js.map +1 -0
  67. package/dist/api/person.d.ts +37 -0
  68. package/dist/api/person.d.ts.map +1 -0
  69. package/dist/api/person.js +135 -0
  70. package/dist/api/person.js.map +1 -0
  71. package/dist/api/preview-types.d.ts +65 -0
  72. package/dist/api/preview-types.d.ts.map +1 -0
  73. package/dist/api/preview-types.js +7 -0
  74. package/dist/api/preview-types.js.map +1 -0
  75. package/dist/api/preview.d.ts +49 -0
  76. package/dist/api/preview.d.ts.map +1 -0
  77. package/dist/api/preview.js +261 -0
  78. package/dist/api/preview.js.map +1 -0
  79. package/dist/api/redirects.d.ts +16 -0
  80. package/dist/api/redirects.d.ts.map +1 -0
  81. package/dist/api/redirects.js +110 -0
  82. package/dist/api/redirects.js.map +1 -0
  83. package/dist/api/related-articles.d.ts +28 -0
  84. package/dist/api/related-articles.d.ts.map +1 -0
  85. package/dist/api/related-articles.js +147 -0
  86. package/dist/api/related-articles.js.map +1 -0
  87. package/dist/api/server-asset.d.ts +67 -0
  88. package/dist/api/server-asset.d.ts.map +1 -0
  89. package/dist/api/server-asset.js +106 -0
  90. package/dist/api/server-asset.js.map +1 -0
  91. package/dist/api/sitemap.d.ts +131 -0
  92. package/dist/api/sitemap.d.ts.map +1 -0
  93. package/dist/api/sitemap.js +201 -0
  94. package/dist/api/sitemap.js.map +1 -0
  95. package/dist/api/tag-type.d.ts +32 -0
  96. package/dist/api/tag-type.d.ts.map +1 -0
  97. package/dist/api/tag-type.js +123 -0
  98. package/dist/api/tag-type.js.map +1 -0
  99. package/dist/api/tag.d.ts +37 -0
  100. package/dist/api/tag.d.ts.map +1 -0
  101. package/dist/api/tag.js +132 -0
  102. package/dist/api/tag.js.map +1 -0
  103. package/dist/api/template.d.ts +61 -0
  104. package/dist/api/template.d.ts.map +1 -0
  105. package/dist/api/template.js +94 -0
  106. package/dist/api/template.js.map +1 -0
  107. package/dist/api/types.d.ts +113 -0
  108. package/dist/api/types.d.ts.map +1 -0
  109. package/dist/api/types.js +2 -0
  110. package/dist/api/types.js.map +1 -0
  111. package/dist/baseTypes/baseAlternatePageContent.d.ts +32 -0
  112. package/dist/baseTypes/baseAlternatePageContent.d.ts.map +1 -0
  113. package/dist/baseTypes/baseAlternatePageContent.js +2 -0
  114. package/dist/baseTypes/baseAlternatePageContent.js.map +1 -0
  115. package/dist/baseTypes/baseArticle.d.ts +206 -0
  116. package/dist/baseTypes/baseArticle.d.ts.map +1 -0
  117. package/dist/baseTypes/baseArticle.js +2 -0
  118. package/dist/baseTypes/baseArticle.js.map +1 -0
  119. package/dist/baseTypes/baseArticleType.d.ts +177 -0
  120. package/dist/baseTypes/baseArticleType.d.ts.map +1 -0
  121. package/dist/baseTypes/baseArticleType.js +2 -0
  122. package/dist/baseTypes/baseArticleType.js.map +1 -0
  123. package/dist/baseTypes/baseBanner.d.ts +113 -0
  124. package/dist/baseTypes/baseBanner.d.ts.map +1 -0
  125. package/dist/baseTypes/baseBanner.js +2 -0
  126. package/dist/baseTypes/baseBanner.js.map +1 -0
  127. package/dist/baseTypes/baseCollection.d.ts +132 -0
  128. package/dist/baseTypes/baseCollection.d.ts.map +1 -0
  129. package/dist/baseTypes/baseCollection.js +2 -0
  130. package/dist/baseTypes/baseCollection.js.map +1 -0
  131. package/dist/baseTypes/baseComponent.d.ts +130 -0
  132. package/dist/baseTypes/baseComponent.d.ts.map +1 -0
  133. package/dist/baseTypes/baseComponent.js +2 -0
  134. package/dist/baseTypes/baseComponent.js.map +1 -0
  135. package/dist/baseTypes/baseCustomType.d.ts +147 -0
  136. package/dist/baseTypes/baseCustomType.d.ts.map +1 -0
  137. package/dist/baseTypes/baseCustomType.js +2 -0
  138. package/dist/baseTypes/baseCustomType.js.map +1 -0
  139. package/dist/baseTypes/baseDocument.d.ts +70 -0
  140. package/dist/baseTypes/baseDocument.d.ts.map +1 -0
  141. package/dist/baseTypes/baseDocument.js +2 -0
  142. package/dist/baseTypes/baseDocument.js.map +1 -0
  143. package/dist/baseTypes/baseExternalComponent.d.ts +138 -0
  144. package/dist/baseTypes/baseExternalComponent.d.ts.map +1 -0
  145. package/dist/baseTypes/baseExternalComponent.js +2 -0
  146. package/dist/baseTypes/baseExternalComponent.js.map +1 -0
  147. package/dist/baseTypes/baseExternalVideo.d.ts +86 -0
  148. package/dist/baseTypes/baseExternalVideo.d.ts.map +1 -0
  149. package/dist/baseTypes/baseExternalVideo.js +2 -0
  150. package/dist/baseTypes/baseExternalVideo.js.map +1 -0
  151. package/dist/baseTypes/baseHtmlComponent.d.ts +72 -0
  152. package/dist/baseTypes/baseHtmlComponent.d.ts.map +1 -0
  153. package/dist/baseTypes/baseHtmlComponent.js +2 -0
  154. package/dist/baseTypes/baseHtmlComponent.js.map +1 -0
  155. package/dist/baseTypes/baseLink.d.ts +115 -0
  156. package/dist/baseTypes/baseLink.d.ts.map +1 -0
  157. package/dist/baseTypes/baseLink.js +2 -0
  158. package/dist/baseTypes/baseLink.js.map +1 -0
  159. package/dist/baseTypes/baseMedia.d.ts +100 -0
  160. package/dist/baseTypes/baseMedia.d.ts.map +1 -0
  161. package/dist/baseTypes/baseMedia.js +2 -0
  162. package/dist/baseTypes/baseMedia.js.map +1 -0
  163. package/dist/baseTypes/baseNavigation.d.ts +37 -0
  164. package/dist/baseTypes/baseNavigation.d.ts.map +1 -0
  165. package/dist/baseTypes/baseNavigation.js +2 -0
  166. package/dist/baseTypes/baseNavigation.js.map +1 -0
  167. package/dist/baseTypes/baseNavigationItem.d.ts +109 -0
  168. package/dist/baseTypes/baseNavigationItem.d.ts.map +1 -0
  169. package/dist/baseTypes/baseNavigationItem.js +2 -0
  170. package/dist/baseTypes/baseNavigationItem.js.map +1 -0
  171. package/dist/baseTypes/basePage.d.ts +142 -0
  172. package/dist/baseTypes/basePage.d.ts.map +1 -0
  173. package/dist/baseTypes/basePage.js +2 -0
  174. package/dist/baseTypes/basePage.js.map +1 -0
  175. package/dist/baseTypes/basePageVariant.d.ts +145 -0
  176. package/dist/baseTypes/basePageVariant.d.ts.map +1 -0
  177. package/dist/baseTypes/basePageVariant.js +2 -0
  178. package/dist/baseTypes/basePageVariant.js.map +1 -0
  179. package/dist/baseTypes/basePerson.d.ts +160 -0
  180. package/dist/baseTypes/basePerson.d.ts.map +1 -0
  181. package/dist/baseTypes/basePerson.js +2 -0
  182. package/dist/baseTypes/basePerson.js.map +1 -0
  183. package/dist/baseTypes/baseRedirect.d.ts +69 -0
  184. package/dist/baseTypes/baseRedirect.d.ts.map +1 -0
  185. package/dist/baseTypes/baseRedirect.js +2 -0
  186. package/dist/baseTypes/baseRedirect.js.map +1 -0
  187. package/dist/baseTypes/baseSchema.d.ts +19 -0
  188. package/dist/baseTypes/baseSchema.d.ts.map +1 -0
  189. package/dist/baseTypes/baseSchema.js +2 -0
  190. package/dist/baseTypes/baseSchema.js.map +1 -0
  191. package/dist/baseTypes/baseShared.d.ts +25 -0
  192. package/dist/baseTypes/baseShared.d.ts.map +1 -0
  193. package/dist/baseTypes/baseShared.js +2 -0
  194. package/dist/baseTypes/baseShared.js.map +1 -0
  195. package/dist/baseTypes/baseTag.d.ts +129 -0
  196. package/dist/baseTypes/baseTag.d.ts.map +1 -0
  197. package/dist/baseTypes/baseTag.js +2 -0
  198. package/dist/baseTypes/baseTag.js.map +1 -0
  199. package/dist/baseTypes/baseTagType.d.ts +70 -0
  200. package/dist/baseTypes/baseTagType.d.ts.map +1 -0
  201. package/dist/baseTypes/baseTagType.js +2 -0
  202. package/dist/baseTypes/baseTagType.js.map +1 -0
  203. package/dist/baseTypes/baseTemplate.d.ts +77 -0
  204. package/dist/baseTypes/baseTemplate.d.ts.map +1 -0
  205. package/dist/baseTypes/baseTemplate.js +2 -0
  206. package/dist/baseTypes/baseTemplate.js.map +1 -0
  207. package/dist/client.d.ts +145 -0
  208. package/dist/client.d.ts.map +1 -0
  209. package/dist/client.js +322 -0
  210. package/dist/client.js.map +1 -0
  211. package/dist/cms-integrity.d.ts +10 -0
  212. package/dist/cms-integrity.d.ts.map +1 -0
  213. package/dist/cms-integrity.js +7 -0
  214. package/dist/cms-integrity.js.map +1 -0
  215. package/dist/converters/animationEnricher.d.ts +17 -0
  216. package/dist/converters/animationEnricher.d.ts.map +1 -0
  217. package/dist/converters/animationEnricher.js +177 -0
  218. package/dist/converters/animationEnricher.js.map +1 -0
  219. package/dist/converters/article.d.ts +48 -0
  220. package/dist/converters/article.d.ts.map +1 -0
  221. package/dist/converters/article.js +364 -0
  222. package/dist/converters/article.js.map +1 -0
  223. package/dist/converters/asset.d.ts +33 -0
  224. package/dist/converters/asset.d.ts.map +1 -0
  225. package/dist/converters/asset.js +340 -0
  226. package/dist/converters/asset.js.map +1 -0
  227. package/dist/converters/banner.d.ts +10 -0
  228. package/dist/converters/banner.d.ts.map +1 -0
  229. package/dist/converters/banner.js +63 -0
  230. package/dist/converters/banner.js.map +1 -0
  231. package/dist/converters/collection.d.ts +26 -0
  232. package/dist/converters/collection.d.ts.map +1 -0
  233. package/dist/converters/collection.js +52 -0
  234. package/dist/converters/collection.js.map +1 -0
  235. package/dist/converters/component.d.ts +26 -0
  236. package/dist/converters/component.d.ts.map +1 -0
  237. package/dist/converters/component.js +54 -0
  238. package/dist/converters/component.js.map +1 -0
  239. package/dist/converters/customType.d.ts +24 -0
  240. package/dist/converters/customType.d.ts.map +1 -0
  241. package/dist/converters/customType.js +93 -0
  242. package/dist/converters/customType.js.map +1 -0
  243. package/dist/converters/document.d.ts +14 -0
  244. package/dist/converters/document.d.ts.map +1 -0
  245. package/dist/converters/document.js +51 -0
  246. package/dist/converters/document.js.map +1 -0
  247. package/dist/converters/enrichAssets.d.ts +19 -0
  248. package/dist/converters/enrichAssets.d.ts.map +1 -0
  249. package/dist/converters/enrichAssets.js +36 -0
  250. package/dist/converters/enrichAssets.js.map +1 -0
  251. package/dist/converters/externalComponent.d.ts +27 -0
  252. package/dist/converters/externalComponent.d.ts.map +1 -0
  253. package/dist/converters/externalComponent.js +46 -0
  254. package/dist/converters/externalComponent.js.map +1 -0
  255. package/dist/converters/externalVideoEnricher.d.ts +12 -0
  256. package/dist/converters/externalVideoEnricher.d.ts.map +1 -0
  257. package/dist/converters/externalVideoEnricher.js +70 -0
  258. package/dist/converters/externalVideoEnricher.js.map +1 -0
  259. package/dist/converters/helpers.d.ts +173 -0
  260. package/dist/converters/helpers.d.ts.map +1 -0
  261. package/dist/converters/helpers.js +167 -0
  262. package/dist/converters/helpers.js.map +1 -0
  263. package/dist/converters/heroVideoEnricher.d.ts +9 -0
  264. package/dist/converters/heroVideoEnricher.d.ts.map +1 -0
  265. package/dist/converters/heroVideoEnricher.js +108 -0
  266. package/dist/converters/heroVideoEnricher.js.map +1 -0
  267. package/dist/converters/heroVideoEnv.d.ts +14 -0
  268. package/dist/converters/heroVideoEnv.d.ts.map +1 -0
  269. package/dist/converters/heroVideoEnv.js +28 -0
  270. package/dist/converters/heroVideoEnv.js.map +1 -0
  271. package/dist/converters/htmlComponent.d.ts +17 -0
  272. package/dist/converters/htmlComponent.d.ts.map +1 -0
  273. package/dist/converters/htmlComponent.js +33 -0
  274. package/dist/converters/htmlComponent.js.map +1 -0
  275. package/dist/converters/iconCollector.d.ts +36 -0
  276. package/dist/converters/iconCollector.d.ts.map +1 -0
  277. package/dist/converters/iconCollector.js +309 -0
  278. package/dist/converters/iconCollector.js.map +1 -0
  279. package/dist/converters/index.d.ts +26 -0
  280. package/dist/converters/index.d.ts.map +1 -0
  281. package/dist/converters/index.js +21 -0
  282. package/dist/converters/index.js.map +1 -0
  283. package/dist/converters/link.d.ts +11 -0
  284. package/dist/converters/link.d.ts.map +1 -0
  285. package/dist/converters/link.js +109 -0
  286. package/dist/converters/link.js.map +1 -0
  287. package/dist/converters/navigationItem.d.ts +17 -0
  288. package/dist/converters/navigationItem.d.ts.map +1 -0
  289. package/dist/converters/navigationItem.js +126 -0
  290. package/dist/converters/navigationItem.js.map +1 -0
  291. package/dist/converters/page.d.ts +44 -0
  292. package/dist/converters/page.d.ts.map +1 -0
  293. package/dist/converters/page.js +160 -0
  294. package/dist/converters/page.js.map +1 -0
  295. package/dist/converters/pageVariantMerge.d.ts +24 -0
  296. package/dist/converters/pageVariantMerge.d.ts.map +1 -0
  297. package/dist/converters/pageVariantMerge.js +151 -0
  298. package/dist/converters/pageVariantMerge.js.map +1 -0
  299. package/dist/converters/person.d.ts +40 -0
  300. package/dist/converters/person.d.ts.map +1 -0
  301. package/dist/converters/person.js +152 -0
  302. package/dist/converters/person.js.map +1 -0
  303. package/dist/converters/pictureBlurEnricher.d.ts +9 -0
  304. package/dist/converters/pictureBlurEnricher.d.ts.map +1 -0
  305. package/dist/converters/pictureBlurEnricher.js +79 -0
  306. package/dist/converters/pictureBlurEnricher.js.map +1 -0
  307. package/dist/converters/redirect.d.ts +20 -0
  308. package/dist/converters/redirect.d.ts.map +1 -0
  309. package/dist/converters/redirect.js +50 -0
  310. package/dist/converters/redirect.js.map +1 -0
  311. package/dist/converters/resolver.d.ts +26 -0
  312. package/dist/converters/resolver.d.ts.map +1 -0
  313. package/dist/converters/resolver.js +383 -0
  314. package/dist/converters/resolver.js.map +1 -0
  315. package/dist/converters/schema.d.ts +14 -0
  316. package/dist/converters/schema.d.ts.map +1 -0
  317. package/dist/converters/schema.js +25 -0
  318. package/dist/converters/schema.js.map +1 -0
  319. package/dist/converters/svgProcessor.d.ts +58 -0
  320. package/dist/converters/svgProcessor.d.ts.map +1 -0
  321. package/dist/converters/svgProcessor.js +225 -0
  322. package/dist/converters/svgProcessor.js.map +1 -0
  323. package/dist/converters/tag.d.ts +25 -0
  324. package/dist/converters/tag.d.ts.map +1 -0
  325. package/dist/converters/tag.js +170 -0
  326. package/dist/converters/tag.js.map +1 -0
  327. package/dist/converters/tagType.d.ts +15 -0
  328. package/dist/converters/tagType.d.ts.map +1 -0
  329. package/dist/converters/tagType.js +56 -0
  330. package/dist/converters/tagType.js.map +1 -0
  331. package/dist/converters/template.d.ts +31 -0
  332. package/dist/converters/template.d.ts.map +1 -0
  333. package/dist/converters/template.js +53 -0
  334. package/dist/converters/template.js.map +1 -0
  335. package/dist/converters/videoEnricher.d.ts +14 -0
  336. package/dist/converters/videoEnricher.d.ts.map +1 -0
  337. package/dist/converters/videoEnricher.js +85 -0
  338. package/dist/converters/videoEnricher.js.map +1 -0
  339. package/dist/icons/rebuildIconSprite.d.ts +8 -0
  340. package/dist/icons/rebuildIconSprite.d.ts.map +1 -0
  341. package/dist/icons/rebuildIconSprite.js +15 -0
  342. package/dist/icons/rebuildIconSprite.js.map +1 -0
  343. package/dist/index.d.ts +33 -0
  344. package/dist/index.d.ts.map +1 -0
  345. package/dist/index.js +42 -0
  346. package/dist/index.js.map +1 -0
  347. package/dist/navigation/assembly.d.ts +8 -0
  348. package/dist/navigation/assembly.d.ts.map +1 -0
  349. package/dist/navigation/assembly.js +115 -0
  350. package/dist/navigation/assembly.js.map +1 -0
  351. package/dist/navigation/cacheOptions.d.ts +17 -0
  352. package/dist/navigation/cacheOptions.d.ts.map +1 -0
  353. package/dist/navigation/cacheOptions.js +45 -0
  354. package/dist/navigation/cacheOptions.js.map +1 -0
  355. package/dist/navigation/enrichModelNavigation.d.ts +17 -0
  356. package/dist/navigation/enrichModelNavigation.d.ts.map +1 -0
  357. package/dist/navigation/enrichModelNavigation.js +46 -0
  358. package/dist/navigation/enrichModelNavigation.js.map +1 -0
  359. package/dist/navigation/linkIndex.d.ts +10 -0
  360. package/dist/navigation/linkIndex.d.ts.map +1 -0
  361. package/dist/navigation/linkIndex.js +34 -0
  362. package/dist/navigation/linkIndex.js.map +1 -0
  363. package/dist/navigation/listingLinkBundle.d.ts +22 -0
  364. package/dist/navigation/listingLinkBundle.d.ts.map +1 -0
  365. package/dist/navigation/listingLinkBundle.js +88 -0
  366. package/dist/navigation/listingLinkBundle.js.map +1 -0
  367. package/dist/navigation/registry.d.ts +15 -0
  368. package/dist/navigation/registry.d.ts.map +1 -0
  369. package/dist/navigation/registry.js +130 -0
  370. package/dist/navigation/registry.js.map +1 -0
  371. package/dist/navigation/requestCache.d.ts +18 -0
  372. package/dist/navigation/requestCache.d.ts.map +1 -0
  373. package/dist/navigation/requestCache.js +66 -0
  374. package/dist/navigation/requestCache.js.map +1 -0
  375. package/dist/navigation/types.d.ts +45 -0
  376. package/dist/navigation/types.d.ts.map +1 -0
  377. package/dist/navigation/types.js +2 -0
  378. package/dist/navigation/types.js.map +1 -0
  379. package/dist/revalidation/entry-handlers.d.ts +40 -0
  380. package/dist/revalidation/entry-handlers.d.ts.map +1 -0
  381. package/dist/revalidation/entry-handlers.js +144 -0
  382. package/dist/revalidation/entry-handlers.js.map +1 -0
  383. package/dist/revalidation/handlers.d.ts +19 -0
  384. package/dist/revalidation/handlers.d.ts.map +1 -0
  385. package/dist/revalidation/handlers.js +50 -0
  386. package/dist/revalidation/handlers.js.map +1 -0
  387. package/dist/revalidation/index.d.ts +4 -0
  388. package/dist/revalidation/index.d.ts.map +1 -0
  389. package/dist/revalidation/index.js +5 -0
  390. package/dist/revalidation/index.js.map +1 -0
  391. package/dist/revalidation/nextjs-route.d.ts +38 -0
  392. package/dist/revalidation/nextjs-route.d.ts.map +1 -0
  393. package/dist/revalidation/nextjs-route.js +36 -0
  394. package/dist/revalidation/nextjs-route.js.map +1 -0
  395. package/dist/revalidation/route.d.ts +3 -0
  396. package/dist/revalidation/route.d.ts.map +1 -0
  397. package/dist/revalidation/route.js +99 -0
  398. package/dist/revalidation/route.js.map +1 -0
  399. package/dist/revalidation/server-utils.d.ts +31 -0
  400. package/dist/revalidation/server-utils.d.ts.map +1 -0
  401. package/dist/revalidation/server-utils.js +54 -0
  402. package/dist/revalidation/server-utils.js.map +1 -0
  403. package/dist/revalidation/tags.d.ts +110 -0
  404. package/dist/revalidation/tags.d.ts.map +1 -0
  405. package/dist/revalidation/tags.js +160 -0
  406. package/dist/revalidation/tags.js.map +1 -0
  407. package/dist/revalidation/utils.d.ts +21 -0
  408. package/dist/revalidation/utils.d.ts.map +1 -0
  409. package/dist/revalidation/utils.js +61 -0
  410. package/dist/revalidation/utils.js.map +1 -0
  411. package/dist/revalidation/webhook-content-types.d.ts +12 -0
  412. package/dist/revalidation/webhook-content-types.d.ts.map +1 -0
  413. package/dist/revalidation/webhook-content-types.js +28 -0
  414. package/dist/revalidation/webhook-content-types.js.map +1 -0
  415. package/dist/routing/index.d.ts +2 -0
  416. package/dist/routing/index.d.ts.map +1 -0
  417. package/dist/routing/index.js +2 -0
  418. package/dist/routing/index.js.map +1 -0
  419. package/dist/routing/marketing-site-url-calculators.d.ts +21 -0
  420. package/dist/routing/marketing-site-url-calculators.d.ts.map +1 -0
  421. package/dist/routing/marketing-site-url-calculators.js +43 -0
  422. package/dist/routing/marketing-site-url-calculators.js.map +1 -0
  423. package/dist/server.d.ts +7 -0
  424. package/dist/server.d.ts.map +1 -0
  425. package/dist/server.js +10 -0
  426. package/dist/server.js.map +1 -0
  427. package/dist/telemetry/deriveOperation.d.ts +8 -0
  428. package/dist/telemetry/deriveOperation.d.ts.map +1 -0
  429. package/dist/telemetry/deriveOperation.js +59 -0
  430. package/dist/telemetry/deriveOperation.js.map +1 -0
  431. package/dist/telemetry/queryContext.d.ts +7 -0
  432. package/dist/telemetry/queryContext.d.ts.map +1 -0
  433. package/dist/telemetry/queryContext.js +9 -0
  434. package/dist/telemetry/queryContext.js.map +1 -0
  435. package/dist/telemetry/queryLog.d.ts +17 -0
  436. package/dist/telemetry/queryLog.d.ts.map +1 -0
  437. package/dist/telemetry/queryLog.js +54 -0
  438. package/dist/telemetry/queryLog.js.map +1 -0
  439. package/dist/types.d.ts +93 -0
  440. package/dist/types.d.ts.map +1 -0
  441. package/dist/types.js +2 -0
  442. package/dist/types.js.map +1 -0
  443. package/dist/utils/arrayUtils.d.ts +3 -0
  444. package/dist/utils/arrayUtils.d.ts.map +1 -0
  445. package/dist/utils/arrayUtils.js +12 -0
  446. package/dist/utils/arrayUtils.js.map +1 -0
  447. package/dist/utils/dateUtils.d.ts +9 -0
  448. package/dist/utils/dateUtils.d.ts.map +1 -0
  449. package/dist/utils/dateUtils.js +26 -0
  450. package/dist/utils/dateUtils.js.map +1 -0
  451. package/dist/utils/errors.d.ts +56 -0
  452. package/dist/utils/errors.d.ts.map +1 -0
  453. package/dist/utils/errors.js +100 -0
  454. package/dist/utils/errors.js.map +1 -0
  455. package/dist/utils/index.d.ts +9 -0
  456. package/dist/utils/index.d.ts.map +1 -0
  457. package/dist/utils/index.js +9 -0
  458. package/dist/utils/index.js.map +1 -0
  459. package/dist/utils/redirectMap.d.ts +40 -0
  460. package/dist/utils/redirectMap.d.ts.map +1 -0
  461. package/dist/utils/redirectMap.js +129 -0
  462. package/dist/utils/redirectMap.js.map +1 -0
  463. package/dist/utils/retry.d.ts +103 -0
  464. package/dist/utils/retry.d.ts.map +1 -0
  465. package/dist/utils/retry.js +248 -0
  466. package/dist/utils/retry.js.map +1 -0
  467. package/dist/utils/tags.d.ts +35 -0
  468. package/dist/utils/tags.d.ts.map +1 -0
  469. package/dist/utils/tags.js +37 -0
  470. package/dist/utils/tags.js.map +1 -0
  471. package/docs/llms.md +430 -0
  472. package/package.json +86 -0
@@ -0,0 +1,309 @@
1
+ import { isSvgImage } from '@se-studio/core-data-types';
2
+ import { fetchSvgContent, processSvgForSprite } from './svgProcessor.js';
3
+ /**
4
+ * Extract SVG image from a visual if it's marked as an icon.
5
+ * Only returns SVG images that have isIcon: true (set during conversion from icon fields).
6
+ *
7
+ * @param visual - Visual to check
8
+ * @returns SVG image if visual contains an icon SVG, undefined otherwise
9
+ */
10
+ function extractIconFromVisual(visual) {
11
+ if (!visual?.image) {
12
+ return undefined;
13
+ }
14
+ // Only return SVG images that are marked as icons
15
+ if (isSvgImage(visual.image) && visual.image.isIcon) {
16
+ return visual.image;
17
+ }
18
+ return undefined;
19
+ }
20
+ /**
21
+ * Extract icon SVG images from a responsive visual (both desktop and mobile).
22
+ * Only returns SVG images that have isIcon: true.
23
+ *
24
+ * @param visual - Responsive visual to check
25
+ * @returns Array of icon SVG images found (may contain 0, 1, or 2 items)
26
+ */
27
+ function extractIconsFromResponsiveVisual(visual) {
28
+ const icons = [];
29
+ if (visual?.visual) {
30
+ const svg = extractIconFromVisual(visual.visual);
31
+ if (svg) {
32
+ icons.push(svg);
33
+ }
34
+ }
35
+ if (visual?.mobileVisual) {
36
+ const svg = extractIconFromVisual(visual.mobileVisual);
37
+ if (svg) {
38
+ icons.push(svg);
39
+ }
40
+ }
41
+ return icons;
42
+ }
43
+ /**
44
+ * Collect icon SVG from a component's icon field.
45
+ *
46
+ * @param component - Component to check
47
+ * @returns Array of icon SVGs found
48
+ */
49
+ function collectIconsFromComponent(component) {
50
+ if (!component) {
51
+ return [];
52
+ }
53
+ const icon = extractIconFromVisual(component.icon);
54
+ return icon ? [icon] : [];
55
+ }
56
+ /**
57
+ * Collect icon SVG from a collection's icon field.
58
+ *
59
+ * @param collection - Collection to check
60
+ * @returns Array of icon SVGs found
61
+ */
62
+ function collectIconsFromCollection(collection) {
63
+ if (!collection) {
64
+ return [];
65
+ }
66
+ const icon = extractIconFromVisual(collection.icon);
67
+ return icon ? [icon] : [];
68
+ }
69
+ /**
70
+ * Recursively collect all SVG icons from navigation structures.
71
+ * This includes icons from navigation item links and nested navigation entries.
72
+ *
73
+ * @param navigation - Navigation structure to scan
74
+ * @returns Array of all SVG icons found
75
+ */
76
+ export function collectIconsFromNavigation(navigation) {
77
+ if (!navigation) {
78
+ return [];
79
+ }
80
+ const icons = [];
81
+ const seenIds = new Set();
82
+ function addIcon(icon) {
83
+ // Deduplicate by ID
84
+ if (!seenIds.has(icon.id)) {
85
+ seenIds.add(icon.id);
86
+ icons.push(icon);
87
+ }
88
+ }
89
+ function processNavItem(item) {
90
+ // Check link icon
91
+ if (item.link?.icon) {
92
+ const linkIcons = extractIconsFromResponsiveVisual(item.link.icon);
93
+ for (const icon of linkIcons) {
94
+ addIcon(icon);
95
+ }
96
+ }
97
+ // Recursively process nested entries
98
+ if (item.entries) {
99
+ for (const nestedItem of item.entries) {
100
+ processNavItem(nestedItem);
101
+ }
102
+ }
103
+ }
104
+ for (const item of navigation.entries) {
105
+ processNavItem(item);
106
+ }
107
+ return icons;
108
+ }
109
+ /**
110
+ * Traverse a rich text document and collect icons from embedded entries.
111
+ * This handles embedded-entry-block and embedded-entry-inline nodes that contain
112
+ * resolved content (Components, Collections, etc.) with potential icons.
113
+ *
114
+ * @param richText - Rich text document to traverse
115
+ * @param processContent - Callback to process embedded content items
116
+ */
117
+ function collectIconsFromRichText(richText, processContent) {
118
+ if (!richText?.json) {
119
+ return;
120
+ }
121
+ const traverseNode = (node) => {
122
+ // Check for embedded entry in data.target (resolved by resolveRichTextDocument)
123
+ if (node.data?.target &&
124
+ typeof node.data.target === 'object' &&
125
+ 'type' in node.data.target &&
126
+ 'id' in node.data.target) {
127
+ processContent(node.data.target);
128
+ }
129
+ // Recurse into child content
130
+ if ('content' in node && Array.isArray(node.content)) {
131
+ for (const child of node.content) {
132
+ if (typeof child === 'object' && child !== null && 'nodeType' in child) {
133
+ traverseNode(child);
134
+ }
135
+ }
136
+ }
137
+ };
138
+ // Start traversal from the document root
139
+ traverseNode(richText.json);
140
+ }
141
+ /**
142
+ * Recursively collect all SVG icons from page content.
143
+ * This includes icons from components, collections, CTA `links` (desktop +
144
+ * mobile via IResponsiveVisual), nested content, external-component
145
+ * internalLink, and embedded entries within rich text fields.
146
+ *
147
+ * @param contents - Array of content items to scan
148
+ * @returns Array of all SVG icons found
149
+ */
150
+ export function collectIconsFromContent(contents) {
151
+ if (!contents) {
152
+ return [];
153
+ }
154
+ const icons = [];
155
+ const seenIds = new Set();
156
+ // Track processed content IDs to avoid infinite loops with circular references
157
+ const processedIds = new Set();
158
+ function addIcon(icon) {
159
+ // Deduplicate by ID
160
+ if (!seenIds.has(icon.id)) {
161
+ seenIds.add(icon.id);
162
+ icons.push(icon);
163
+ }
164
+ }
165
+ // Process a single content item (used by both main loop and rich text traversal)
166
+ function processContentItem(content) {
167
+ // Skip if already processed (prevents infinite loops)
168
+ if (processedIds.has(content.id)) {
169
+ return;
170
+ }
171
+ processedIds.add(content.id);
172
+ // Check component icon field
173
+ if (content.type === 'Component') {
174
+ const componentIcons = collectIconsFromComponent(content);
175
+ for (const icon of componentIcons) {
176
+ addIcon(icon);
177
+ }
178
+ // Type for component with optional rich text and contents fields
179
+ const component = content;
180
+ // Recursively check nested content if component has contents
181
+ if (component.contents) {
182
+ for (const nested of component.contents) {
183
+ processContentItem(nested);
184
+ }
185
+ }
186
+ // CTA links on the component (icon + mobileIcon → responsive visual)
187
+ if (component.links) {
188
+ for (const link of component.links) {
189
+ if (typeof link === 'object' && link !== null && 'type' in link && 'id' in link) {
190
+ processContentItem(link);
191
+ }
192
+ }
193
+ }
194
+ // Check rich text fields for embedded content
195
+ collectIconsFromRichText(component.body, processContentItem);
196
+ collectIconsFromRichText(component.additionalCopy, processContentItem);
197
+ }
198
+ // Check collection icon field
199
+ if (content.type === 'Collection') {
200
+ const collectionIcons = collectIconsFromCollection(content);
201
+ for (const icon of collectionIcons) {
202
+ addIcon(icon);
203
+ }
204
+ // Type for collection with optional rich text fields
205
+ const collection = content;
206
+ // Recursively check collection contents
207
+ if (collection.contents) {
208
+ for (const nested of collection.contents) {
209
+ if (typeof nested === 'object' && nested !== null && 'type' in nested && 'id' in nested) {
210
+ processContentItem(nested);
211
+ }
212
+ }
213
+ }
214
+ // CTA links on the collection (icon + mobileIcon → responsive visual)
215
+ if (collection.links) {
216
+ for (const link of collection.links) {
217
+ if (typeof link === 'object' && link !== null && 'type' in link && 'id' in link) {
218
+ processContentItem(link);
219
+ }
220
+ }
221
+ }
222
+ // Check rich text fields for embedded content
223
+ collectIconsFromRichText(collection.body, processContentItem);
224
+ collectIconsFromRichText(collection.additionalCopy, processContentItem);
225
+ }
226
+ if (content.type === 'External component') {
227
+ const external = content;
228
+ collectIconsFromRichText(external.copy, processContentItem);
229
+ collectIconsFromRichText(external.additionalCopy, processContentItem);
230
+ collectIconsFromRichText(external.extraCopy, processContentItem);
231
+ // internalLink may carry icon / mobileIcon
232
+ if (external.internalLink) {
233
+ processContentItem(external.internalLink);
234
+ }
235
+ }
236
+ // Check links for icon fields (IResponsiveVisual)
237
+ if (content.type === 'Internal link' ||
238
+ content.type === 'External link' ||
239
+ content.type === 'Download link' ||
240
+ content.type === 'Blank link') {
241
+ const link = content;
242
+ if (link.icon) {
243
+ const linkIcons = extractIconsFromResponsiveVisual(link.icon);
244
+ for (const icon of linkIcons) {
245
+ addIcon(icon);
246
+ }
247
+ }
248
+ }
249
+ }
250
+ // Process all top-level content items
251
+ for (const content of contents) {
252
+ processContentItem(content);
253
+ }
254
+ return icons;
255
+ }
256
+ /**
257
+ * Deduplicate icons by ID, preserving order of first occurrence.
258
+ * Takes any number of icon arrays and returns a single deduplicated array.
259
+ *
260
+ * @param iconArrays - Arrays of icons to merge and deduplicate
261
+ * @returns Deduplicated array of icons, or undefined if empty
262
+ */
263
+ export function deduplicateIcons(...iconArrays) {
264
+ const seenIds = new Set();
265
+ const icons = [];
266
+ for (const arr of iconArrays) {
267
+ for (const icon of arr) {
268
+ if (!seenIds.has(icon.id)) {
269
+ seenIds.add(icon.id);
270
+ icons.push(icon);
271
+ }
272
+ }
273
+ }
274
+ return icons.length > 0 ? icons : undefined;
275
+ }
276
+ /**
277
+ * Process icons by fetching SVG content and generating sprite symbols.
278
+ * This runs during data conversion to pre-process icons for the sprite sheet.
279
+ *
280
+ * @param icons - Array of icon SVG images to process
281
+ * @returns Array of icons with symbolContent populated
282
+ */
283
+ export async function processIconsForSprite(icons) {
284
+ if (icons.length === 0) {
285
+ return [];
286
+ }
287
+ // Process all icons in parallel
288
+ const processedIcons = await Promise.all(icons.map(async (icon) => {
289
+ try {
290
+ // Fetch SVG content (uses parent request's cache tags)
291
+ const svgContent = await fetchSvgContent(icon.svgSrc);
292
+ // Process into symbol format
293
+ const symbolContent = processSvgForSprite(svgContent, icon.id);
294
+ // Return icon with symbolContent populated
295
+ return {
296
+ ...icon,
297
+ symbolContent,
298
+ };
299
+ }
300
+ catch (error) {
301
+ if (process.env.LOG_SVG_SPRITE) {
302
+ console.error(`Failed to process icon ${icon.id}:`, error);
303
+ }
304
+ return icon;
305
+ }
306
+ }));
307
+ return processedIcons;
308
+ }
309
+ //# sourceMappingURL=iconCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconCollector.js","sourceRoot":"","sources":["../../src/converters/iconCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Converters module
3
+ *
4
+ * Provides functional composition pattern for converting Contentful entries
5
+ * to typed objects. Use the base converters and compose with enhancers to
6
+ * create custom converters for your specific needs.
7
+ */
8
+ export type { IContentfulArticle, IContentfulArticleLink } from './article';
9
+ export { animationFormatFromFile, createResponsiveVisual } from './asset';
10
+ export type { IContentfulCollection } from './collection';
11
+ export { baseCollectionConverter } from './collection';
12
+ export type { IContentfulComponent } from './component';
13
+ export { baseComponentConverter } from './component';
14
+ export { baseDocumentConverter } from './document';
15
+ export type { IContentfulExternalComponent } from './externalComponent';
16
+ export { baseExternalComponentConverter } from './externalComponent';
17
+ export { type BaseConverterContext, type ContentResolverFunction, type ConverterContext, lookupAsset, type UrlCalculators, } from './helpers';
18
+ export { baseHtmlComponentConverter } from './htmlComponent';
19
+ export { baseNavigationItemConverter, navigationStubFromLink, resolveNavigation, resolveNavigationOrStub, } from './navigationItem';
20
+ export { basePageConverter, calculatePageHref, calculatePageVariantHref, } from './page';
21
+ export { mergeAlternatePageContentsInTree, resolveAlternateReplacements, } from './pageVariantMerge';
22
+ export type { IContentfulPerson } from './person';
23
+ export { baseRedirectConverter } from './redirect';
24
+ export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver';
25
+ export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,WAAW,EACX,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Converters module
3
+ *
4
+ * Provides functional composition pattern for converting Contentful entries
5
+ * to typed objects. Use the base converters and compose with enhancers to
6
+ * create custom converters for your specific needs.
7
+ */
8
+ export { animationFormatFromFile, createResponsiveVisual } from './asset.js';
9
+ export { baseCollectionConverter } from './collection.js';
10
+ export { baseComponentConverter } from './component.js';
11
+ export { baseDocumentConverter } from './document.js';
12
+ export { baseExternalComponentConverter } from './externalComponent.js';
13
+ export { lookupAsset, } from './helpers.js';
14
+ export { baseHtmlComponentConverter } from './htmlComponent.js';
15
+ export { baseNavigationItemConverter, navigationStubFromLink, resolveNavigation, resolveNavigationOrStub, } from './navigationItem.js';
16
+ export { basePageConverter, calculatePageHref, calculatePageVariantHref, } from './page.js';
17
+ export { mergeAlternatePageContentsInTree, resolveAlternateReplacements, } from './pageVariantMerge.js';
18
+ export { baseRedirectConverter } from './redirect.js';
19
+ export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver.js';
20
+ export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType.js';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAIL,WAAW,GAEZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IBlankLink, IDownloadLink, IExternalLink, IInternalLink } from '@se-studio/core-data-types';
2
+ import type { Entry } from 'contentful';
3
+ import type { DefaultChainModifier } from '../api';
4
+ import type { BaseLinkSkeleton } from '../baseTypes/baseLink';
5
+ import type { ConverterContext } from './helpers';
6
+ /**
7
+ * Converts a Contentful link entry to an ILinkProps object
8
+ * Handles all link types: internal, external, download, and blank
9
+ */
10
+ export declare function baseLinkConverter(context: ConverterContext, entry: Entry<BaseLinkSkeleton, DefaultChainModifier, string>): IInternalLink | IExternalLink | IDownloadLink | IBlankLink;
11
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/converters/link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAUlD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC3D,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CA6G5D"}
@@ -0,0 +1,109 @@
1
+ import { createResponsiveVisual } from './asset.js';
2
+ import { lookupAsset, lookupDownloadAsset, lookupIconAsset, makeContentfulTitle, resolveBuildYear, } from './helpers.js';
3
+ import { resolveLink } from './resolver.js';
4
+ /**
5
+ * Converts a Contentful link entry to an ILinkProps object
6
+ * Handles all link types: internal, external, download, and blank
7
+ */
8
+ export function baseLinkConverter(context, entry) {
9
+ const { sys, fields } = entry;
10
+ if (sys.contentType.sys.id !== 'link') {
11
+ throw new Error(`Invalid content type: expected "link", got "${sys.contentType.sys.id}"`);
12
+ }
13
+ const id = sys.id;
14
+ const name = fields.name;
15
+ const useName = fields.useName;
16
+ const text = resolveBuildYear(useName
17
+ ? name
18
+ : (fields.linkText ?? makeContentfulTitle(fields.linkText, id, 'Link text for ')));
19
+ const icon = createResponsiveVisual(lookupIconAsset(context, fields.icon), lookupIconAsset(context, fields.mobileIcon));
20
+ const backgroundColour = fields.backgroundColour ?? null;
21
+ const textColour = fields.textColour ?? null;
22
+ const variant = fields.variant;
23
+ const size = fields.size;
24
+ const hasTrackingFields = fields.trackingEventName || fields.conversionId || fields.conversionLabel;
25
+ const trackingInfo = hasTrackingFields
26
+ ? {
27
+ trackingEventName: fields.trackingEventName ?? null,
28
+ conversionId: fields.conversionId ?? null,
29
+ conversionLabel: fields.conversionLabel ?? null,
30
+ }
31
+ : undefined;
32
+ // Common base properties
33
+ const baseProps = {
34
+ id,
35
+ useName,
36
+ name,
37
+ text,
38
+ icon,
39
+ backgroundColour,
40
+ textColour,
41
+ variant,
42
+ size,
43
+ trackingInfo,
44
+ accessibilityLabel: fields.accessibilityLabel ?? null,
45
+ };
46
+ // Determine link type based on field priority: internal > external > download > blank
47
+ if (fields.internal) {
48
+ // Internal link: resolve the target entry to get its href
49
+ const internalTarget = resolveLink(context, id, fields.internal);
50
+ if (internalTarget) {
51
+ return {
52
+ ...baseProps,
53
+ id: internalTarget.id,
54
+ linkEntryId: id,
55
+ lastModified: internalTarget.lastModified,
56
+ internalId: internalTarget.id,
57
+ type: 'Internal link',
58
+ internalType: internalTarget.internalType,
59
+ href: internalTarget.href,
60
+ slug: internalTarget.slug,
61
+ indexed: internalTarget.indexed,
62
+ hidden: internalTarget.hidden,
63
+ tags: internalTarget.tags,
64
+ title: internalTarget.title,
65
+ description: internalTarget.description,
66
+ };
67
+ }
68
+ // If the internal target couldn't be resolved, fall through to next priority
69
+ }
70
+ if (fields.external) {
71
+ // External link: use the external URL
72
+ return {
73
+ ...baseProps,
74
+ type: 'External link',
75
+ href: fields.external,
76
+ };
77
+ }
78
+ if (fields.downloadAsset) {
79
+ const asset = lookupAsset(context, fields.downloadAsset);
80
+ const downloadAsset = lookupDownloadAsset(context, fields.downloadAsset);
81
+ let href = downloadAsset?.href ?? null;
82
+ if (href === null && asset) {
83
+ if (asset.image?.type === 'Picture')
84
+ href = asset.image.src;
85
+ else if (asset.image?.type === 'Svg image')
86
+ href = asset.image.svgSrc;
87
+ else if (asset.video?.type === 'Local video')
88
+ href = asset.video.preview.videoUrl;
89
+ else if (asset.video?.type === 'Full video')
90
+ href = asset.video.full.videoUrl;
91
+ else if (asset.video?.type === 'External video')
92
+ href = asset.video.external;
93
+ }
94
+ return {
95
+ ...baseProps,
96
+ type: 'Download link',
97
+ href: href ?? '',
98
+ visual: asset,
99
+ download: downloadAsset ?? undefined,
100
+ };
101
+ }
102
+ // Blank link: no href
103
+ return {
104
+ ...baseProps,
105
+ type: 'Blank link',
106
+ href: null,
107
+ };
108
+ }
109
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/converters/link.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAyB,EACzB,KAA4D;IAE5D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE9B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,IAAI,GAAG,gBAAgB,CAC3B,OAAO;QACL,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CACpF,CAAC;IACF,MAAM,IAAI,GAAG,sBAAsB,CACjC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EACrC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAC5C,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,MAAM,iBAAiB,GACrB,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,eAAe,CAAC;IAC5E,MAAM,YAAY,GAAG,iBAAiB;QACpC,CAAC,CAAC;YACE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;YACnD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;YACzC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;SAChD;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,yBAAyB;IACzB,MAAM,SAAS,GAAG;QAChB,EAAE;QACF,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,gBAAgB;QAChB,UAAU;QACV,OAAO;QACP,IAAI;QACJ,YAAY;QACZ,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;KACtD,CAAC;IAEF,sFAAsF;IACtF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,0DAA0D;QAC1D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,GAAG,SAAS;gBACZ,EAAE,EAAE,cAAc,CAAC,EAAE;gBACrB,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,cAAc,CAAC,YAAY;gBACzC,UAAU,EAAE,cAAc,CAAC,EAAE;gBAC7B,IAAI,EAAE,eAAe;gBACrB,YAAY,EAAE,cAAc,CAAC,YAAY;gBACzC,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;aACxC,CAAC;QACJ,CAAC;QACD,6EAA6E;IAC/E,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,sCAAsC;QACtC,OAAO;YACL,GAAG,SAAS;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,MAAM,CAAC,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,IAAI,GAAkB,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC;QACtD,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS;gBAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,WAAW;gBAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;iBACjE,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,aAAa;gBAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC7E,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY;gBAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACzE,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,gBAAgB;gBAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/E,CAAC;QACD,OAAO;YACL,GAAG,SAAS;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,aAAa,IAAI,SAAS;SACrC,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,OAAO;QACL,GAAG,SAAS;QACZ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { INavigation, INavigationItem } from '@se-studio/core-data-types';
2
+ import type { Entry, UnresolvedLink } from 'contentful';
3
+ import type { DefaultChainModifier } from '../api';
4
+ import type { BaseNavigationItemSkeleton } from '../baseTypes/baseNavigationItem';
5
+ import { type ConverterContext } from './helpers';
6
+ export declare function baseNavigationItemConverter(context: ConverterContext, entry: Entry<BaseNavigationItemSkeleton, DefaultChainModifier, string>): INavigationItem;
7
+ /** Minimal nav root for flat resolution — full tree assembled post-convert via registry. */
8
+ export declare function navigationStubFromLink(link: UnresolvedLink<'Entry'> | undefined): INavigation | undefined;
9
+ /**
10
+ * Resolves bundled navigation or returns a stub root id when flat nav is enabled.
11
+ */
12
+ export declare function resolveNavigationOrStub(context: ConverterContext, link: UnresolvedLink<'Entry'> | undefined): INavigation | undefined;
13
+ /**
14
+ * Resolves a navigation entry from an unresolved link
15
+ */
16
+ export declare function resolveNavigation(context: ConverterContext, link: UnresolvedLink<'Entry'>): INavigation | undefined;
17
+ //# sourceMappingURL=navigationItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationItem.d.ts","sourceRoot":"","sources":["../../src/converters/navigationItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAElF,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,WAAW,CAAC;AA0FnB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,CAAC,GACrE,eAAe,CAqBjB;AAED,4FAA4F;AAC5F,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,GACxC,WAAW,GAAG,SAAS,CASzB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,GACxC,WAAW,GAAG,SAAS,CAQzB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAC5B,WAAW,GAAG,SAAS,CA4BzB"}
@@ -0,0 +1,126 @@
1
+ import { createResponsiveVisual } from './asset.js';
2
+ import { lookupIconAsset, makeContentfulTitle, resolveBuildYear, shouldResolveNavigation, } from './helpers.js';
3
+ import { resolveLink, resolveNavigationItem, resolveRichTextDocument } from './resolver.js';
4
+ function createLink(context, entry) {
5
+ const { sys: { id }, fields, } = entry;
6
+ const { title, link, text, internal, icon: navIcon, mobileIcon: mobileNavIcon, useTitle, ...otherFields } = fields;
7
+ const { variant, size, trackingEventName, navigationItems: _navigationItems, longText: longTextField, adminLabel: _adminLabel, // captured to exclude from ...remainingOtherFields; surfaced on the parent INavigationItem instead (see baseNavigationItemConverter)
8
+ ...remainingOtherFields } = otherFields;
9
+ const longText = resolveRichTextDocument(context, id, longTextField);
10
+ const trackingInfo = trackingEventName ? { trackingEventName } : undefined;
11
+ const icon = createResponsiveVisual(lookupIconAsset(context, navIcon), lookupIconAsset(context, mobileNavIcon));
12
+ const realText = useTitle ? resolveBuildYear(title) : text ? resolveBuildYear(text) : undefined;
13
+ if (link) {
14
+ return {
15
+ type: 'External link',
16
+ id,
17
+ href: link,
18
+ icon,
19
+ name: makeContentfulTitle(title, id),
20
+ ...remainingOtherFields,
21
+ longText,
22
+ variant,
23
+ size,
24
+ text: realText,
25
+ ...(trackingInfo && { trackingInfo }),
26
+ };
27
+ }
28
+ if (internal) {
29
+ const resolved = resolveLink(context, id, internal);
30
+ if (resolved) {
31
+ return {
32
+ ...resolved,
33
+ ...remainingOtherFields,
34
+ longText,
35
+ icon,
36
+ visual: icon?.visual ?? resolved.visual,
37
+ id,
38
+ text: realText,
39
+ variant,
40
+ size,
41
+ ...(trackingInfo && {
42
+ trackingInfo: { ...resolved.trackingInfo, ...trackingInfo },
43
+ }),
44
+ };
45
+ }
46
+ }
47
+ const blank = {
48
+ type: 'Blank link',
49
+ nick: true,
50
+ id,
51
+ name: makeContentfulTitle(title, id),
52
+ ...remainingOtherFields,
53
+ longText,
54
+ variant,
55
+ size,
56
+ icon,
57
+ text: realText,
58
+ ...(trackingInfo && { trackingInfo }),
59
+ };
60
+ return blank;
61
+ }
62
+ export function baseNavigationItemConverter(context, entry) {
63
+ const { sys: { id }, fields, } = entry;
64
+ const { navigationItems, adminLabel } = fields;
65
+ const link = createLink(context, entry);
66
+ const resolvedNavigationItems = navigationItems
67
+ ?.map((item) => resolveNavigationItem(context, id, item))
68
+ .filter((item) => item !== undefined);
69
+ const result = {
70
+ id,
71
+ link,
72
+ entries: resolvedNavigationItems,
73
+ ...(adminLabel ? { adminLabel } : {}),
74
+ };
75
+ return result;
76
+ }
77
+ /** Minimal nav root for flat resolution — full tree assembled post-convert via registry. */
78
+ export function navigationStubFromLink(link) {
79
+ if (!link) {
80
+ return undefined;
81
+ }
82
+ return {
83
+ id: link.sys.id,
84
+ name: '',
85
+ entries: [],
86
+ };
87
+ }
88
+ /**
89
+ * Resolves bundled navigation or returns a stub root id when flat nav is enabled.
90
+ */
91
+ export function resolveNavigationOrStub(context, link) {
92
+ if (!link) {
93
+ return undefined;
94
+ }
95
+ if (!shouldResolveNavigation(context)) {
96
+ return navigationStubFromLink(link);
97
+ }
98
+ return resolveNavigation(context, link);
99
+ }
100
+ /**
101
+ * Resolves a navigation entry from an unresolved link
102
+ */
103
+ export function resolveNavigation(context, link) {
104
+ const id = link.sys.id;
105
+ const possibleEntry = context.includes.get(id);
106
+ if (possibleEntry?.type !== 'navigation') {
107
+ return undefined;
108
+ }
109
+ const entry = possibleEntry.entry;
110
+ const { fields } = entry;
111
+ if (!fields) {
112
+ return undefined;
113
+ }
114
+ // Resolve navigation item entries
115
+ const { name, entries: fieldEntries, ...rest } = fields;
116
+ const entries = fieldEntries
117
+ ?.map((item) => resolveNavigationItem(context, id, item))
118
+ .filter((item) => item != null) ?? [];
119
+ return {
120
+ id,
121
+ name,
122
+ entries,
123
+ ...rest,
124
+ };
125
+ }
126
+ //# sourceMappingURL=navigationItem.js.map