@se-studio/core-ui 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 (625) hide show
  1. package/ANALYTICS.md +160 -0
  2. package/CHANGELOG.md +2565 -0
  3. package/CMS_INFRASTRUCTURE.md +370 -0
  4. package/CONSENT.md +121 -0
  5. package/README.md +638 -0
  6. package/dist/CmsRendererConfig.d.ts +259 -0
  7. package/dist/CmsRendererConfig.d.ts.map +1 -0
  8. package/dist/CmsRendererConfig.js +2 -0
  9. package/dist/CmsRendererConfig.js.map +1 -0
  10. package/dist/__mocks__/server-only.d.ts +2 -0
  11. package/dist/__mocks__/server-only.d.ts.map +1 -0
  12. package/dist/__mocks__/server-only.js +2 -0
  13. package/dist/__mocks__/server-only.js.map +1 -0
  14. package/dist/analytics/AnalyticsPageTracker.d.ts +11 -0
  15. package/dist/analytics/AnalyticsPageTracker.d.ts.map +1 -0
  16. package/dist/analytics/AnalyticsPageTracker.js +26 -0
  17. package/dist/analytics/AnalyticsPageTracker.js.map +1 -0
  18. package/dist/analytics/AnalyticsProvider.d.ts +18 -0
  19. package/dist/analytics/AnalyticsProvider.d.ts.map +1 -0
  20. package/dist/analytics/AnalyticsProvider.js +48 -0
  21. package/dist/analytics/AnalyticsProvider.js.map +1 -0
  22. package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts +13 -0
  23. package/dist/analytics/adapters/CompositeAnalyticsAdapter.d.ts.map +1 -0
  24. package/dist/analytics/adapters/CompositeAnalyticsAdapter.js +35 -0
  25. package/dist/analytics/adapters/CompositeAnalyticsAdapter.js.map +1 -0
  26. package/dist/analytics/adapters/ConsentAwareAdapter.d.ts +20 -0
  27. package/dist/analytics/adapters/ConsentAwareAdapter.d.ts.map +1 -0
  28. package/dist/analytics/adapters/ConsentAwareAdapter.js +35 -0
  29. package/dist/analytics/adapters/ConsentAwareAdapter.js.map +1 -0
  30. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts +12 -0
  31. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.d.ts.map +1 -0
  32. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js +22 -0
  33. package/dist/analytics/adapters/ConsoleAnalyticsAdapter.js.map +1 -0
  34. package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts +53 -0
  35. package/dist/analytics/adapters/GoogleTagManagerAdapter.d.ts.map +1 -0
  36. package/dist/analytics/adapters/GoogleTagManagerAdapter.js +134 -0
  37. package/dist/analytics/adapters/GoogleTagManagerAdapter.js.map +1 -0
  38. package/dist/analytics/adapters/index.d.ts +5 -0
  39. package/dist/analytics/adapters/index.d.ts.map +1 -0
  40. package/dist/analytics/adapters/index.js +5 -0
  41. package/dist/analytics/adapters/index.js.map +1 -0
  42. package/dist/analytics/types.d.ts +42 -0
  43. package/dist/analytics/types.d.ts.map +1 -0
  44. package/dist/analytics/types.js +2 -0
  45. package/dist/analytics/types.js.map +1 -0
  46. package/dist/analytics/useAnalytics.d.ts +44 -0
  47. package/dist/analytics/useAnalytics.d.ts.map +1 -0
  48. package/dist/analytics/useAnalytics.js +69 -0
  49. package/dist/analytics/useAnalytics.js.map +1 -0
  50. package/dist/analytics/video/classifySeek.d.ts +15 -0
  51. package/dist/analytics/video/classifySeek.d.ts.map +1 -0
  52. package/dist/analytics/video/classifySeek.js +32 -0
  53. package/dist/analytics/video/classifySeek.js.map +1 -0
  54. package/dist/analytics/video/createVideoEngagementSession.d.ts +51 -0
  55. package/dist/analytics/video/createVideoEngagementSession.d.ts.map +1 -0
  56. package/dist/analytics/video/createVideoEngagementSession.js +225 -0
  57. package/dist/analytics/video/createVideoEngagementSession.js.map +1 -0
  58. package/dist/analytics/video/index.d.ts +6 -0
  59. package/dist/analytics/video/index.d.ts.map +1 -0
  60. package/dist/analytics/video/index.js +6 -0
  61. package/dist/analytics/video/index.js.map +1 -0
  62. package/dist/analytics/video/loadYouTubeIframeApi.d.ts +50 -0
  63. package/dist/analytics/video/loadYouTubeIframeApi.d.ts.map +1 -0
  64. package/dist/analytics/video/loadYouTubeIframeApi.js +52 -0
  65. package/dist/analytics/video/loadYouTubeIframeApi.js.map +1 -0
  66. package/dist/analytics/video/useHtml5VideoEngagement.d.ts +8 -0
  67. package/dist/analytics/video/useHtml5VideoEngagement.d.ts.map +1 -0
  68. package/dist/analytics/video/useHtml5VideoEngagement.js +67 -0
  69. package/dist/analytics/video/useHtml5VideoEngagement.js.map +1 -0
  70. package/dist/analytics/video/useVideoEngagement.d.ts +19 -0
  71. package/dist/analytics/video/useVideoEngagement.d.ts.map +1 -0
  72. package/dist/analytics/video/useVideoEngagement.js +80 -0
  73. package/dist/analytics/video/useVideoEngagement.js.map +1 -0
  74. package/dist/analytics/video/videoEngagementTypes.d.ts +52 -0
  75. package/dist/analytics/video/videoEngagementTypes.d.ts.map +1 -0
  76. package/dist/analytics/video/videoEngagementTypes.js +45 -0
  77. package/dist/analytics/video/videoEngagementTypes.js.map +1 -0
  78. package/dist/app-helpers.d.ts +196 -0
  79. package/dist/app-helpers.d.ts.map +1 -0
  80. package/dist/app-helpers.js +322 -0
  81. package/dist/app-helpers.js.map +1 -0
  82. package/dist/cmsRegistration.d.ts +302 -0
  83. package/dist/cmsRegistration.d.ts.map +1 -0
  84. package/dist/cmsRegistration.js +242 -0
  85. package/dist/cmsRegistration.js.map +1 -0
  86. package/dist/components/Animation.d.ts +3 -0
  87. package/dist/components/Animation.d.ts.map +1 -0
  88. package/dist/components/Animation.js +2 -0
  89. package/dist/components/Animation.js.map +1 -0
  90. package/dist/components/AnimationComponent.d.ts +9 -0
  91. package/dist/components/AnimationComponent.d.ts.map +1 -0
  92. package/dist/components/AnimationComponent.js +18 -0
  93. package/dist/components/AnimationComponent.js.map +1 -0
  94. package/dist/components/ClientMonitor.d.ts +7 -0
  95. package/dist/components/ClientMonitor.d.ts.map +1 -0
  96. package/dist/components/ClientMonitor.js +368 -0
  97. package/dist/components/ClientMonitor.js.map +1 -0
  98. package/dist/components/CmsCollection.d.ts +68 -0
  99. package/dist/components/CmsCollection.d.ts.map +1 -0
  100. package/dist/components/CmsCollection.js +68 -0
  101. package/dist/components/CmsCollection.js.map +1 -0
  102. package/dist/components/CmsComponent.d.ts +68 -0
  103. package/dist/components/CmsComponent.d.ts.map +1 -0
  104. package/dist/components/CmsComponent.js +68 -0
  105. package/dist/components/CmsComponent.js.map +1 -0
  106. package/dist/components/CmsContent.d.ts +105 -0
  107. package/dist/components/CmsContent.d.ts.map +1 -0
  108. package/dist/components/CmsContent.js +200 -0
  109. package/dist/components/CmsContent.js.map +1 -0
  110. package/dist/components/CmsConversionErrors.d.ts +8 -0
  111. package/dist/components/CmsConversionErrors.d.ts.map +1 -0
  112. package/dist/components/CmsConversionErrors.js +51 -0
  113. package/dist/components/CmsConversionErrors.js.map +1 -0
  114. package/dist/components/CmsDataError.d.ts +14 -0
  115. package/dist/components/CmsDataError.d.ts.map +1 -0
  116. package/dist/components/CmsDataError.js +7 -0
  117. package/dist/components/CmsDataError.js.map +1 -0
  118. package/dist/components/CmsDevLayout.d.ts +23 -0
  119. package/dist/components/CmsDevLayout.d.ts.map +1 -0
  120. package/dist/components/CmsDevLayout.js +26 -0
  121. package/dist/components/CmsDevLayout.js.map +1 -0
  122. package/dist/components/CmsEmbeddedContent.d.ts +10 -0
  123. package/dist/components/CmsEmbeddedContent.d.ts.map +1 -0
  124. package/dist/components/CmsEmbeddedContent.js +51 -0
  125. package/dist/components/CmsEmbeddedContent.js.map +1 -0
  126. package/dist/components/CmsExternalComponent.d.ts +63 -0
  127. package/dist/components/CmsExternalComponent.d.ts.map +1 -0
  128. package/dist/components/CmsExternalComponent.js +68 -0
  129. package/dist/components/CmsExternalComponent.js.map +1 -0
  130. package/dist/components/CmsRoutesLayout.d.ts +16 -0
  131. package/dist/components/CmsRoutesLayout.d.ts.map +1 -0
  132. package/dist/components/CmsRoutesLayout.js +17 -0
  133. package/dist/components/CmsRoutesLayout.js.map +1 -0
  134. package/dist/components/DefaultExternalVideoPlayButton.d.ts +3 -0
  135. package/dist/components/DefaultExternalVideoPlayButton.d.ts.map +1 -0
  136. package/dist/components/DefaultExternalVideoPlayButton.js +6 -0
  137. package/dist/components/DefaultExternalVideoPlayButton.js.map +1 -0
  138. package/dist/components/DotLottieAnimationComponent.d.ts +16 -0
  139. package/dist/components/DotLottieAnimationComponent.d.ts.map +1 -0
  140. package/dist/components/DotLottieAnimationComponent.js +88 -0
  141. package/dist/components/DotLottieAnimationComponent.js.map +1 -0
  142. package/dist/components/ErrorBoundary.d.ts +19 -0
  143. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  144. package/dist/components/ErrorBoundary.js +32 -0
  145. package/dist/components/ErrorBoundary.js.map +1 -0
  146. package/dist/components/ExternalVideoComponent.d.ts +9 -0
  147. package/dist/components/ExternalVideoComponent.d.ts.map +1 -0
  148. package/dist/components/ExternalVideoComponent.js +39 -0
  149. package/dist/components/ExternalVideoComponent.js.map +1 -0
  150. package/dist/components/ExternalVimeoEmbed.d.ts +12 -0
  151. package/dist/components/ExternalVimeoEmbed.d.ts.map +1 -0
  152. package/dist/components/ExternalVimeoEmbed.js +211 -0
  153. package/dist/components/ExternalVimeoEmbed.js.map +1 -0
  154. package/dist/components/ExternalYouTubeEmbed.d.ts +9 -0
  155. package/dist/components/ExternalYouTubeEmbed.d.ts.map +1 -0
  156. package/dist/components/ExternalYouTubeEmbed.js +220 -0
  157. package/dist/components/ExternalYouTubeEmbed.js.map +1 -0
  158. package/dist/components/HeroLoopVideo.d.ts +13 -0
  159. package/dist/components/HeroLoopVideo.d.ts.map +1 -0
  160. package/dist/components/HeroLoopVideo.js +146 -0
  161. package/dist/components/HeroLoopVideo.js.map +1 -0
  162. package/dist/components/HtmlComponent.d.ts +21 -0
  163. package/dist/components/HtmlComponent.d.ts.map +1 -0
  164. package/dist/components/HtmlComponent.js +34 -0
  165. package/dist/components/HtmlComponent.js.map +1 -0
  166. package/dist/components/HtmlComponentScript.d.ts +12 -0
  167. package/dist/components/HtmlComponentScript.d.ts.map +1 -0
  168. package/dist/components/HtmlComponentScript.js +12 -0
  169. package/dist/components/HtmlComponentScript.js.map +1 -0
  170. package/dist/components/ImageComponent.d.ts +7 -0
  171. package/dist/components/ImageComponent.d.ts.map +1 -0
  172. package/dist/components/ImageComponent.js +20 -0
  173. package/dist/components/ImageComponent.js.map +1 -0
  174. package/dist/components/ImageKitClientVideo.d.ts +16 -0
  175. package/dist/components/ImageKitClientVideo.d.ts.map +1 -0
  176. package/dist/components/ImageKitClientVideo.js +211 -0
  177. package/dist/components/ImageKitClientVideo.js.map +1 -0
  178. package/dist/components/ImageKitHlsVideoClient.d.ts +21 -0
  179. package/dist/components/ImageKitHlsVideoClient.d.ts.map +1 -0
  180. package/dist/components/ImageKitHlsVideoClient.js +167 -0
  181. package/dist/components/ImageKitHlsVideoClient.js.map +1 -0
  182. package/dist/components/LazyAnimation.d.ts +16 -0
  183. package/dist/components/LazyAnimation.d.ts.map +1 -0
  184. package/dist/components/LazyAnimation.js +90 -0
  185. package/dist/components/LazyAnimation.js.map +1 -0
  186. package/dist/components/LazyVideo.d.ts +19 -0
  187. package/dist/components/LazyVideo.d.ts.map +1 -0
  188. package/dist/components/LazyVideo.js +134 -0
  189. package/dist/components/LazyVideo.js.map +1 -0
  190. package/dist/components/LocalVideo.d.ts +10 -0
  191. package/dist/components/LocalVideo.d.ts.map +1 -0
  192. package/dist/components/LocalVideo.js +66 -0
  193. package/dist/components/LocalVideo.js.map +1 -0
  194. package/dist/components/LocalVideoPlayChrome.d.ts +20 -0
  195. package/dist/components/LocalVideoPlayChrome.d.ts.map +1 -0
  196. package/dist/components/LocalVideoPlayChrome.js +22 -0
  197. package/dist/components/LocalVideoPlayChrome.js.map +1 -0
  198. package/dist/components/LocalVideoPlayOverlay.d.ts +19 -0
  199. package/dist/components/LocalVideoPlayOverlay.d.ts.map +1 -0
  200. package/dist/components/LocalVideoPlayOverlay.js +49 -0
  201. package/dist/components/LocalVideoPlayOverlay.js.map +1 -0
  202. package/dist/components/PictureComponent.d.ts +7 -0
  203. package/dist/components/PictureComponent.d.ts.map +1 -0
  204. package/dist/components/PictureComponent.js +29 -0
  205. package/dist/components/PictureComponent.js.map +1 -0
  206. package/dist/components/Preview.d.ts +2 -0
  207. package/dist/components/Preview.d.ts.map +1 -0
  208. package/dist/components/Preview.js +52 -0
  209. package/dist/components/Preview.js.map +1 -0
  210. package/dist/components/StructuredData.d.ts +20 -0
  211. package/dist/components/StructuredData.d.ts.map +1 -0
  212. package/dist/components/StructuredData.js +116 -0
  213. package/dist/components/StructuredData.js.map +1 -0
  214. package/dist/components/SvgComponent.d.ts +7 -0
  215. package/dist/components/SvgComponent.d.ts.map +1 -0
  216. package/dist/components/SvgComponent.js +10 -0
  217. package/dist/components/SvgComponent.js.map +1 -0
  218. package/dist/components/SvgIconComponent.d.ts +20 -0
  219. package/dist/components/SvgIconComponent.d.ts.map +1 -0
  220. package/dist/components/SvgIconComponent.js +23 -0
  221. package/dist/components/SvgIconComponent.js.map +1 -0
  222. package/dist/components/SvgImageComponent.d.ts +7 -0
  223. package/dist/components/SvgImageComponent.d.ts.map +1 -0
  224. package/dist/components/SvgImageComponent.js +10 -0
  225. package/dist/components/SvgImageComponent.js.map +1 -0
  226. package/dist/components/SvgSpriteSheet.d.ts +24 -0
  227. package/dist/components/SvgSpriteSheet.d.ts.map +1 -0
  228. package/dist/components/SvgSpriteSheet.js +37 -0
  229. package/dist/components/SvgSpriteSheet.js.map +1 -0
  230. package/dist/components/Video.d.ts +11 -0
  231. package/dist/components/Video.d.ts.map +1 -0
  232. package/dist/components/Video.js +2 -0
  233. package/dist/components/Video.js.map +1 -0
  234. package/dist/components/VideoComponent.d.ts +10 -0
  235. package/dist/components/VideoComponent.d.ts.map +1 -0
  236. package/dist/components/VideoComponent.js +22 -0
  237. package/dist/components/VideoComponent.js.map +1 -0
  238. package/dist/components/Visual.d.ts +43 -0
  239. package/dist/components/Visual.d.ts.map +1 -0
  240. package/dist/components/Visual.js +60 -0
  241. package/dist/components/Visual.js.map +1 -0
  242. package/dist/components/VisualComponent.d.ts +83 -0
  243. package/dist/components/VisualComponent.d.ts.map +1 -0
  244. package/dist/components/VisualComponent.js +136 -0
  245. package/dist/components/VisualComponent.js.map +1 -0
  246. package/dist/components/banner/BannerClient.d.ts +13 -0
  247. package/dist/components/banner/BannerClient.d.ts.map +1 -0
  248. package/dist/components/banner/BannerClient.js +38 -0
  249. package/dist/components/banner/BannerClient.js.map +1 -0
  250. package/dist/components/banner/BannerManager.d.ts +26 -0
  251. package/dist/components/banner/BannerManager.d.ts.map +1 -0
  252. package/dist/components/banner/BannerManager.js +35 -0
  253. package/dist/components/banner/BannerManager.js.map +1 -0
  254. package/dist/components/banner/BannerTargeting.d.ts +20 -0
  255. package/dist/components/banner/BannerTargeting.d.ts.map +1 -0
  256. package/dist/components/banner/BannerTargeting.js +204 -0
  257. package/dist/components/banner/BannerTargeting.js.map +1 -0
  258. package/dist/components/banner/bannerVisibility.d.ts +20 -0
  259. package/dist/components/banner/bannerVisibility.d.ts.map +1 -0
  260. package/dist/components/banner/bannerVisibility.js +73 -0
  261. package/dist/components/banner/bannerVisibility.js.map +1 -0
  262. package/dist/components/clientMonitorVideos.d.ts +6 -0
  263. package/dist/components/clientMonitorVideos.d.ts.map +1 -0
  264. package/dist/components/clientMonitorVideos.js +116 -0
  265. package/dist/components/clientMonitorVideos.js.map +1 -0
  266. package/dist/components/dotlottieWasm.d.ts +19 -0
  267. package/dist/components/dotlottieWasm.d.ts.map +1 -0
  268. package/dist/components/dotlottieWasm.js +62 -0
  269. package/dist/components/dotlottieWasm.js.map +1 -0
  270. package/dist/components/heroLoop.d.ts +22 -0
  271. package/dist/components/heroLoop.d.ts.map +1 -0
  272. package/dist/components/heroLoop.js +24 -0
  273. package/dist/components/heroLoop.js.map +1 -0
  274. package/dist/components/svg.d.ts +3 -0
  275. package/dist/components/svg.d.ts.map +1 -0
  276. package/dist/components/svg.js +64 -0
  277. package/dist/components/svg.js.map +1 -0
  278. package/dist/context/ExternalVideoPlayButtonContext.d.ts +7 -0
  279. package/dist/context/ExternalVideoPlayButtonContext.d.ts.map +1 -0
  280. package/dist/context/ExternalVideoPlayButtonContext.js +11 -0
  281. package/dist/context/ExternalVideoPlayButtonContext.js.map +1 -0
  282. package/dist/elements/RtfOrString.d.ts +26 -0
  283. package/dist/elements/RtfOrString.d.ts.map +1 -0
  284. package/dist/elements/RtfOrString.js +13 -0
  285. package/dist/elements/RtfOrString.js.map +1 -0
  286. package/dist/elements/TrackedLink.d.ts +25 -0
  287. package/dist/elements/TrackedLink.d.ts.map +1 -0
  288. package/dist/elements/TrackedLink.js +96 -0
  289. package/dist/elements/TrackedLink.js.map +1 -0
  290. package/dist/elements/UtmLink.d.ts +7 -0
  291. package/dist/elements/UtmLink.d.ts.map +1 -0
  292. package/dist/elements/UtmLink.js +24 -0
  293. package/dist/elements/UtmLink.js.map +1 -0
  294. package/dist/framework/BackgroundMedia.d.ts +12 -0
  295. package/dist/framework/BackgroundMedia.d.ts.map +1 -0
  296. package/dist/framework/BackgroundMedia.js +23 -0
  297. package/dist/framework/BackgroundMedia.js.map +1 -0
  298. package/dist/framework/ComponentErrorIndicator.d.ts +12 -0
  299. package/dist/framework/ComponentErrorIndicator.d.ts.map +1 -0
  300. package/dist/framework/ComponentErrorIndicator.js +29 -0
  301. package/dist/framework/ComponentErrorIndicator.js.map +1 -0
  302. package/dist/framework/ContainedVisual.d.ts +12 -0
  303. package/dist/framework/ContainedVisual.d.ts.map +1 -0
  304. package/dist/framework/ContainedVisual.js +14 -0
  305. package/dist/framework/ContainedVisual.js.map +1 -0
  306. package/dist/framework/ResponsiveVisual.d.ts +14 -0
  307. package/dist/framework/ResponsiveVisual.d.ts.map +1 -0
  308. package/dist/framework/ResponsiveVisual.js +14 -0
  309. package/dist/framework/ResponsiveVisual.js.map +1 -0
  310. package/dist/framework/componentErrors.d.ts +19 -0
  311. package/dist/framework/componentErrors.d.ts.map +1 -0
  312. package/dist/framework/componentErrors.js +31 -0
  313. package/dist/framework/componentErrors.js.map +1 -0
  314. package/dist/hooks/useClickTracking.d.ts +58 -0
  315. package/dist/hooks/useClickTracking.d.ts.map +1 -0
  316. package/dist/hooks/useClickTracking.js +48 -0
  317. package/dist/hooks/useClickTracking.js.map +1 -0
  318. package/dist/hooks/useDocumentVisible.d.ts +2 -0
  319. package/dist/hooks/useDocumentVisible.d.ts.map +1 -0
  320. package/dist/hooks/useDocumentVisible.js +17 -0
  321. package/dist/hooks/useDocumentVisible.js.map +1 -0
  322. package/dist/hooks/visibility.d.ts +14 -0
  323. package/dist/hooks/visibility.d.ts.map +1 -0
  324. package/dist/hooks/visibility.js +122 -0
  325. package/dist/hooks/visibility.js.map +1 -0
  326. package/dist/index.d.ts +134 -0
  327. package/dist/index.d.ts.map +1 -0
  328. package/dist/index.js +120 -0
  329. package/dist/index.js.map +1 -0
  330. package/dist/media-library/MediaLibraryAnimationPlayer.d.ts +9 -0
  331. package/dist/media-library/MediaLibraryAnimationPlayer.d.ts.map +1 -0
  332. package/dist/media-library/MediaLibraryAnimationPlayer.js +99 -0
  333. package/dist/media-library/MediaLibraryAnimationPlayer.js.map +1 -0
  334. package/dist/media-library/MediaLibraryGrid.d.ts +5 -0
  335. package/dist/media-library/MediaLibraryGrid.d.ts.map +1 -0
  336. package/dist/media-library/MediaLibraryGrid.js +88 -0
  337. package/dist/media-library/MediaLibraryGrid.js.map +1 -0
  338. package/dist/media-library/MediaLibraryPage.d.ts +17 -0
  339. package/dist/media-library/MediaLibraryPage.d.ts.map +1 -0
  340. package/dist/media-library/MediaLibraryPage.js +30 -0
  341. package/dist/media-library/MediaLibraryPage.js.map +1 -0
  342. package/dist/media-library/index.d.ts +4 -0
  343. package/dist/media-library/index.d.ts.map +1 -0
  344. package/dist/media-library/index.js +4 -0
  345. package/dist/media-library/index.js.map +1 -0
  346. package/dist/media-library/types.d.ts +8 -0
  347. package/dist/media-library/types.d.ts.map +1 -0
  348. package/dist/media-library/types.js +12 -0
  349. package/dist/media-library/types.js.map +1 -0
  350. package/dist/route-handlers/createCmsTxtHandler.d.ts +19 -0
  351. package/dist/route-handlers/createCmsTxtHandler.d.ts.map +1 -0
  352. package/dist/route-handlers/createCmsTxtHandler.js +154 -0
  353. package/dist/route-handlers/createCmsTxtHandler.js.map +1 -0
  354. package/dist/route-handlers/createDiscoveryHandler.d.ts +67 -0
  355. package/dist/route-handlers/createDiscoveryHandler.d.ts.map +1 -0
  356. package/dist/route-handlers/createDiscoveryHandler.js +190 -0
  357. package/dist/route-handlers/createDiscoveryHandler.js.map +1 -0
  358. package/dist/route-handlers/createGuidelinesHandler.d.ts +16 -0
  359. package/dist/route-handlers/createGuidelinesHandler.d.ts.map +1 -0
  360. package/dist/route-handlers/createGuidelinesHandler.js +100 -0
  361. package/dist/route-handlers/createGuidelinesHandler.js.map +1 -0
  362. package/dist/route-handlers/createMediaLibraryHandler.d.ts +19 -0
  363. package/dist/route-handlers/createMediaLibraryHandler.d.ts.map +1 -0
  364. package/dist/route-handlers/createMediaLibraryHandler.js +76 -0
  365. package/dist/route-handlers/createMediaLibraryHandler.js.map +1 -0
  366. package/dist/route-handlers/index.d.ts +9 -0
  367. package/dist/route-handlers/index.d.ts.map +1 -0
  368. package/dist/route-handlers/index.js +5 -0
  369. package/dist/route-handlers/index.js.map +1 -0
  370. package/dist/rtf/rtf.d.ts +66 -0
  371. package/dist/rtf/rtf.d.ts.map +1 -0
  372. package/dist/rtf/rtf.js +183 -0
  373. package/dist/rtf/rtf.js.map +1 -0
  374. package/dist/server/index.d.ts +20 -0
  375. package/dist/server/index.d.ts.map +1 -0
  376. package/dist/server/index.js +11 -0
  377. package/dist/server/index.js.map +1 -0
  378. package/dist/server/merge-prepared-page-context.d.ts +8 -0
  379. package/dist/server/merge-prepared-page-context.d.ts.map +1 -0
  380. package/dist/server/merge-prepared-page-context.js +11 -0
  381. package/dist/server/merge-prepared-page-context.js.map +1 -0
  382. package/dist/server/page-test-merge.d.ts +7 -0
  383. package/dist/server/page-test-merge.d.ts.map +1 -0
  384. package/dist/server/page-test-merge.js +12 -0
  385. package/dist/server/page-test-merge.js.map +1 -0
  386. package/dist/server/route-handlers-types.d.ts +124 -0
  387. package/dist/server/route-handlers-types.d.ts.map +1 -0
  388. package/dist/server/route-handlers-types.js +2 -0
  389. package/dist/server/route-handlers-types.js.map +1 -0
  390. package/dist/server/route-handlers.d.ts +99 -0
  391. package/dist/server/route-handlers.d.ts.map +1 -0
  392. package/dist/server/route-handlers.js +1268 -0
  393. package/dist/server/route-handlers.js.map +1 -0
  394. package/dist/server/route-types.d.ts +78 -0
  395. package/dist/server/route-types.d.ts.map +1 -0
  396. package/dist/server/route-types.js +4 -0
  397. package/dist/server/route-types.js.map +1 -0
  398. package/dist/server/tag-index-guards.d.ts +33 -0
  399. package/dist/server/tag-index-guards.d.ts.map +1 -0
  400. package/dist/server/tag-index-guards.js +33 -0
  401. package/dist/server/tag-index-guards.js.map +1 -0
  402. package/dist/server/template-route-handlers.d.ts +7 -0
  403. package/dist/server/template-route-handlers.d.ts.map +1 -0
  404. package/dist/server/template-route-handlers.js +35 -0
  405. package/dist/server/template-route-handlers.js.map +1 -0
  406. package/dist/showcase/components/AllViewPanel.d.ts +7 -0
  407. package/dist/showcase/components/AllViewPanel.d.ts.map +1 -0
  408. package/dist/showcase/components/AllViewPanel.js +55 -0
  409. package/dist/showcase/components/AllViewPanel.js.map +1 -0
  410. package/dist/showcase/components/Controls.d.ts +15 -0
  411. package/dist/showcase/components/Controls.d.ts.map +1 -0
  412. package/dist/showcase/components/Controls.js +71 -0
  413. package/dist/showcase/components/Controls.js.map +1 -0
  414. package/dist/showcase/components/ControlsWrapper.d.ts +15 -0
  415. package/dist/showcase/components/ControlsWrapper.d.ts.map +1 -0
  416. package/dist/showcase/components/ControlsWrapper.js +9 -0
  417. package/dist/showcase/components/ControlsWrapper.js.map +1 -0
  418. package/dist/showcase/components/IframeHeightReporter.d.ts +13 -0
  419. package/dist/showcase/components/IframeHeightReporter.d.ts.map +1 -0
  420. package/dist/showcase/components/IframeHeightReporter.js +51 -0
  421. package/dist/showcase/components/IframeHeightReporter.js.map +1 -0
  422. package/dist/showcase/components/PreviewPanel.d.ts +18 -0
  423. package/dist/showcase/components/PreviewPanel.d.ts.map +1 -0
  424. package/dist/showcase/components/PreviewPanel.js +52 -0
  425. package/dist/showcase/components/PreviewPanel.js.map +1 -0
  426. package/dist/showcase/components/ScaledIframe.d.ts +22 -0
  427. package/dist/showcase/components/ScaledIframe.d.ts.map +1 -0
  428. package/dist/showcase/components/ScaledIframe.js +41 -0
  429. package/dist/showcase/components/ScaledIframe.js.map +1 -0
  430. package/dist/showcase/components/ShowcaseAllRenderPage.d.ts +21 -0
  431. package/dist/showcase/components/ShowcaseAllRenderPage.d.ts.map +1 -0
  432. package/dist/showcase/components/ShowcaseAllRenderPage.js +36 -0
  433. package/dist/showcase/components/ShowcaseAllRenderPage.js.map +1 -0
  434. package/dist/showcase/components/ShowcaseAnimationRoot.d.ts +8 -0
  435. package/dist/showcase/components/ShowcaseAnimationRoot.d.ts.map +1 -0
  436. package/dist/showcase/components/ShowcaseAnimationRoot.js +10 -0
  437. package/dist/showcase/components/ShowcaseAnimationRoot.js.map +1 -0
  438. package/dist/showcase/components/ShowcasePage.d.ts +25 -0
  439. package/dist/showcase/components/ShowcasePage.d.ts.map +1 -0
  440. package/dist/showcase/components/ShowcasePage.js +31 -0
  441. package/dist/showcase/components/ShowcasePage.js.map +1 -0
  442. package/dist/showcase/components/ShowcaseRenderPage.d.ts +21 -0
  443. package/dist/showcase/components/ShowcaseRenderPage.d.ts.map +1 -0
  444. package/dist/showcase/components/ShowcaseRenderPage.js +45 -0
  445. package/dist/showcase/components/ShowcaseRenderPage.js.map +1 -0
  446. package/dist/showcase/components/ShowcaseViewportGuard.d.ts +14 -0
  447. package/dist/showcase/components/ShowcaseViewportGuard.d.ts.map +1 -0
  448. package/dist/showcase/components/ShowcaseViewportGuard.js +77 -0
  449. package/dist/showcase/components/ShowcaseViewportGuard.js.map +1 -0
  450. package/dist/showcase/components/TopBar.d.ts +11 -0
  451. package/dist/showcase/components/TopBar.d.ts.map +1 -0
  452. package/dist/showcase/components/TopBar.js +105 -0
  453. package/dist/showcase/components/TopBar.js.map +1 -0
  454. package/dist/showcase/controlFieldSupport.d.ts +12 -0
  455. package/dist/showcase/controlFieldSupport.d.ts.map +1 -0
  456. package/dist/showcase/controlFieldSupport.js +35 -0
  457. package/dist/showcase/controlFieldSupport.js.map +1 -0
  458. package/dist/showcase/index.d.ts +20 -0
  459. package/dist/showcase/index.d.ts.map +1 -0
  460. package/dist/showcase/index.js +20 -0
  461. package/dist/showcase/index.js.map +1 -0
  462. package/dist/showcase/isCmsShowcase.d.ts +10 -0
  463. package/dist/showcase/isCmsShowcase.d.ts.map +1 -0
  464. package/dist/showcase/isCmsShowcase.js +12 -0
  465. package/dist/showcase/isCmsShowcase.js.map +1 -0
  466. package/dist/showcase/mergeShowcaseMocks.d.ts +34 -0
  467. package/dist/showcase/mergeShowcaseMocks.d.ts.map +1 -0
  468. package/dist/showcase/mergeShowcaseMocks.js +31 -0
  469. package/dist/showcase/mergeShowcaseMocks.js.map +1 -0
  470. package/dist/showcase/mockFactory.d.ts +47 -0
  471. package/dist/showcase/mockFactory.d.ts.map +1 -0
  472. package/dist/showcase/mockFactory.js +726 -0
  473. package/dist/showcase/mockFactory.js.map +1 -0
  474. package/dist/showcase/showcaseLayout.d.ts +17 -0
  475. package/dist/showcase/showcaseLayout.d.ts.map +1 -0
  476. package/dist/showcase/showcaseLayout.js +11 -0
  477. package/dist/showcase/showcaseLayout.js.map +1 -0
  478. package/dist/showcase/showcaseRelatedContent.d.ts +30 -0
  479. package/dist/showcase/showcaseRelatedContent.d.ts.map +1 -0
  480. package/dist/showcase/showcaseRelatedContent.js +106 -0
  481. package/dist/showcase/showcaseRelatedContent.js.map +1 -0
  482. package/dist/showcase/types.d.ts +21 -0
  483. package/dist/showcase/types.d.ts.map +1 -0
  484. package/dist/showcase/types.js +19 -0
  485. package/dist/showcase/types.js.map +1 -0
  486. package/dist/utils/UnsupportedWarning.d.ts +30 -0
  487. package/dist/utils/UnsupportedWarning.d.ts.map +1 -0
  488. package/dist/utils/UnsupportedWarning.js +44 -0
  489. package/dist/utils/UnsupportedWarning.js.map +1 -0
  490. package/dist/utils/UnusedChecker.d.ts +51 -0
  491. package/dist/utils/UnusedChecker.d.ts.map +1 -0
  492. package/dist/utils/UnusedChecker.js +96 -0
  493. package/dist/utils/UnusedChecker.js.map +1 -0
  494. package/dist/utils/agent-ready.d.ts +103 -0
  495. package/dist/utils/agent-ready.d.ts.map +1 -0
  496. package/dist/utils/agent-ready.js +246 -0
  497. package/dist/utils/agent-ready.js.map +1 -0
  498. package/dist/utils/assertValidSiteBaseUrl.d.ts +8 -0
  499. package/dist/utils/assertValidSiteBaseUrl.d.ts.map +1 -0
  500. package/dist/utils/assertValidSiteBaseUrl.js +31 -0
  501. package/dist/utils/assertValidSiteBaseUrl.js.map +1 -0
  502. package/dist/utils/breadcrumbUtils.d.ts +64 -0
  503. package/dist/utils/breadcrumbUtils.d.ts.map +1 -0
  504. package/dist/utils/breadcrumbUtils.js +73 -0
  505. package/dist/utils/breadcrumbUtils.js.map +1 -0
  506. package/dist/utils/buildPageMetadata.d.ts +139 -0
  507. package/dist/utils/buildPageMetadata.d.ts.map +1 -0
  508. package/dist/utils/buildPageMetadata.js +218 -0
  509. package/dist/utils/buildPageMetadata.js.map +1 -0
  510. package/dist/utils/cn.d.ts +29 -0
  511. package/dist/utils/cn.d.ts.map +1 -0
  512. package/dist/utils/cn.js +32 -0
  513. package/dist/utils/cn.js.map +1 -0
  514. package/dist/utils/componentUtils.d.ts +82 -0
  515. package/dist/utils/componentUtils.d.ts.map +1 -0
  516. package/dist/utils/componentUtils.js +327 -0
  517. package/dist/utils/componentUtils.js.map +1 -0
  518. package/dist/utils/convertText.d.ts +2 -0
  519. package/dist/utils/convertText.d.ts.map +1 -0
  520. package/dist/utils/convertText.js +35 -0
  521. package/dist/utils/convertText.js.map +1 -0
  522. package/dist/utils/createDefaultRenderText.d.ts +17 -0
  523. package/dist/utils/createDefaultRenderText.d.ts.map +1 -0
  524. package/dist/utils/createDefaultRenderText.js +25 -0
  525. package/dist/utils/createDefaultRenderText.js.map +1 -0
  526. package/dist/utils/errorHandling.d.ts +37 -0
  527. package/dist/utils/errorHandling.d.ts.map +1 -0
  528. package/dist/utils/errorHandling.js +61 -0
  529. package/dist/utils/errorHandling.js.map +1 -0
  530. package/dist/utils/errorMonitoring.d.ts +17 -0
  531. package/dist/utils/errorMonitoring.d.ts.map +1 -0
  532. package/dist/utils/errorMonitoring.js +26 -0
  533. package/dist/utils/errorMonitoring.js.map +1 -0
  534. package/dist/utils/imageKitVideoHls.d.ts +3 -0
  535. package/dist/utils/imageKitVideoHls.d.ts.map +1 -0
  536. package/dist/utils/imageKitVideoHls.js +5 -0
  537. package/dist/utils/imageKitVideoHls.js.map +1 -0
  538. package/dist/utils/interpolateMetaText.d.ts +9 -0
  539. package/dist/utils/interpolateMetaText.d.ts.map +1 -0
  540. package/dist/utils/interpolateMetaText.js +21 -0
  541. package/dist/utils/interpolateMetaText.js.map +1 -0
  542. package/dist/utils/linkAccessibility.d.ts +13 -0
  543. package/dist/utils/linkAccessibility.d.ts.map +1 -0
  544. package/dist/utils/linkAccessibility.js +14 -0
  545. package/dist/utils/linkAccessibility.js.map +1 -0
  546. package/dist/utils/linkResolution.d.ts +15 -0
  547. package/dist/utils/linkResolution.d.ts.map +1 -0
  548. package/dist/utils/linkResolution.js +19 -0
  549. package/dist/utils/linkResolution.js.map +1 -0
  550. package/dist/utils/listing-page-heading.d.ts +16 -0
  551. package/dist/utils/listing-page-heading.d.ts.map +1 -0
  552. package/dist/utils/listing-page-heading.js +24 -0
  553. package/dist/utils/listing-page-heading.js.map +1 -0
  554. package/dist/utils/listingStructuredData.d.ts +28 -0
  555. package/dist/utils/listingStructuredData.d.ts.map +1 -0
  556. package/dist/utils/listingStructuredData.js +65 -0
  557. package/dist/utils/listingStructuredData.js.map +1 -0
  558. package/dist/utils/marketingSiteSitemap.d.ts +103 -0
  559. package/dist/utils/marketingSiteSitemap.d.ts.map +1 -0
  560. package/dist/utils/marketingSiteSitemap.js +352 -0
  561. package/dist/utils/marketingSiteSitemap.js.map +1 -0
  562. package/dist/utils/previewPageUtils.d.ts +61 -0
  563. package/dist/utils/previewPageUtils.d.ts.map +1 -0
  564. package/dist/utils/previewPageUtils.js +72 -0
  565. package/dist/utils/previewPageUtils.js.map +1 -0
  566. package/dist/utils/previewUtils.d.ts +59 -0
  567. package/dist/utils/previewUtils.d.ts.map +1 -0
  568. package/dist/utils/previewUtils.js +60 -0
  569. package/dist/utils/previewUtils.js.map +1 -0
  570. package/dist/utils/processCollectionLinks.d.ts +11 -0
  571. package/dist/utils/processCollectionLinks.d.ts.map +1 -0
  572. package/dist/utils/processCollectionLinks.js +38 -0
  573. package/dist/utils/processCollectionLinks.js.map +1 -0
  574. package/dist/utils/processTextContent.d.ts +18 -0
  575. package/dist/utils/processTextContent.d.ts.map +1 -0
  576. package/dist/utils/processTextContent.js +24 -0
  577. package/dist/utils/processTextContent.js.map +1 -0
  578. package/dist/utils/reactNodeText.d.ts +7 -0
  579. package/dist/utils/reactNodeText.d.ts.map +1 -0
  580. package/dist/utils/reactNodeText.js +43 -0
  581. package/dist/utils/reactNodeText.js.map +1 -0
  582. package/dist/utils/richTextNodeText.d.ts +13 -0
  583. package/dist/utils/richTextNodeText.d.ts.map +1 -0
  584. package/dist/utils/richTextNodeText.js +29 -0
  585. package/dist/utils/richTextNodeText.js.map +1 -0
  586. package/dist/utils/robots.d.ts +115 -0
  587. package/dist/utils/robots.d.ts.map +1 -0
  588. package/dist/utils/robots.js +174 -0
  589. package/dist/utils/robots.js.map +1 -0
  590. package/dist/utils/scopeCss.d.ts +15 -0
  591. package/dist/utils/scopeCss.d.ts.map +1 -0
  592. package/dist/utils/scopeCss.js +186 -0
  593. package/dist/utils/scopeCss.js.map +1 -0
  594. package/dist/utils/sitemap.d.ts +173 -0
  595. package/dist/utils/sitemap.d.ts.map +1 -0
  596. package/dist/utils/sitemap.js +257 -0
  597. package/dist/utils/sitemap.js.map +1 -0
  598. package/dist/utils/structuredDataUtils.d.ts +158 -0
  599. package/dist/utils/structuredDataUtils.d.ts.map +1 -0
  600. package/dist/utils/structuredDataUtils.js +225 -0
  601. package/dist/utils/structuredDataUtils.js.map +1 -0
  602. package/dist/utils/urlUtils.d.ts +30 -0
  603. package/dist/utils/urlUtils.d.ts.map +1 -0
  604. package/dist/utils/urlUtils.js +100 -0
  605. package/dist/utils/urlUtils.js.map +1 -0
  606. package/dist/utils/visualPositions.d.ts +3 -0
  607. package/dist/utils/visualPositions.d.ts.map +1 -0
  608. package/dist/utils/visualPositions.js +13 -0
  609. package/dist/utils/visualPositions.js.map +1 -0
  610. package/dist/utils/visualSizes.d.ts +5 -0
  611. package/dist/utils/visualSizes.d.ts.map +1 -0
  612. package/dist/utils/visualSizes.js +27 -0
  613. package/dist/utils/visualSizes.js.map +1 -0
  614. package/dist/utils/wcagRelativeLuminanceFromHex.d.ts +8 -0
  615. package/dist/utils/wcagRelativeLuminanceFromHex.d.ts.map +1 -0
  616. package/dist/utils/wcagRelativeLuminanceFromHex.js +30 -0
  617. package/dist/utils/wcagRelativeLuminanceFromHex.js.map +1 -0
  618. package/dist/utils/wrapHtmlComponentJs.d.ts +10 -0
  619. package/dist/utils/wrapHtmlComponentJs.d.ts.map +1 -0
  620. package/dist/utils/wrapHtmlComponentJs.js +12 -0
  621. package/dist/utils/wrapHtmlComponentJs.js.map +1 -0
  622. package/docs/PACKAGE_EXPORT_BOUNDARIES.md +98 -0
  623. package/docs/llms.md +358 -0
  624. package/package.json +108 -0
  625. package/src/showcase/README.md +269 -0
