@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,315 @@
1
+ /**
2
+ * CMS media library — list all space assets/entries for cms-dev inventory pages.
3
+ */
4
+ import { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, } from '@se-studio/core-data-types';
5
+ import { getContentfulClient, } from '../client.js';
6
+ export { isMediaLibraryKind, MEDIA_LIBRARY_KINDS, };
7
+ export const MEDIA_LIBRARY_DEFAULT_LIMIT = 50;
8
+ export const MEDIA_LIBRARY_MAX_LIMIT = 100;
9
+ export const MEDIA_LIBRARY_THUMB_WIDTH = 320;
10
+ const DEFAULT_ORDER = '-sys.updatedAt';
11
+ const CACHE_TAG = 'cms-media-library';
12
+ const DEFAULT_REVALIDATE = 300;
13
+ /** Contentful max assets per request. */
14
+ const ANIMATION_SCAN_PAGE_SIZE = 1000;
15
+ /** Safety only — 100 × 1000 = 100k assets. Beyond this, set truncated. */
16
+ const ANIMATION_SCAN_MAX_PAGES = 100;
17
+ export function clampMediaLibraryLimit(limit) {
18
+ if (limit == null || Number.isNaN(limit) || limit < 1) {
19
+ return MEDIA_LIBRARY_DEFAULT_LIMIT;
20
+ }
21
+ return Math.min(Math.floor(limit), MEDIA_LIBRARY_MAX_LIMIT);
22
+ }
23
+ export function clampMediaLibraryPage(page) {
24
+ if (page == null || Number.isNaN(page) || page < 1) {
25
+ return 1;
26
+ }
27
+ return Math.floor(page);
28
+ }
29
+ /**
30
+ * True when an asset looks like a Lottie / DotLottie animation source.
31
+ * Non-Lottie JSON may still match application/json (shown as possible animations).
32
+ */
33
+ export function isAnimationAsset(contentType, fileName) {
34
+ const name = (fileName ?? '').toLowerCase();
35
+ if (name.endsWith('.lottie'))
36
+ return true;
37
+ // Exclude npm package manifests that sometimes land in media spaces
38
+ if (name === 'package.json' || name.endsWith('package-lock.json')) {
39
+ return false;
40
+ }
41
+ const mime = (contentType ?? '').toLowerCase();
42
+ if (mime === 'application/json')
43
+ return true;
44
+ if (name.endsWith('.json') &&
45
+ (mime === '' || mime === 'text/plain' || mime.startsWith('application/'))) {
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ export function mediaLibraryKindForAsset(contentType, fileName) {
51
+ const mime = (contentType ?? '').toLowerCase();
52
+ if (mime.startsWith('image/'))
53
+ return 'images';
54
+ if (mime.startsWith('video/'))
55
+ return 'videos';
56
+ if (isAnimationAsset(contentType, fileName))
57
+ return 'animations';
58
+ return null;
59
+ }
60
+ /**
61
+ * Build a Contentful Images API thumbnail URL. Only for images.ctfassets.net hosts.
62
+ */
63
+ export function buildAssetThumbUrl(rawUrl, width = MEDIA_LIBRARY_THUMB_WIDTH) {
64
+ if (!rawUrl)
65
+ return null;
66
+ const absolute = rawUrl.startsWith('//') ? `https:${rawUrl}` : rawUrl;
67
+ let parsed;
68
+ try {
69
+ parsed = new URL(absolute);
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ if (!parsed.hostname.endsWith('ctfassets.net')) {
75
+ return absolute;
76
+ }
77
+ // Images API only applies to images.ctfassets.net
78
+ if (!parsed.hostname.startsWith('images.')) {
79
+ return null;
80
+ }
81
+ parsed.searchParams.set('w', String(width));
82
+ parsed.searchParams.set('h', String(width));
83
+ parsed.searchParams.set('fit', 'fill');
84
+ parsed.searchParams.set('f', 'faces');
85
+ parsed.searchParams.set('q', '75');
86
+ return parsed.toString();
87
+ }
88
+ function normalizeAssetUrl(url) {
89
+ if (!url)
90
+ return null;
91
+ return url.startsWith('//') ? `https:${url}` : url;
92
+ }
93
+ export function assetToMediaLibraryItem(asset, kind) {
94
+ const file = asset.fields?.file;
95
+ const contentType = file?.contentType ?? null;
96
+ const fileName = file?.fileName ?? null;
97
+ const url = normalizeAssetUrl(file?.url);
98
+ const width = file?.details?.image?.width ?? null;
99
+ const height = file?.details?.image?.height ?? null;
100
+ const sizeBytes = file?.details?.size ?? null;
101
+ return {
102
+ kind,
103
+ id: asset.sys.id,
104
+ title: asset.fields?.title ?? null,
105
+ fileName,
106
+ description: asset.fields?.description ?? null,
107
+ contentType,
108
+ url,
109
+ thumbUrl: kind === 'images' ? buildAssetThumbUrl(url) : null,
110
+ width,
111
+ height,
112
+ sizeBytes,
113
+ updatedAt: asset.sys.updatedAt ?? null,
114
+ };
115
+ }
116
+ function listFetchOptions(preview, options) {
117
+ // Preview drafts must not stick in the Next Data Cache for minutes without webhook tags.
118
+ const cache = options?.cache ?? (preview ? 'no-store' : 'force-cache');
119
+ return {
120
+ preview,
121
+ cache,
122
+ next: {
123
+ revalidate: options?.next?.revalidate ?? (preview ? false : DEFAULT_REVALIDATE),
124
+ tags: [CACHE_TAG, ...(options?.next?.tags ?? [])],
125
+ },
126
+ };
127
+ }
128
+ /**
129
+ * One page of Contentful assets (CDA/CPA `/assets`).
130
+ */
131
+ export async function contentfulAssetsPageRest(config, options = {}) {
132
+ const preview = options.preview ?? true;
133
+ const client = getContentfulClient(config, preview);
134
+ const limit = options.limit ?? MEDIA_LIBRARY_DEFAULT_LIMIT;
135
+ const skip = options.skip ?? 0;
136
+ const query = {
137
+ limit,
138
+ skip,
139
+ order: options.order ?? DEFAULT_ORDER,
140
+ };
141
+ if (options.mimetypeGroup) {
142
+ query.mimetype_group = options.mimetypeGroup;
143
+ }
144
+ return client.getAssets(query, listFetchOptions(preview, options.fetchOptions));
145
+ }
146
+ function assetMapFromIncludes(includes) {
147
+ const map = new Map();
148
+ for (const asset of includes?.Asset ?? []) {
149
+ if (asset?.sys?.id) {
150
+ map.set(asset.sys.id, asset);
151
+ }
152
+ }
153
+ return map;
154
+ }
155
+ /**
156
+ * List one page of the media library for a given kind.
157
+ */
158
+ export async function listMediaLibraryPage(config, kind, options = {}) {
159
+ const page = clampMediaLibraryPage(options.page);
160
+ const limit = clampMediaLibraryLimit(options.limit);
161
+ const preview = options.preview ?? true;
162
+ const skip = (page - 1) * limit;
163
+ const generatedAt = new Date().toISOString();
164
+ if (kind === 'external-videos') {
165
+ return listExternalVideosPage(config, {
166
+ page,
167
+ limit,
168
+ skip,
169
+ preview,
170
+ generatedAt,
171
+ fetchOptions: options.fetchOptions,
172
+ });
173
+ }
174
+ if (kind === 'images' || kind === 'videos') {
175
+ const mimetypeGroup = kind === 'images' ? 'image' : 'video';
176
+ const response = await contentfulAssetsPageRest(config, {
177
+ preview,
178
+ limit,
179
+ skip,
180
+ mimetypeGroup,
181
+ fetchOptions: options.fetchOptions,
182
+ });
183
+ const items = response.items.map((asset) => assetToMediaLibraryItem(asset, kind));
184
+ return {
185
+ kind,
186
+ page,
187
+ limit,
188
+ total: response.total,
189
+ items,
190
+ generatedAt,
191
+ };
192
+ }
193
+ // animations — scan all asset pages and filter (no reliable mimetype_group)
194
+ return listAnimationsPage(config, {
195
+ page,
196
+ limit,
197
+ skip,
198
+ preview,
199
+ generatedAt,
200
+ fetchOptions: options.fetchOptions,
201
+ });
202
+ }
203
+ /** Exported for unit tests — scan all assets, filter animations, slice page. */
204
+ export async function listAnimationsPage(config, opts) {
205
+ const matched = [];
206
+ let scanned = 0;
207
+ let totalAssets = 0;
208
+ let truncated = false;
209
+ for (let p = 0; p < ANIMATION_SCAN_MAX_PAGES; p++) {
210
+ const response = await contentfulAssetsPageRest(config, {
211
+ preview: opts.preview,
212
+ limit: ANIMATION_SCAN_PAGE_SIZE,
213
+ skip: p * ANIMATION_SCAN_PAGE_SIZE,
214
+ fetchOptions: opts.fetchOptions,
215
+ });
216
+ totalAssets = response.total;
217
+ if (response.items.length === 0)
218
+ break;
219
+ for (const asset of response.items) {
220
+ const file = asset.fields?.file;
221
+ if (!isAnimationAsset(file?.contentType, file?.fileName))
222
+ continue;
223
+ matched.push(assetToMediaLibraryItem(asset, 'animations'));
224
+ }
225
+ scanned += response.items.length;
226
+ if (scanned >= totalAssets)
227
+ break;
228
+ // Hit safety cap without finishing the space
229
+ if (p === ANIMATION_SCAN_MAX_PAGES - 1 && scanned < totalAssets) {
230
+ truncated = true;
231
+ }
232
+ }
233
+ const items = matched.slice(opts.skip, opts.skip + opts.limit);
234
+ return {
235
+ kind: 'animations',
236
+ page: opts.page,
237
+ limit: opts.limit,
238
+ total: matched.length,
239
+ items,
240
+ generatedAt: opts.generatedAt,
241
+ ...(truncated ? { truncated: true } : {}),
242
+ };
243
+ }
244
+ async function listExternalVideosPage(config, opts) {
245
+ const client = getContentfulClient(config, opts.preview);
246
+ const response = await client.getEntries({
247
+ content_type: 'externalVideo',
248
+ limit: opts.limit,
249
+ skip: opts.skip,
250
+ order: DEFAULT_ORDER,
251
+ include: 1,
252
+ }, listFetchOptions(opts.preview, opts.fetchOptions));
253
+ const assets = assetMapFromIncludes(response.includes);
254
+ const items = response.items.map((entry) => {
255
+ const posterId = entry.fields?.posterImage?.sys?.id;
256
+ const poster = posterId ? assets.get(posterId) : undefined;
257
+ const posterFile = poster?.fields?.file;
258
+ const posterUrl = normalizeAssetUrl(posterFile?.url);
259
+ return {
260
+ kind: 'external-videos',
261
+ id: entry.sys.id,
262
+ title: entry.fields?.name ?? null,
263
+ fileName: null,
264
+ description: null,
265
+ contentType: 'externalVideo',
266
+ url: entry.fields?.url ?? null,
267
+ thumbUrl: buildAssetThumbUrl(posterUrl),
268
+ width: posterFile?.details?.image?.width ?? null,
269
+ height: posterFile?.details?.image?.height ?? null,
270
+ sizeBytes: null,
271
+ updatedAt: entry.sys.updatedAt ?? null,
272
+ externalUrl: entry.fields?.url ?? null,
273
+ };
274
+ });
275
+ return {
276
+ kind: 'external-videos',
277
+ page: opts.page,
278
+ limit: opts.limit,
279
+ total: response.total,
280
+ items,
281
+ generatedAt: opts.generatedAt,
282
+ };
283
+ }
284
+ /**
285
+ * Render a media library page as Markdown for agents.
286
+ */
287
+ export function mediaLibraryPageToMarkdown(page) {
288
+ const totalPages = Math.max(1, Math.ceil(page.total / page.limit) || 1);
289
+ const lines = [
290
+ `# CMS media — ${page.kind} (page ${page.page}/${totalPages}, total ${page.total})`,
291
+ '',
292
+ `Generated: ${page.generatedAt}`,
293
+ ];
294
+ if (page.truncated) {
295
+ lines.push('');
296
+ lines.push('> **truncated:** asset scan hit the safety cap; `total` may under-count animations.');
297
+ }
298
+ lines.push('', '| id | title | fileName | description | dimensions | contentType | url |', '|----|-------|----------|-------------|------------|-------------|-----|');
299
+ for (const item of page.items) {
300
+ const dims = item.width != null && item.height != null ? `${item.width}×${item.height}` : '—';
301
+ lines.push(`| ${escapeMdCell(item.id)} | ${escapeMdCell(item.title)} | ${escapeMdCell(item.fileName)} | ${escapeMdCell(item.description)} | ${dims} | ${escapeMdCell(item.contentType)} | ${escapeMdCell(item.externalUrl ?? item.url)} |`);
302
+ }
303
+ if (page.items.length === 0) {
304
+ lines.push('');
305
+ lines.push('_No items on this page._');
306
+ }
307
+ lines.push('');
308
+ return lines.join('\n');
309
+ }
310
+ function escapeMdCell(value) {
311
+ if (value == null || value === '')
312
+ return '—';
313
+ return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ').trim();
314
+ }
315
+ //# sourceMappingURL=media-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-library.js","sourceRoot":"","sources":["../../src/api/media-library.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { INavigation } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { ContentfulConfig, FetchOptions } from '../types';
4
+ export { buildFlatNavigationCacheOptions, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, } from '../navigation/cacheOptions';
5
+ export { withFlatNavRequestCache } from '../navigation/requestCache';
6
+ /**
7
+ * Fetches flat navigation caches and assembles a navigation tree by root entry id.
8
+ */
9
+ export declare function getNavigation(navigationId: string, context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<INavigation | undefined>;
10
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/api/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAKlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;GAEG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CASlC"}
@@ -0,0 +1,18 @@
1
+ import { assembleNavigationById } from '../navigation/assembly.js';
2
+ import { buildFlatNavigationCacheOptions } from '../navigation/cacheOptions.js';
3
+ import { getInternalLinkIndex } from '../navigation/linkIndex.js';
4
+ import { getNavigationRegistry } from '../navigation/registry.js';
5
+ export { buildFlatNavigationCacheOptions, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, } from '../navigation/cacheOptions.js';
6
+ export { withFlatNavRequestCache } from '../navigation/requestCache.js';
7
+ /**
8
+ * Fetches flat navigation caches and assembles a navigation tree by root entry id.
9
+ */
10
+ export async function getNavigation(navigationId, context, config, options) {
11
+ const cacheOptions = buildFlatNavigationCacheOptions(options);
12
+ const [registry, linkIndex] = await Promise.all([
13
+ getNavigationRegistry(context, config, cacheOptions),
14
+ getInternalLinkIndex(context, config, cacheOptions),
15
+ ]);
16
+ return assembleNavigationById(navigationId, registry, linkIndex);
17
+ }
18
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/api/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,OAA6B,EAC7B,MAAwB,EACxB,OAAqB;IAErB,MAAM,YAAY,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACpD,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;KACpD,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { IBasePage } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ /**
5
+ * Fetches a page from Contentful by slug, or a **page variant** merged onto its original page
6
+ * when no standalone page exists for that slug.
7
+ *
8
+ * @param context - Converter context
9
+ * @param config - Contentful configuration
10
+ * @param slug - Page or page variant slug
11
+ * @param options - Fetch options (locale, preview, caching, etc.)
12
+ * @returns Promise resolving to IBasePage or null if not found
13
+ */
14
+ export declare function contentfulPageRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: FetchOptions): Promise<CmsResponse<IBasePage | null>>;
15
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/api/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5E;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAsCxC"}
@@ -0,0 +1,39 @@
1
+ import { buildMergedPageFromVariantEntry } from '../converters/pageVariantMerge.js';
2
+ import { fetchSingleEntity } from './helpers.js';
3
+ /**
4
+ * Fetches a page from Contentful by slug, or a **page variant** merged onto its original page
5
+ * when no standalone page exists for that slug.
6
+ *
7
+ * @param context - Converter context
8
+ * @param config - Contentful configuration
9
+ * @param slug - Page or page variant slug
10
+ * @param options - Fetch options (locale, preview, caching, etc.)
11
+ * @returns Promise resolving to IBasePage or null if not found
12
+ */
13
+ export async function contentfulPageRest(context, config, slug, options) {
14
+ const pageResponse = await fetchSingleEntity(context, config, {
15
+ contentType: 'page',
16
+ cacheTagType: 'page',
17
+ cacheTagIdentifier: slug,
18
+ query: { 'fields.slug': slug },
19
+ resolver: (ctx, entry) => ctx.pageResolver(ctx, entry),
20
+ errorLogContext: { slug },
21
+ }, options);
22
+ if (pageResponse.data) {
23
+ return pageResponse;
24
+ }
25
+ const variantResponse = await fetchSingleEntity(context, config, {
26
+ contentType: 'pageVariant',
27
+ cacheTagType: 'pageVariant',
28
+ cacheTagIdentifier: slug,
29
+ query: { 'fields.slug': slug },
30
+ resolver: (ctx, entry) => buildMergedPageFromVariantEntry(ctx, entry),
31
+ errorLogContext: { slug, contentType: 'pageVariant' },
32
+ logOperation: 'Reading page variant',
33
+ }, { ...options, include: options.include ?? 8 });
34
+ return {
35
+ data: variantResponse.data,
36
+ errors: [...pageResponse.errors, ...variantResponse.errors],
37
+ };
38
+ }
39
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/api/page.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA6B,EAC7B,MAAwB,EACxB,IAAY,EACZ,OAAqB;IAErB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAC1C,OAAO,EACP,MAAM,EACN;QACE,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,IAAI;QACxB,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;QACtD,eAAe,EAAE,EAAE,IAAI,EAAE;KAC1B,EACD,OAAO,CACR,CAAC;IAEF,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAC7C,OAAO,EACP,MAAM,EACN;QACE,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,aAAa;QAC3B,kBAAkB,EAAE,IAAI;QACxB,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;QAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC;QACrE,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;QACrD,YAAY,EAAE,sBAAsB;KACrC,EACD,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,EAAE,CAC9C,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { BaseConverterContext } from '../converters/helpers';
2
+ import type { IContentfulPerson } from '../converters/person';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ export interface PersonFetchOptions extends FetchOptions {
5
+ customType?: string;
6
+ }
7
+ /**
8
+ * Fetches a person from Contentful by slug
9
+ *
10
+ * @param context - Converter context
11
+ * @param config - Contentful configuration
12
+ * @param slug - Person slug to fetch
13
+ * @param options - Fetch options (locale, preview, caching, etc.)
14
+ * @returns Promise resolving to IContentfulPerson or null if not found
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const person = await contentfulPersonRest(
19
+ * context,
20
+ * {
21
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
22
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
23
+ * },
24
+ * 'john-doe',
25
+ * {
26
+ * locale: 'en-US',
27
+ * cache: {
28
+ * tags: ['person#john-doe'],
29
+ * revalidate: 3600
30
+ * },
31
+ * customType: 'team-member' // Optional custom type for templates
32
+ * }
33
+ * );
34
+ * ```
35
+ */
36
+ export declare function contentfulPersonRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: PersonFetchOptions): Promise<CmsResponse<IContentfulPerson | null>>;
37
+ //# sourceMappingURL=person.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/api/person.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,OAAO,KAAK,EAAY,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AActF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAiJhD"}
@@ -0,0 +1,135 @@
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 a person from Contentful by slug
11
+ *
12
+ * @param context - Converter context
13
+ * @param config - Contentful configuration
14
+ * @param slug - Person slug to fetch
15
+ * @param options - Fetch options (locale, preview, caching, etc.)
16
+ * @returns Promise resolving to IContentfulPerson or null if not found
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const person = await contentfulPersonRest(
21
+ * context,
22
+ * {
23
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
24
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
25
+ * },
26
+ * 'john-doe',
27
+ * {
28
+ * locale: 'en-US',
29
+ * cache: {
30
+ * tags: ['person#john-doe'],
31
+ * revalidate: 3600
32
+ * },
33
+ * customType: 'team-member' // Optional custom type for templates
34
+ * }
35
+ * );
36
+ * ```
37
+ */
38
+ export async function contentfulPersonRest(context, config, slug, options) {
39
+ const client = getContentfulClient(config, options.preview);
40
+ // Set cache tags for this request
41
+ const personCacheTags = getCacheTags('person', 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: [...personCacheTags, ...customTypeCacheTags],
50
+ },
51
+ };
52
+ const fetchFn = async () => {
53
+ const fetchProfile = options.fetchProfile ?? 'page';
54
+ const bundleCustomType = fetchProfile === 'page' && !!options?.customType;
55
+ const personInclude = resolveIncludeDepth('person', options);
56
+ const listingSelect = fetchProfile === 'listing' ? getSingleEntityListingSelect('person') : undefined;
57
+ const personPromise = withCmsQueryContext({ operation: operationLabel('person'), identifier: slug }, () => client.getEntries({
58
+ content_type: 'person',
59
+ 'fields.slug': slug,
60
+ include: personInclude,
61
+ locale: options?.locale,
62
+ limit: 1,
63
+ ...(listingSelect && { select: listingSelect }),
64
+ }, requestOptions));
65
+ const customTypePromise = bundleCustomType
66
+ ? withCmsQueryContext({ operation: operationLabel('customType'), identifier: options.customType }, () => client.getEntries({
67
+ content_type: 'customType',
68
+ 'fields.slug': options.customType,
69
+ include: options.include ?? PAGE_BUNDLED_CUSTOM_TYPE_INCLUDE,
70
+ locale: options?.locale,
71
+ limit: 1,
72
+ }, requestOptions))
73
+ : Promise.resolve(null);
74
+ const [personResponse, customTypeResponse] = await Promise.all([
75
+ personPromise,
76
+ customTypePromise,
77
+ ]);
78
+ const personEntry = personResponse.items[0];
79
+ if (!personEntry?.fields) {
80
+ return { data: null, errors: [] };
81
+ }
82
+ const customTypeEntry = customTypeResponse?.items[0];
83
+ try {
84
+ const assets = convertAllAssets(personResponse, context);
85
+ const rawAssets = convertAllRawAssets(personResponse);
86
+ const includes = convertAllIncludes(personResponse);
87
+ if (customTypeResponse) {
88
+ const customAssets = convertAllAssets(customTypeResponse, context);
89
+ const customRawAssets = convertAllRawAssets(customTypeResponse);
90
+ const customIncludes = convertAllIncludes(customTypeResponse);
91
+ for (const [key, value] of customAssets)
92
+ assets.set(key, value);
93
+ for (const [key, value] of customRawAssets)
94
+ rawAssets.set(key, value);
95
+ for (const [key, value] of customIncludes)
96
+ includes.set(key, value);
97
+ }
98
+ const externalVideoEmbeds = await enrichAllAssets(assets, includes, options);
99
+ const fullContext = createFullConverterContext(context, includes, assets, rawAssets, externalVideoEmbeds, options);
100
+ let converted = context.personResolver(fullContext, personEntry, bundleCustomType ? customTypeEntry : undefined);
101
+ if (converted) {
102
+ converted = await finalizeModelIconsAndNavigation(converted, context, config, options);
103
+ }
104
+ // Log errors in production
105
+ if (fullContext.errors.length > 0 &&
106
+ typeof process !== 'undefined' &&
107
+ process.env?.NODE_ENV === 'production') {
108
+ console.error(`CMS conversion errors for person:`, {
109
+ entryId: personEntry.sys.id,
110
+ slug,
111
+ errors: fullContext.errors,
112
+ });
113
+ }
114
+ return { data: converted, errors: fullContext.errors };
115
+ }
116
+ catch (error) {
117
+ const entryId = personEntry?.sys.id || 'unknown';
118
+ const entryType = personEntry?.sys.contentType?.sys?.id;
119
+ const errorMessage = error instanceof Error ? error.message : 'Unknown conversion error';
120
+ const cmsError = {
121
+ entryId,
122
+ entryType,
123
+ message: errorMessage,
124
+ error,
125
+ };
126
+ return { data: null, errors: [cmsError] };
127
+ }
128
+ };
129
+ // Apply retry logic if configured
130
+ if (options?.retry) {
131
+ return await withRetry(fetchFn, options.retry);
132
+ }
133
+ return await fetchFn();
134
+ }
135
+ //# sourceMappingURL=person.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/api/person.ts"],"names":[],"mappings":"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"}