@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.
- package/CHANGELOG.md +2036 -0
- package/README.md +764 -0
- package/dist/api/article-type.d.ts +37 -0
- package/dist/api/article-type.d.ts.map +1 -0
- package/dist/api/article-type.js +140 -0
- package/dist/api/article-type.js.map +1 -0
- package/dist/api/article.d.ts +32 -0
- package/dist/api/article.d.ts.map +1 -0
- package/dist/api/article.js +43 -0
- package/dist/api/article.js.map +1 -0
- package/dist/api/asset.d.ts +28 -0
- package/dist/api/asset.d.ts.map +1 -0
- package/dist/api/asset.js +56 -0
- package/dist/api/asset.js.map +1 -0
- package/dist/api/banner.d.ts +8 -0
- package/dist/api/banner.d.ts.map +1 -0
- package/dist/api/banner.js +96 -0
- package/dist/api/banner.js.map +1 -0
- package/dist/api/breadcrumb.d.ts +40 -0
- package/dist/api/breadcrumb.d.ts.map +1 -0
- package/dist/api/breadcrumb.js +60 -0
- package/dist/api/breadcrumb.js.map +1 -0
- package/dist/api/componentPreview.d.ts +59 -0
- package/dist/api/componentPreview.d.ts.map +1 -0
- package/dist/api/componentPreview.js +88 -0
- package/dist/api/componentPreview.js.map +1 -0
- package/dist/api/context.d.ts +24 -0
- package/dist/api/context.d.ts.map +1 -0
- package/dist/api/context.js +73 -0
- package/dist/api/context.js.map +1 -0
- package/dist/api/custom-type.d.ts +37 -0
- package/dist/api/custom-type.d.ts.map +1 -0
- package/dist/api/custom-type.js +44 -0
- package/dist/api/custom-type.js.map +1 -0
- package/dist/api/document.d.ts +8 -0
- package/dist/api/document.d.ts.map +1 -0
- package/dist/api/document.js +84 -0
- package/dist/api/document.js.map +1 -0
- package/dist/api/helpers.d.ts +59 -0
- package/dist/api/helpers.d.ts.map +1 -0
- package/dist/api/helpers.js +313 -0
- package/dist/api/helpers.js.map +1 -0
- package/dist/api/index.d.ts +33 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +37 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/links.d.ts +124 -0
- package/dist/api/links.d.ts.map +1 -0
- package/dist/api/links.js +307 -0
- package/dist/api/links.js.map +1 -0
- package/dist/api/listing-fetch-params.d.ts +70 -0
- package/dist/api/listing-fetch-params.d.ts.map +1 -0
- package/dist/api/listing-fetch-params.js +124 -0
- package/dist/api/listing-fetch-params.js.map +1 -0
- package/dist/api/media-library.d.ts +59 -0
- package/dist/api/media-library.d.ts.map +1 -0
- package/dist/api/media-library.js +315 -0
- package/dist/api/media-library.js.map +1 -0
- package/dist/api/navigation.d.ts +10 -0
- package/dist/api/navigation.d.ts.map +1 -0
- package/dist/api/navigation.js +18 -0
- package/dist/api/navigation.js.map +1 -0
- package/dist/api/page.d.ts +15 -0
- package/dist/api/page.d.ts.map +1 -0
- package/dist/api/page.js +39 -0
- package/dist/api/page.js.map +1 -0
- package/dist/api/person.d.ts +37 -0
- package/dist/api/person.d.ts.map +1 -0
- package/dist/api/person.js +135 -0
- package/dist/api/person.js.map +1 -0
- package/dist/api/preview-types.d.ts +65 -0
- package/dist/api/preview-types.d.ts.map +1 -0
- package/dist/api/preview-types.js +7 -0
- package/dist/api/preview-types.js.map +1 -0
- package/dist/api/preview.d.ts +49 -0
- package/dist/api/preview.d.ts.map +1 -0
- package/dist/api/preview.js +261 -0
- package/dist/api/preview.js.map +1 -0
- package/dist/api/redirects.d.ts +16 -0
- package/dist/api/redirects.d.ts.map +1 -0
- package/dist/api/redirects.js +110 -0
- package/dist/api/redirects.js.map +1 -0
- package/dist/api/related-articles.d.ts +28 -0
- package/dist/api/related-articles.d.ts.map +1 -0
- package/dist/api/related-articles.js +147 -0
- package/dist/api/related-articles.js.map +1 -0
- package/dist/api/server-asset.d.ts +67 -0
- package/dist/api/server-asset.d.ts.map +1 -0
- package/dist/api/server-asset.js +106 -0
- package/dist/api/server-asset.js.map +1 -0
- package/dist/api/sitemap.d.ts +131 -0
- package/dist/api/sitemap.d.ts.map +1 -0
- package/dist/api/sitemap.js +201 -0
- package/dist/api/sitemap.js.map +1 -0
- package/dist/api/tag-type.d.ts +32 -0
- package/dist/api/tag-type.d.ts.map +1 -0
- package/dist/api/tag-type.js +123 -0
- package/dist/api/tag-type.js.map +1 -0
- package/dist/api/tag.d.ts +37 -0
- package/dist/api/tag.d.ts.map +1 -0
- package/dist/api/tag.js +132 -0
- package/dist/api/tag.js.map +1 -0
- package/dist/api/template.d.ts +61 -0
- package/dist/api/template.d.ts.map +1 -0
- package/dist/api/template.js +94 -0
- package/dist/api/template.js.map +1 -0
- package/dist/api/types.d.ts +113 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/baseTypes/baseAlternatePageContent.d.ts +32 -0
- package/dist/baseTypes/baseAlternatePageContent.d.ts.map +1 -0
- package/dist/baseTypes/baseAlternatePageContent.js +2 -0
- package/dist/baseTypes/baseAlternatePageContent.js.map +1 -0
- package/dist/baseTypes/baseArticle.d.ts +206 -0
- package/dist/baseTypes/baseArticle.d.ts.map +1 -0
- package/dist/baseTypes/baseArticle.js +2 -0
- package/dist/baseTypes/baseArticle.js.map +1 -0
- package/dist/baseTypes/baseArticleType.d.ts +177 -0
- package/dist/baseTypes/baseArticleType.d.ts.map +1 -0
- package/dist/baseTypes/baseArticleType.js +2 -0
- package/dist/baseTypes/baseArticleType.js.map +1 -0
- package/dist/baseTypes/baseBanner.d.ts +113 -0
- package/dist/baseTypes/baseBanner.d.ts.map +1 -0
- package/dist/baseTypes/baseBanner.js +2 -0
- package/dist/baseTypes/baseBanner.js.map +1 -0
- package/dist/baseTypes/baseCollection.d.ts +132 -0
- package/dist/baseTypes/baseCollection.d.ts.map +1 -0
- package/dist/baseTypes/baseCollection.js +2 -0
- package/dist/baseTypes/baseCollection.js.map +1 -0
- package/dist/baseTypes/baseComponent.d.ts +130 -0
- package/dist/baseTypes/baseComponent.d.ts.map +1 -0
- package/dist/baseTypes/baseComponent.js +2 -0
- package/dist/baseTypes/baseComponent.js.map +1 -0
- package/dist/baseTypes/baseCustomType.d.ts +147 -0
- package/dist/baseTypes/baseCustomType.d.ts.map +1 -0
- package/dist/baseTypes/baseCustomType.js +2 -0
- package/dist/baseTypes/baseCustomType.js.map +1 -0
- package/dist/baseTypes/baseDocument.d.ts +70 -0
- package/dist/baseTypes/baseDocument.d.ts.map +1 -0
- package/dist/baseTypes/baseDocument.js +2 -0
- package/dist/baseTypes/baseDocument.js.map +1 -0
- package/dist/baseTypes/baseExternalComponent.d.ts +138 -0
- package/dist/baseTypes/baseExternalComponent.d.ts.map +1 -0
- package/dist/baseTypes/baseExternalComponent.js +2 -0
- package/dist/baseTypes/baseExternalComponent.js.map +1 -0
- package/dist/baseTypes/baseExternalVideo.d.ts +86 -0
- package/dist/baseTypes/baseExternalVideo.d.ts.map +1 -0
- package/dist/baseTypes/baseExternalVideo.js +2 -0
- package/dist/baseTypes/baseExternalVideo.js.map +1 -0
- package/dist/baseTypes/baseHtmlComponent.d.ts +72 -0
- package/dist/baseTypes/baseHtmlComponent.d.ts.map +1 -0
- package/dist/baseTypes/baseHtmlComponent.js +2 -0
- package/dist/baseTypes/baseHtmlComponent.js.map +1 -0
- package/dist/baseTypes/baseLink.d.ts +115 -0
- package/dist/baseTypes/baseLink.d.ts.map +1 -0
- package/dist/baseTypes/baseLink.js +2 -0
- package/dist/baseTypes/baseLink.js.map +1 -0
- package/dist/baseTypes/baseMedia.d.ts +100 -0
- package/dist/baseTypes/baseMedia.d.ts.map +1 -0
- package/dist/baseTypes/baseMedia.js +2 -0
- package/dist/baseTypes/baseMedia.js.map +1 -0
- package/dist/baseTypes/baseNavigation.d.ts +37 -0
- package/dist/baseTypes/baseNavigation.d.ts.map +1 -0
- package/dist/baseTypes/baseNavigation.js +2 -0
- package/dist/baseTypes/baseNavigation.js.map +1 -0
- package/dist/baseTypes/baseNavigationItem.d.ts +109 -0
- package/dist/baseTypes/baseNavigationItem.d.ts.map +1 -0
- package/dist/baseTypes/baseNavigationItem.js +2 -0
- package/dist/baseTypes/baseNavigationItem.js.map +1 -0
- package/dist/baseTypes/basePage.d.ts +142 -0
- package/dist/baseTypes/basePage.d.ts.map +1 -0
- package/dist/baseTypes/basePage.js +2 -0
- package/dist/baseTypes/basePage.js.map +1 -0
- package/dist/baseTypes/basePageVariant.d.ts +145 -0
- package/dist/baseTypes/basePageVariant.d.ts.map +1 -0
- package/dist/baseTypes/basePageVariant.js +2 -0
- package/dist/baseTypes/basePageVariant.js.map +1 -0
- package/dist/baseTypes/basePerson.d.ts +160 -0
- package/dist/baseTypes/basePerson.d.ts.map +1 -0
- package/dist/baseTypes/basePerson.js +2 -0
- package/dist/baseTypes/basePerson.js.map +1 -0
- package/dist/baseTypes/baseRedirect.d.ts +69 -0
- package/dist/baseTypes/baseRedirect.d.ts.map +1 -0
- package/dist/baseTypes/baseRedirect.js +2 -0
- package/dist/baseTypes/baseRedirect.js.map +1 -0
- package/dist/baseTypes/baseSchema.d.ts +19 -0
- package/dist/baseTypes/baseSchema.d.ts.map +1 -0
- package/dist/baseTypes/baseSchema.js +2 -0
- package/dist/baseTypes/baseSchema.js.map +1 -0
- package/dist/baseTypes/baseShared.d.ts +25 -0
- package/dist/baseTypes/baseShared.d.ts.map +1 -0
- package/dist/baseTypes/baseShared.js +2 -0
- package/dist/baseTypes/baseShared.js.map +1 -0
- package/dist/baseTypes/baseTag.d.ts +129 -0
- package/dist/baseTypes/baseTag.d.ts.map +1 -0
- package/dist/baseTypes/baseTag.js +2 -0
- package/dist/baseTypes/baseTag.js.map +1 -0
- package/dist/baseTypes/baseTagType.d.ts +70 -0
- package/dist/baseTypes/baseTagType.d.ts.map +1 -0
- package/dist/baseTypes/baseTagType.js +2 -0
- package/dist/baseTypes/baseTagType.js.map +1 -0
- package/dist/baseTypes/baseTemplate.d.ts +77 -0
- package/dist/baseTypes/baseTemplate.d.ts.map +1 -0
- package/dist/baseTypes/baseTemplate.js +2 -0
- package/dist/baseTypes/baseTemplate.js.map +1 -0
- package/dist/client.d.ts +145 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +322 -0
- package/dist/client.js.map +1 -0
- package/dist/cms-integrity.d.ts +10 -0
- package/dist/cms-integrity.d.ts.map +1 -0
- package/dist/cms-integrity.js +7 -0
- package/dist/cms-integrity.js.map +1 -0
- package/dist/converters/animationEnricher.d.ts +17 -0
- package/dist/converters/animationEnricher.d.ts.map +1 -0
- package/dist/converters/animationEnricher.js +177 -0
- package/dist/converters/animationEnricher.js.map +1 -0
- package/dist/converters/article.d.ts +48 -0
- package/dist/converters/article.d.ts.map +1 -0
- package/dist/converters/article.js +364 -0
- package/dist/converters/article.js.map +1 -0
- package/dist/converters/asset.d.ts +33 -0
- package/dist/converters/asset.d.ts.map +1 -0
- package/dist/converters/asset.js +340 -0
- package/dist/converters/asset.js.map +1 -0
- package/dist/converters/banner.d.ts +10 -0
- package/dist/converters/banner.d.ts.map +1 -0
- package/dist/converters/banner.js +63 -0
- package/dist/converters/banner.js.map +1 -0
- package/dist/converters/collection.d.ts +26 -0
- package/dist/converters/collection.d.ts.map +1 -0
- package/dist/converters/collection.js +52 -0
- package/dist/converters/collection.js.map +1 -0
- package/dist/converters/component.d.ts +26 -0
- package/dist/converters/component.d.ts.map +1 -0
- package/dist/converters/component.js +54 -0
- package/dist/converters/component.js.map +1 -0
- package/dist/converters/customType.d.ts +24 -0
- package/dist/converters/customType.d.ts.map +1 -0
- package/dist/converters/customType.js +93 -0
- package/dist/converters/customType.js.map +1 -0
- package/dist/converters/document.d.ts +14 -0
- package/dist/converters/document.d.ts.map +1 -0
- package/dist/converters/document.js +51 -0
- package/dist/converters/document.js.map +1 -0
- package/dist/converters/enrichAssets.d.ts +19 -0
- package/dist/converters/enrichAssets.d.ts.map +1 -0
- package/dist/converters/enrichAssets.js +36 -0
- package/dist/converters/enrichAssets.js.map +1 -0
- package/dist/converters/externalComponent.d.ts +27 -0
- package/dist/converters/externalComponent.d.ts.map +1 -0
- package/dist/converters/externalComponent.js +46 -0
- package/dist/converters/externalComponent.js.map +1 -0
- package/dist/converters/externalVideoEnricher.d.ts +12 -0
- package/dist/converters/externalVideoEnricher.d.ts.map +1 -0
- package/dist/converters/externalVideoEnricher.js +70 -0
- package/dist/converters/externalVideoEnricher.js.map +1 -0
- package/dist/converters/helpers.d.ts +173 -0
- package/dist/converters/helpers.d.ts.map +1 -0
- package/dist/converters/helpers.js +167 -0
- package/dist/converters/helpers.js.map +1 -0
- package/dist/converters/heroVideoEnricher.d.ts +9 -0
- package/dist/converters/heroVideoEnricher.d.ts.map +1 -0
- package/dist/converters/heroVideoEnricher.js +108 -0
- package/dist/converters/heroVideoEnricher.js.map +1 -0
- package/dist/converters/heroVideoEnv.d.ts +14 -0
- package/dist/converters/heroVideoEnv.d.ts.map +1 -0
- package/dist/converters/heroVideoEnv.js +28 -0
- package/dist/converters/heroVideoEnv.js.map +1 -0
- package/dist/converters/htmlComponent.d.ts +17 -0
- package/dist/converters/htmlComponent.d.ts.map +1 -0
- package/dist/converters/htmlComponent.js +33 -0
- package/dist/converters/htmlComponent.js.map +1 -0
- package/dist/converters/iconCollector.d.ts +36 -0
- package/dist/converters/iconCollector.d.ts.map +1 -0
- package/dist/converters/iconCollector.js +309 -0
- package/dist/converters/iconCollector.js.map +1 -0
- package/dist/converters/index.d.ts +26 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +21 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/converters/link.d.ts +11 -0
- package/dist/converters/link.d.ts.map +1 -0
- package/dist/converters/link.js +109 -0
- package/dist/converters/link.js.map +1 -0
- package/dist/converters/navigationItem.d.ts +17 -0
- package/dist/converters/navigationItem.d.ts.map +1 -0
- package/dist/converters/navigationItem.js +126 -0
- package/dist/converters/navigationItem.js.map +1 -0
- package/dist/converters/page.d.ts +44 -0
- package/dist/converters/page.d.ts.map +1 -0
- package/dist/converters/page.js +160 -0
- package/dist/converters/page.js.map +1 -0
- package/dist/converters/pageVariantMerge.d.ts +24 -0
- package/dist/converters/pageVariantMerge.d.ts.map +1 -0
- package/dist/converters/pageVariantMerge.js +151 -0
- package/dist/converters/pageVariantMerge.js.map +1 -0
- package/dist/converters/person.d.ts +40 -0
- package/dist/converters/person.d.ts.map +1 -0
- package/dist/converters/person.js +152 -0
- package/dist/converters/person.js.map +1 -0
- package/dist/converters/pictureBlurEnricher.d.ts +9 -0
- package/dist/converters/pictureBlurEnricher.d.ts.map +1 -0
- package/dist/converters/pictureBlurEnricher.js +79 -0
- package/dist/converters/pictureBlurEnricher.js.map +1 -0
- package/dist/converters/redirect.d.ts +20 -0
- package/dist/converters/redirect.d.ts.map +1 -0
- package/dist/converters/redirect.js +50 -0
- package/dist/converters/redirect.js.map +1 -0
- package/dist/converters/resolver.d.ts +26 -0
- package/dist/converters/resolver.d.ts.map +1 -0
- package/dist/converters/resolver.js +383 -0
- package/dist/converters/resolver.js.map +1 -0
- package/dist/converters/schema.d.ts +14 -0
- package/dist/converters/schema.d.ts.map +1 -0
- package/dist/converters/schema.js +25 -0
- package/dist/converters/schema.js.map +1 -0
- package/dist/converters/svgProcessor.d.ts +58 -0
- package/dist/converters/svgProcessor.d.ts.map +1 -0
- package/dist/converters/svgProcessor.js +225 -0
- package/dist/converters/svgProcessor.js.map +1 -0
- package/dist/converters/tag.d.ts +25 -0
- package/dist/converters/tag.d.ts.map +1 -0
- package/dist/converters/tag.js +170 -0
- package/dist/converters/tag.js.map +1 -0
- package/dist/converters/tagType.d.ts +15 -0
- package/dist/converters/tagType.d.ts.map +1 -0
- package/dist/converters/tagType.js +56 -0
- package/dist/converters/tagType.js.map +1 -0
- package/dist/converters/template.d.ts +31 -0
- package/dist/converters/template.d.ts.map +1 -0
- package/dist/converters/template.js +53 -0
- package/dist/converters/template.js.map +1 -0
- package/dist/converters/videoEnricher.d.ts +14 -0
- package/dist/converters/videoEnricher.d.ts.map +1 -0
- package/dist/converters/videoEnricher.js +85 -0
- package/dist/converters/videoEnricher.js.map +1 -0
- package/dist/icons/rebuildIconSprite.d.ts +8 -0
- package/dist/icons/rebuildIconSprite.d.ts.map +1 -0
- package/dist/icons/rebuildIconSprite.js +15 -0
- package/dist/icons/rebuildIconSprite.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/navigation/assembly.d.ts +8 -0
- package/dist/navigation/assembly.d.ts.map +1 -0
- package/dist/navigation/assembly.js +115 -0
- package/dist/navigation/assembly.js.map +1 -0
- package/dist/navigation/cacheOptions.d.ts +17 -0
- package/dist/navigation/cacheOptions.d.ts.map +1 -0
- package/dist/navigation/cacheOptions.js +45 -0
- package/dist/navigation/cacheOptions.js.map +1 -0
- package/dist/navigation/enrichModelNavigation.d.ts +17 -0
- package/dist/navigation/enrichModelNavigation.d.ts.map +1 -0
- package/dist/navigation/enrichModelNavigation.js +46 -0
- package/dist/navigation/enrichModelNavigation.js.map +1 -0
- package/dist/navigation/linkIndex.d.ts +10 -0
- package/dist/navigation/linkIndex.d.ts.map +1 -0
- package/dist/navigation/linkIndex.js +34 -0
- package/dist/navigation/linkIndex.js.map +1 -0
- package/dist/navigation/listingLinkBundle.d.ts +22 -0
- package/dist/navigation/listingLinkBundle.d.ts.map +1 -0
- package/dist/navigation/listingLinkBundle.js +88 -0
- package/dist/navigation/listingLinkBundle.js.map +1 -0
- package/dist/navigation/registry.d.ts +15 -0
- package/dist/navigation/registry.d.ts.map +1 -0
- package/dist/navigation/registry.js +130 -0
- package/dist/navigation/registry.js.map +1 -0
- package/dist/navigation/requestCache.d.ts +18 -0
- package/dist/navigation/requestCache.d.ts.map +1 -0
- package/dist/navigation/requestCache.js +66 -0
- package/dist/navigation/requestCache.js.map +1 -0
- package/dist/navigation/types.d.ts +45 -0
- package/dist/navigation/types.d.ts.map +1 -0
- package/dist/navigation/types.js +2 -0
- package/dist/navigation/types.js.map +1 -0
- package/dist/revalidation/entry-handlers.d.ts +40 -0
- package/dist/revalidation/entry-handlers.d.ts.map +1 -0
- package/dist/revalidation/entry-handlers.js +144 -0
- package/dist/revalidation/entry-handlers.js.map +1 -0
- package/dist/revalidation/handlers.d.ts +19 -0
- package/dist/revalidation/handlers.d.ts.map +1 -0
- package/dist/revalidation/handlers.js +50 -0
- package/dist/revalidation/handlers.js.map +1 -0
- package/dist/revalidation/index.d.ts +4 -0
- package/dist/revalidation/index.d.ts.map +1 -0
- package/dist/revalidation/index.js +5 -0
- package/dist/revalidation/index.js.map +1 -0
- package/dist/revalidation/nextjs-route.d.ts +38 -0
- package/dist/revalidation/nextjs-route.d.ts.map +1 -0
- package/dist/revalidation/nextjs-route.js +36 -0
- package/dist/revalidation/nextjs-route.js.map +1 -0
- package/dist/revalidation/route.d.ts +3 -0
- package/dist/revalidation/route.d.ts.map +1 -0
- package/dist/revalidation/route.js +99 -0
- package/dist/revalidation/route.js.map +1 -0
- package/dist/revalidation/server-utils.d.ts +31 -0
- package/dist/revalidation/server-utils.d.ts.map +1 -0
- package/dist/revalidation/server-utils.js +54 -0
- package/dist/revalidation/server-utils.js.map +1 -0
- package/dist/revalidation/tags.d.ts +110 -0
- package/dist/revalidation/tags.d.ts.map +1 -0
- package/dist/revalidation/tags.js +160 -0
- package/dist/revalidation/tags.js.map +1 -0
- package/dist/revalidation/utils.d.ts +21 -0
- package/dist/revalidation/utils.d.ts.map +1 -0
- package/dist/revalidation/utils.js +61 -0
- package/dist/revalidation/utils.js.map +1 -0
- package/dist/revalidation/webhook-content-types.d.ts +12 -0
- package/dist/revalidation/webhook-content-types.d.ts.map +1 -0
- package/dist/revalidation/webhook-content-types.js +28 -0
- package/dist/revalidation/webhook-content-types.js.map +1 -0
- package/dist/routing/index.d.ts +2 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +2 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/marketing-site-url-calculators.d.ts +21 -0
- package/dist/routing/marketing-site-url-calculators.d.ts.map +1 -0
- package/dist/routing/marketing-site-url-calculators.js +43 -0
- package/dist/routing/marketing-site-url-calculators.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +10 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry/deriveOperation.d.ts +8 -0
- package/dist/telemetry/deriveOperation.d.ts.map +1 -0
- package/dist/telemetry/deriveOperation.js +59 -0
- package/dist/telemetry/deriveOperation.js.map +1 -0
- package/dist/telemetry/queryContext.d.ts +7 -0
- package/dist/telemetry/queryContext.d.ts.map +1 -0
- package/dist/telemetry/queryContext.js +9 -0
- package/dist/telemetry/queryContext.js.map +1 -0
- package/dist/telemetry/queryLog.d.ts +17 -0
- package/dist/telemetry/queryLog.d.ts.map +1 -0
- package/dist/telemetry/queryLog.js +54 -0
- package/dist/telemetry/queryLog.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/arrayUtils.d.ts +3 -0
- package/dist/utils/arrayUtils.d.ts.map +1 -0
- package/dist/utils/arrayUtils.js +12 -0
- package/dist/utils/arrayUtils.js.map +1 -0
- package/dist/utils/dateUtils.d.ts +9 -0
- package/dist/utils/dateUtils.d.ts.map +1 -0
- package/dist/utils/dateUtils.js +26 -0
- package/dist/utils/dateUtils.js.map +1 -0
- package/dist/utils/errors.d.ts +56 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +100 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/redirectMap.d.ts +40 -0
- package/dist/utils/redirectMap.d.ts.map +1 -0
- package/dist/utils/redirectMap.js +129 -0
- package/dist/utils/redirectMap.js.map +1 -0
- package/dist/utils/retry.d.ts +103 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +248 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/tags.d.ts +35 -0
- package/dist/utils/tags.d.ts.map +1 -0
- package/dist/utils/tags.js +37 -0
- package/dist/utils/tags.js.map +1 -0
- package/docs/llms.md +430 -0
- package/package.json +86 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { resolvedMeta } from '@se-studio/core-data-types';
|
|
2
|
+
import { addPositionMetadata, 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 { resolveTemplate } from './template.js';
|
|
7
|
+
/**
|
|
8
|
+
* Base converter for Contentful Custom Type entries to IBaseCustomType
|
|
9
|
+
*
|
|
10
|
+
* Custom types represent index pages for categories like Topics or Resources.
|
|
11
|
+
* They provide configuration for both the main index page and potentially
|
|
12
|
+
* individual entry pages.
|
|
13
|
+
*
|
|
14
|
+
* @param context - Converter context containing includes and assets
|
|
15
|
+
* @param entry - Contentful entry to convert
|
|
16
|
+
* @returns IBaseCustomType object
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const customType = baseCustomTypeConverter(context, contentfulEntry);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function baseCustomTypeConverter(context, entry) {
|
|
24
|
+
const { sys, fields } = entry;
|
|
25
|
+
const { id } = sys;
|
|
26
|
+
const { name, slug, indexPageName, indexPageTitle, indexPageDescription, featuredImage, menu: menuLink, footer: footerLink, indexPageTemplate: templateLink, indexPageTopContent: topContentLinks, structuredData: _entryStructuredData, indexPageStructuredData, meta: customTypeMeta, backgroundColour: customTypeBackgroundColour, textColour: customTypeTextColour, ...other } = fields;
|
|
27
|
+
const title = makeContentfulTitle(indexPageName ?? indexPageTitle, sys.id);
|
|
28
|
+
const description = makeContentfulDescription(indexPageDescription, sys.id);
|
|
29
|
+
if (!shouldResolveNavigation(context) && !shouldResolveContents(context)) {
|
|
30
|
+
return {
|
|
31
|
+
type: 'Custom type',
|
|
32
|
+
id,
|
|
33
|
+
slug,
|
|
34
|
+
name,
|
|
35
|
+
title,
|
|
36
|
+
description,
|
|
37
|
+
featuredImage: lookupAsset(context, featuredImage),
|
|
38
|
+
href: context.urlCalculators.customType(slug),
|
|
39
|
+
contentCount: 0,
|
|
40
|
+
...other,
|
|
41
|
+
backgroundColour: customTypeBackgroundColour,
|
|
42
|
+
textColour: customTypeTextColour,
|
|
43
|
+
meta: resolvedMeta(customTypeMeta),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const template = templateLink ? resolveTemplate(context, templateLink) : null;
|
|
47
|
+
const menu = menuLink ? resolveNavigationOrStub(context, menuLink) : template?.menu;
|
|
48
|
+
const footer = footerLink ? resolveNavigationOrStub(context, footerLink) : template?.footer;
|
|
49
|
+
const topContent = shouldResolveContents(context)
|
|
50
|
+
? (topContentLinks
|
|
51
|
+
?.map((c) => resolvePageContent(context, id, c))
|
|
52
|
+
.filter((item) => item !== null) ?? [])
|
|
53
|
+
: [];
|
|
54
|
+
const preContent = shouldResolveContents(context) ? (template?.preContent ?? []) : [];
|
|
55
|
+
const postContent = shouldResolveContents(context) ? (template?.postContent ?? []) : [];
|
|
56
|
+
const contents = shouldResolveContents(context)
|
|
57
|
+
? addPositionMetadata([...topContent, ...preContent, ...postContent])
|
|
58
|
+
: [];
|
|
59
|
+
const icons = deduplicateIcons(collectIconsFromContent(contents), collectIconsFromNavigation(menu), collectIconsFromNavigation(footer));
|
|
60
|
+
const customType = {
|
|
61
|
+
type: 'Custom type',
|
|
62
|
+
id,
|
|
63
|
+
slug,
|
|
64
|
+
name,
|
|
65
|
+
title,
|
|
66
|
+
description: description,
|
|
67
|
+
featuredImage: lookupAsset(context, featuredImage),
|
|
68
|
+
href: context.urlCalculators.customType(slug),
|
|
69
|
+
contentCount: 0,
|
|
70
|
+
contents,
|
|
71
|
+
icons,
|
|
72
|
+
structuredData: shouldResolveContents(context)
|
|
73
|
+
? [
|
|
74
|
+
...(indexPageStructuredData?.map((link) => resolveSchema(context, id, link)) ?? []),
|
|
75
|
+
].filter((item) => item !== null)
|
|
76
|
+
: undefined,
|
|
77
|
+
menu,
|
|
78
|
+
footer,
|
|
79
|
+
backgroundColour: customTypeBackgroundColour ?? template?.backgroundColour,
|
|
80
|
+
textColour: customTypeTextColour ?? template?.textColour,
|
|
81
|
+
meta: resolvedMeta(template?.meta, customTypeMeta),
|
|
82
|
+
...other,
|
|
83
|
+
};
|
|
84
|
+
return customType;
|
|
85
|
+
}
|
|
86
|
+
export function baseCustomTypeLinkConverter(context, entry) {
|
|
87
|
+
const { sys: { id, contentType }, fields, } = entry;
|
|
88
|
+
if (contentType.sys.id !== 'customType') {
|
|
89
|
+
throw new Error(`Invalid content type: expected "customType", got "${contentType.sys.id}"`);
|
|
90
|
+
}
|
|
91
|
+
return createInternalLink(id, fields, context, context.urlCalculators.customType(fields.slug), 'CustomType');
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=customType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customType.js","sourceRoot":"","sources":["../../src/converters/customType.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IBaseDocument } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier } from '../api';
|
|
4
|
+
import type { BaseDocumentSkeleton } from '../baseTypes/baseDocument';
|
|
5
|
+
import { type ConverterContext } from './helpers';
|
|
6
|
+
/**
|
|
7
|
+
* Converts a Contentful document entry to {@link IBaseDocument}.
|
|
8
|
+
*
|
|
9
|
+
* Public file links always go through `urlCalculators.download` (site proxy).
|
|
10
|
+
* Optional hop-page href uses `urlCalculators.document(slug)` when provided;
|
|
11
|
+
* otherwise falls back to the file proxy href, then `#`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function baseDocumentConverter(context: ConverterContext, entry: Entry<BaseDocumentSkeleton, DefaultChainModifier, string>): IBaseDocument;
|
|
14
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/converters/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,WAAW,CAAC;AAmBnB;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC/D,aAAa,CAwCf"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { lookupDownloadAsset, makeContentfulDescription, makeContentfulTitle, } from './helpers.js';
|
|
2
|
+
const DOCUMENT_TYPES = new Set([
|
|
3
|
+
'Compliance',
|
|
4
|
+
'Marketing',
|
|
5
|
+
'Fact Sheet',
|
|
6
|
+
'Report',
|
|
7
|
+
'Prospectus',
|
|
8
|
+
'Holdings',
|
|
9
|
+
'Regulatory',
|
|
10
|
+
'Other',
|
|
11
|
+
]);
|
|
12
|
+
function normalizeDocumentType(raw) {
|
|
13
|
+
if (typeof raw !== 'string' || raw.length === 0)
|
|
14
|
+
return null;
|
|
15
|
+
if (DOCUMENT_TYPES.has(raw))
|
|
16
|
+
return raw;
|
|
17
|
+
return raw;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Converts a Contentful document entry to {@link IBaseDocument}.
|
|
21
|
+
*
|
|
22
|
+
* Public file links always go through `urlCalculators.download` (site proxy).
|
|
23
|
+
* Optional hop-page href uses `urlCalculators.document(slug)` when provided;
|
|
24
|
+
* otherwise falls back to the file proxy href, then `#`.
|
|
25
|
+
*/
|
|
26
|
+
export function baseDocumentConverter(context, entry) {
|
|
27
|
+
const { sys: { id, contentType }, fields, } = entry;
|
|
28
|
+
if (contentType.sys.id !== 'document') {
|
|
29
|
+
throw new Error(`Invalid content type: expected "document", got "${contentType.sys.id}"`);
|
|
30
|
+
}
|
|
31
|
+
const { name, slug, description, title, documentType: rawDocumentType, file: fileLink, publishDate, ...rest } = fields;
|
|
32
|
+
const file = lookupDownloadAsset(context, fileLink) ?? null;
|
|
33
|
+
const displayTitle = makeContentfulTitle(title ?? name, id);
|
|
34
|
+
const hopHref = context.urlCalculators.document?.(slug);
|
|
35
|
+
const href = hopHref ?? file?.href ?? '#';
|
|
36
|
+
return {
|
|
37
|
+
type: 'Document',
|
|
38
|
+
id,
|
|
39
|
+
slug,
|
|
40
|
+
name: name ?? displayTitle,
|
|
41
|
+
title: displayTitle,
|
|
42
|
+
description: makeContentfulDescription(description, id),
|
|
43
|
+
href,
|
|
44
|
+
contentCount: 0,
|
|
45
|
+
documentType: normalizeDocumentType(rawDocumentType),
|
|
46
|
+
file,
|
|
47
|
+
publishDate: publishDate ?? null,
|
|
48
|
+
...rest,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/converters/document.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;IACrC,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAC,GAAY;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,GAA2B,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACzB,KAAgE;IAEhE,MAAM,EACJ,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EACxB,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,KAAK,EACL,YAAY,EAAE,eAAe,EAC7B,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;IAEX,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC;IAC5D,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI,IAAI,YAAY;QAC1B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,yBAAyB,CAAC,WAAW,EAAE,EAAE,CAAC;QACvD,IAAI;QACJ,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,qBAAqB,CAAC,eAAe,CAAC;QACpD,IAAI;QACJ,WAAW,EAAE,WAAW,IAAI,IAAI;QAChC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IVideoEmbed, IVisual } from '@se-studio/core-data-types';
|
|
2
|
+
import type { PossibleResolvedEntry } from '../api/types';
|
|
3
|
+
import type { FetchOptions } from '../types';
|
|
4
|
+
/**
|
|
5
|
+
* Runs asset-enrichment steps in parallel and returns the map of pre-fetched oEmbed data for
|
|
6
|
+
* ConverterContext.
|
|
7
|
+
*
|
|
8
|
+
* - seEnrichVideoAssets / imagekitEnrichVideoAssets: R2 mute-loop pack or ImageKit dimensions
|
|
9
|
+
* - enrichAnimationAssets: fetches Lottie SVG placeholders (mutates assets)
|
|
10
|
+
* - enrichExternalVideoEmbeds: fetches oEmbed data for external video entries
|
|
11
|
+
* - enrichPictureBlurPlaceholders: optional; when `fetchOptions.enrichPictureBlurPlaceholders`,
|
|
12
|
+
* fetches tiny JPEGs and sets IPicture.blurDataURL (mutates assets)
|
|
13
|
+
*
|
|
14
|
+
* @param assets - Map<assetId, IVisual> built by convertAllAssets
|
|
15
|
+
* @param includes - Map<entryId, PossibleResolvedEntry> built by convertAllIncludes
|
|
16
|
+
* @param fetchOptions - When `enrichPictureBlurPlaceholders` is true, picture blur enrichment runs
|
|
17
|
+
*/
|
|
18
|
+
export declare function enrichAllAssets(assets: Map<string, IVisual>, includes: Map<string, PossibleResolvedEntry>, fetchOptions?: Pick<FetchOptions, 'enrichPictureBlurPlaceholders'>): Promise<Map<string, IVideoEmbed>>;
|
|
19
|
+
//# sourceMappingURL=enrichAssets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichAssets.d.ts","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQ7C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC5C,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,GACjE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { enrichAnimationAssets } from './animationEnricher.js';
|
|
2
|
+
import { enrichExternalVideoEmbeds } from './externalVideoEnricher.js';
|
|
3
|
+
import { seEnrichVideoAssets } from './heroVideoEnricher.js';
|
|
4
|
+
import { readHeroVideoEnv } from './heroVideoEnv.js';
|
|
5
|
+
import { enrichPictureBlurPlaceholders } from './pictureBlurEnricher.js';
|
|
6
|
+
import { imagekitEnrichVideoAssets } from './videoEnricher.js';
|
|
7
|
+
/**
|
|
8
|
+
* Runs asset-enrichment steps in parallel and returns the map of pre-fetched oEmbed data for
|
|
9
|
+
* ConverterContext.
|
|
10
|
+
*
|
|
11
|
+
* - seEnrichVideoAssets / imagekitEnrichVideoAssets: R2 mute-loop pack or ImageKit dimensions
|
|
12
|
+
* - enrichAnimationAssets: fetches Lottie SVG placeholders (mutates assets)
|
|
13
|
+
* - enrichExternalVideoEmbeds: fetches oEmbed data for external video entries
|
|
14
|
+
* - enrichPictureBlurPlaceholders: optional; when `fetchOptions.enrichPictureBlurPlaceholders`,
|
|
15
|
+
* fetches tiny JPEGs and sets IPicture.blurDataURL (mutates assets)
|
|
16
|
+
*
|
|
17
|
+
* @param assets - Map<assetId, IVisual> built by convertAllAssets
|
|
18
|
+
* @param includes - Map<entryId, PossibleResolvedEntry> built by convertAllIncludes
|
|
19
|
+
* @param fetchOptions - When `enrichPictureBlurPlaceholders` is true, picture blur enrichment runs
|
|
20
|
+
*/
|
|
21
|
+
export async function enrichAllAssets(assets, includes, fetchOptions) {
|
|
22
|
+
const pictureBlur = fetchOptions?.enrichPictureBlurPlaceholders === true
|
|
23
|
+
? enrichPictureBlurPlaceholders(assets)
|
|
24
|
+
: Promise.resolve();
|
|
25
|
+
const videoEnrichment = readHeroVideoEnv()
|
|
26
|
+
? seEnrichVideoAssets(assets)
|
|
27
|
+
: imagekitEnrichVideoAssets(assets);
|
|
28
|
+
const [, , externalVideoEmbeds] = await Promise.all([
|
|
29
|
+
videoEnrichment,
|
|
30
|
+
enrichAnimationAssets(assets),
|
|
31
|
+
enrichExternalVideoEmbeds(includes),
|
|
32
|
+
pictureBlur,
|
|
33
|
+
]);
|
|
34
|
+
return externalVideoEmbeds;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=enrichAssets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichAssets.js","sourceRoot":"","sources":["../../src/converters/enrichAssets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA4B,EAC5B,QAA4C,EAC5C,YAAkE;IAElE,MAAM,WAAW,GACf,YAAY,EAAE,6BAA6B,KAAK,IAAI;QAClD,CAAC,CAAC,6BAA6B,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,gBAAgB,EAAE;QACxC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,CAAC,EAAE,AAAD,EAAG,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,eAAe;QACf,qBAAqB,CAAC,MAAM,CAAC;QAC7B,yBAAyB,CAAC,QAAQ,CAAC;QACnC,WAAW;KACZ,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { IBaseExternalComponent } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier, IContentfulRichText } from '../api';
|
|
4
|
+
import type { BaseExternalComponentSkeleton } from '../baseTypes/baseExternalComponent';
|
|
5
|
+
import { type ConverterContext } from './helpers';
|
|
6
|
+
export type IContentfulExternalComponent = IBaseExternalComponent & {
|
|
7
|
+
copy?: IContentfulRichText | null;
|
|
8
|
+
additionalCopy?: IContentfulRichText | null;
|
|
9
|
+
extraCopy?: IContentfulRichText | null;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Base converter for Contentful ExternalComponent entries to IExternalComponent type
|
|
13
|
+
*
|
|
14
|
+
* This is a minimal implementation that can be extended using
|
|
15
|
+
* the functional composition pattern.
|
|
16
|
+
*
|
|
17
|
+
* @param context - Converter context containing assets, includes, and resolvers
|
|
18
|
+
* @param entry - Contentful entry to convert
|
|
19
|
+
* @returns IExternalComponent object
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const externalComponent = baseExternalComponentConverter(context, contentfulEntry);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function baseExternalComponentConverter(context: ConverterContext, entry: Entry<BaseExternalComponentSkeleton, DefaultChainModifier, string>): IContentfulExternalComponent;
|
|
27
|
+
//# sourceMappingURL=externalComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalComponent.d.ts","sourceRoot":"","sources":["../../src/converters/externalComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAExF,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,GAAG;IAClE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACxC,CAAC;AACF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,CAAC,GACxE,4BAA4B,CA8C9B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { applyHideMobileBackgroundFlag, createResponsiveVisual } from './asset.js';
|
|
2
|
+
import { DEFAULT_POSITION_FIELDS, lookupAsset, lookupDownloadAsset, makeContentfulTitle, } from './helpers.js';
|
|
3
|
+
import { resolveLink, resolveRichTextDocument } from './resolver.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base converter for Contentful ExternalComponent entries to IExternalComponent type
|
|
6
|
+
*
|
|
7
|
+
* This is a minimal implementation that can be extended using
|
|
8
|
+
* the functional composition pattern.
|
|
9
|
+
*
|
|
10
|
+
* @param context - Converter context containing assets, includes, and resolvers
|
|
11
|
+
* @param entry - Contentful entry to convert
|
|
12
|
+
* @returns IExternalComponent object
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const externalComponent = baseExternalComponentConverter(context, contentfulEntry);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function baseExternalComponentConverter(context, entry) {
|
|
20
|
+
const { sys, fields } = entry;
|
|
21
|
+
const { id } = sys;
|
|
22
|
+
const { cmsLabel, backgroundVisual: bgVisual, mobileBackgroundVisual: mobileBgVisual, internalLink: internalLinkField, attachment: attachmentField, copy: copyField, additionalCopy: additionalCopyField, extraCopy: extraCopyField, flags, ...simpleFields } = fields;
|
|
23
|
+
// Convert background visuals to responsive visual
|
|
24
|
+
const backgroundVisual = applyHideMobileBackgroundFlag(createResponsiveVisual(lookupAsset(context, bgVisual), lookupAsset(context, mobileBgVisual)), flags);
|
|
25
|
+
const internalLink = internalLinkField ? resolveLink(context, id, internalLinkField) : null;
|
|
26
|
+
const attachment = attachmentField ? lookupDownloadAsset(context, attachmentField) : null;
|
|
27
|
+
const copy = resolveRichTextDocument(context, id, copyField);
|
|
28
|
+
const additionalCopy = resolveRichTextDocument(context, id, additionalCopyField);
|
|
29
|
+
const extraCopy = resolveRichTextDocument(context, id, extraCopyField);
|
|
30
|
+
const externalComponent = {
|
|
31
|
+
type: 'External component',
|
|
32
|
+
id,
|
|
33
|
+
name: makeContentfulTitle(cmsLabel, id),
|
|
34
|
+
cmsLabel: cmsLabel,
|
|
35
|
+
...DEFAULT_POSITION_FIELDS,
|
|
36
|
+
...simpleFields,
|
|
37
|
+
backgroundVisual,
|
|
38
|
+
copy,
|
|
39
|
+
additionalCopy,
|
|
40
|
+
extraCopy,
|
|
41
|
+
internalLink: internalLink ?? undefined,
|
|
42
|
+
attachment: attachment ?? undefined,
|
|
43
|
+
};
|
|
44
|
+
return externalComponent;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=externalComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalComponent.js","sourceRoot":"","sources":["../../src/converters/externalComponent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAEL,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAOlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAyB,EACzB,KAAyE;IAEzE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IAEnB,MAAM,EACJ,QAAQ,EACR,gBAAgB,EAAE,QAAQ,EAC1B,sBAAsB,EAAE,cAAc,EACtC,YAAY,EAAE,iBAAiB,EAC/B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,mBAAmB,EACnC,SAAS,EAAE,cAAc,EACzB,KAAK,EACL,GAAG,YAAY,EAChB,GAAG,MAAM,CAAC;IAEX,kDAAkD;IAClD,MAAM,gBAAgB,GAAG,6BAA6B,CACpD,sBAAsB,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAC5F,KAAK,CACN,CAAC;IAEF,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5F,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1F,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;IAEvE,MAAM,iBAAiB,GAAiC;QACtD,IAAI,EAAE,oBAAoB;QAC1B,EAAE;QACF,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvC,QAAQ,EAAE,QAAQ;QAClB,GAAG,uBAAuB;QAC1B,GAAG,YAAY;QACf,gBAAgB;QAChB,IAAI;QACJ,cAAc;QACd,SAAS;QACT,YAAY,EAAE,YAAY,IAAI,SAAS;QACvC,UAAU,EAAE,UAAU,IAAI,SAAS;KACpC,CAAC;IACF,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IVideoEmbed } from '@se-studio/core-data-types';
|
|
2
|
+
import type { PossibleResolvedEntry } from '../api/types';
|
|
3
|
+
/**
|
|
4
|
+
* Pre-fetches oEmbed data for all external video entries in the includes map.
|
|
5
|
+
* Returns a Map<entryId, IVideoEmbed> so converters can attach embed data
|
|
6
|
+
* synchronously without making async calls at render time. The results are
|
|
7
|
+
* serialised into the ISR cache as part of the converted page data.
|
|
8
|
+
*
|
|
9
|
+
* @param includes - The Map<entryId, PossibleResolvedEntry> built by convertAllIncludes
|
|
10
|
+
*/
|
|
11
|
+
export declare function enrichExternalVideoEmbeds(includes: Map<string, PossibleResolvedEntry>): Promise<Map<string, IVideoEmbed>>;
|
|
12
|
+
//# sourceMappingURL=externalVideoEnricher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalVideoEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/externalVideoEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AA8D1D;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAsBnC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the oEmbed endpoint URL for a known video provider, or undefined for
|
|
3
|
+
* unrecognised URLs. Using hardcoded patterns (rather than HTML discovery) lets
|
|
4
|
+
* us use Next.js native fetch with cache tags instead of delegating to a
|
|
5
|
+
* library whose internal fetch call bypasses the ISR cache.
|
|
6
|
+
*/
|
|
7
|
+
function getOEmbedEndpoint(url) {
|
|
8
|
+
if (/youtube\.com|youtu\.be/.test(url)) {
|
|
9
|
+
return `https://www.youtube.com/oembed?url=${encodeURIComponent(url)}&format=json`;
|
|
10
|
+
}
|
|
11
|
+
if (/vimeo\.com/.test(url)) {
|
|
12
|
+
return `https://vimeo.com/api/oembed.json?url=${encodeURIComponent(url)}`;
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fetches oEmbed data for a known external video URL using Next.js native fetch
|
|
18
|
+
* so the response is cached via `force-cache`. Returns undefined for unrecognised
|
|
19
|
+
* providers or on any fetch failure.
|
|
20
|
+
*/
|
|
21
|
+
async function fetchOEmbedData(url) {
|
|
22
|
+
const endpoint = getOEmbedEndpoint(url);
|
|
23
|
+
if (!endpoint)
|
|
24
|
+
return undefined;
|
|
25
|
+
try {
|
|
26
|
+
const response = await fetch(endpoint, {
|
|
27
|
+
cache: 'force-cache',
|
|
28
|
+
});
|
|
29
|
+
if (!response.ok)
|
|
30
|
+
return undefined;
|
|
31
|
+
const data = (await response.json());
|
|
32
|
+
if (data.type !== 'video' || !data.html)
|
|
33
|
+
return undefined;
|
|
34
|
+
return {
|
|
35
|
+
html: data.html,
|
|
36
|
+
width: data.width,
|
|
37
|
+
height: data.height,
|
|
38
|
+
thumbnailUrl: data.thumbnail_url,
|
|
39
|
+
title: data.title,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Pre-fetches oEmbed data for all external video entries in the includes map.
|
|
48
|
+
* Returns a Map<entryId, IVideoEmbed> so converters can attach embed data
|
|
49
|
+
* synchronously without making async calls at render time. The results are
|
|
50
|
+
* serialised into the ISR cache as part of the converted page data.
|
|
51
|
+
*
|
|
52
|
+
* @param includes - The Map<entryId, PossibleResolvedEntry> built by convertAllIncludes
|
|
53
|
+
*/
|
|
54
|
+
export async function enrichExternalVideoEmbeds(includes) {
|
|
55
|
+
const result = new Map();
|
|
56
|
+
const externalVideoEntries = Array.from(includes.values()).filter((item) => item.type === 'externalVideo');
|
|
57
|
+
if (externalVideoEntries.length === 0)
|
|
58
|
+
return result;
|
|
59
|
+
await Promise.all(externalVideoEntries.map(async (item) => {
|
|
60
|
+
const url = item.entry.fields.url;
|
|
61
|
+
if (!url)
|
|
62
|
+
return;
|
|
63
|
+
const embed = await fetchOEmbedData(url);
|
|
64
|
+
if (embed) {
|
|
65
|
+
result.set(item.id, embed);
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=externalVideoEnricher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalVideoEnricher.js","sourceRoot":"","sources":["../../src/converters/externalVideoEnricher.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,sCAAsC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC;IACrF,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,yCAAyC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,aAAa;SACN,CAAC,CAAC;QAElB,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAEnC,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;QAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAA4C;IAE5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE9C,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC/D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CACxC,CAAC;IAEF,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAErD,MAAM,OAAO,CAAC,GAAG,CACf,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtC,MAAM,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,MAA8B,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { IDownloadAsset, IInternalLink, InternalType, ITyped, IVideoEmbed, IVisual } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Asset, Entry, UnresolvedLink } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier, PossibleResolvedEntry } from '../api';
|
|
4
|
+
import { type ConverterResolutionScope } from '../api/listing-fetch-params';
|
|
5
|
+
import type { BaseContent, BaseLink } from '../baseTypes/baseShared';
|
|
6
|
+
import type { CmsError } from '../types';
|
|
7
|
+
import type { PrimaryTagSelector } from '../utils/tags';
|
|
8
|
+
import type { baseArticleConverter, baseArticleTypeConverter } from './article';
|
|
9
|
+
import type { baseBannerConverter } from './banner';
|
|
10
|
+
import type { baseCollectionConverter } from './collection';
|
|
11
|
+
import type { baseComponentConverter } from './component';
|
|
12
|
+
import type { baseCustomTypeConverter } from './customType';
|
|
13
|
+
import type { baseDocumentConverter } from './document';
|
|
14
|
+
import type { baseNavigationItemConverter } from './navigationItem';
|
|
15
|
+
import type { basePageConverter } from './page';
|
|
16
|
+
import type { baseTagConverter } from './tag';
|
|
17
|
+
import type { baseTagTypeConverter } from './tagType';
|
|
18
|
+
export declare function resolveBuildYear(value: string | null | undefined): string | undefined;
|
|
19
|
+
export declare function makeContentfulTitle(title: string | undefined | null, id: string, prefix?: string): string;
|
|
20
|
+
export declare function stringOrUndefined(value: string | null | undefined): string | undefined;
|
|
21
|
+
export declare function makeContentfulDescription(description: string | undefined | null, id: string): string;
|
|
22
|
+
export declare function lookupAsset(context: ConverterContext, asset: UnresolvedLink<'Asset'> | undefined): IVisual | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Looks up entries from a list of unresolved links
|
|
25
|
+
*/
|
|
26
|
+
export declare function lookupEntries(context: ConverterContext, entries: UnresolvedLink<'Entry'>[] | undefined): PossibleResolvedEntry[];
|
|
27
|
+
/**
|
|
28
|
+
* Looks up an asset that is used as an icon.
|
|
29
|
+
* If the asset is an SVG image, it marks it with isIcon: true so it uses the sprite system.
|
|
30
|
+
*/
|
|
31
|
+
export declare function lookupIconAsset(context: ConverterContext, asset: UnresolvedLink<'Asset'> | undefined): IVisual | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Looks up a raw asset and converts it to IDownloadAsset for download functionality.
|
|
34
|
+
* Returns undefined if the asset doesn't exist or doesn't have a valid file.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildDownloadAssetFromRawAsset(context: BaseConverterContext, rawAsset: Asset): IDownloadAsset | undefined;
|
|
37
|
+
export declare function lookupDownloadAsset(context: ConverterContext, asset: UnresolvedLink<'Asset'> | undefined): IDownloadAsset | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Default positioning fields for content items before they are processed
|
|
40
|
+
*/
|
|
41
|
+
export declare const DEFAULT_POSITION_FIELDS: {
|
|
42
|
+
readonly index: 0;
|
|
43
|
+
readonly isFirst: false;
|
|
44
|
+
readonly isLast: false;
|
|
45
|
+
readonly indexOfType: 0;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Creates an internal link object with common fields
|
|
49
|
+
* Used by multiple converters (tag, page, article, person) to reduce duplication
|
|
50
|
+
*/
|
|
51
|
+
export declare function createInternalLink(id: string, fields: {
|
|
52
|
+
cmsLabel?: string | null;
|
|
53
|
+
name: string | null;
|
|
54
|
+
useName?: boolean | null;
|
|
55
|
+
title?: string | null;
|
|
56
|
+
breadcrumbTitle?: string | null;
|
|
57
|
+
featuredImage?: UnresolvedLink<'Asset'>;
|
|
58
|
+
backgroundColour?: string | null;
|
|
59
|
+
textColour?: string | null;
|
|
60
|
+
indexed?: boolean | null;
|
|
61
|
+
hidden?: boolean | null;
|
|
62
|
+
slug: string;
|
|
63
|
+
description?: string | null;
|
|
64
|
+
}, context: ConverterContext, href: string, internalType: InternalType, additionalProps?: any): IInternalLink;
|
|
65
|
+
export type ContentResolverFunction = (context: ConverterContext, entry: Entry<BaseContent, DefaultChainModifier, string>) => unknown;
|
|
66
|
+
export type ContentResolverMap = Map<string, ContentResolverFunction>;
|
|
67
|
+
export type LinkResolverFunction<TResult extends IInternalLink = IInternalLink> = (context: ConverterContext, entry: Entry<BaseLink, DefaultChainModifier, string>) => TResult;
|
|
68
|
+
export type LinkResolverMap = Map<string, LinkResolverFunction>;
|
|
69
|
+
/**
|
|
70
|
+
* URL calculators for each content type.
|
|
71
|
+
* Apps can (and must) override these to customize URL patterns for their project.
|
|
72
|
+
*
|
|
73
|
+
* These are called by link converters, sitemap generators, preview, breadcrumbs,
|
|
74
|
+
* markdown canonicals, and search indexing. All consuming projects (see docs/RELATED_PROJECTS.md
|
|
75
|
+
* and docs/routing.md) provide their own implementations matching their app routes and
|
|
76
|
+
* MarketingSiteSitemapConfig.
|
|
77
|
+
*
|
|
78
|
+
* Return values should typically include a trailing slash for page-like paths (except downloads).
|
|
79
|
+
*/
|
|
80
|
+
export type UrlCalculators = {
|
|
81
|
+
page: (slug: string) => string;
|
|
82
|
+
pageVariant: (slug: string) => string;
|
|
83
|
+
article: (articleTypeSlug: string, slug: string, primaryTagSlug?: string) => string;
|
|
84
|
+
articleType: (slug: string) => string;
|
|
85
|
+
articleTypeTag: (articleTypeSlug: string, tagSlug: string) => string;
|
|
86
|
+
tag: (slug: string) => string;
|
|
87
|
+
person: (slug: string) => string;
|
|
88
|
+
team: () => string;
|
|
89
|
+
customType: (slug: string) => string;
|
|
90
|
+
tagType: (slug: string) => string;
|
|
91
|
+
download: (assetId: string, filename: string) => string;
|
|
92
|
+
/**
|
|
93
|
+
* Optional hop-page URL for Document entries (e.g. `/documents/${slug}/`).
|
|
94
|
+
* When omitted, document `href` falls back to the download-proxy path for the file.
|
|
95
|
+
*/
|
|
96
|
+
document?: (slug: string) => string;
|
|
97
|
+
};
|
|
98
|
+
export type BaseConverterContext = {
|
|
99
|
+
videoPrefix: string;
|
|
100
|
+
/**
|
|
101
|
+
* Resolves a mask dropdown value (e.g., 'Rounded diamond') to a URL.
|
|
102
|
+
* Each project provides its own implementation with project-specific masks.
|
|
103
|
+
*/
|
|
104
|
+
maskResolver?: (maskName: string) => string | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Resolves a gradient dropdown value to a CSS gradient string.
|
|
107
|
+
* Each project provides its own implementation with project-specific gradients.
|
|
108
|
+
*/
|
|
109
|
+
gradientResolver?: (gradientName: string) => string | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* URL calculators for each content type.
|
|
112
|
+
* Apps can override these to customize URL patterns for links, sitemaps, and preview.
|
|
113
|
+
*/
|
|
114
|
+
urlCalculators: UrlCalculators;
|
|
115
|
+
/**
|
|
116
|
+
* Optional project resolvers for Contentful Live Preview entry → URL lookup.
|
|
117
|
+
* Keys are Contentful content type ids (e.g. `location`). Used by
|
|
118
|
+
* getPreviewEntryInfo when the content type is not a built-in type.
|
|
119
|
+
* See {@link import('../api/preview-types').PreviewEntryResolver}.
|
|
120
|
+
*/
|
|
121
|
+
previewEntryResolvers?: Readonly<Record<string, import('../api/preview-types').PreviewEntryResolver>>;
|
|
122
|
+
linkResolver: LinkResolverMap;
|
|
123
|
+
contentResolver: Map<string, (context: ConverterContext, entry: Entry<BaseContent, DefaultChainModifier, string>) => unknown>;
|
|
124
|
+
navigationItemResolver: typeof baseNavigationItemConverter;
|
|
125
|
+
pageResolver: typeof basePageConverter;
|
|
126
|
+
articleResolver: typeof baseArticleConverter;
|
|
127
|
+
articleTypeResolver: typeof baseArticleTypeConverter;
|
|
128
|
+
tagResolver: typeof baseTagConverter;
|
|
129
|
+
tagTypeResolver: typeof baseTagTypeConverter;
|
|
130
|
+
personResolver: typeof import('./person').basePersonConverter;
|
|
131
|
+
customTypeResolver: typeof baseCustomTypeConverter;
|
|
132
|
+
componentResolver: typeof baseComponentConverter;
|
|
133
|
+
collectionResolver: typeof baseCollectionConverter;
|
|
134
|
+
bannerResolver: typeof baseBannerConverter;
|
|
135
|
+
documentResolver: typeof baseDocumentConverter;
|
|
136
|
+
redirectResolver: typeof import('./redirect').baseRedirectConverter;
|
|
137
|
+
/**
|
|
138
|
+
* Optional selector to determine the primary tag for URL generation.
|
|
139
|
+
* Receives each tag and the article type; return true for the desired primary tag.
|
|
140
|
+
* Falls back to tags[0] when omitted or no match found.
|
|
141
|
+
*/
|
|
142
|
+
primaryTagSelector?: PrimaryTagSelector;
|
|
143
|
+
};
|
|
144
|
+
export type ConverterContext = BaseConverterContext & {
|
|
145
|
+
includes: Map<string, PossibleResolvedEntry>;
|
|
146
|
+
assets: Map<string, IVisual>;
|
|
147
|
+
rawAssets: Map<string, Asset>;
|
|
148
|
+
errors: CmsError[];
|
|
149
|
+
externalVideoEmbeds: Map<string, IVideoEmbed>;
|
|
150
|
+
/** When omitted, treated as full page resolution (nav + contents). */
|
|
151
|
+
resolutionScope?: ConverterResolutionScope;
|
|
152
|
+
};
|
|
153
|
+
export declare function getResolutionScope(context: ConverterContext): ConverterResolutionScope;
|
|
154
|
+
export declare function shouldResolveNavigation(context: ConverterContext): boolean;
|
|
155
|
+
export declare function shouldResolveContents(context: ConverterContext): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Adds position metadata to an array of content items
|
|
158
|
+
* Each item gets: index, isFirst, isLast, indexOfType
|
|
159
|
+
*
|
|
160
|
+
* indexOfType is keyed by CMS-facing type (componentType, collectionType, etc.),
|
|
161
|
+
* not structural item.type.
|
|
162
|
+
*
|
|
163
|
+
* @param items - Array of content items to add metadata to
|
|
164
|
+
* @returns New array with position metadata added to each item
|
|
165
|
+
*/
|
|
166
|
+
export declare function addPositionMetadata<T extends ITyped & {
|
|
167
|
+
index?: number;
|
|
168
|
+
isFirst?: boolean;
|
|
169
|
+
isLast?: boolean;
|
|
170
|
+
indexOfType?: number;
|
|
171
|
+
}>(items: T[]): T[];
|
|
172
|
+
export declare function calculateContentCount(...contents: ITyped[][]): number;
|
|
173
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/converters/helpers.ts"],"names":[],"mappings":"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"}
|