@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 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/converters/schema.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAA0B,EAC1B,KAA8D;IAE9D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpC,wFAAwF;IACxF,sFAAsF;IACtF,oEAAoE;IACpE,+FAA+F;IAC/F,kCAAkC;IAClC,MAAM,SAAS,GAAG,MAAiB,CAAC;IACpC,MAAM,YAAY,GAChB,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjG,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,cAAc,QAAQ,EAAE;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * SVG processing utilities for icon sprite generation.
3
+ * These functions fetch and process SVG content during data conversion.
4
+ */
5
+ export type SvgIssueCode = 'CSS_FILL_STROKE' | 'CSS_COMPLEX_SELECTORS' | 'CSS_AT_RULES' | 'CSS_VARS' | 'DEFS_REFERENCES' | 'NESTED_USE' | 'EMBEDDED_IMAGE';
6
+ export interface SvgIssue {
7
+ severity: 'warn';
8
+ code: SvgIssueCode;
9
+ message: string;
10
+ }
11
+ /**
12
+ * Inspects raw SVG content for patterns that are known to render incorrectly
13
+ * or unreliably when the SVG is embedded as a <symbol> in a sprite sheet and
14
+ * referenced via <use>.
15
+ *
16
+ * Call this before or alongside processSvgForSprite to surface actionable
17
+ * warnings in server logs at conversion time.
18
+ *
19
+ * @param svgContent - The raw SVG content
20
+ * @param iconId - Unique identifier used in log messages
21
+ * @returns Array of issues found (empty = no known problems)
22
+ */
23
+ export declare function detectSvgIssues(svgContent: string, iconId: string): SvgIssue[];
24
+ /**
25
+ * Converts CSS class-based fill/stroke rules (e.g. Illustrator's .st0) to
26
+ * inline presentation attributes on the matching elements, then removes the
27
+ * <style> block (and any now-empty <defs>).
28
+ *
29
+ * Only handles simple single-class selectors (.st0 { fill: #xxx }). Complex
30
+ * selectors (child combinators, pseudo-classes, compound classes, etc.) are
31
+ * left untouched — the caller should have already detected CSS_COMPLEX_SELECTORS
32
+ * and decided not to call this function in that case.
33
+ *
34
+ * @param svgContent - Raw SVG markup
35
+ * @returns SVG markup with class-based fills/strokes converted to attributes
36
+ */
37
+ export declare function inlineSvgClassStyles(svgContent: string): string;
38
+ /**
39
+ * Fetches SVG content from a URL.
40
+ * Uses the parent request's cache tags (page-level) for revalidation.
41
+ *
42
+ * @param url - The URL to fetch the SVG from
43
+ * @returns The SVG content as a string
44
+ * @throws Error if the fetch fails
45
+ */
46
+ export declare function fetchSvgContent(url: string): Promise<string>;
47
+ /**
48
+ * Processes SVG content for use in a sprite sheet.
49
+ * Extracts the SVG content and wraps it in a symbol element.
50
+ * Emits console.warn for any patterns that are known to render incorrectly
51
+ * or unreliably via <use> (see detectSvgIssues).
52
+ *
53
+ * @param svgContent - The raw SVG content
54
+ * @param iconId - Unique identifier for the icon
55
+ * @returns Processed SVG symbol element as a string
56
+ */
57
+ export declare function processSvgForSprite(svgContent: string, iconId: string): string;
58
+ //# sourceMappingURL=svgProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svgProcessor.d.ts","sourceRoot":"","sources":["../../src/converters/svgProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,uBAAuB,GACvB,cAAc,GACd,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CA+F9E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAuD/D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA0C9E"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * SVG processing utilities for icon sprite generation.
3
+ * These functions fetch and process SVG content during data conversion.
4
+ */
5
+ /**
6
+ * Inspects raw SVG content for patterns that are known to render incorrectly
7
+ * or unreliably when the SVG is embedded as a <symbol> in a sprite sheet and
8
+ * referenced via <use>.
9
+ *
10
+ * Call this before or alongside processSvgForSprite to surface actionable
11
+ * warnings in server logs at conversion time.
12
+ *
13
+ * @param svgContent - The raw SVG content
14
+ * @param iconId - Unique identifier used in log messages
15
+ * @returns Array of issues found (empty = no known problems)
16
+ */
17
+ export function detectSvgIssues(svgContent, iconId) {
18
+ const issues = [];
19
+ // --- CSS <style> block analysis ---
20
+ const styleBlockMatch = svgContent.match(/<style[^>]*>([\s\S]*?)<\/style>/i);
21
+ if (styleBlockMatch) {
22
+ const styleContent = styleBlockMatch[1] ?? '';
23
+ // fill/stroke rules → class names collide across icons in the same sprite
24
+ // sheet; CSS may also not cross the <use> shadow boundary in all browsers
25
+ if (/\b(fill|stroke)\s*:/i.test(styleContent)) {
26
+ issues.push({
27
+ severity: 'warn',
28
+ code: 'CSS_FILL_STROKE',
29
+ message: `Icon "${iconId}" uses CSS class-based fill/stroke (e.g. Illustrator's .st0). ` +
30
+ 'Class names collide when multiple SVGs share the sprite sheet, and the styles ' +
31
+ 'may not apply through <use>. Convert fills/strokes to inline presentation attributes.',
32
+ });
33
+ }
34
+ // Complex selectors that can't be mechanically inlined
35
+ // Matches: child/sibling operators (> ~ +), attribute selectors ([...]),
36
+ // pseudo-classes (:[a-z], e.g. :hover), compound class selectors (.a.b),
37
+ // element+class (path.x).
38
+ // Note: `:` is only matched when followed by a letter to avoid false-positives
39
+ // from CSS property values such as `fill:#8b6ffe`.
40
+ if (/[>~+[\]]|:[a-zA-Z]|[a-z]\.[\w-]|\.[\w-]+\.[\w-]/i.test(styleContent)) {
41
+ issues.push({
42
+ severity: 'warn',
43
+ code: 'CSS_COMPLEX_SELECTORS',
44
+ message: `Icon "${iconId}" uses complex CSS selectors that cannot be automatically inlined. ` +
45
+ 'Manual SVG cleanup is required.',
46
+ });
47
+ }
48
+ // @font-face / @keyframes won't scope correctly inside a sprite sheet
49
+ if (/@font-face|@keyframes/i.test(styleContent)) {
50
+ issues.push({
51
+ severity: 'warn',
52
+ code: 'CSS_AT_RULES',
53
+ message: `Icon "${iconId}" contains @font-face or @keyframes rules inside a <style> block. ` +
54
+ 'These will not scope correctly when embedded in a sprite sheet.',
55
+ });
56
+ }
57
+ }
58
+ // CSS custom properties — must be defined on the host document to take effect
59
+ if (/var\s*\(/i.test(svgContent)) {
60
+ issues.push({
61
+ severity: 'warn',
62
+ code: 'CSS_VARS',
63
+ message: `Icon "${iconId}" uses CSS custom properties (var(...)). ` +
64
+ 'These must be defined on the host document; they will have no fallback inside the sprite.',
65
+ });
66
+ }
67
+ // url(#...) references to <defs> (gradients, filters, clipPaths, patterns)
68
+ // Work in modern browsers but are fragile across the <use> boundary in older ones
69
+ if (/url\(#[^)]+\)/i.test(svgContent)) {
70
+ issues.push({
71
+ severity: 'warn',
72
+ code: 'DEFS_REFERENCES',
73
+ message: `Icon "${iconId}" uses url(#...) references (gradients, filters, or clipPaths). ` +
74
+ 'These work in modern browsers but may fail in older ones when used inside a sprite.',
75
+ });
76
+ }
77
+ // Nested <use> — internal href targets break when the SVG moves into a foreign sprite sheet
78
+ if (/<use[\s>]/i.test(svgContent)) {
79
+ issues.push({
80
+ severity: 'warn',
81
+ code: 'NESTED_USE',
82
+ message: `Icon "${iconId}" contains nested <use> elements. ` +
83
+ 'Internal href targets may not resolve correctly inside a sprite sheet.',
84
+ });
85
+ }
86
+ // Embedded <image> — unusual in an icon; raster content bloats the sprite
87
+ if (/<image[\s>]/i.test(svgContent)) {
88
+ issues.push({
89
+ severity: 'warn',
90
+ code: 'EMBEDDED_IMAGE',
91
+ message: `Icon "${iconId}" contains an embedded <image> element. ` +
92
+ 'Raster images inside a sprite sheet are unusual and may not render as expected.',
93
+ });
94
+ }
95
+ return issues;
96
+ }
97
+ /**
98
+ * Converts CSS class-based fill/stroke rules (e.g. Illustrator's .st0) to
99
+ * inline presentation attributes on the matching elements, then removes the
100
+ * <style> block (and any now-empty <defs>).
101
+ *
102
+ * Only handles simple single-class selectors (.st0 { fill: #xxx }). Complex
103
+ * selectors (child combinators, pseudo-classes, compound classes, etc.) are
104
+ * left untouched — the caller should have already detected CSS_COMPLEX_SELECTORS
105
+ * and decided not to call this function in that case.
106
+ *
107
+ * @param svgContent - Raw SVG markup
108
+ * @returns SVG markup with class-based fills/strokes converted to attributes
109
+ */
110
+ export function inlineSvgClassStyles(svgContent) {
111
+ const styleBlockMatch = svgContent.match(/<style[^>]*>([\s\S]*?)<\/style>/i);
112
+ if (!styleBlockMatch)
113
+ return svgContent;
114
+ const styleContent = styleBlockMatch[1] ?? '';
115
+ // Build a map of className → { fill?, stroke? } from simple .cls { ... } rules.
116
+ // We skip any rule whose selector contains combinators or pseudo-classes because
117
+ // those can't be mechanically inlined element-by-element.
118
+ const classStyles = {};
119
+ const ruleRegex = /\.([\w-]+)\s*\{([^}]+)\}/g;
120
+ for (const ruleMatch of styleContent.matchAll(ruleRegex)) {
121
+ const className = ruleMatch[1];
122
+ const body = ruleMatch[2];
123
+ if (!className || !body)
124
+ continue;
125
+ const props = {};
126
+ const propRegex = /\b(fill|stroke)\s*:\s*([^;}\s]+)/gi;
127
+ for (const propMatch of body.matchAll(propRegex)) {
128
+ const prop = propMatch[1];
129
+ const value = propMatch[2];
130
+ if (prop && value)
131
+ props[prop.toLowerCase()] = value;
132
+ }
133
+ if (Object.keys(props).length > 0)
134
+ classStyles[className] = props;
135
+ }
136
+ if (Object.keys(classStyles).length === 0)
137
+ return svgContent;
138
+ // Apply the collected styles as presentation attributes on matching elements.
139
+ // Matches any opening tag that carries a class="..." attribute.
140
+ svgContent = svgContent.replace(/(<[a-zA-Z][a-zA-Z0-9]*\b[^>]*?\bclass\s*=\s*["']([^"']*)["'][^>]*?>)/g, (fullTag, _unused, classAttr) => {
141
+ const classes = classAttr.trim().split(/\s+/);
142
+ let extra = '';
143
+ for (const cls of classes) {
144
+ const styles = classStyles[cls];
145
+ if (!styles)
146
+ continue;
147
+ for (const [prop, value] of Object.entries(styles)) {
148
+ // Don't overwrite an existing presentation attribute.
149
+ if (!new RegExp(`\\b${prop}\\s*=`, 'i').test(fullTag)) {
150
+ extra += ` ${prop}="${value}"`;
151
+ }
152
+ }
153
+ }
154
+ if (!extra)
155
+ return fullTag;
156
+ // Insert before the closing > or />.
157
+ return fullTag.replace(/(\s*\/?>)$/, `${extra}$1`);
158
+ });
159
+ // Remove the <style> block and any <defs> that are now empty.
160
+ svgContent = svgContent.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '');
161
+ svgContent = svgContent.replace(/<defs[^>]*>\s*<\/defs>/gi, '');
162
+ return svgContent;
163
+ }
164
+ /**
165
+ * Fetches SVG content from a URL.
166
+ * Uses the parent request's cache tags (page-level) for revalidation.
167
+ *
168
+ * @param url - The URL to fetch the SVG from
169
+ * @returns The SVG content as a string
170
+ * @throws Error if the fetch fails
171
+ */
172
+ export async function fetchSvgContent(url) {
173
+ const response = await fetch(url);
174
+ if (!response.ok) {
175
+ throw new Error(`Failed to fetch SVG from ${url}: ${response.statusText}`);
176
+ }
177
+ return await response.text();
178
+ }
179
+ /**
180
+ * Processes SVG content for use in a sprite sheet.
181
+ * Extracts the SVG content and wraps it in a symbol element.
182
+ * Emits console.warn for any patterns that are known to render incorrectly
183
+ * or unreliably via <use> (see detectSvgIssues).
184
+ *
185
+ * @param svgContent - The raw SVG content
186
+ * @param iconId - Unique identifier for the icon
187
+ * @returns Processed SVG symbol element as a string
188
+ */
189
+ export function processSvgForSprite(svgContent, iconId) {
190
+ // Detect known problematic patterns before processing
191
+ const issues = detectSvgIssues(svgContent, iconId);
192
+ const hasFillStroke = issues.some((i) => i.code === 'CSS_FILL_STROKE');
193
+ const hasComplexSelectors = issues.some((i) => i.code === 'CSS_COMPLEX_SELECTORS');
194
+ if (hasFillStroke && !hasComplexSelectors) {
195
+ // Safe to auto-fix: inline the class-based fills/strokes as presentation attributes.
196
+ svgContent = inlineSvgClassStyles(svgContent);
197
+ // Re-detect on the fixed content so we only warn about issues that remain.
198
+ if (process.env.LOG_SVG_SPRITE) {
199
+ const remaining = detectSvgIssues(svgContent, iconId).filter((i) => i.code !== 'CSS_FILL_STROKE');
200
+ for (const issue of remaining) {
201
+ console.warn(`[SVG sprite] ${issue.message}`);
202
+ }
203
+ }
204
+ }
205
+ else if (process.env.LOG_SVG_SPRITE) {
206
+ for (const issue of issues) {
207
+ console.warn(`[SVG sprite] ${issue.message}`);
208
+ }
209
+ }
210
+ // Parse the SVG to extract viewBox and content
211
+ // Handle optional spaces around equals sign
212
+ const viewBoxMatch = svgContent.match(/viewBox\s*=\s*["']([^"']+)["']/i);
213
+ const viewBox = viewBoxMatch ? viewBoxMatch[1] : '0 0 24 24';
214
+ // Extract the inner content of the SVG (everything between <svg> tags)
215
+ // Remove the opening <svg> tag and closing </svg> tag
216
+ const innerContentMatch = svgContent.match(/<svg[^>]*>([\s\S]*)<\/svg>/i);
217
+ if (!innerContentMatch) {
218
+ throw new Error(`Invalid SVG content: could not parse SVG structure`);
219
+ }
220
+ const innerContent = innerContentMatch[1] ?? '';
221
+ // Create the symbol element
222
+ const symbolId = `icon-${iconId}`;
223
+ return `<symbol id="${symbolId}" viewBox="${viewBox}">${innerContent}</symbol>`;
224
+ }
225
+ //# sourceMappingURL=svgProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svgProcessor.js","sourceRoot":"","sources":["../../src/converters/svgProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { IBaseTag, ITagLink } from '@se-studio/core-data-types';
2
+ import type { Entry } from 'contentful';
3
+ import type { DefaultChainModifier } from '../api';
4
+ import type { BaseCustomTypeSkeleton } from '../baseTypes/baseCustomType';
5
+ import type { BaseTagSkeleton } from '../baseTypes/baseTag';
6
+ import { type ConverterContext } from './helpers';
7
+ export declare function baseTagLinkConverter(context: ConverterContext, entry: Entry<BaseTagSkeleton, DefaultChainModifier, string>): ITagLink;
8
+ /**
9
+ * Base converter for Contentful Tag entries to IBaseTag type
10
+ *
11
+ * This is a minimal implementation that can be extended using
12
+ * the functional composition pattern.
13
+ *
14
+ * @param context - Converter context containing includes and assets
15
+ * @param entry - Contentful entry to convert
16
+ * @param customTypeEntry - Optional custom type entry that defines templates and navigation
17
+ * @returns IBaseTag object
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const tag = baseTagConverter(context, contentfulEntry, customTypeEntry);
22
+ * ```
23
+ */
24
+ export declare function baseTagConverter(context: ConverterContext, entry: Entry<BaseTagSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseTag;
25
+ //# sourceMappingURL=tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/converters/tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAW,QAAQ,EAAU,MAAM,4BAA4B,CAAC;AAEtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAEL,KAAK,gBAAgB,EAQtB,MAAM,WAAW,CAAC;AAWnB,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC1D,QAAQ,CA0CV;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAC3D,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,QAAQ,CA8JV"}
@@ -0,0 +1,170 @@
1
+ import { resolvedMeta } from '@se-studio/core-data-types';
2
+ import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulDescription, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers.js';
3
+ import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
4
+ import { resolveNavigationOrStub } from './navigationItem.js';
5
+ import { resolvePageContent, resolveSchema } from './resolver.js';
6
+ import { baseTagTypeConverter } from './tagType.js';
7
+ import { resolveTemplate } from './template.js';
8
+ export function baseTagLinkConverter(context, entry) {
9
+ const { sys, fields } = entry;
10
+ const { name, cmsLabel, tagType: tagTypeLink, show, ...simpleFields } = fields;
11
+ if (sys.contentType.sys.id !== 'tag') {
12
+ throw new Error(`Invalid content type: expected "tag", got "${sys.contentType.sys.id}"`);
13
+ }
14
+ const tagTypeRawEntry = tagTypeLink ? context.includes.get(tagTypeLink.sys.id) : null;
15
+ const tagTypeEntry = tagTypeRawEntry?.entry;
16
+ const tagType = tagTypeEntry
17
+ ? {
18
+ id: tagTypeEntry.sys.id,
19
+ name: tagTypeEntry.fields.name,
20
+ slug: tagTypeEntry.fields.slug ?? null,
21
+ show: tagTypeEntry.fields.show,
22
+ }
23
+ : tagTypeLink && process.env.LOG_CMS
24
+ ? (() => {
25
+ console.warn(`[CMS] TagType ${tagTypeLink.sys.id} not in includes for tag ${sys.id} (primaryTagSelector will see no slug)`);
26
+ return null;
27
+ })()
28
+ : null;
29
+ return createInternalLink(sys.id, {
30
+ ...simpleFields,
31
+ cmsLabel,
32
+ name,
33
+ useName: false,
34
+ title: name,
35
+ }, context, context.urlCalculators.tag(fields.slug), 'Tag', { tagType, show });
36
+ }
37
+ /**
38
+ * Base converter for Contentful Tag entries to IBaseTag type
39
+ *
40
+ * This is a minimal implementation that can be extended using
41
+ * the functional composition pattern.
42
+ *
43
+ * @param context - Converter context containing includes and assets
44
+ * @param entry - Contentful entry to convert
45
+ * @param customTypeEntry - Optional custom type entry that defines templates and navigation
46
+ * @returns IBaseTag object
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const tag = baseTagConverter(context, contentfulEntry, customTypeEntry);
51
+ * ```
52
+ */
53
+ export function baseTagConverter(context, entry, customTypeEntry) {
54
+ const { sys, fields } = entry;
55
+ const { id } = sys;
56
+ const { name, slug, description, featuredImage, tagType, menu: menuLink, footer: footerLink, template: templateLink, topContent: topContentLinks, structuredData, meta: tagMeta, backgroundColour: tagBackgroundColour, textColour: tagTextColour, ...rest } = fields;
57
+ const resolveNav = shouldResolveNavigation(context);
58
+ const resolveContents = shouldResolveContents(context);
59
+ // Look up the tag type entry from includes
60
+ const tagTypeRawEntry = tagType ? context.includes.get(tagType.sys.id) : null;
61
+ const tagTypeEntry = tagTypeRawEntry?.entry;
62
+ const resolvedTagType = tagTypeEntry
63
+ ? resolveContents
64
+ ? baseTagTypeConverter(context, tagTypeEntry, customTypeEntry)
65
+ : {
66
+ id: tagTypeEntry.sys.id,
67
+ name: tagTypeEntry.fields.name,
68
+ slug: tagTypeEntry.fields.slug ?? null,
69
+ show: tagTypeEntry.fields.show,
70
+ meta: resolvedMeta(tagTypeEntry.fields.meta),
71
+ }
72
+ : null;
73
+ if (!resolveNav && !resolveContents) {
74
+ return {
75
+ type: 'Tag',
76
+ id,
77
+ slug,
78
+ name,
79
+ title: makeContentfulTitle(name, sys.id),
80
+ description: makeContentfulDescription(description, sys.id),
81
+ featuredImage: lookupAsset(context, featuredImage),
82
+ tagType: resolvedTagType,
83
+ href: context.urlCalculators.tag(slug),
84
+ contentCount: 0,
85
+ ...rest,
86
+ backgroundColour: tagBackgroundColour,
87
+ textColour: tagTextColour,
88
+ meta: resolvedMeta(resolvedTagType?.meta, tagMeta),
89
+ };
90
+ }
91
+ const customType = customTypeEntry
92
+ ? context.customTypeResolver(context, customTypeEntry)
93
+ : undefined;
94
+ let template = templateLink ? resolveTemplate(context, templateLink) : null;
95
+ if (!template && tagTypeEntry?.fields.template) {
96
+ template = resolveTemplate(context, tagTypeEntry.fields.template);
97
+ }
98
+ if (!template && customTypeEntry?.fields.template) {
99
+ template = resolveTemplate(context, customTypeEntry.fields.template);
100
+ }
101
+ const menu = menuLink
102
+ ? resolveNavigationOrStub(context, menuLink)
103
+ : tagTypeEntry?.fields.menu
104
+ ? resolveNavigationOrStub(context, tagTypeEntry.fields.menu)
105
+ : customTypeEntry?.fields.menu
106
+ ? resolveNavigationOrStub(context, customTypeEntry.fields.menu)
107
+ : template?.menu;
108
+ const footer = footerLink
109
+ ? resolveNavigationOrStub(context, footerLink)
110
+ : tagTypeEntry?.fields.footer
111
+ ? resolveNavigationOrStub(context, tagTypeEntry.fields.footer)
112
+ : customTypeEntry?.fields.footer
113
+ ? resolveNavigationOrStub(context, customTypeEntry.fields.footer)
114
+ : template?.footer;
115
+ const customTypeTopContent = resolveContents
116
+ ? (customTypeEntry?.fields.topContent
117
+ ?.map((c) => resolvePageContent(context, id, c))
118
+ .filter((item) => item !== null) ?? [])
119
+ : [];
120
+ const tagTypeTopContent = resolveContents
121
+ ? (tagTypeEntry?.fields.topContent
122
+ ?.map((c) => resolvePageContent(context, id, c))
123
+ .filter((item) => item !== null) ?? [])
124
+ : [];
125
+ const tagTopContent = resolveContents
126
+ ? (topContentLinks
127
+ ?.map((c) => resolvePageContent(context, id, c))
128
+ .filter((item) => item !== null) ?? [])
129
+ : [];
130
+ const topContent = [...tagTypeTopContent, ...tagTopContent];
131
+ const preContent = resolveContents ? (template?.preContent ?? []) : [];
132
+ const postContent = resolveContents ? (template?.postContent ?? []) : [];
133
+ const contents = resolveContents
134
+ ? addPositionMetadata([...customTypeTopContent, ...topContent, ...preContent, ...postContent])
135
+ : [];
136
+ const icons = deduplicateIcons(collectIconsFromContent(contents), collectIconsFromNavigation(menu), collectIconsFromNavigation(footer));
137
+ const tag = {
138
+ type: 'Tag',
139
+ id,
140
+ slug,
141
+ name,
142
+ title: makeContentfulTitle(name, sys.id),
143
+ description: makeContentfulDescription(description, sys.id),
144
+ featuredImage: lookupAsset(context, featuredImage),
145
+ tagType: resolvedTagType,
146
+ href: context.urlCalculators.tag(slug),
147
+ contentCount: resolveContents ? calculateContentCount(contents) : 0,
148
+ contents,
149
+ icons,
150
+ structuredData: resolveContents
151
+ ? [
152
+ ...(structuredData?.map((link) => resolveSchema(context, id, link)) ?? []),
153
+ ...(customTypeEntry?.fields?.structuredData?.map((link) => resolveSchema(context, id, link)) ?? []),
154
+ ...(template?.structuredData ?? []),
155
+ ].filter((item) => item !== null)
156
+ : undefined,
157
+ meta: resolvedMeta(template?.meta, customTypeEntry?.fields?.meta, tagTypeEntry?.fields?.meta, tagMeta),
158
+ ...rest,
159
+ backgroundColour: tagBackgroundColour ?? template?.backgroundColour,
160
+ textColour: tagTextColour ?? template?.textColour,
161
+ menu,
162
+ footer,
163
+ };
164
+ if (customType) {
165
+ // @ts-expect-error - customType is not yet in IBaseTag but might be added later or intersection type used
166
+ tag.customType = customType;
167
+ }
168
+ return tag;
169
+ }
170
+ //# sourceMappingURL=tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/converters/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,OAAO,EACL,mBAAmB,EAEnB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,KAA2D;IAE3D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAC/E,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,YAAY,GAAG,eAAe,EAAE,KAEzB,CAAC;IAEd,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC;YACE,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE;YACvB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI;YAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;YACtC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI;SAC/B;QACH,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;YAClC,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,OAAO,CAAC,IAAI,CACV,iBAAiB,WAAW,CAAC,GAAG,CAAC,EAAE,4BAA4B,GAAG,CAAC,EAAE,wCAAwC,CAC9G,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,kBAAkB,CACvB,GAAG,CAAC,EAAE,EACN;QACE,GAAG,YAAY;QACf,QAAQ;QACR,IAAI;QACJ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;KACZ,EACD,OAAO,EACP,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EACvC,KAAK,EACL,EAAE,OAAO,EAAE,IAAI,EAAE,CACN,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAyB,EACzB,KAA2D,EAC3D,eAA6E;IAE7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,aAAa,EACb,OAAO,EACP,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,eAAe,EAC3B,cAAc,EACd,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,mBAAmB,EACrC,UAAU,EAAE,aAAa,EACzB,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;IAEX,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAEvD,2CAA2C;IAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,YAAY,GAAG,eAAe,EAAE,KAEzB,CAAC;IAEd,MAAM,eAAe,GAAG,YAAY;QAClC,CAAC,CAAC,eAAe;YACf,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC;YAC9D,CAAC,CAAC;gBACE,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE;gBACvB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI;gBAC9B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;gBACtC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI;gBAC9B,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;aAC7C;QACL,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,KAAK;YACX,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACxC,WAAW,EAAE,yBAAyB,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3D,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC;YAClD,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YACtC,YAAY,EAAE,CAAC;YACf,GAAG,IAAI;YACP,gBAAgB,EAAE,mBAAmB;YACrC,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,YAAY,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,eAAe;QAChC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC;QACtD,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,QAAQ,IAAI,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/C,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ;QACnB,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5C,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI;YACzB,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;YAC5D,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI;gBAC5B,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC/D,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC;QAC9C,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9D,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM;gBAC9B,CAAC,CAAC,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEzB,MAAM,oBAAoB,GAAG,eAAe;QAC1C,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU;YACjC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,iBAAiB,GAAG,eAAe;QACvC,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU;YAC9B,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,eAAe;QACnC,CAAC,CAAC,CAAC,eAAe;YACd,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzE,MAAM,QAAQ,GAAG,eAAe;QAC9B,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;QAC9F,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAG,gBAAgB,CAC5B,uBAAuB,CAAC,QAAQ,CAAC,EACjC,0BAA0B,CAAC,IAAI,CAAC,EAChC,0BAA0B,CAAC,MAAM,CAAC,CACnC,CAAC;IAEF,MAAM,GAAG,GAAa;QACpB,IAAI,EAAE,KAAK;QACX,EAAE;QACF,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACxC,WAAW,EAAE,yBAAyB,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3D,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC;QAClD,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QACtC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,QAAQ;QACR,KAAK;QACL,cAAc,EAAE,eAAe;YAC7B,CAAC,CAAC;gBACE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1E,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CACjC,IAAI,EAAE,CAAC;gBACR,GAAG,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC;aACpC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAmB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;YACpD,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,YAAY,CAChB,QAAQ,EAAE,IAAI,EACd,eAAe,EAAE,MAAM,EAAE,IAAI,EAC7B,YAAY,EAAE,MAAM,EAAE,IAAI,EAC1B,OAAO,CACR;QACD,GAAG,IAAI;QACP,gBAAgB,EAAE,mBAAmB,IAAI,QAAQ,EAAE,gBAAgB;QACnE,UAAU,EAAE,aAAa,IAAI,QAAQ,EAAE,UAAU;QACjD,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,0GAA0G;QAC1G,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { IBaseTagType, IInternalLink } from '@se-studio/core-data-types';
2
+ import type { Entry } from 'contentful';
3
+ import type { DefaultChainModifier } from '../api';
4
+ import type { BaseCustomTypeSkeleton } from '../baseTypes/baseCustomType';
5
+ import type { BaseTagTypeSkeleton } from '../baseTypes/baseTagType';
6
+ import { type ConverterContext } from './helpers';
7
+ export declare function baseTagTypeConverter(context: ConverterContext, entry: Entry<BaseTagTypeSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseTagType;
8
+ /**
9
+ * Converts a Contentful tagType entry to an IInternalLink (for use as redirect target,
10
+ * navigation internal link, etc.).
11
+ *
12
+ * Projects must implement `urlCalculators.tagType(slug)` for the href to be correct.
13
+ */
14
+ export declare function baseTagTypeLinkConverter(context: ConverterContext, entry: Entry<BaseTagTypeSkeleton, DefaultChainModifier, string>): IInternalLink;
15
+ //# sourceMappingURL=tagType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagType.d.ts","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAU,MAAM,4BAA4B,CAAC;AAEtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,WAAW,CAAC;AAInB,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAC/D,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,YAAY,CA2Cd;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,aAAa,CAqBf"}
@@ -0,0 +1,56 @@
1
+ import { resolvedMeta } from '@se-studio/core-data-types';
2
+ import { addPositionMetadata, createInternalLink, shouldResolveContents, } from './helpers.js';
3
+ import { resolvePageContent } from './resolver.js';
4
+ import { resolveTemplate } from './template.js';
5
+ export function baseTagTypeConverter(context, entry, customTypeEntry) {
6
+ const { sys, fields } = entry;
7
+ const { id } = sys;
8
+ const { name, slug, show, indexPageTemplate: templateLink, indexPageTopContent: topContentLinks, meta: tagTypeMeta, } = fields;
9
+ if (!shouldResolveContents(context)) {
10
+ return {
11
+ id,
12
+ name,
13
+ slug: slug ?? null,
14
+ show,
15
+ meta: resolvedMeta(tagTypeMeta),
16
+ };
17
+ }
18
+ let template = templateLink ? resolveTemplate(context, templateLink) : null;
19
+ if (!template && customTypeEntry?.fields.template) {
20
+ template = resolveTemplate(context, customTypeEntry.fields.template);
21
+ }
22
+ const topContent = topContentLinks
23
+ ?.map((c) => resolvePageContent(context, id, c))
24
+ .filter((item) => item !== null) ?? [];
25
+ const preContent = template?.preContent ?? [];
26
+ const postContent = template?.postContent ?? [];
27
+ const contents = addPositionMetadata([...topContent, ...preContent, ...postContent]);
28
+ return {
29
+ id,
30
+ name,
31
+ slug: slug ?? null,
32
+ show,
33
+ ...(contents.length > 0 && { contents }),
34
+ meta: resolvedMeta(template?.meta, customTypeEntry?.fields?.meta, tagTypeMeta),
35
+ };
36
+ }
37
+ /**
38
+ * Converts a Contentful tagType entry to an IInternalLink (for use as redirect target,
39
+ * navigation internal link, etc.).
40
+ *
41
+ * Projects must implement `urlCalculators.tagType(slug)` for the href to be correct.
42
+ */
43
+ export function baseTagTypeLinkConverter(context, entry) {
44
+ const { sys, fields } = entry;
45
+ if (sys.contentType.sys.id !== 'tagType') {
46
+ throw new Error(`Invalid content type: expected "tagType", got "${sys.contentType.sys.id}"`);
47
+ }
48
+ const { name, slug, show, ...simpleFields } = fields;
49
+ return createInternalLink(sys.id, {
50
+ name,
51
+ title: name,
52
+ slug: slug ?? '',
53
+ ...simpleFields,
54
+ }, context, context.urlCalculators.tagType(slug ?? ''), 'TagType', { show });
55
+ }
56
+ //# sourceMappingURL=tagType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagType.js","sourceRoot":"","sources":["../../src/converters/tagType.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EACL,mBAAmB,EAEnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,KAA+D,EAC/D,eAA6E;IAE7E,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,EAAE,YAAY,EAC/B,mBAAmB,EAAE,eAAe,EACpC,IAAI,EAAE,WAAW,GAClB,GAAG,MAAM,CAAC;IAEX,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,EAAE;YACF,IAAI;YACJ,IAAI,EAAE,IAAI,IAAI,IAAI;YAClB,IAAI;YACJ,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,UAAU,GACd,eAAe;QACb,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAErF,OAAO;QACL,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,IAAI;QACJ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,KAA+D;IAE/D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAErD,OAAO,kBAAkB,CACvB,GAAG,CAAC,EAAE,EACN;QACE,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI,IAAI,EAAE;QAChB,GAAG,YAAY;KAChB,EACD,OAAO,EACP,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAC1C,SAAS,EACT,EAAE,IAAI,EAAE,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { EntryMeta, INavigation, ISchema, ITyped } from '@se-studio/core-data-types';
2
+ import type { UnresolvedLink } from 'contentful';
3
+ import type { ConverterContext } from './helpers';
4
+ /**
5
+ * Resolved template data structure
6
+ * Templates don't exist as a top-level type in core-data-types,
7
+ * so this is an internal converter type only
8
+ */
9
+ export interface ResolvedTemplate {
10
+ preContent: ReadonlyArray<ITyped>;
11
+ postContent: ReadonlyArray<ITyped>;
12
+ /** When set, page/article main content is injected into this collection's contents at merge time */
13
+ contentContainer?: ITyped;
14
+ menu?: INavigation;
15
+ footer?: INavigation;
16
+ backgroundColour?: string;
17
+ textColour?: string;
18
+ stickyNav: boolean;
19
+ structuredData: ReadonlyArray<ISchema>;
20
+ /** Parsed template `meta` JSON (defaults for pages using this template). */
21
+ meta?: EntryMeta;
22
+ }
23
+ /**
24
+ * Resolves a template entry from an unresolved link
25
+ *
26
+ * @param context - Converter context containing assets, includes, and resolvers
27
+ * @param link - Unresolved link to template entry
28
+ * @returns Resolved template data with content arrays and navigation
29
+ */
30
+ export declare function resolveTemplate(context: ConverterContext, link: UnresolvedLink<'Entry'>): ResolvedTemplate | null;
31
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/converters/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,KAAK,EAAS,cAAc,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,oGAAoG;IACpG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAC5B,gBAAgB,GAAG,IAAI,CAuDzB"}