@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
package/dist/client.js
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: Any ok for now! */
|
|
2
|
+
import { logCmsQuery, readResponseBodyWithSize } from './telemetry/queryLog.js';
|
|
3
|
+
import { AuthenticationError, ContentfulError, EntryNotFoundError, RateLimitError, ValidationError, } from './utils/errors.js';
|
|
4
|
+
import { calculateBackoffDelay, getRateLimiter, getRateLimitPauseSeconds, getRetryConfig, } from './utils/retry.js';
|
|
5
|
+
/**
|
|
6
|
+
* Builds query string from query parameters
|
|
7
|
+
*/
|
|
8
|
+
function buildQueryString(query) {
|
|
9
|
+
const params = new URLSearchParams();
|
|
10
|
+
Object.entries(query).forEach(([key, value]) => {
|
|
11
|
+
if (value !== undefined && value !== null) {
|
|
12
|
+
params.append(key, String(value));
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return params.toString();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Sleep utility for async delays
|
|
19
|
+
*/
|
|
20
|
+
function sleep(ms) {
|
|
21
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parses retry-after header from response
|
|
25
|
+
*
|
|
26
|
+
* @param response - Fetch response object
|
|
27
|
+
* @returns Retry-after value in seconds, or undefined if not present
|
|
28
|
+
*/
|
|
29
|
+
function parseRetryAfter(response) {
|
|
30
|
+
const retryAfterHeader = response.headers.get('X-Contentful-RateLimit-Reset') || response.headers.get('Retry-After');
|
|
31
|
+
if (retryAfterHeader) {
|
|
32
|
+
const parsed = Number.parseInt(retryAfterHeader, 10);
|
|
33
|
+
return Number.isNaN(parsed) ? undefined : parsed;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parses error response from Contentful API
|
|
39
|
+
*/
|
|
40
|
+
async function parseErrorResponse(response) {
|
|
41
|
+
const statusCode = response.status;
|
|
42
|
+
let errorData;
|
|
43
|
+
try {
|
|
44
|
+
errorData = await response.json();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
errorData = { message: response.statusText };
|
|
48
|
+
}
|
|
49
|
+
const message = errorData?.message || `Contentful API error: ${statusCode}`;
|
|
50
|
+
switch (statusCode) {
|
|
51
|
+
case 401:
|
|
52
|
+
return new AuthenticationError(message);
|
|
53
|
+
case 404:
|
|
54
|
+
return new EntryNotFoundError(errorData?.sys?.id || 'unknown', errorData?.sys?.contentType?.sys?.id);
|
|
55
|
+
case 429: {
|
|
56
|
+
// Parse retry-after header (in seconds)
|
|
57
|
+
const retryAfterHeader = response.headers.get('X-Contentful-RateLimit-Reset') || response.headers.get('Retry-After');
|
|
58
|
+
const retryAfter = retryAfterHeader ? Number.parseInt(retryAfterHeader, 10) : undefined;
|
|
59
|
+
return new RateLimitError(message, retryAfter, errorData);
|
|
60
|
+
}
|
|
61
|
+
case 400:
|
|
62
|
+
return new ValidationError(message, errorData);
|
|
63
|
+
default:
|
|
64
|
+
return new ContentfulError(message, statusCode, errorData);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Fetch-based Contentful client that participates in Next.js caching.
|
|
69
|
+
* Includes proactive rate limiting and automatic retry on 429 errors.
|
|
70
|
+
*/
|
|
71
|
+
export class ContentfulFetchClient {
|
|
72
|
+
baseUrl;
|
|
73
|
+
accessToken;
|
|
74
|
+
rateLimiter;
|
|
75
|
+
isPreview;
|
|
76
|
+
retryConfig;
|
|
77
|
+
constructor(config, preview = false) {
|
|
78
|
+
const host = config.host || (preview ? 'preview.contentful.com' : 'cdn.contentful.com');
|
|
79
|
+
const environment = config.environment || 'master';
|
|
80
|
+
this.baseUrl = `https://${host}/spaces/${config.spaceId}/environments/${environment}`;
|
|
81
|
+
this.accessToken = config.accessToken;
|
|
82
|
+
this.isPreview = preview;
|
|
83
|
+
this.rateLimiter = getRateLimiter(preview);
|
|
84
|
+
this.retryConfig = getRetryConfig(preview);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetches entries from Contentful with proactive rate limiting
|
|
88
|
+
* and automatic retry on rate limit errors.
|
|
89
|
+
*
|
|
90
|
+
* Rate limits are applied proactively:
|
|
91
|
+
* - Preview API: ~10 requests/second (proactive headroom under 14 cap)
|
|
92
|
+
* - Delivery API: 55 requests/second
|
|
93
|
+
*
|
|
94
|
+
* If a 429 is still received (e.g., due to other processes), retries with backoff.
|
|
95
|
+
*/
|
|
96
|
+
async getEntries(query, options) {
|
|
97
|
+
const queryString = buildQueryString(query);
|
|
98
|
+
const url = `${this.baseUrl}/entries?${queryString}`;
|
|
99
|
+
const fetchOptions = {
|
|
100
|
+
headers: {
|
|
101
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
102
|
+
'Content-Type': 'application/json',
|
|
103
|
+
},
|
|
104
|
+
...(options?.cache && { cache: options.cache }),
|
|
105
|
+
...(options?.next && { next: options.next }),
|
|
106
|
+
};
|
|
107
|
+
for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
|
|
108
|
+
try {
|
|
109
|
+
// Wait for rate limiter before making request
|
|
110
|
+
await this.rateLimiter.acquire();
|
|
111
|
+
if (process.env.LOG_CMS_FETCH) {
|
|
112
|
+
console.log(`[CMS fetch] ${url}`);
|
|
113
|
+
}
|
|
114
|
+
const fetchStart = performance.now();
|
|
115
|
+
const response = await fetch(url, fetchOptions);
|
|
116
|
+
const fetchMs = Math.round(performance.now() - fetchStart);
|
|
117
|
+
if (response.ok) {
|
|
118
|
+
const { bytes, text } = await readResponseBodyWithSize(response);
|
|
119
|
+
logCmsQuery({ url, bytes, ms: fetchMs });
|
|
120
|
+
return JSON.parse(text);
|
|
121
|
+
}
|
|
122
|
+
// Handle rate limiting (429) with automatic retry
|
|
123
|
+
if (response.status === 429 && attempt < this.retryConfig.maxRetries) {
|
|
124
|
+
const retryAfter = parseRetryAfter(response);
|
|
125
|
+
const delay = calculateBackoffDelay(attempt, this.retryConfig, retryAfter);
|
|
126
|
+
if (process.env.LOG_CMS)
|
|
127
|
+
console.warn(`[Contentful] Rate limited (429), retrying in ${delay}ms (attempt ${attempt + 1}/${this.retryConfig.maxRetries}). ` +
|
|
128
|
+
`Queue: ${this.rateLimiter.getQueueLength()} waiting. ` +
|
|
129
|
+
`API: ${this.isPreview ? 'preview' : 'delivery'}`);
|
|
130
|
+
// Pause the rate limiter - this affects all queued requests
|
|
131
|
+
const pauseSeconds = getRateLimitPauseSeconds(retryAfter, this.isPreview);
|
|
132
|
+
this.rateLimiter.pause(pauseSeconds);
|
|
133
|
+
// Wait before retrying this request
|
|
134
|
+
await sleep(delay);
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
// For non-429 errors or final retry attempt, throw the error
|
|
138
|
+
throw await parseErrorResponse(response);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (error instanceof ContentfulError) {
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
console.error('[Contentful] Unexpected error in request', error);
|
|
145
|
+
throw new ContentfulError('Unexpected error in request', 500);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// This should never be reached due to the throw in the loop,
|
|
149
|
+
// but TypeScript needs it for type safety
|
|
150
|
+
throw new ContentfulError('Max retries exceeded', 500);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Fetches a page of assets from Contentful (`GET /assets`) with rate limiting
|
|
154
|
+
* and retry on 429.
|
|
155
|
+
*/
|
|
156
|
+
async getAssets(query = {}, options) {
|
|
157
|
+
const queryString = buildQueryString(query);
|
|
158
|
+
const url = `${this.baseUrl}/assets?${queryString}`;
|
|
159
|
+
const fetchOptions = {
|
|
160
|
+
headers: {
|
|
161
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
162
|
+
'Content-Type': 'application/json',
|
|
163
|
+
},
|
|
164
|
+
...(options?.cache && { cache: options.cache }),
|
|
165
|
+
...(options?.next && { next: options.next }),
|
|
166
|
+
};
|
|
167
|
+
for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
|
|
168
|
+
try {
|
|
169
|
+
await this.rateLimiter.acquire();
|
|
170
|
+
if (process.env.LOG_CMS_FETCH) {
|
|
171
|
+
console.log(`[CMS fetch] ${url}`);
|
|
172
|
+
}
|
|
173
|
+
const fetchStart = performance.now();
|
|
174
|
+
const response = await fetch(url, fetchOptions);
|
|
175
|
+
const fetchMs = Math.round(performance.now() - fetchStart);
|
|
176
|
+
if (response.ok) {
|
|
177
|
+
const { bytes, text } = await readResponseBodyWithSize(response);
|
|
178
|
+
logCmsQuery({ url, bytes, ms: fetchMs });
|
|
179
|
+
return JSON.parse(text);
|
|
180
|
+
}
|
|
181
|
+
if (response.status === 429 && attempt < this.retryConfig.maxRetries) {
|
|
182
|
+
const retryAfter = parseRetryAfter(response);
|
|
183
|
+
const delay = calculateBackoffDelay(attempt, this.retryConfig, retryAfter);
|
|
184
|
+
if (process.env.LOG_CMS)
|
|
185
|
+
console.warn(`[Contentful] Rate limited (429), retrying in ${delay}ms (attempt ${attempt + 1}/${this.retryConfig.maxRetries}). ` +
|
|
186
|
+
`Queue: ${this.rateLimiter.getQueueLength()} waiting. ` +
|
|
187
|
+
`API: ${this.isPreview ? 'preview' : 'delivery'}`);
|
|
188
|
+
const pauseSeconds = getRateLimitPauseSeconds(retryAfter, this.isPreview);
|
|
189
|
+
this.rateLimiter.pause(pauseSeconds);
|
|
190
|
+
await sleep(delay);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
throw await parseErrorResponse(response);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error instanceof ContentfulError) {
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
console.error('[Contentful] Unexpected error in assets request', error);
|
|
200
|
+
throw new ContentfulError('Unexpected error in assets request', 500);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
throw new ContentfulError('Max retries exceeded', 500);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Fetches a single asset by ID. Returns null for 404.
|
|
207
|
+
*/
|
|
208
|
+
async getAsset(assetId, options) {
|
|
209
|
+
const url = `${this.baseUrl}/assets/${assetId}`;
|
|
210
|
+
const fetchOptions = {
|
|
211
|
+
headers: {
|
|
212
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
213
|
+
'Content-Type': 'application/json',
|
|
214
|
+
},
|
|
215
|
+
...(options?.cache && { cache: options.cache }),
|
|
216
|
+
...(options?.next && { next: options.next }),
|
|
217
|
+
};
|
|
218
|
+
for (let attempt = 0; attempt <= this.retryConfig.maxRetries; attempt++) {
|
|
219
|
+
try {
|
|
220
|
+
// Wait for rate limiter before making request
|
|
221
|
+
await this.rateLimiter.acquire();
|
|
222
|
+
if (process.env.LOG_CMS_FETCH) {
|
|
223
|
+
console.log(`[CMS fetch] ${url}`);
|
|
224
|
+
}
|
|
225
|
+
const fetchStart = performance.now();
|
|
226
|
+
const response = await fetch(url, fetchOptions);
|
|
227
|
+
const fetchMs = Math.round(performance.now() - fetchStart);
|
|
228
|
+
if (response.ok) {
|
|
229
|
+
const { bytes, text } = await readResponseBodyWithSize(response);
|
|
230
|
+
logCmsQuery({ url, bytes, ms: fetchMs });
|
|
231
|
+
return JSON.parse(text);
|
|
232
|
+
}
|
|
233
|
+
// Return null for 404 (asset not found)
|
|
234
|
+
if (response.status === 404) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
// Handle rate limiting (429) with automatic retry
|
|
238
|
+
if (response.status === 429 && attempt < this.retryConfig.maxRetries) {
|
|
239
|
+
const retryAfter = parseRetryAfter(response);
|
|
240
|
+
const delay = calculateBackoffDelay(attempt, this.retryConfig, retryAfter);
|
|
241
|
+
if (process.env.LOG_CMS)
|
|
242
|
+
console.warn(`[Contentful] Rate limited (429), retrying in ${delay}ms (attempt ${attempt + 1}/${this.retryConfig.maxRetries}). ` +
|
|
243
|
+
`Queue: ${this.rateLimiter.getQueueLength()} waiting. ` +
|
|
244
|
+
`API: ${this.isPreview ? 'preview' : 'delivery'}`);
|
|
245
|
+
// Pause the rate limiter - this affects all queued requests
|
|
246
|
+
const pauseSeconds = getRateLimitPauseSeconds(retryAfter, this.isPreview);
|
|
247
|
+
this.rateLimiter.pause(pauseSeconds);
|
|
248
|
+
// Wait before retrying this request
|
|
249
|
+
await sleep(delay);
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
// For non-429 errors or final retry attempt, throw the error
|
|
253
|
+
throw await parseErrorResponse(response);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
if (error instanceof ContentfulError) {
|
|
257
|
+
throw error;
|
|
258
|
+
}
|
|
259
|
+
console.error('[Contentful] Unexpected error in asset request', error);
|
|
260
|
+
throw new ContentfulError('Unexpected error in asset request', 500);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
throw new ContentfulError('Max retries exceeded', 500);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Creates a Contentful Content Delivery API (CDA) client
|
|
268
|
+
*
|
|
269
|
+
* @param config - Configuration object for the Contentful client
|
|
270
|
+
* @returns Contentful CDA client instance
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* const client = createContentfulClient({
|
|
275
|
+
* spaceId: process.env.CONTENTFUL_SPACE_ID!,
|
|
276
|
+
* accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
|
|
277
|
+
* environment: 'master'
|
|
278
|
+
* });
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
export function createContentfulClient(config) {
|
|
282
|
+
return new ContentfulFetchClient(config, false);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Creates a Contentful Content Preview API (CPA) client
|
|
286
|
+
*
|
|
287
|
+
* @param config - Configuration object for the Contentful preview client
|
|
288
|
+
* @returns Contentful CPA client instance
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```ts
|
|
292
|
+
* const previewClient = createContentfulPreviewClient({
|
|
293
|
+
* spaceId: process.env.CONTENTFUL_SPACE_ID!,
|
|
294
|
+
* accessToken: process.env.CONTENTFUL_PREVIEW_ACCESS_TOKEN!,
|
|
295
|
+
* environment: 'master'
|
|
296
|
+
* });
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
export function createContentfulPreviewClient(config) {
|
|
300
|
+
return new ContentfulFetchClient(config, true);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Gets the appropriate Contentful client based on preview mode
|
|
304
|
+
*
|
|
305
|
+
* @param config - Configuration for the Contentful client
|
|
306
|
+
* @param preview - Whether to use the preview API
|
|
307
|
+
* @returns Contentful client instance (CDA or CPA)
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```ts
|
|
311
|
+
* const client = getContentfulClient({
|
|
312
|
+
* spaceId: process.env.CONTENTFUL_SPACE_ID!,
|
|
313
|
+
* accessToken: preview
|
|
314
|
+
* ? process.env.CONTENTFUL_PREVIEW_ACCESS_TOKEN!
|
|
315
|
+
* : process.env.CONTENTFUL_ACCESS_TOKEN!,
|
|
316
|
+
* }, preview);
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
export function getContentfulClient(config, preview) {
|
|
320
|
+
return preview ? createContentfulPreviewClient(config) : createContentfulClient(config);
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-safe entry for smoke CMS integrity checks (no Next.js `next/cache` dependency at load time).
|
|
3
|
+
*/
|
|
4
|
+
export { createBaseConverterContext } from './api/context.js';
|
|
5
|
+
export { contentfulAllArticleLinksForIntegrity } from './api/links.js';
|
|
6
|
+
export type { IContentfulArticleLink } from './converters/article.js';
|
|
7
|
+
export type { BaseConverterContext } from './converters/helpers.js';
|
|
8
|
+
export { createMarketingSiteUrlCalculators, type MarketingSiteRoutingOptions, } from './routing/index.js';
|
|
9
|
+
export type { CmsResponse, ContentfulConfig, FetchOptions } from './types.js';
|
|
10
|
+
//# sourceMappingURL=cms-integrity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-integrity.d.ts","sourceRoot":"","sources":["../src/cms-integrity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EACL,iCAAiC,EACjC,KAAK,2BAA2B,GACjC,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-safe entry for smoke CMS integrity checks (no Next.js `next/cache` dependency at load time).
|
|
3
|
+
*/
|
|
4
|
+
export { createBaseConverterContext } from './api/context.js';
|
|
5
|
+
export { contentfulAllArticleLinksForIntegrity } from './api/links.js';
|
|
6
|
+
export { createMarketingSiteUrlCalculators, } from './routing/index.js';
|
|
7
|
+
//# sourceMappingURL=cms-integrity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms-integrity.js","sourceRoot":"","sources":["../src/cms-integrity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EACL,iCAAiC,GAElC,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IVisual } from '@se-studio/core-data-types';
|
|
2
|
+
/**
|
|
3
|
+
* Decode a .lottie (zip) buffer and return dimensions from the primary animation JSON.
|
|
4
|
+
* Optionally returns an embedded raster poster if the package includes a common image asset.
|
|
5
|
+
*/
|
|
6
|
+
export declare function dimensionsFromDotLottieBuffer(buffer: Uint8Array): {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
posterSrc?: string;
|
|
10
|
+
} | null;
|
|
11
|
+
/**
|
|
12
|
+
* Enriches all animation visuals in the assets Map with dimensions (optimised SVG)
|
|
13
|
+
* and a posterSrc for the lazy shell / reduced-motion fallback.
|
|
14
|
+
* Mutates animation in place so values are available at render without async server components.
|
|
15
|
+
*/
|
|
16
|
+
export declare function enrichAnimationAssets(assets: Map<string, IVisual>): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=animationEnricher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,OAAO,EACR,MAAM,4BAA4B,CAAC;AAoCpC;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAoFP;AAqED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvF"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { unzipSync } from 'fflate';
|
|
2
|
+
import { assetTag } from '../revalidation/tags.js';
|
|
3
|
+
function getLottieDimensions(lottieJson) {
|
|
4
|
+
const width = lottieJson.w || lottieJson.width || 0;
|
|
5
|
+
const height = lottieJson.h || lottieJson.height || 0;
|
|
6
|
+
return { width, height };
|
|
7
|
+
}
|
|
8
|
+
function blankSvg(width, height) {
|
|
9
|
+
return `<svg width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%"></svg>`;
|
|
10
|
+
}
|
|
11
|
+
function optimisedFromDimensions(width, height) {
|
|
12
|
+
if (!width || !height)
|
|
13
|
+
return undefined;
|
|
14
|
+
return { width, height, data: blankSvg(width, height) };
|
|
15
|
+
}
|
|
16
|
+
/** Transparent SVG data URL — reserves space and works as a reduced-motion / lazy shell. */
|
|
17
|
+
function posterDataUrlFromSvg(svg) {
|
|
18
|
+
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Decode a .lottie (zip) buffer and return dimensions from the primary animation JSON.
|
|
22
|
+
* Optionally returns an embedded raster poster if the package includes a common image asset.
|
|
23
|
+
*/
|
|
24
|
+
export function dimensionsFromDotLottieBuffer(buffer) {
|
|
25
|
+
let files;
|
|
26
|
+
try {
|
|
27
|
+
files = unzipSync(buffer);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const entries = Object.keys(files);
|
|
33
|
+
const manifestKey = entries.find((k) => k === 'manifest.json' || k.endsWith('/manifest.json'));
|
|
34
|
+
let animationPath;
|
|
35
|
+
if (manifestKey) {
|
|
36
|
+
const manifestBytes = files[manifestKey];
|
|
37
|
+
if (manifestBytes) {
|
|
38
|
+
try {
|
|
39
|
+
const manifest = JSON.parse(new TextDecoder().decode(manifestBytes));
|
|
40
|
+
const firstId = manifest.animations?.[0]?.id;
|
|
41
|
+
if (firstId) {
|
|
42
|
+
// Spec locations: a/<id>.json or animations/<id>.json
|
|
43
|
+
animationPath = entries.find((k) => k === `a/${firstId}.json` ||
|
|
44
|
+
k === `animations/${firstId}.json` ||
|
|
45
|
+
k.endsWith(`/${firstId}.json`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// fall through to first JSON under a/ or animations/
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (!animationPath) {
|
|
54
|
+
animationPath = entries.find((k) => (k.startsWith('a/') || k.includes('/a/') || k.startsWith('animations/')) &&
|
|
55
|
+
k.endsWith('.json') &&
|
|
56
|
+
!k.endsWith('manifest.json'));
|
|
57
|
+
}
|
|
58
|
+
if (!animationPath) {
|
|
59
|
+
// Last resort: any non-manifest JSON
|
|
60
|
+
animationPath = entries.find((k) => k.endsWith('.json') && !k.endsWith('manifest.json'));
|
|
61
|
+
}
|
|
62
|
+
if (!animationPath)
|
|
63
|
+
return null;
|
|
64
|
+
const animBytes = files[animationPath];
|
|
65
|
+
if (!animBytes)
|
|
66
|
+
return null;
|
|
67
|
+
let json;
|
|
68
|
+
try {
|
|
69
|
+
json = JSON.parse(new TextDecoder().decode(animBytes));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const { width, height } = getLottieDimensions(json);
|
|
75
|
+
if (!width || !height)
|
|
76
|
+
return null;
|
|
77
|
+
// Opportunistic embedded still (not guaranteed to be frame 0).
|
|
78
|
+
const imageKey = entries.find((k) => /\.(png|jpe?g|webp)$/i.test(k));
|
|
79
|
+
let posterSrc;
|
|
80
|
+
if (imageKey) {
|
|
81
|
+
const imgBytes = files[imageKey];
|
|
82
|
+
if (imgBytes && imgBytes.byteLength > 0 && imgBytes.byteLength <= 100 * 1024) {
|
|
83
|
+
const ext = imageKey.split('.').pop()?.toLowerCase() ?? 'png';
|
|
84
|
+
const mime = ext === 'jpg' || ext === 'jpeg'
|
|
85
|
+
? 'image/jpeg'
|
|
86
|
+
: ext === 'webp'
|
|
87
|
+
? 'image/webp'
|
|
88
|
+
: 'image/png';
|
|
89
|
+
let binary = '';
|
|
90
|
+
const chunk = 0x8000;
|
|
91
|
+
for (let i = 0; i < imgBytes.length; i += chunk) {
|
|
92
|
+
binary += String.fromCharCode(...imgBytes.subarray(i, i + chunk));
|
|
93
|
+
}
|
|
94
|
+
posterSrc = `data:${mime};base64,${btoa(binary)}`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { width, height, posterSrc };
|
|
98
|
+
}
|
|
99
|
+
async function fetchCached(url, assetId) {
|
|
100
|
+
const response = await fetch(url, {
|
|
101
|
+
cache: 'force-cache',
|
|
102
|
+
next: {
|
|
103
|
+
tags: [assetTag(assetId)],
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
if (!response.ok)
|
|
107
|
+
return undefined;
|
|
108
|
+
return response;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Fetches a Lottie animation JSON and returns an optimised SVG placeholder
|
|
112
|
+
* capturing the animation's dimensions. Optionally sets a SVG data-URL poster.
|
|
113
|
+
*/
|
|
114
|
+
async function enrichLottieJson(animationSrc, assetId) {
|
|
115
|
+
const response = await fetchCached(animationSrc, assetId);
|
|
116
|
+
if (!response)
|
|
117
|
+
return undefined;
|
|
118
|
+
const json = (await response.json());
|
|
119
|
+
const { width, height } = getLottieDimensions(json);
|
|
120
|
+
const optimised = optimisedFromDimensions(width, height);
|
|
121
|
+
if (!optimised)
|
|
122
|
+
return undefined;
|
|
123
|
+
return {
|
|
124
|
+
optimised,
|
|
125
|
+
posterSrc: posterDataUrlFromSvg(optimised.data),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Fetches a .lottie package, unzips it, reads dimensions from the primary animation JSON.
|
|
130
|
+
*/
|
|
131
|
+
async function enrichDotLottie(animationSrc, assetId) {
|
|
132
|
+
const response = await fetchCached(animationSrc, assetId);
|
|
133
|
+
if (!response)
|
|
134
|
+
return undefined;
|
|
135
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
136
|
+
const dims = dimensionsFromDotLottieBuffer(buffer);
|
|
137
|
+
if (!dims)
|
|
138
|
+
return undefined;
|
|
139
|
+
const optimised = optimisedFromDimensions(dims.width, dims.height);
|
|
140
|
+
if (!optimised)
|
|
141
|
+
return undefined;
|
|
142
|
+
return {
|
|
143
|
+
optimised,
|
|
144
|
+
// Prefer embedded raster; otherwise transparent SVG with correct aspect.
|
|
145
|
+
posterSrc: dims.posterSrc ?? posterDataUrlFromSvg(optimised.data),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
async function enrichOne(format, animationSrc, assetId) {
|
|
149
|
+
if (format === 'dotlottie') {
|
|
150
|
+
return enrichDotLottie(animationSrc, assetId);
|
|
151
|
+
}
|
|
152
|
+
return enrichLottieJson(animationSrc, assetId);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Enriches all animation visuals in the assets Map with dimensions (optimised SVG)
|
|
156
|
+
* and a posterSrc for the lazy shell / reduced-motion fallback.
|
|
157
|
+
* Mutates animation in place so values are available at render without async server components.
|
|
158
|
+
*/
|
|
159
|
+
export async function enrichAnimationAssets(assets) {
|
|
160
|
+
const animationEntries = Array.from(assets.entries()).filter(([, visual]) => visual.animation !== undefined);
|
|
161
|
+
if (animationEntries.length === 0)
|
|
162
|
+
return;
|
|
163
|
+
await Promise.all(animationEntries.map(async ([assetId, visual]) => {
|
|
164
|
+
try {
|
|
165
|
+
const format = visual.animation.format ?? 'lottie-json';
|
|
166
|
+
const result = await enrichOne(format, visual.animation.animationSrc, assetId);
|
|
167
|
+
if (result) {
|
|
168
|
+
visual.animation.optimised = result.optimised;
|
|
169
|
+
visual.animation.posterSrc = result.posterSrc;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Leave optimised/poster undefined — LazyAnimation handles missing case gracefully
|
|
174
|
+
}
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=animationEnricher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationEnricher.js","sourceRoot":"","sources":["../../src/converters/animationEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type IArticleLink, type IArticleTypeLink, type IBaseArticle, type IBaseArticleType } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier, IContentfulRichText } from '../api';
|
|
4
|
+
import type { BaseArticleSkeleton } from '../baseTypes/baseArticle';
|
|
5
|
+
import type { BaseArticleTypeSkeleton } from '../baseTypes/baseArticleType';
|
|
6
|
+
import type { BaseCustomTypeSkeleton } from '../baseTypes/baseCustomType';
|
|
7
|
+
import { type ConverterContext } from './helpers';
|
|
8
|
+
export type IContentfulArticle = IBaseArticle & {
|
|
9
|
+
summary?: IContentfulRichText | null;
|
|
10
|
+
};
|
|
11
|
+
export type IContentfulArticleLink = IArticleLink & {
|
|
12
|
+
summary?: IContentfulRichText | null;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Base converter for Contentful Article entries to IArticle type
|
|
16
|
+
*
|
|
17
|
+
* This is a minimal implementation that can be extended using
|
|
18
|
+
* the functional composition pattern.
|
|
19
|
+
*
|
|
20
|
+
* @param entry - Contentful entry to convert
|
|
21
|
+
* @returns IArticle object
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const article = baseArticleConverter(contentfulEntry);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function baseArticleConverter(context: ConverterContext, entry: Entry<BaseArticleSkeleton, DefaultChainModifier, string>): IContentfulArticle;
|
|
29
|
+
export declare function baseArticleLinkConverter(context: ConverterContext, entry: Entry<BaseArticleSkeleton, DefaultChainModifier, string>): IContentfulArticleLink;
|
|
30
|
+
export declare function baseArticleTypeLinkConverter(context: ConverterContext, entry: Entry<BaseArticleTypeSkeleton, DefaultChainModifier, string>): IArticleTypeLink;
|
|
31
|
+
/**
|
|
32
|
+
* Base converter for Contentful Article Type entries to IArticleType type
|
|
33
|
+
*
|
|
34
|
+
* This is a minimal implementation that can be extended using
|
|
35
|
+
* the functional composition pattern.
|
|
36
|
+
*
|
|
37
|
+
* @param context - Converter context containing includes
|
|
38
|
+
* @param entry - Contentful entry to convert
|
|
39
|
+
* @param customTypeEntry - Optional custom type entry that defines templates and navigation
|
|
40
|
+
* @returns IBaseArticleType object
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* const articleType = baseArticleTypeConverter(context, contentfulEntry, customTypeEntry);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function baseArticleTypeConverter(context: ConverterContext, entry: Entry<BaseArticleTypeSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseArticleType;
|
|
48
|
+
//# sourceMappingURL=article.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/converters/article.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAQtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EAEL,KAAK,gBAAgB,EAStB,MAAM,WAAW,CAAC;AAgBnB,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAClD,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,CAAC;AAyCF;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,kBAAkB,CA2MpB;AAkBD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,sBAAsB,CA8ExB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAClE,gBAAgB,CAwBlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EACnE,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,gBAAgB,CAwHlB"}
|