@@ -0,0 +1,45 @@
1
+ /**
2
+ * First-party video engagement events fired via `trackEvent`.
3
+ * Sites map these names to GTM tags or HubSpot behavioural events.
4
+ */
5
+ export const VIDEO_ENGAGEMENT_EVENTS = {
6
+ impression: 'video_impression',
7
+ start: 'video_start',
8
+ progress: 'video_progress',
9
+ complete: 'video_complete',
10
+ seek: 'video_seek',
11
+ unmute: 'video_unmute',
12
+ fullscreen: 'video_fullscreen',
13
+ exit: 'video_exit',
14
+ };
15
+ /** All engagement event name strings (for HubSpot eventNameMap keys, etc.). */
16
+ export const VIDEO_ENGAGEMENT_EVENT_NAMES = [
17
+ VIDEO_ENGAGEMENT_EVENTS.impression,
18
+ VIDEO_ENGAGEMENT_EVENTS.start,
19
+ VIDEO_ENGAGEMENT_EVENTS.progress,
20
+ VIDEO_ENGAGEMENT_EVENTS.complete,
21
+ VIDEO_ENGAGEMENT_EVENTS.seek,
22
+ VIDEO_ENGAGEMENT_EVENTS.unmute,
23
+ VIDEO_ENGAGEMENT_EVENTS.fullscreen,
24
+ VIDEO_ENGAGEMENT_EVENTS.exit,
25
+ ];
26
+ /**
27
+ * Thresholds for progress, completion, skip, and seek classification.
28
+ * Tuned for marketing-site explainer videos (not long-form).
29
+ */
30
+ export const VIDEO_ENGAGEMENT_THRESHOLDS = {
31
+ /** Treat as completed when high-water mark reaches this % (or player ended). */
32
+ completePercent: 95,
33
+ /** Exit with low % + short watch time counts as skipped. */
34
+ skipMaxPercent: 10,
35
+ skipMaxWatchSeconds: 3,
36
+ /** Large forward seek: at least this % of duration OR this many seconds. */
37
+ seekMinPercent: 15,
38
+ seekMinSeconds: 10,
39
+ /** After a large forward seek, incomplete exit with max_percent below this is skipped. */
40
+ skipAfterSeekMaxPercent: 50,
41
+ quartiles: [25, 50, 75],
42
+ /** IntersectionObserver threshold for video_impression. */
43
+ impressionRatio: 0.5,
44
+ };
45
+ //# sourceMappingURL=videoEngagementTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"videoEngagementTypes.js","sourceRoot":"","sources":["../../../src/analytics/video/videoEngagementTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU,EAAE,kBAAkB;IAC9B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB;IAC9B,IAAI,EAAE,YAAY;CACV,CAAC;AAKX,+EAA+E;AAC/E,MAAM,CAAC,MAAM,4BAA4B,GAAwC;IAC/E,uBAAuB,CAAC,UAAU;IAClC,uBAAuB,CAAC,KAAK;IAC7B,uBAAuB,CAAC,QAAQ;IAChC,uBAAuB,CAAC,QAAQ;IAChC,uBAAuB,CAAC,IAAI;IAC5B,uBAAuB,CAAC,MAAM;IAC9B,uBAAuB,CAAC,UAAU;IAClC,uBAAuB,CAAC,IAAI;CAC7B,CAAC;AAIF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gFAAgF;IAChF,eAAe,EAAE,EAAE;IACnB,4DAA4D;IAC5D,cAAc,EAAE,EAAE;IAClB,mBAAmB,EAAE,CAAC;IACtB,4EAA4E;IAC5E,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,0FAA0F;IAC1F,uBAAuB,EAAE,EAAE;IAC3B,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU;IAChC,2DAA2D;IAC3D,eAAe,EAAE,GAAG;CACZ,CAAC"}
@@ -0,0 +1,196 @@
1
+ import 'server-only';
2
+ /**
3
+ * App-level helper functions for Contentful CMS integration.
4
+ *
5
+ * This module provides a factory function that creates commonly-used helper functions
6
+ * for Next.js apps using the Contentful REST API. These helpers wrap the low-level
7
+ * API functions with project-specific configuration.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { createAppHelpers } from '@se-studio/core-ui';
12
+ *
13
+ * const helpers = createAppHelpers({
14
+ * converterContext,
15
+ * getConfig: getContentfulConfig,
16
+ * buildOptions: (options) => buildFetchOptions(options, draftOnly),
17
+ * });
18
+ *
19
+ * export const {
20
+ * getAllPageLinks,
21
+ * getPageWithErrors,
22
+ * getPreviewFieldIdProps,
23
+ * // ... etc
24
+ * } = helpers;
25
+ * ```
26
+ */
27
+ import type { ArticleTypeFetchOptions, BaseConverterContext, CmsResponse, ContentfulConfig, FetchOptions, IContentfulCollection, IContentfulPerson, IFetchedTemplate, RedirectMap, TagFetchOptions, TagTypeFetchOptions } from '@se-studio/contentful-rest-api';
28
+ import type { BaseCollectionContent, IArticleLink, IArticleTypeLink, IBanner, IBaseArticle, IBaseArticleType, IBaseCustomType, IBasePage, IBaseTag, IBaseTagType, IContentContext, IInternalLink, INavigation, IPersonLink, IRedirect, ITagLink } from '@se-studio/core-data-types';
29
+ import type { LinkFetchOptions } from './CmsRendererConfig';
30
+ import type { BreadcrumbLookup } from './utils/breadcrumbUtils';
31
+ import type { IBuildInformation } from './utils/buildPageMetadata';
32
+ import { type RelatedArticlesFallbackPolicy } from './utils/componentUtils';
33
+ import { type MarketingSiteSitemapConfig } from './utils/marketingSiteSitemap';
34
+ import type { IContent as IPreviewContent } from './utils/previewUtils';
35
+ import type { SitemapEntry } from './utils/sitemap';
36
+ /**
37
+ * Configuration for creating app helpers
38
+ */
39
+ export interface AppHelpersConfig {
40
+ /** The converter context with URL calculators and other project-specific settings */
41
+ converterContext: BaseConverterContext;
42
+ /** Function to get Contentful config based on preview mode */
43
+ getConfig: (preview: boolean) => ContentfulConfig;
44
+ /** Function to build fetch options with project-specific defaults */
45
+ buildOptions: (options?: Partial<FetchOptions>) => FetchOptions;
46
+ /** Build configuration (isProduction, baseUrl, etc.) for visibility enforcement */
47
+ buildInformation: IBuildInformation;
48
+ /** When provided, enables getSitemapEntries for marketing sites with articles/tags/people.
49
+ * The shape must be kept in sync with the project's UrlCalculators, CMS route files, and sitemap.xml routes.
50
+ * See docs/routing.md.
51
+ */
52
+ marketingSiteSitemap?: MarketingSiteSitemapConfig;
53
+ /**
54
+ * Per-content-type include depth overrides.
55
+ * Caller-passed options.include always wins; these apply when no explicit override is given.
56
+ * Use when a project's content nests deeper than the global defaults
57
+ * (e.g. articles with rich-text embedded entries may need include: 10).
58
+ */
59
+ contentTypeIncludes?: {
60
+ article?: number;
61
+ page?: number;
62
+ articleType?: number;
63
+ tag?: number;
64
+ tagType?: number;
65
+ person?: number;
66
+ customType?: number;
67
+ };
68
+ /**
69
+ * How `getRelatedArticles` maps CMS collection + pageContext into filter options
70
+ * (`RelatedArticlesOptions` / `filterRelatedArticles`). Partial; merged with package defaults:
71
+ * - `strictAuthorWhenPersonCriteria: true` — person pages / CMS person links hard-filter authors
72
+ * - `boostCurrentArticleAuthors: false` — article pages do not soft-boost same author
73
+ * - tag + article-type pageContext fallbacks remain on
74
+ */
75
+ relatedArticlesPolicy?: Partial<RelatedArticlesFallbackPolicy>;
76
+ }
77
+ /**
78
+ * Return type for createAppHelpers factory function.
79
+ * Contains all the helper functions for fetching content and managing preview.
80
+ */
81
+ export interface AppHelpers<TPage, TArticle, TArticleType, TTag, TPerson, TCustomType, TCollection> {
82
+ getAllPageLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IInternalLink[]>>;
83
+ getAllArticleLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IArticleLink[]>>;
84
+ getAllTagLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IInternalLink[]>>;
85
+ getAllPersonLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IPersonLink[]>>;
86
+ getAllArticleTypeLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IArticleTypeLink[]>>;
87
+ getAllCustomTypeLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IInternalLink[]>>;
88
+ getAllTagTypeLinks: (options?: LinkFetchOptions) => Promise<CmsResponse<IInternalLink[]>>;
89
+ /** Fetches sitemap entries. Only present when marketingSiteSitemap config is provided. */
90
+ getSitemapEntries?: (options: {
91
+ includeUnindexed?: boolean;
92
+ redirectMap?: RedirectMap;
93
+ }) => Promise<SitemapEntry[]>;
94
+ /** Fetch breadcrumb lookup map for resolving path segments to CMS labels */
95
+ getBreadcrumbLookup: (options?: FetchOptions) => Promise<BreadcrumbLookup>;
96
+ /**
97
+ * Assemble a navigation tree by root navigation entry id.
98
+ * Uses flat registry + link index internally — do not call low-level fetchers from layouts.
99
+ */
100
+ getNavigation: (navigationId: string, options?: FetchOptions) => Promise<INavigation | undefined>;
101
+ getRelatedArticles: (information: TCollection, contentContext: IContentContext, count: number | undefined, options?: FetchOptions) => Promise<CmsResponse<IArticleLink[]>>;
102
+ getRelatedPeople: (information: TCollection, contentContext: IContentContext, count: number, options?: FetchOptions) => Promise<CmsResponse<IPersonLink[]>>;
103
+ getRelatedTags: (information: TCollection, contentContext: IContentContext, count: number, options?: FetchOptions) => Promise<CmsResponse<ITagLink[]>>;
104
+ getBannersWithErrors: (options?: FetchOptions) => Promise<CmsResponse<IBanner[] | null>>;
105
+ getRedirectsWithErrors: (options?: FetchOptions) => Promise<CmsResponse<IRedirect[] | null>>;
106
+ /**
107
+ * Convenience: fetch redirects and immediately return the baked map (active only,
108
+ * references resolved). Perfect for build-time generation scripts.
109
+ */
110
+ getRedirectMap: (options?: FetchOptions) => Promise<RedirectMap>;
111
+ getPageWithErrors: (slug: string, options?: FetchOptions) => Promise<CmsResponse<TPage | null>>;
112
+ getArticleWithErrors: (articleTypeSlug: string, slug: string, options?: FetchOptions) => Promise<CmsResponse<TArticle | null>>;
113
+ getArticleTypeWithErrors: (slug: string, options?: Partial<ArticleTypeFetchOptions>) => Promise<CmsResponse<TArticleType | null>>;
114
+ getTagWithErrors: (slug: string, options?: Partial<TagFetchOptions>) => Promise<CmsResponse<TTag | null>>;
115
+ getTagTypeWithErrors: (slug: string, options?: Partial<TagTypeFetchOptions>) => Promise<CmsResponse<IBaseTagType | null>>;
116
+ getPersonWithErrors: (slug: string, options?: Partial<FetchOptions> & {
117
+ customType?: string;
118
+ }) => Promise<CmsResponse<TPerson | null>>;
119
+ getCustomTypeWithErrors: (slug: string, options?: FetchOptions) => Promise<CmsResponse<TCustomType | null>>;
120
+ getTemplateWithErrors: (cmsLabel: string, options?: FetchOptions) => Promise<CmsResponse<IFetchedTemplate | null>>;
121
+ getPreviewFieldIdProps: (id?: string, fieldId?: string) => {
122
+ 'data-contentful-entry-id': string | undefined;
123
+ 'data-contentful-asset-id': string | undefined;
124
+ 'data-contentful-field-id': string | undefined;
125
+ } | undefined;
126
+ getPreviewAssetIdProps: (assetId?: string) => {
127
+ 'data-contentful-entry-id': string | undefined;
128
+ 'data-contentful-asset-id': string | undefined;
129
+ 'data-contentful-field-id': string | undefined;
130
+ } | undefined;
131
+ getPreviewParentProps: (information: IPreviewContent | null | undefined) => {
132
+ 'data-contentful-entry-id': string | undefined;
133
+ 'data-contentful-asset-id': string | undefined;
134
+ 'data-contentful-field-id': string | undefined;
135
+ } | undefined;
136
+ getPreviewResponsiveVisualFieldIdProps: (id?: string, visualFieldId?: string, mobileVisualFieldId?: string) => {
137
+ visualPreviewProps: {
138
+ 'data-contentful-entry-id': string | undefined;
139
+ 'data-contentful-asset-id': string | undefined;
140
+ 'data-contentful-field-id': string | undefined;
141
+ } | undefined;
142
+ mobileVisualPreviewProps: {
143
+ 'data-contentful-entry-id': string | undefined;
144
+ 'data-contentful-asset-id': string | undefined;
145
+ 'data-contentful-field-id': string | undefined;
146
+ } | undefined;
147
+ };
148
+ }
149
+ /**
150
+ * App helpers when marketingSiteSitemap config is provided.
151
+ * getSitemapEntries is guaranteed to be defined.
152
+ */
153
+ export interface AppHelpersWithSitemap<TPage, TArticle, TArticleType, TTag, TPerson, TCustomType, TCollection> extends Omit<AppHelpers<TPage, TArticle, TArticleType, TTag, TPerson, TCustomType, TCollection>, 'getSitemapEntries'> {
154
+ getSitemapEntries: (options: {
155
+ includeUnindexed?: boolean;
156
+ redirectMap?: RedirectMap;
157
+ }) => Promise<SitemapEntry[]>;
158
+ }
159
+ /**
160
+ * Creates a set of helper functions for working with Contentful in Next.js apps.
161
+ *
162
+ * This factory function accepts project-specific configuration and returns
163
+ * a collection of pre-configured helper functions for:
164
+ * - Fetching links (pages, articles, tags, people, article types)
165
+ * - Fetching related content (articles, people)
166
+ * - Fetching full content (pages, articles, article types, tags, people, custom types, templates, banners)
167
+ * - Preview mode utilities (field IDs, asset IDs, parent props)
168
+ *
169
+ * All functions use the provided configuration to automatically handle:
170
+ * - Converter context for transforming Contentful entries
171
+ * - Config selection based on preview mode
172
+ * - Options building with project-specific defaults
173
+ * - Error logging and handling
174
+ *
175
+ * @param config - Configuration object with converter context, config getter, and options builder
176
+ * @returns Object containing all helper functions
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const helpers = createAppHelpers({
181
+ * converterContext: myConverterContext,
182
+ * getConfig: getContentfulConfig,
183
+ * buildOptions: (options) => buildFetchOptions(options, draftOnly),
184
+ * });
185
+ *
186
+ * // Use the helpers
187
+ * const pages = await helpers.getAllPageLinks();
188
+ * const page = await helpers.getPageWithErrors('home');
189
+ * const previewProps = helpers.getPreviewFieldIdProps(id, 'title');
190
+ * ```
191
+ */
192
+ export declare function createAppHelpers<TPage extends IBasePage = IBasePage, TArticle extends IBaseArticle = IBaseArticle, TArticleType extends IBaseArticleType = IBaseArticleType, TTag extends IBaseTag = IBaseTag, TPerson extends IContentfulPerson = IContentfulPerson, TCustomType extends IBaseCustomType = IBaseCustomType, TCollection extends IContentfulCollection<BaseCollectionContent> = IContentfulCollection<BaseCollectionContent>>(config: AppHelpersConfig & {
193
+ marketingSiteSitemap: MarketingSiteSitemapConfig;
194
+ }): AppHelpersWithSitemap<TPage, TArticle, TArticleType, TTag, TPerson, TCustomType, TCollection>;
195
+ export declare function createAppHelpers<TPage extends IBasePage = IBasePage, TArticle extends IBaseArticle = IBaseArticle, TArticleType extends IBaseArticleType = IBaseArticleType, TTag extends IBaseTag = IBaseTag, TPerson extends IContentfulPerson = IContentfulPerson, TCustomType extends IBaseCustomType = IBaseCustomType, TCollection extends IContentfulCollection<BaseCollectionContent> = IContentfulCollection<BaseCollectionContent>>(config: AppHelpersConfig): AppHelpers<TPage, TArticle, TArticleType, TTag, TPerson, TCustomType, TCollection>;
196
+ //# sourceMappingURL=app-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-helpers.d.ts","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import 'server-only';
2
+ import { buildRedirectMap, contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulArticleRest, contentfulArticleTypeRest, contentfulBannerRest, contentfulCustomTypeRest, getBreadcrumbLookup as contentfulGetBreadcrumbLookup, getNavigation as contentfulGetNavigation, contentfulPageRest, contentfulPersonRest, contentfulRedirectsRest, contentfulTagRest, contentfulTagTypeRest, contentfulTemplateRest, filterRelatedArticles, } from '@se-studio/contentful-rest-api';
3
+ import { isTagLink } from '@se-studio/core-data-types';
4
+ import { getRelatedArticles as coreGetRelatedArticles, getRelatedPeople as coreGetRelatedPeople, getRelatedTags as coreGetRelatedTags, resolveRelatedArticlesFallbackPolicy, } from './utils/componentUtils';
5
+ import { createMarketingSiteSitemapEntries, } from './utils/marketingSiteSitemap';
6
+ import { coreGetPreviewAssetIdProps, coreGetPreviewFieldIdProps, coreGetPreviewParentProps, } from './utils/previewUtils';
7
+ export function createAppHelpers(config) {
8
+ const { converterContext, getConfig, buildOptions, buildInformation } = config;
9
+ // Determine draft mode from buildOptions behavior
10
+ const testOptions = buildOptions({});
11
+ const draftOnly = testOptions.preview === true;
12
+ /**
13
+ * Returns null data when the entity is hidden and the site is in production.
14
+ * Hidden entities should never render on production -- callers treat null as notFound().
15
+ */
16
+ function hideIfHidden(response) {
17
+ if (buildInformation.isProduction && response.data?.hidden === true) {
18
+ return { data: null, errors: response.errors };
19
+ }
20
+ return response;
21
+ }
22
+ /**
23
+ * Generic helper for creating link fetcher functions.
24
+ * Returns full CmsResponse so callers can use .data and optionally handle .errors.
25
+ * Entries with indexed === false are filtered out unless allowUnindexed is true.
26
+ */
27
+ function createLinksFetcher(fetcher) {
28
+ return async (options) => {
29
+ const { allowUnindexed, ...fetchOpts } = options ?? {};
30
+ const fullOptions = buildOptions({ fetchProfile: 'listing', ...fetchOpts });
31
+ const response = await fetcher(converterContext, getConfig(fullOptions.preview), fullOptions);
32
+ if (!allowUnindexed) {
33
+ return {
34
+ data: response.data.filter((link) => link.indexed !== false),
35
+ errors: response.errors,
36
+ };
37
+ }
38
+ return response;
39
+ };
40
+ }
41
+ const getAllPageLinks = createLinksFetcher(contentfulAllPageLinks);
42
+ const _getAllArticleLinksBase = createLinksFetcher(contentfulAllArticleLinks);
43
+ const getAllArticleLinks = async (options) => {
44
+ const { articleTypeIds, articleTypeSlugs, tagIds, tagSlugs, tagTypeIds, tagTypeSlugs, authorIds, authorSlugs, strictAuthorMatch, excludeArticleIds, before, after, count, ...baseOptions } = options ?? {};
45
+ const response = await _getAllArticleLinksBase(baseOptions);
46
+ const hasFilterCriteria = articleTypeIds?.length ||
47
+ articleTypeSlugs?.length ||
48
+ tagIds?.length ||
49
+ tagSlugs?.length ||
50
+ tagTypeIds?.length ||
51
+ tagTypeSlugs?.length ||
52
+ authorIds?.length ||
53
+ authorSlugs?.length ||
54
+ excludeArticleIds?.length ||
55
+ before != null ||
56
+ after != null ||
57
+ count != null ||
58
+ strictAuthorMatch != null;
59
+ if (!hasFilterCriteria)
60
+ return response;
61
+ return {
62
+ data: filterRelatedArticles(response.data, {
63
+ allowUnindexed: true, // indexed filtering already applied by _getAllArticleLinksBase
64
+ articleTypeIds,
65
+ articleTypeSlugs,
66
+ tagIds,
67
+ tagSlugs,
68
+ tagTypeIds,
69
+ tagTypeSlugs,
70
+ authorIds,
71
+ authorSlugs,
72
+ strictAuthorMatch,
73
+ excludeArticleIds,
74
+ before,
75
+ after,
76
+ count,
77
+ }),
78
+ errors: response.errors,
79
+ };
80
+ };
81
+ const getAllTagLinks = createLinksFetcher(contentfulAllTagLinks);
82
+ const getAllPersonLinks = createLinksFetcher(contentfulAllPersonLinks);
83
+ const getAllArticleTypeLinks = createLinksFetcher(contentfulAllArticleTypeLinks);
84
+ const getAllCustomTypeLinks = createLinksFetcher(contentfulAllCustomTypeLinks);
85
+ const getAllTagTypeLinks = createLinksFetcher(contentfulAllTagTypeLinks);
86
+ // Narrow getter for the people custom type indexed/hidden gate (used only by sitemap when
87
+ // marketingSiteSitemap.peopleSlug is supplied). Avoids pulling in the full hideIfHidden wrapper
88
+ // so the flag is readable for sitemap decisions even in prod.
89
+ const getCustomTypeForSitemap = config.marketingSiteSitemap
90
+ ? async (slug) => {
91
+ const opts = buildOptions({});
92
+ const res = await contentfulCustomTypeRest(converterContext, getConfig(opts.preview), slug, opts);
93
+ const ct = res?.data;
94
+ return { data: ct ? { indexed: ct.indexed ?? null, hidden: ct.hidden ?? null } : null };
95
+ }
96
+ : undefined;
97
+ const getSitemapEntries = config.marketingSiteSitemap
98
+ ? createMarketingSiteSitemapEntries({
99
+ converterContext,
100
+ getConfig,
101
+ buildOptions,
102
+ getAllPageLinks,
103
+ getAllArticleLinks,
104
+ getAllArticleTypeLinks,
105
+ getAllTagLinks,
106
+ getAllPersonLinks,
107
+ getCustomType: getCustomTypeForSitemap ?? undefined,
108
+ }, config.marketingSiteSitemap)
109
+ : undefined;
110
+ return {
111
+ // ============================================================================
112
+ // Link Fetchers
113
+ // ============================================================================
114
+ getAllPageLinks,
115
+ getAllArticleLinks,
116
+ getAllTagLinks,
117
+ getAllPersonLinks,
118
+ getAllArticleTypeLinks,
119
+ getAllCustomTypeLinks,
120
+ getAllTagTypeLinks,
121
+ ...(getSitemapEntries && { getSitemapEntries }),
122
+ getBreadcrumbLookup(options) {
123
+ const fullOptions = buildOptions(options);
124
+ return contentfulGetBreadcrumbLookup(converterContext, getConfig(fullOptions.preview), fullOptions);
125
+ },
126
+ getNavigation(navigationId, options) {
127
+ const fullOptions = buildOptions(options);
128
+ return contentfulGetNavigation(navigationId, converterContext, getConfig(fullOptions.preview), fullOptions);
129
+ },
130
+ // ============================================================================
131
+ // Related Content Helpers
132
+ // ============================================================================
133
+ // getRelated* now also support slug-based/tagType/strictAuthorMatch criteria via the enriched filterRelatedArticles
134
+ /**
135
+ * Get related articles for a collection.
136
+ * Uses the generic core helper with project-specific config.
137
+ */
138
+ getRelatedArticles(information, contentContext, count, options) {
139
+ const fullOptions = buildOptions(options);
140
+ const relatedArticlesPolicy = resolveRelatedArticlesFallbackPolicy(config.relatedArticlesPolicy);
141
+ return coreGetRelatedArticles(information, contentContext, converterContext, getConfig(fullOptions.preview), count, fullOptions, (linkOptions) => getAllArticleLinks(linkOptions), relatedArticlesPolicy);
142
+ },
143
+ /**
144
+ * Get related people for a collection.
145
+ * Uses the generic core helper with project-specific config.
146
+ */
147
+ getRelatedPeople(information, contentContext, count, options) {
148
+ const fullOptions = buildOptions(options);
149
+ return coreGetRelatedPeople(information, contentContext, converterContext, getConfig(fullOptions.preview), count, fullOptions, (linkOptions) => getAllPersonLinks(linkOptions));
150
+ },
151
+ /**
152
+ * Get related tags for a collection.
153
+ * Uses the generic core helper with project-specific config.
154
+ */
155
+ getRelatedTags(information, contentContext, count, options) {
156
+ const fullOptions = buildOptions(options);
157
+ return coreGetRelatedTags(information, contentContext, converterContext, getConfig(fullOptions.preview), count, fullOptions, async (linkOptions) => {
158
+ const res = await getAllTagLinks(linkOptions);
159
+ return {
160
+ data: res.data.filter(isTagLink),
161
+ errors: res.errors,
162
+ };
163
+ });
164
+ },
165
+ // ============================================================================
166
+ // Content Fetch Functions (with error responses)
167
+ // ============================================================================
168
+ /**
169
+ * Fetch all banners from Contentful (returns full CmsResponse for internal use)
170
+ *
171
+ * @param options - Optional fetch options (preview, cache, locale, retry)
172
+ * @returns Promise resolving to CmsResponse with banners data and any errors
173
+ *
174
+ * @internal This function is for internal use by page rendering logic
175
+ */
176
+ getBannersWithErrors(options) {
177
+ const fullOptions = buildOptions(options);
178
+ return contentfulBannerRest(converterContext, getConfig(fullOptions.preview), fullOptions);
179
+ },
180
+ getRedirectsWithErrors(options) {
181
+ const fullOptions = buildOptions(options);
182
+ return contentfulRedirectsRest(converterContext, getConfig(fullOptions.preview), fullOptions);
183
+ },
184
+ async getRedirectMap(options) {
185
+ const res = await this.getRedirectsWithErrors(options);
186
+ // Filter to only successful data; buildRedirectMap is defensive.
187
+ return buildRedirectMap(res.data ?? []);
188
+ },
189
+ /**
190
+ * Fetch a page from Contentful by slug (returns full CmsResponse for internal use)
191
+ *
192
+ * @param slug - The page slug to fetch
193
+ * @param options - Optional fetch options (preview, cache, locale, retry)
194
+ * @returns Promise resolving to CmsResponse with page data and any errors
195
+ *
196
+ * @internal This function is for internal use by page rendering logic
197
+ */
198
+ async getPageWithErrors(slug, options) {
199
+ const pageInclude = config.contentTypeIncludes?.page;
200
+ const fullOptions = buildOptions(pageInclude ? { include: pageInclude, ...options } : options);
201
+ const response = (await contentfulPageRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions));
202
+ return hideIfHidden(response);
203
+ },
204
+ /**
205
+ * Fetch an article from Contentful by article type slug and article slug (returns full CmsResponse for internal use)
206
+ *
207
+ * @param articleTypeSlug - The article type slug (e.g., 'blog', 'news')
208
+ * @param slug - The article slug to fetch
209
+ * @param options - Optional fetch options (preview, cache, locale, retry)
210
+ * @returns Promise resolving to CmsResponse with article data and any errors
211
+ *
212
+ * @internal This function is for internal use by page rendering logic
213
+ */
214
+ async getArticleWithErrors(articleTypeSlug, slug, options) {
215
+ const articleInclude = config.contentTypeIncludes?.article;
216
+ const fullOptions = buildOptions(articleInclude ? { include: articleInclude, ...options } : options);
217
+ const response = (await contentfulArticleRest(converterContext, getConfig(fullOptions.preview), slug, articleTypeSlug, fullOptions));
218
+ return hideIfHidden(response);
219
+ },
220
+ /**
221
+ * Fetch an article type from Contentful by slug (returns full CmsResponse for internal use)
222
+ *
223
+ * @param slug - The article type slug (e.g., 'blog', 'news')
224
+ * @param options - Optional fetch options (preview, cache, locale, retry, customType)
225
+ * @returns Promise resolving to CmsResponse with article type data and any errors
226
+ *
227
+ * @internal This function is for internal use by page rendering logic
228
+ */
229
+ async getArticleTypeWithErrors(slug, options) {
230
+ const articleTypeInclude = config.contentTypeIncludes?.articleType;
231
+ const fullOptions = buildOptions(articleTypeInclude ? { include: articleTypeInclude, ...options } : options);
232
+ const response = (await contentfulArticleTypeRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions));
233
+ return hideIfHidden(response);
234
+ },
235
+ /**
236
+ * Fetch a tag from Contentful by slug (returns full CmsResponse for internal use)
237
+ *
238
+ * @param slug - The tag slug to fetch
239
+ * @param options - Optional fetch options (preview, cache, locale, retry, customType)
240
+ * @returns Promise resolving to CmsResponse with tag data and any errors
241
+ *
242
+ * @internal This function is for internal use by page rendering logic
243
+ */
244
+ async getTagWithErrors(slug, options) {
245
+ const tagInclude = config.contentTypeIncludes?.tag;
246
+ const fullOptions = buildOptions(tagInclude ? { include: tagInclude, ...options } : options);
247
+ const response = (await contentfulTagRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions));
248
+ return hideIfHidden(response);
249
+ },
250
+ async getTagTypeWithErrors(slug, options) {
251
+ const tagTypeInclude = config.contentTypeIncludes?.tagType;
252
+ const fullOptions = buildOptions(tagTypeInclude ? { include: tagTypeInclude, ...options } : options);
253
+ return contentfulTagTypeRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions);
254
+ },
255
+ /**
256
+ * Fetch a person from Contentful by slug (returns full CmsResponse for internal use)
257
+ *
258
+ * @param slug - The person slug to fetch
259
+ * @param options - Optional fetch options (preview, cache, locale, retry, customType)
260
+ * @returns Promise resolving to CmsResponse with person data and any errors
261
+ *
262
+ * @internal This function is for internal use by page rendering logic
263
+ */
264
+ async getPersonWithErrors(slug, options) {
265
+ const personInclude = config.contentTypeIncludes?.person;
266
+ const fullOptions = buildOptions(personInclude ? { include: personInclude, ...options } : options);
267
+ const response = (await contentfulPersonRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions));
268
+ return hideIfHidden(response);
269
+ },
270
+ /**
271
+ * Fetch a custom type from Contentful by slug (returns full CmsResponse for internal use)
272
+ *
273
+ * Custom types represent index pages for categories like Topics or Resources.
274
+ *
275
+ * @param slug - The custom type's slug to fetch (e.g., 'topics', 'resources')
276
+ * @param options - Optional fetch options (preview, cache, locale, retry)
277
+ * @returns Promise resolving to CmsResponse with custom type data and any errors
278
+ *
279
+ * @internal This function is for internal use by page rendering logic
280
+ */
281
+ async getCustomTypeWithErrors(slug, options) {
282
+ const customTypeInclude = config.contentTypeIncludes?.customType;
283
+ const fullOptions = buildOptions(customTypeInclude ? { include: customTypeInclude, ...options } : options);
284
+ const response = (await contentfulCustomTypeRest(converterContext, getConfig(fullOptions.preview), slug, fullOptions));
285
+ return hideIfHidden(response);
286
+ },
287
+ /**
288
+ * Fetch a template from Contentful by cmsLabel (returns full CmsResponse for internal use)
289
+ *
290
+ * Templates are used for shared layouts like the 404 page.
291
+ *
292
+ * @param cmsLabel - The template's cmsLabel to fetch (e.g., '404')
293
+ * @param options - Optional fetch options (preview, cache, locale, retry)
294
+ * @returns Promise resolving to CmsResponse with template data and any errors
295
+ *
296
+ * @internal This function is for internal use by page rendering logic
297
+ */
298
+ getTemplateWithErrors(cmsLabel, options) {
299
+ const fullOptions = buildOptions(options);
300
+ return contentfulTemplateRest(converterContext, getConfig(fullOptions.preview), cmsLabel, fullOptions);
301
+ },
302
+ // ============================================================================
303
+ // Preview Utilities (wrapped with project draftOnly)
304
+ // ============================================================================
305
+ getPreviewFieldIdProps(id, fieldId) {
306
+ return coreGetPreviewFieldIdProps(id, fieldId, draftOnly);
307
+ },
308
+ getPreviewAssetIdProps(assetId) {
309
+ return coreGetPreviewAssetIdProps(assetId, draftOnly);
310
+ },
311
+ getPreviewParentProps(information) {
312
+ return coreGetPreviewParentProps(information, draftOnly);
313
+ },
314
+ getPreviewResponsiveVisualFieldIdProps(id, visualFieldId = 'visual', mobileVisualFieldId = 'mobileVisual') {
315
+ return {
316
+ visualPreviewProps: coreGetPreviewFieldIdProps(id, visualFieldId, draftOnly),
317
+ mobileVisualPreviewProps: coreGetPreviewFieldIdProps(id, mobileVisualFieldId, draftOnly),
318
+ };
319
+ },
320
+ };
321
+ }
322
+ //# sourceMappingURL=app-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-helpers.js","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"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"}