@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,37 @@
1
+ import type { IBaseArticleType } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ export interface ArticleTypeFetchOptions extends FetchOptions {
5
+ customType?: string;
6
+ }
7
+ /**
8
+ * Fetches an article type from Contentful by slug
9
+ *
10
+ * @param context - Converter context
11
+ * @param config - Contentful configuration
12
+ * @param slug - Article type slug to fetch
13
+ * @param options - Fetch options (locale, preview, caching, etc.)
14
+ * @returns Promise resolving to IBaseArticleType or null if not found
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const articleType = await contentfulArticleTypeRest(
19
+ * context,
20
+ * {
21
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
22
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
23
+ * },
24
+ * 'blog',
25
+ * {
26
+ * locale: 'en-US',
27
+ * cache: {
28
+ * tags: ['blog-article-type'],
29
+ * revalidate: 3600
30
+ * },
31
+ * customType: 'blog' // Optional custom type
32
+ * }
33
+ * );
34
+ * ```
35
+ */
36
+ export declare function contentfulArticleTypeRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: ArticleTypeFetchOptions): Promise<CmsResponse<IBaseArticleType | null>>;
37
+ //# sourceMappingURL=article-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-type.d.ts","sourceRoot":"","sources":["../../src/api/article-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAY,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AActF,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CA0J/C"}
@@ -0,0 +1,140 @@
1
+ import { getContentfulClient } from '../client.js';
2
+ import { enrichAllAssets } from '../converters/enrichAssets.js';
3
+ import { finalizeModelIconsAndNavigation } from '../navigation/enrichModelNavigation.js';
4
+ import { getCacheTags } from '../revalidation/utils.js';
5
+ import { withCmsQueryContext } from '../telemetry/queryContext.js';
6
+ import { withRetry } from '../utils/index.js';
7
+ import { convertAllAssets, convertAllIncludes, convertAllRawAssets, createFullConverterContext, operationLabel, PAGE_BUNDLED_CUSTOM_TYPE_INCLUDE, resolveIncludeDepth, } from './helpers.js';
8
+ import { getSingleEntityListingSelect } from './listing-fetch-params.js';
9
+ /**
10
+ * Fetches an article type from Contentful by slug
11
+ *
12
+ * @param context - Converter context
13
+ * @param config - Contentful configuration
14
+ * @param slug - Article type slug to fetch
15
+ * @param options - Fetch options (locale, preview, caching, etc.)
16
+ * @returns Promise resolving to IBaseArticleType or null if not found
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const articleType = await contentfulArticleTypeRest(
21
+ * context,
22
+ * {
23
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
24
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
25
+ * },
26
+ * 'blog',
27
+ * {
28
+ * locale: 'en-US',
29
+ * cache: {
30
+ * tags: ['blog-article-type'],
31
+ * revalidate: 3600
32
+ * },
33
+ * customType: 'blog' // Optional custom type
34
+ * }
35
+ * );
36
+ * ```
37
+ */
38
+ export async function contentfulArticleTypeRest(context, config, slug, options) {
39
+ const client = getContentfulClient(config, options.preview);
40
+ // Set cache tags for this request
41
+ const articleTypeCacheTags = getCacheTags('articleType', slug, options?.preview);
42
+ const customTypeCacheTags = options?.customType
43
+ ? getCacheTags('customType', options.customType, options?.preview)
44
+ : [];
45
+ const requestOptions = {
46
+ ...options,
47
+ next: {
48
+ ...options?.next,
49
+ tags: [...articleTypeCacheTags, ...customTypeCacheTags],
50
+ },
51
+ };
52
+ const fetchFn = async () => {
53
+ const fetchProfile = options.fetchProfile ?? 'page';
54
+ const bundleCustomType = fetchProfile === 'page' && !!options?.customType;
55
+ const articleTypeInclude = resolveIncludeDepth('articleType', options);
56
+ const customTypeInclude = options.include ?? PAGE_BUNDLED_CUSTOM_TYPE_INCLUDE;
57
+ const listingSelect = fetchProfile === 'listing' ? getSingleEntityListingSelect('articleType') : undefined;
58
+ const articleTypePromise = withCmsQueryContext({ operation: operationLabel('articleType'), identifier: slug }, () => client.getEntries({
59
+ content_type: 'articleType',
60
+ 'fields.slug': slug,
61
+ include: articleTypeInclude,
62
+ locale: options?.locale,
63
+ limit: 1,
64
+ ...(listingSelect && { select: listingSelect }),
65
+ }, requestOptions));
66
+ const customTypePromise = bundleCustomType
67
+ ? withCmsQueryContext({ operation: operationLabel('customType'), identifier: options.customType }, () => client.getEntries({
68
+ content_type: 'customType',
69
+ 'fields.slug': options.customType,
70
+ include: customTypeInclude,
71
+ locale: options?.locale,
72
+ limit: 1,
73
+ }, requestOptions))
74
+ : Promise.resolve(null);
75
+ const [articleTypeResponse, customTypeResponse] = await Promise.all([
76
+ articleTypePromise,
77
+ customTypePromise,
78
+ ]);
79
+ if (process.env.LOG_CMS) {
80
+ const entryCount = (articleTypeResponse.includes?.Entry?.length ?? 0) + articleTypeResponse.items.length;
81
+ console.debug(`[CMS] articleType fetch: include=${articleTypeInclude}, customType include=${customTypeInclude}, entries in includes=${entryCount}`);
82
+ }
83
+ const articleTypeEntry = articleTypeResponse.items[0];
84
+ if (!articleTypeEntry?.fields) {
85
+ return { data: null, errors: [] };
86
+ }
87
+ const customTypeEntry = customTypeResponse?.items[0];
88
+ try {
89
+ const assets = convertAllAssets(articleTypeResponse, context);
90
+ const rawAssets = convertAllRawAssets(articleTypeResponse);
91
+ const includes = convertAllIncludes(articleTypeResponse);
92
+ if (customTypeResponse) {
93
+ const customAssets = convertAllAssets(customTypeResponse, context);
94
+ const customRawAssets = convertAllRawAssets(customTypeResponse);
95
+ const customIncludes = convertAllIncludes(customTypeResponse);
96
+ for (const [key, value] of customAssets)
97
+ assets.set(key, value);
98
+ for (const [key, value] of customRawAssets)
99
+ rawAssets.set(key, value);
100
+ for (const [key, value] of customIncludes)
101
+ includes.set(key, value);
102
+ }
103
+ const externalVideoEmbeds = await enrichAllAssets(assets, includes, options);
104
+ const fullContext = createFullConverterContext(context, includes, assets, rawAssets, externalVideoEmbeds, options);
105
+ let converted = context.articleTypeResolver(fullContext, articleTypeEntry, bundleCustomType ? customTypeEntry : undefined);
106
+ if (converted) {
107
+ converted = await finalizeModelIconsAndNavigation(converted, context, config, options);
108
+ }
109
+ // Log errors in production
110
+ if (fullContext.errors.length > 0 &&
111
+ typeof process !== 'undefined' &&
112
+ process.env?.NODE_ENV === 'production') {
113
+ console.error(`CMS conversion errors for articleType:`, {
114
+ entryId: articleTypeEntry.sys.id,
115
+ slug,
116
+ errors: fullContext.errors,
117
+ });
118
+ }
119
+ return { data: converted, errors: fullContext.errors };
120
+ }
121
+ catch (error) {
122
+ const entryId = articleTypeEntry?.sys.id || 'unknown';
123
+ const entryType = articleTypeEntry?.sys.contentType?.sys?.id;
124
+ const errorMessage = error instanceof Error ? error.message : 'Unknown conversion error';
125
+ const cmsError = {
126
+ entryId,
127
+ entryType,
128
+ message: errorMessage,
129
+ error,
130
+ };
131
+ return { data: null, errors: [cmsError] };
132
+ }
133
+ };
134
+ // Apply retry logic if configured
135
+ if (options?.retry) {
136
+ return await withRetry(fetchFn, options.retry);
137
+ }
138
+ return await fetchFn();
139
+ }
140
+ //# sourceMappingURL=article-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-type.js","sourceRoot":"","sources":["../../src/api/article-type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { IBaseArticle } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ /**
5
+ * Fetches an article from Contentful by slug and article type slug.
6
+ *
7
+ * @param context - Base converter context for content transformation
8
+ * @param config - Contentful configuration (spaceId, accessToken, environment)
9
+ * @param slug - Article slug to fetch
10
+ * @param articleTypeSlug - Article type slug (e.g., 'blog', 'news')
11
+ * @param options - Optional fetch options (locale, preview, caching, retry)
12
+ * @returns Promise resolving to article data or null if not found, with any conversion errors
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const article = await contentfulArticleRest(
17
+ * context,
18
+ * {
19
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
20
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
21
+ * },
22
+ * 'my-article',
23
+ * 'blog',
24
+ * {
25
+ * locale: 'en-US',
26
+ * cache: { tags: ['article#my-article'], revalidate: 3600 }
27
+ * }
28
+ * );
29
+ * ```
30
+ */
31
+ export declare function contentfulArticleRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, articleTypeSlug: string, options: FetchOptions): Promise<CmsResponse<IBaseArticle | null>>;
32
+ //# sourceMappingURL=article.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/api/article.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAkB3C"}
@@ -0,0 +1,43 @@
1
+ import { fetchSingleEntity } from './helpers.js';
2
+ /**
3
+ * Fetches an article from Contentful by slug and article type slug.
4
+ *
5
+ * @param context - Base converter context for content transformation
6
+ * @param config - Contentful configuration (spaceId, accessToken, environment)
7
+ * @param slug - Article slug to fetch
8
+ * @param articleTypeSlug - Article type slug (e.g., 'blog', 'news')
9
+ * @param options - Optional fetch options (locale, preview, caching, retry)
10
+ * @returns Promise resolving to article data or null if not found, with any conversion errors
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const article = await contentfulArticleRest(
15
+ * context,
16
+ * {
17
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
18
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
19
+ * },
20
+ * 'my-article',
21
+ * 'blog',
22
+ * {
23
+ * locale: 'en-US',
24
+ * cache: { tags: ['article#my-article'], revalidate: 3600 }
25
+ * }
26
+ * );
27
+ * ```
28
+ */
29
+ export async function contentfulArticleRest(context, config, slug, articleTypeSlug, options) {
30
+ return fetchSingleEntity(context, config, {
31
+ contentType: 'article',
32
+ cacheTagType: 'article',
33
+ cacheTagIdentifier: slug,
34
+ query: {
35
+ 'fields.slug': slug,
36
+ 'fields.articleType.sys.contentType.sys.id': 'articleType',
37
+ 'fields.articleType.fields.slug': articleTypeSlug,
38
+ },
39
+ resolver: (ctx, entry) => ctx.articleResolver(ctx, entry),
40
+ errorLogContext: { slug, articleTypeSlug },
41
+ }, options);
42
+ }
43
+ //# sourceMappingURL=article.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/api/article.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA6B,EAC7B,MAAwB,EACxB,IAAY,EACZ,eAAuB,EACvB,OAAqB;IAErB,OAAO,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN;QACE,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;QACvB,kBAAkB,EAAE,IAAI;QACxB,KAAK,EAAE;YACL,aAAa,EAAE,IAAI;YACnB,2CAA2C,EAAE,aAAa;YAC1D,gCAAgC,EAAE,eAAe;SAClD;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;QACzD,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;KAC3C,EACD,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Contentful Asset API Module
3
+ *
4
+ * Provides functions for fetching and serving Contentful assets
5
+ * with proper caching and Content-Disposition handling.
6
+ */
7
+ import { type ContentfulAssetResponse } from '../client';
8
+ import type { ContentfulConfig, FetchOptions } from '../types';
9
+ /**
10
+ * Check if a content type can be displayed inline in the browser.
11
+ * Returns true for PDFs, images, videos, and common text formats.
12
+ *
13
+ * @param contentType - MIME type to check
14
+ * @returns true if the browser can display this content type inline
15
+ */
16
+ export declare function isBrowserViewable(contentType: string): boolean;
17
+ /**
18
+ * Fetch asset metadata from Contentful by asset ID.
19
+ * Uses the shared Contentful client with rate limiting and retry logic.
20
+ *
21
+ * @param config - Contentful configuration
22
+ * @param assetId - The Contentful asset ID
23
+ * @param options - Optional fetch options (preview, cache settings)
24
+ * @returns The asset response or null if not found
25
+ */
26
+ export declare function contentfulAssetRest(config: ContentfulConfig, assetId: string, options: FetchOptions): Promise<ContentfulAssetResponse | null>;
27
+ export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetsPageRest, isAnimationAsset, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './media-library';
28
+ //# sourceMappingURL=asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,uBAAuB,EAAuB,MAAM,WAAW,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAc/D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAazC;AAED,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Contentful Asset API Module
3
+ *
4
+ * Provides functions for fetching and serving Contentful assets
5
+ * with proper caching and Content-Disposition handling.
6
+ */
7
+ import { getContentfulClient } from '../client.js';
8
+ import { getCacheTags } from '../revalidation/utils.js';
9
+ /**
10
+ * Content types that browsers can display inline
11
+ */
12
+ const BROWSER_VIEWABLE_TYPES = [
13
+ 'application/pdf',
14
+ 'text/plain',
15
+ 'text/html',
16
+ 'text/css',
17
+ 'text/javascript',
18
+ 'application/json',
19
+ ];
20
+ /**
21
+ * Check if a content type can be displayed inline in the browser.
22
+ * Returns true for PDFs, images, videos, and common text formats.
23
+ *
24
+ * @param contentType - MIME type to check
25
+ * @returns true if the browser can display this content type inline
26
+ */
27
+ export function isBrowserViewable(contentType) {
28
+ // All images and videos are viewable
29
+ if (contentType.startsWith('image/') || contentType.startsWith('video/')) {
30
+ return true;
31
+ }
32
+ return BROWSER_VIEWABLE_TYPES.includes(contentType);
33
+ }
34
+ /**
35
+ * Fetch asset metadata from Contentful by asset ID.
36
+ * Uses the shared Contentful client with rate limiting and retry logic.
37
+ *
38
+ * @param config - Contentful configuration
39
+ * @param assetId - The Contentful asset ID
40
+ * @param options - Optional fetch options (preview, cache settings)
41
+ * @returns The asset response or null if not found
42
+ */
43
+ export async function contentfulAssetRest(config, assetId, options) {
44
+ const client = getContentfulClient(config, options.preview);
45
+ // Get cache tags for this asset
46
+ const cacheTags = getCacheTags('asset', assetId, options?.preview);
47
+ return client.getAsset(assetId, {
48
+ ...options,
49
+ next: {
50
+ revalidate: options?.next?.revalidate ?? 86400, // Default 24 hours
51
+ tags: [...cacheTags, ...(options?.next?.tags ?? [])],
52
+ },
53
+ });
54
+ }
55
+ export { assetToMediaLibraryItem, buildAssetThumbUrl, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAssetsPageRest, isAnimationAsset, isMediaLibraryKind, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, } from './media-library.js';
56
+ //# sourceMappingURL=asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/api/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgC,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,qCAAqC;IACrC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAwB,EACxB,OAAe,EACf,OAAqB;IAErB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE;YACJ,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,IAAI,KAAK,EAAE,mBAAmB;YACnE,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACrD;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAIzB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { IBanner } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ /**
5
+ * Fetches all banners from Contentful
6
+ */
7
+ export declare function contentfulBannerRest(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IBanner[] | null>>;
8
+ //# sourceMappingURL=banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/api/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAI1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAAY,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAStF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CA6GxC"}
@@ -0,0 +1,96 @@
1
+ import { getContentfulClient } from '../client.js';
2
+ import { enrichAllAssets } from '../converters/enrichAssets.js';
3
+ import { getCacheTags } from '../revalidation/index.js';
4
+ import { withCmsQueryContext } from '../telemetry/queryContext.js';
5
+ import { withRetry } from '../utils/index.js';
6
+ import { convertAllAssets, convertAllIncludes, convertAllRawAssets, createFullConverterContext, } from './helpers.js';
7
+ /**
8
+ * Fetches all banners from Contentful
9
+ */
10
+ export async function contentfulBannerRest(context, config, options) {
11
+ const client = getContentfulClient(config, options.preview);
12
+ // Set cache tags for this request
13
+ const bannerCacheTags = getCacheTags('banner', undefined, options.preview);
14
+ const requestOptions = {
15
+ ...options,
16
+ next: {
17
+ ...options?.next,
18
+ tags: bannerCacheTags,
19
+ },
20
+ };
21
+ const allBanners = [];
22
+ const errors = [];
23
+ const pageSize = 100;
24
+ let skip = 0;
25
+ let hasMore = true;
26
+ const fetchFn = async () => {
27
+ while (hasMore) {
28
+ try {
29
+ const page = Math.floor(skip / pageSize) + 1;
30
+ const operation = page > 1 ? `Reading all banners (page ${page})` : 'Reading all banners';
31
+ const bannerResponse = await withCmsQueryContext({ operation }, () => client.getEntries({
32
+ content_type: 'banner',
33
+ include: 2,
34
+ locale: options?.locale,
35
+ limit: pageSize,
36
+ skip,
37
+ }, requestOptions));
38
+ if (!bannerResponse.items.length) {
39
+ hasMore = false;
40
+ break;
41
+ }
42
+ const includes = convertAllIncludes(bannerResponse);
43
+ const assets = convertAllAssets(bannerResponse, context);
44
+ const rawAssets = convertAllRawAssets(bannerResponse);
45
+ const externalVideoEmbeds = await enrichAllAssets(assets, includes, options);
46
+ const fullContext = createFullConverterContext(context, includes, assets, rawAssets, externalVideoEmbeds, options);
47
+ for (const bannerEntry of bannerResponse.items) {
48
+ if (!bannerEntry.fields)
49
+ continue;
50
+ try {
51
+ const converted = context.bannerResolver(fullContext, bannerEntry);
52
+ allBanners.push(converted);
53
+ }
54
+ catch (error) {
55
+ const entryId = bannerEntry.sys.id;
56
+ const entryType = bannerEntry.sys.contentType?.sys?.id;
57
+ const errorMessage = error instanceof Error ? error.message : 'Unknown conversion error';
58
+ errors.push({
59
+ entryId,
60
+ entryType,
61
+ message: errorMessage,
62
+ error,
63
+ });
64
+ }
65
+ }
66
+ // Log errors in production
67
+ if (fullContext.errors.length > 0 &&
68
+ typeof process !== 'undefined' &&
69
+ process.env?.NODE_ENV === 'production') {
70
+ console.error(`CMS conversion errors for banner:`, {
71
+ errors: fullContext.errors,
72
+ });
73
+ }
74
+ }
75
+ catch (error) {
76
+ const entryId = 'unknown';
77
+ const entryType = 'banner';
78
+ const errorMessage = error instanceof Error ? error.message : 'Unknown conversion error';
79
+ const cmsError = {
80
+ entryId,
81
+ entryType,
82
+ message: errorMessage,
83
+ error,
84
+ };
85
+ errors.push(cmsError);
86
+ }
87
+ skip += pageSize;
88
+ }
89
+ return { data: allBanners, errors };
90
+ };
91
+ if (options.retry) {
92
+ return await withRetry(fetchFn, options.retry);
93
+ }
94
+ return await fetchFn();
95
+ }
96
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/api/banner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { BaseConverterContext } from '../converters/helpers';
2
+ import type { ContentfulConfig, FetchOptions } from '../types';
3
+ /**
4
+ * Entry in the breadcrumb lookup map.
5
+ * Maps a normalized path (e.g. "/locations/new-york/") to title and optional override.
6
+ */
7
+ export interface BreadcrumbLookupEntry {
8
+ title: string;
9
+ breadcrumbLabel?: string | null;
10
+ }
11
+ /**
12
+ * Map of normalized path (href with trailing slash) to breadcrumb label info.
13
+ * Used to resolve breadcrumb segment labels from URL paths.
14
+ */
15
+ export type BreadcrumbLookup = Map<string, BreadcrumbLookupEntry>;
16
+ /**
17
+ * Fetches all link data and builds a breadcrumb lookup map.
18
+ * Keys are normalized paths (e.g. "/locations/new-york/"); values are title and optional breadcrumb override.
19
+ *
20
+ * Uses force-cache with revalidate 3600. Cache invalidation is driven by the
21
+ * underlying link fetches (page, article, articleType, tag, tagType, person tags).
22
+ * Safe to call on every request; responses are cached.
23
+ *
24
+ * @param context - Converter context with urlCalculators
25
+ * @param config - Contentful configuration
26
+ * @param options - Fetch options (preview, cache, etc.)
27
+ * @returns Promise resolving to BreadcrumbLookup map
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const lookup = await getBreadcrumbLookup(context, config, {
32
+ * preview: false,
33
+ * next: { revalidate: 3600 }
34
+ * });
35
+ * const label = lookup.get('/locations/new-york/')?.breadcrumbLabel
36
+ * ?? lookup.get('/locations/new-york/')?.title;
37
+ * ```
38
+ */
39
+ export declare function getBreadcrumbLookup(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<BreadcrumbLookup>;
40
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/api/breadcrumb.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAU/D;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAoBlE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B"}
@@ -0,0 +1,60 @@
1
+ import { buildListingLinkCacheOptions } from '../navigation/cacheOptions.js';
2
+ import { contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, } from './links.js';
3
+ function normalizeHref(href) {
4
+ if (!href)
5
+ return '/';
6
+ return href.startsWith('/') ? (href.endsWith('/') ? href : `${href}/`) : `/${href}/`;
7
+ }
8
+ function addLinksToLookup(lookup, links) {
9
+ for (const link of links) {
10
+ const normalized = normalizeHref(link.href);
11
+ lookup.set(normalized, {
12
+ title: link.title,
13
+ breadcrumbLabel: link.breadcrumbTitle ?? undefined,
14
+ });
15
+ }
16
+ }
17
+ /**
18
+ * Fetches all link data and builds a breadcrumb lookup map.
19
+ * Keys are normalized paths (e.g. "/locations/new-york/"); values are title and optional breadcrumb override.
20
+ *
21
+ * Uses force-cache with revalidate 3600. Cache invalidation is driven by the
22
+ * underlying link fetches (page, article, articleType, tag, tagType, person tags).
23
+ * Safe to call on every request; responses are cached.
24
+ *
25
+ * @param context - Converter context with urlCalculators
26
+ * @param config - Contentful configuration
27
+ * @param options - Fetch options (preview, cache, etc.)
28
+ * @returns Promise resolving to BreadcrumbLookup map
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const lookup = await getBreadcrumbLookup(context, config, {
33
+ * preview: false,
34
+ * next: { revalidate: 3600 }
35
+ * });
36
+ * const label = lookup.get('/locations/new-york/')?.breadcrumbLabel
37
+ * ?? lookup.get('/locations/new-york/')?.title;
38
+ * ```
39
+ */
40
+ export async function getBreadcrumbLookup(context, config, options) {
41
+ const cacheOptions = buildListingLinkCacheOptions(options);
42
+ // Breadcrumbs need routable entry links — not customType or link wrappers.
43
+ const [pages, articles, articleTypes, tags, tagTypes, persons] = await Promise.all([
44
+ contentfulAllPageLinks(context, config, cacheOptions),
45
+ contentfulAllArticleLinks(context, config, cacheOptions),
46
+ contentfulAllArticleTypeLinks(context, config, cacheOptions),
47
+ contentfulAllTagLinks(context, config, cacheOptions),
48
+ contentfulAllTagTypeLinks(context, config, cacheOptions),
49
+ contentfulAllPersonLinks(context, config, cacheOptions),
50
+ ]);
51
+ const lookup = new Map();
52
+ addLinksToLookup(lookup, pages.data);
53
+ addLinksToLookup(lookup, articles.data);
54
+ addLinksToLookup(lookup, articleTypes.data);
55
+ addLinksToLookup(lookup, tags.data);
56
+ addLinksToLookup(lookup, tagTypes.data);
57
+ addLinksToLookup(lookup, persons.data);
58
+ return lookup;
59
+ }
60
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/api/breadcrumb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAiBjB,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;AACvF,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAwB,EACxB,KAA4D;IAE5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,SAAS;SACnD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6B,EAC7B,MAAwB,EACxB,OAAqB;IAErB,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAE3D,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjF,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACrD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACxD,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QAC5D,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACpD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACxD,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;KACxD,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqB,IAAI,GAAG,EAAE,CAAC;IAE3C,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5C,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC;AAChB,CAAC"}