@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,53 @@
|
|
|
1
|
+
import { resolvedMeta } from '@se-studio/core-data-types';
|
|
2
|
+
import { resolveNavigationOrStub } from './navigationItem.js';
|
|
3
|
+
import { resolvePageContent, resolveSchema } from './resolver.js';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a template entry from an unresolved link
|
|
6
|
+
*
|
|
7
|
+
* @param context - Converter context containing assets, includes, and resolvers
|
|
8
|
+
* @param link - Unresolved link to template entry
|
|
9
|
+
* @returns Resolved template data with content arrays and navigation
|
|
10
|
+
*/
|
|
11
|
+
export function resolveTemplate(context, link) {
|
|
12
|
+
const id = link.sys.id;
|
|
13
|
+
const possibleEntry = context.includes.get(id);
|
|
14
|
+
if (possibleEntry?.type !== 'template') {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const entry = possibleEntry.entry;
|
|
18
|
+
const { fields } = entry;
|
|
19
|
+
if (!fields) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
// Resolve content arrays
|
|
23
|
+
const preContent = fields.preContent
|
|
24
|
+
?.map((content) => resolvePageContent(context, id, content))
|
|
25
|
+
.filter((item) => item !== null) ?? [];
|
|
26
|
+
const postContent = fields.postContent
|
|
27
|
+
?.map((content) => resolvePageContent(context, id, content))
|
|
28
|
+
.filter((item) => item !== null) ?? [];
|
|
29
|
+
const contentContainer = fields.contentContainer
|
|
30
|
+
? resolvePageContent(context, id, fields.contentContainer)
|
|
31
|
+
: undefined;
|
|
32
|
+
const menu = resolveNavigationOrStub(context, fields.menu);
|
|
33
|
+
const footer = resolveNavigationOrStub(context, fields.footer);
|
|
34
|
+
// Check for sticky nav flag
|
|
35
|
+
const stickyNav = fields.flags?.includes('Sticky nav') ?? false;
|
|
36
|
+
const { backgroundColour, textColour } = fields;
|
|
37
|
+
const structuredData = fields.structuredData
|
|
38
|
+
?.map((link) => resolveSchema(context, id, link))
|
|
39
|
+
.filter((item) => item != null) ?? [];
|
|
40
|
+
return {
|
|
41
|
+
preContent,
|
|
42
|
+
postContent,
|
|
43
|
+
contentContainer: contentContainer ?? undefined,
|
|
44
|
+
menu,
|
|
45
|
+
footer,
|
|
46
|
+
backgroundColour,
|
|
47
|
+
textColour,
|
|
48
|
+
stickyNav,
|
|
49
|
+
structuredData,
|
|
50
|
+
meta: resolvedMeta(fields.meta),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/converters/template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsB/D;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAyB,EACzB,IAA6B;IAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,IAAI,aAAa,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAkE,CAAC;IAC/F,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GACd,MAAM,CAAC,UAAU;QACf,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,WAAW,GACf,MAAM,CAAC,WAAW;QAChB,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;QAC9C,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,gBAAgB,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;IAEhE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,cAAc,GAClB,MAAM,CAAC,cAAc;QACnB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;SAChD,MAAM,CAAC,CAAC,IAAI,EAAmB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,OAAO;QACL,UAAU;QACV,WAAW;QACX,gBAAgB,EAAE,gBAAgB,IAAI,SAAS;QAC/C,IAAI;QACJ,MAAM;QACN,gBAAgB;QAChB,UAAU;QACV,SAAS;QACT,cAAc;QACd,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
import type { IVisual } from '@se-studio/core-data-types';
|
|
3
|
+
/**
|
|
4
|
+
* Enriches all local/full video visuals in the assets Map with pixel dimensions
|
|
5
|
+
* fetched from the ImageKit metadata API. Mutates width/height in place so the
|
|
6
|
+
* correct values are available throughout conversion (e.g. for aspect-ratio
|
|
7
|
+
* calculations in client components like ArticleBrowserImagesView).
|
|
8
|
+
*
|
|
9
|
+
* This is a no-op if IMAGEKIT_URL or IMAGEKIT_PRIVATE_KEY are not set.
|
|
10
|
+
*
|
|
11
|
+
* @param assets - The Map<assetId, IVisual> built by convertAllAssets
|
|
12
|
+
*/
|
|
13
|
+
export declare function imagekitEnrichVideoAssets(assets: Map<string, IVisual>): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=videoEnricher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"videoEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/videoEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAK,EAA2B,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAsEnF;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC3F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
import { unstable_cache } from 'next/cache';
|
|
3
|
+
/**
|
|
4
|
+
* Raw HTTP fetch — called only on cache miss.
|
|
5
|
+
* Note: Next.js automatically excludes fetch calls with Authorization headers from its
|
|
6
|
+
* Data Cache, so caching is handled by the unstable_cache wrapper in fetchVideoMetadata.
|
|
7
|
+
*/
|
|
8
|
+
async function fetchFromImageKit(src, privateKey) {
|
|
9
|
+
const request = `https://api.imagekit.io/v1/metadata?url=${encodeURIComponent(src)}`;
|
|
10
|
+
if (process.env.LOG_IMAGEKIT)
|
|
11
|
+
console.log(`[ImageKit] cache miss — fetching url=${src}`);
|
|
12
|
+
const response = await fetch(request, {
|
|
13
|
+
method: 'GET',
|
|
14
|
+
headers: {
|
|
15
|
+
authorization: `Basic ${Buffer.from(`${privateKey}:`).toString('base64')}`,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
if (response.ok) {
|
|
19
|
+
if (process.env.LOG_IMAGEKIT)
|
|
20
|
+
console.log(`[ImageKit] metadata ok status=${response.status}`);
|
|
21
|
+
return (await response.json());
|
|
22
|
+
}
|
|
23
|
+
console.warn(`[ImageKit] metadata failed status=${response.status} url=${src}`);
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Fetches video metadata (width/height) from the ImageKit metadata API, with caching.
|
|
28
|
+
* Uses unstable_cache (not fetch's next:{} options) because Next.js automatically opts
|
|
29
|
+
* fetch calls with Authorization headers out of the Data Cache.
|
|
30
|
+
*
|
|
31
|
+
* Cached for 1 day; can be invalidated on-demand via the asset's Contentful webhook tag.
|
|
32
|
+
*
|
|
33
|
+
* @param videoUrl - Contentful CDN URL for the video asset
|
|
34
|
+
* @param assetId - Contentful asset ID for cache tagging
|
|
35
|
+
* @param imagekitUrl - ImageKit origin URL (IMAGEKIT_URL env var)
|
|
36
|
+
* @param privateKey - ImageKit private key (IMAGEKIT_PRIVATE_KEY env var)
|
|
37
|
+
*/
|
|
38
|
+
async function fetchVideoMetadata(videoUrl, assetId, imagekitUrl, privateKey) {
|
|
39
|
+
const fullUrl = new URL(videoUrl);
|
|
40
|
+
const src = `${imagekitUrl}${fullUrl.pathname}/ik-video.mp4`;
|
|
41
|
+
const getCached = unstable_cache(() => fetchFromImageKit(src, privateKey), ['imagekit-metadata', assetId], { revalidate: 86400 });
|
|
42
|
+
return getCached();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Enriches all local/full video visuals in the assets Map with pixel dimensions
|
|
46
|
+
* fetched from the ImageKit metadata API. Mutates width/height in place so the
|
|
47
|
+
* correct values are available throughout conversion (e.g. for aspect-ratio
|
|
48
|
+
* calculations in client components like ArticleBrowserImagesView).
|
|
49
|
+
*
|
|
50
|
+
* This is a no-op if IMAGEKIT_URL or IMAGEKIT_PRIVATE_KEY are not set.
|
|
51
|
+
*
|
|
52
|
+
* @param assets - The Map<assetId, IVisual> built by convertAllAssets
|
|
53
|
+
*/
|
|
54
|
+
export async function imagekitEnrichVideoAssets(assets) {
|
|
55
|
+
const imagekitUrl = process.env.IMAGEKIT_URL;
|
|
56
|
+
const privateKey = process.env.IMAGEKIT_PRIVATE_KEY;
|
|
57
|
+
if (!imagekitUrl || !privateKey) {
|
|
58
|
+
if (process.env.LOG_IMAGEKIT)
|
|
59
|
+
console.log('[ImageKit] skipping video enrichment — IMAGEKIT_URL or IMAGEKIT_PRIVATE_KEY not set');
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const videoEntries = Array.from(assets.entries()).filter(([, visual]) => visual.video?.type === 'Local video' || visual.video?.type === 'Full video');
|
|
63
|
+
if (videoEntries.length === 0)
|
|
64
|
+
return;
|
|
65
|
+
await Promise.all(videoEntries.map(async ([assetId, visual]) => {
|
|
66
|
+
const video = visual.video;
|
|
67
|
+
const videoUrl = video.type === 'Full video'
|
|
68
|
+
? (video.full?.videoUrl ?? video.preview?.videoUrl)
|
|
69
|
+
: video.preview.videoUrl;
|
|
70
|
+
if (!videoUrl)
|
|
71
|
+
return;
|
|
72
|
+
try {
|
|
73
|
+
const metadata = await fetchVideoMetadata(videoUrl, assetId, imagekitUrl, privateKey);
|
|
74
|
+
if (metadata?.width && metadata?.height) {
|
|
75
|
+
video.width = metadata.width;
|
|
76
|
+
video.height = metadata.height;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
console.error(`[ImageKit] metadata fetch threw assetId=${assetId}`, err);
|
|
81
|
+
// Leave width/height undefined — components handle missing dimensions gracefully
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=videoEnricher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"videoEnricher.js","sourceRoot":"","sources":["../../src/converters/videoEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { INavigation, ISvgImage, ITyped } from '@se-studio/core-data-types';
|
|
2
|
+
export { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, processIconsForSprite, } from '../converters/iconCollector';
|
|
3
|
+
/**
|
|
4
|
+
* Rebuild the SVG icon sprite from page contents and assembled navigation trees.
|
|
5
|
+
* Use after custom layout assembly when icons were collected before menu/footer were final.
|
|
6
|
+
*/
|
|
7
|
+
export declare function rebuildIconSpriteFromLayout(contents: ReadonlyArray<ITyped> | undefined, menu?: INavigation, footer?: INavigation): Promise<ReadonlyArray<ISvgImage> | undefined>;
|
|
8
|
+
//# sourceMappingURL=rebuildIconSprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebuildIconSprite.d.ts","sourceRoot":"","sources":["../../src/icons/rebuildIconSprite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQjF,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAa/C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, processIconsForSprite, } from '../converters/iconCollector.js';
|
|
2
|
+
export { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, processIconsForSprite, } from '../converters/iconCollector.js';
|
|
3
|
+
/**
|
|
4
|
+
* Rebuild the SVG icon sprite from page contents and assembled navigation trees.
|
|
5
|
+
* Use after custom layout assembly when icons were collected before menu/footer were final.
|
|
6
|
+
*/
|
|
7
|
+
export async function rebuildIconSpriteFromLayout(contents, menu, footer) {
|
|
8
|
+
const mergedIcons = deduplicateIcons(collectIconsFromContent(contents ?? []), collectIconsFromNavigation(menu), collectIconsFromNavigation(footer));
|
|
9
|
+
if (!mergedIcons || mergedIcons.length === 0) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const processedIcons = await processIconsForSprite(mergedIcons);
|
|
13
|
+
return processedIcons.length > 0 ? processedIcons : undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=rebuildIconSprite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rebuildIconSprite.js","sourceRoot":"","sources":["../../src/icons/rebuildIconSprite.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,QAA2C,EAC3C,IAAkB,EAClB,MAAoB;IAEpB,MAAM,WAAW,GAAG,gBAAgB,CAClC,uBAAuB,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvC,0BAA0B,CAAC,IAAI,CAAC,EAChC,0BAA0B,CAAC,MAAM,CAAC,CACnC,CAAC;IAEF,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @se-studio/contentful-rest-api
|
|
3
|
+
*
|
|
4
|
+
* Type-safe Contentful REST API client with caching and rate limiting
|
|
5
|
+
* for Next.js applications.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { contentfulPageRest, createContentfulClient } from '@se-studio/contentful-rest-api';
|
|
10
|
+
*
|
|
11
|
+
* const page = await contentfulPageRest(
|
|
12
|
+
* {
|
|
13
|
+
* spaceId: process.env.CONTENTFUL_SPACE_ID!,
|
|
14
|
+
* accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
|
|
15
|
+
* },
|
|
16
|
+
* 'home'
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type { EntryMeta } from '@se-studio/core-data-types';
|
|
21
|
+
export { interpolateMetaTokens, mergeMeta, parseMeta, resolvedMeta, resolveMetaFromPageContext, } from '@se-studio/core-data-types';
|
|
22
|
+
export { type AnyEntryRestResult, type ArticleTypeFetchOptions, assetToMediaLibraryItem, type BreadcrumbLookup, type BreadcrumbLookupEntry, type BuiltinPreviewContentType, buildAssetThumbUrl, buildFetchOptions, buildFlatNavigationCacheOptions, type CmsContentType, type CmsFetchProfile, type ConverterResolutionScope, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulAssetsPageRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation, getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, LISTING_RESOLUTION_SCOPE, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, type MediaLibraryItem, type MediaLibraryKind, type MediaLibraryPage, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInclude, type PreviewEntryInfo, type PreviewEntryResolveInput, type PreviewEntryResolver, type RelatedArticlesOptions, resolveIncludeDepth, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, slugPreviewResolver, type TagFetchOptions, type TagTypeFetchOptions, withFlatNavRequestCache, } from './api';
|
|
23
|
+
export type { ContentfulFetchClient as ContentfulClient } from './client';
|
|
24
|
+
export { type ContentfulFetchClient, createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client';
|
|
25
|
+
export type { ContentResolverFunction } from './converters';
|
|
26
|
+
export { type BaseConverterContext, baseCollectionConverter, baseComponentConverter, baseDocumentConverter, baseExternalComponentConverter, baseNavigationItemConverter, basePageConverter, type ConverterContext, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, type IContentfulArticle, type IContentfulArticleLink, type IContentfulCollection, type IContentfulComponent, type IContentfulExternalComponent, type IContentfulPerson, lookupAsset, mergeAlternatePageContentsInTree, navigationStubFromLink, resolveAlternateReplacements, resolveLink, resolveLinks, resolveNavigation, resolveNavigationOrStub, resolveRichTextDocument, type UrlCalculators, } from './converters';
|
|
27
|
+
export { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, processIconsForSprite, rebuildIconSpriteFromLayout, } from './icons/rebuildIconSprite';
|
|
28
|
+
export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, DocumentTag, GlobalTag, getCacheTags, getCacheTagsForPreview, getCacheTagsForProduction, LinkTag, LocationTag, locationTag, NavigationItemTag, NavigationTag, PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV, TagTag, TagTypeTag, TemplateTag, tagTag, templateTag, } from './revalidation';
|
|
29
|
+
export { createMarketingSiteUrlCalculators, type MarketingSiteRoutingOptions, } from './routing';
|
|
30
|
+
export type { CmsError, CmsResponse, ContentfulConfig, FetchOptions, NavigationResolution, RetryConfig, } from './types';
|
|
31
|
+
export { type ArticleForTagSelection, AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, type PrimaryTagSelector, RateLimitError, RateLimiter, safeDate, type TagVisibilityFields, ValidationError, withRetry, } from './utils';
|
|
32
|
+
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, type RedirectMap, type RedirectMapEntry, } from './utils/redirectMap';
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @se-studio/contentful-rest-api
|
|
3
|
+
*
|
|
4
|
+
* Type-safe Contentful REST API client with caching and rate limiting
|
|
5
|
+
* for Next.js applications.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { contentfulPageRest, createContentfulClient } from '@se-studio/contentful-rest-api';
|
|
10
|
+
*
|
|
11
|
+
* const page = await contentfulPageRest(
|
|
12
|
+
* {
|
|
13
|
+
* spaceId: process.env.CONTENTFUL_SPACE_ID!,
|
|
14
|
+
* accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
|
|
15
|
+
* },
|
|
16
|
+
* 'home'
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export { interpolateMetaTokens, mergeMeta, parseMeta, resolvedMeta, resolveMetaFromPageContext, } from '@se-studio/core-data-types';
|
|
21
|
+
// API functions
|
|
22
|
+
export {
|
|
23
|
+
// Asset/download + media library
|
|
24
|
+
assetToMediaLibraryItem, buildAssetThumbUrl, buildFetchOptions, buildFlatNavigationCacheOptions, clampMediaLibraryLimit, clampMediaLibraryPage, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulAssetsPageRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulDocumentsRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation,
|
|
25
|
+
// Preview
|
|
26
|
+
getPreviewEntryInfo, getResolutionScope, getResolutionScopeFromOptions, isAnimationAsset, isBrowserViewable, isMediaLibraryKind, LISTING_RESOLUTION_SCOPE, listAnimationsPage, listMediaLibraryPage, MEDIA_LIBRARY_DEFAULT_LIMIT, MEDIA_LIBRARY_KINDS, MEDIA_LIBRARY_MAX_LIMIT, MEDIA_LIBRARY_THUMB_WIDTH, mediaLibraryKindForAsset, mediaLibraryPageToMarkdown, PAGE_CONTENT_SCOPE, PAGE_RESOLUTION_SCOPE, resolveIncludeDepth, slugPreviewResolver, withFlatNavRequestCache, } from './api/index.js';
|
|
27
|
+
// Client exports
|
|
28
|
+
export { createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client.js';
|
|
29
|
+
// Converter exports
|
|
30
|
+
export { baseCollectionConverter, baseComponentConverter, baseDocumentConverter, baseExternalComponentConverter, baseNavigationItemConverter, basePageConverter, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, lookupAsset, mergeAlternatePageContentsInTree, navigationStubFromLink, resolveAlternateReplacements, resolveLink, resolveLinks, resolveNavigation, resolveNavigationOrStub, resolveRichTextDocument, } from './converters/index.js';
|
|
31
|
+
export { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, processIconsForSprite, rebuildIconSpriteFromLayout, } from './icons/rebuildIconSprite.js';
|
|
32
|
+
// Revalidation utilities
|
|
33
|
+
export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, DocumentTag, GlobalTag, getCacheTags,
|
|
34
|
+
// Utility functions
|
|
35
|
+
getCacheTagsForPreview, getCacheTagsForProduction, LinkTag, LocationTag, locationTag, NavigationItemTag, NavigationTag,
|
|
36
|
+
// Tag constants and functions
|
|
37
|
+
PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV, TagTag, TagTypeTag, TemplateTag, tagTag, templateTag, } from './revalidation/index.js';
|
|
38
|
+
export { createMarketingSiteUrlCalculators, } from './routing/index.js';
|
|
39
|
+
// Error handling and retry utilities
|
|
40
|
+
export { AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, RateLimitError, RateLimiter, safeDate, ValidationError, withRetry, } from './utils/index.js';
|
|
41
|
+
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from './utils/redirectMap.js';
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IInternalLink, ILinkProps, INavigation, INavigationItem } from '@se-studio/core-data-types';
|
|
2
|
+
import type { InternalLinkIndex, NavItemRecord, NavigationRegistry, NavigationRootRecord } from './types';
|
|
3
|
+
export declare function createNavItemLink(record: NavItemRecord, linkIndex: InternalLinkIndex): ILinkProps | undefined;
|
|
4
|
+
export declare function assembleNavigationItem(id: string, registry: NavigationRegistry, linkIndex: InternalLinkIndex, visiting?: Set<string>): INavigationItem | undefined;
|
|
5
|
+
export declare function assembleNavigation(root: NavigationRootRecord, registry: NavigationRegistry, linkIndex: InternalLinkIndex): INavigation;
|
|
6
|
+
export declare function assembleNavigationById(navigationId: string, registry: NavigationRegistry, linkIndex: InternalLinkIndex): INavigation | undefined;
|
|
7
|
+
export declare function addLinkToIndex(index: InternalLinkIndex, link: IInternalLink): void;
|
|
8
|
+
//# sourceMappingURL=assembly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/navigation/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,iBAAiB,GAC3B,UAAU,GAAG,SAAS,CAoFxB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAChC,eAAe,GAAG,SAAS,CA0B7B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,WAAW,CAab;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,WAAW,GAAG,SAAS,CAMzB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAOlF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { resolveBuildYear } from '../converters/helpers.js';
|
|
2
|
+
export function createNavItemLink(record, linkIndex) {
|
|
3
|
+
const { id, title, externalLink, text, internalId, icon, useTitle, variant, size, trackingEventName, longText, isButton, isOutlined, backgroundColour, textColour, } = record;
|
|
4
|
+
const trackingInfo = trackingEventName ? { trackingEventName } : undefined;
|
|
5
|
+
const realText = useTitle ? resolveBuildYear(title) : text ? resolveBuildYear(text) : undefined;
|
|
6
|
+
const styleProps = {
|
|
7
|
+
...(isButton !== undefined ? { isButton } : {}),
|
|
8
|
+
...(isOutlined !== undefined ? { isOutlined } : {}),
|
|
9
|
+
...(backgroundColour !== undefined ? { backgroundColour } : {}),
|
|
10
|
+
...(textColour !== undefined ? { textColour } : {}),
|
|
11
|
+
};
|
|
12
|
+
if (externalLink) {
|
|
13
|
+
return {
|
|
14
|
+
type: 'External link',
|
|
15
|
+
id,
|
|
16
|
+
href: externalLink,
|
|
17
|
+
icon,
|
|
18
|
+
name: title,
|
|
19
|
+
...styleProps,
|
|
20
|
+
longText,
|
|
21
|
+
variant,
|
|
22
|
+
size,
|
|
23
|
+
text: realText,
|
|
24
|
+
...(trackingInfo && { trackingInfo }),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (internalId) {
|
|
28
|
+
const resolved = linkIndex.get(internalId);
|
|
29
|
+
if (resolved) {
|
|
30
|
+
return {
|
|
31
|
+
...resolved,
|
|
32
|
+
...styleProps,
|
|
33
|
+
longText,
|
|
34
|
+
icon,
|
|
35
|
+
visual: icon?.visual ?? resolved.visual,
|
|
36
|
+
id,
|
|
37
|
+
text: realText,
|
|
38
|
+
variant,
|
|
39
|
+
size,
|
|
40
|
+
...(trackingInfo && {
|
|
41
|
+
trackingInfo: { ...resolved.trackingInfo, ...trackingInfo },
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (process.env.LOG_CMS) {
|
|
46
|
+
console.warn(`[CMS] Navigation item ${id} internal target ${internalId} not in link index (${linkIndex.size} links loaded)`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const blank = {
|
|
50
|
+
type: 'Blank link',
|
|
51
|
+
nick: true,
|
|
52
|
+
id,
|
|
53
|
+
name: title,
|
|
54
|
+
...styleProps,
|
|
55
|
+
longText,
|
|
56
|
+
variant,
|
|
57
|
+
size,
|
|
58
|
+
icon,
|
|
59
|
+
text: realText,
|
|
60
|
+
...(trackingInfo && { trackingInfo }),
|
|
61
|
+
};
|
|
62
|
+
return blank;
|
|
63
|
+
}
|
|
64
|
+
export function assembleNavigationItem(id, registry, linkIndex, visiting = new Set()) {
|
|
65
|
+
if (visiting.has(id)) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const record = registry.items.get(id);
|
|
69
|
+
if (!record) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
visiting.add(id);
|
|
73
|
+
const link = createNavItemLink(record, linkIndex);
|
|
74
|
+
const entries = record.childIds
|
|
75
|
+
.map((childId) => assembleNavigationItem(childId, registry, linkIndex, visiting))
|
|
76
|
+
.filter((item) => item !== undefined);
|
|
77
|
+
visiting.delete(id);
|
|
78
|
+
const result = {
|
|
79
|
+
id,
|
|
80
|
+
link,
|
|
81
|
+
entries: entries.length > 0 ? entries : undefined,
|
|
82
|
+
...(record.adminLabel ? { adminLabel: record.adminLabel } : {}),
|
|
83
|
+
};
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
export function assembleNavigation(root, registry, linkIndex) {
|
|
87
|
+
const entries = root.entryIds
|
|
88
|
+
.map((id) => assembleNavigationItem(id, registry, linkIndex))
|
|
89
|
+
.filter((item) => item !== undefined);
|
|
90
|
+
return {
|
|
91
|
+
id: root.id,
|
|
92
|
+
name: root.name,
|
|
93
|
+
entries,
|
|
94
|
+
...(root.adminLabel ? { adminLabel: root.adminLabel } : {}),
|
|
95
|
+
...(root.backgroundColour ? { backgroundColour: root.backgroundColour } : {}),
|
|
96
|
+
...(root.textColour ? { textColour: root.textColour } : {}),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function assembleNavigationById(navigationId, registry, linkIndex) {
|
|
100
|
+
const root = registry.roots.get(navigationId);
|
|
101
|
+
if (!root) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return assembleNavigation(root, registry, linkIndex);
|
|
105
|
+
}
|
|
106
|
+
export function addLinkToIndex(index, link) {
|
|
107
|
+
index.set(link.internalId, link);
|
|
108
|
+
if (link.linkEntryId) {
|
|
109
|
+
index.set(link.linkEntryId, link);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
index.set(link.id, link);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=assembly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/navigation/assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FetchOptions } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Time-based ISR fallback (seconds) when a Contentful webhook does not invalidate cache tags.
|
|
4
|
+
* Primary invalidation is tag-based via {@link FLAT_NAV_CACHE_TAGS} on each sub-fetch.
|
|
5
|
+
* Apps may override with `options.next.revalidate` (set `false` for tag-only caching).
|
|
6
|
+
*/
|
|
7
|
+
export declare const FLAT_NAV_TIME_REVALIDATE_SECONDS = 3600;
|
|
8
|
+
/**
|
|
9
|
+
* Collection-level Next.js cache tags for flat navigation fetches.
|
|
10
|
+
* Webhook handlers must revalidate these when the corresponding content type publishes.
|
|
11
|
+
*/
|
|
12
|
+
export declare const FLAT_NAV_CACHE_TAGS: readonly ["navigation", "navigationItem", "page", "pageVariant", "article", "articleType", "customType", "tag", "tagType", "person", "link"];
|
|
13
|
+
/** Merge default flat-nav cache settings without clobbering app-provided `next` fields. */
|
|
14
|
+
export declare function buildFlatNavigationCacheOptions(options: FetchOptions): FetchOptions;
|
|
15
|
+
/** Listing bulk link fetches share flat-nav cache tags and listing fetch profile. */
|
|
16
|
+
export declare function buildListingLinkCacheOptions(options: FetchOptions): FetchOptions;
|
|
17
|
+
//# sourceMappingURL=cacheOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheOptions.d.ts","sourceRoot":"","sources":["../../src/navigation/cacheOptions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8IAYtB,CAAC;AAEX,2FAA2F;AAC3F,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAYnF;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAKhF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ArticleTag, ArticleTypeTag, CustomTypeTag, LinkTag, NavigationItemTag, NavigationTag, PageTag, PageVariantTag, PersonTag, TagTag, TagTypeTag, } from '../revalidation/tags.js';
|
|
2
|
+
/**
|
|
3
|
+
* Time-based ISR fallback (seconds) when a Contentful webhook does not invalidate cache tags.
|
|
4
|
+
* Primary invalidation is tag-based via {@link FLAT_NAV_CACHE_TAGS} on each sub-fetch.
|
|
5
|
+
* Apps may override with `options.next.revalidate` (set `false` for tag-only caching).
|
|
6
|
+
*/
|
|
7
|
+
export const FLAT_NAV_TIME_REVALIDATE_SECONDS = 3600;
|
|
8
|
+
/**
|
|
9
|
+
* Collection-level Next.js cache tags for flat navigation fetches.
|
|
10
|
+
* Webhook handlers must revalidate these when the corresponding content type publishes.
|
|
11
|
+
*/
|
|
12
|
+
export const FLAT_NAV_CACHE_TAGS = [
|
|
13
|
+
NavigationTag,
|
|
14
|
+
NavigationItemTag,
|
|
15
|
+
PageTag,
|
|
16
|
+
PageVariantTag,
|
|
17
|
+
ArticleTag,
|
|
18
|
+
ArticleTypeTag,
|
|
19
|
+
CustomTypeTag,
|
|
20
|
+
TagTag,
|
|
21
|
+
TagTypeTag,
|
|
22
|
+
PersonTag,
|
|
23
|
+
LinkTag,
|
|
24
|
+
];
|
|
25
|
+
/** Merge default flat-nav cache settings without clobbering app-provided `next` fields. */
|
|
26
|
+
export function buildFlatNavigationCacheOptions(options) {
|
|
27
|
+
const { revalidate, tags, ...restNext } = options.next ?? {};
|
|
28
|
+
return {
|
|
29
|
+
...options,
|
|
30
|
+
cache: options.cache ?? 'force-cache',
|
|
31
|
+
next: {
|
|
32
|
+
...restNext,
|
|
33
|
+
revalidate: revalidate ?? FLAT_NAV_TIME_REVALIDATE_SECONDS,
|
|
34
|
+
tags: [...new Set([...FLAT_NAV_CACHE_TAGS, ...(tags ?? [])])],
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Listing bulk link fetches share flat-nav cache tags and listing fetch profile. */
|
|
39
|
+
export function buildListingLinkCacheOptions(options) {
|
|
40
|
+
return {
|
|
41
|
+
...buildFlatNavigationCacheOptions(options),
|
|
42
|
+
fetchProfile: 'listing',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=cacheOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheOptions.js","sourceRoot":"","sources":["../../src/navigation/cacheOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,iBAAiB;IACjB,OAAO;IACP,cAAc;IACd,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,OAAO;CACC,CAAC;AAEX,2FAA2F;AAC3F,MAAM,UAAU,+BAA+B,CAAC,OAAqB;IACnE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7D,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,aAAa;QACrC,IAAI,EAAE;YACJ,GAAG,QAAQ;YACX,UAAU,EAAE,UAAU,IAAI,gCAAgC;YAC1D,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9D;KACF,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,4BAA4B,CAAC,OAAqB;IAChE,OAAO;QACL,GAAG,+BAA+B,CAAC,OAAO,CAAC;QAC3C,YAAY,EAAE,SAAS;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { INavigation, ISvgImage, ITyped } from '@se-studio/core-data-types';
|
|
2
|
+
import type { BaseConverterContext } from '../converters/helpers';
|
|
3
|
+
import type { ContentfulConfig, FetchOptions } from '../types';
|
|
4
|
+
export interface LayoutBearingModel {
|
|
5
|
+
menu?: INavigation;
|
|
6
|
+
footer?: INavigation;
|
|
7
|
+
icons?: ReadonlyArray<ISvgImage>;
|
|
8
|
+
contents?: ReadonlyArray<ITyped>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* When `navigationResolution` is `flat`, replace nav stubs with registry-assembled trees
|
|
12
|
+
* and rebuild the icon sprite set from content + flat navigation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function enrichModelNavigation<T extends LayoutBearingModel>(model: T, context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<T>;
|
|
15
|
+
/** Flat-nav enrichment or bundled icon sprite processing after entity conversion. */
|
|
16
|
+
export declare function finalizeModelIconsAndNavigation<T extends LayoutBearingModel>(model: T, context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<T>;
|
|
17
|
+
//# sourceMappingURL=enrichModelNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichModelNavigation.d.ts","sourceRoot":"","sources":["../../src/navigation/enrichModelNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAM/D,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,EACtE,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CA8BZ;AAED,qFAAqF;AACrF,wBAAsB,+BAA+B,CAAC,CAAC,SAAS,kBAAkB,EAChF,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,CAAC,CAcZ"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { processIconsForSprite } from '../converters/iconCollector.js';
|
|
2
|
+
import { rebuildIconSpriteFromLayout } from '../icons/rebuildIconSprite.js';
|
|
3
|
+
import { assembleNavigationById } from './assembly.js';
|
|
4
|
+
import { buildFlatNavigationCacheOptions } from './cacheOptions.js';
|
|
5
|
+
import { getInternalLinkIndex } from './linkIndex.js';
|
|
6
|
+
import { getNavigationRegistry } from './registry.js';
|
|
7
|
+
/**
|
|
8
|
+
* When `navigationResolution` is `flat`, replace nav stubs with registry-assembled trees
|
|
9
|
+
* and rebuild the icon sprite set from content + flat navigation.
|
|
10
|
+
*/
|
|
11
|
+
export async function enrichModelNavigation(model, context, config, options) {
|
|
12
|
+
if (options.navigationResolution !== 'flat') {
|
|
13
|
+
return model;
|
|
14
|
+
}
|
|
15
|
+
const menuId = model.menu?.id;
|
|
16
|
+
const footerId = model.footer?.id;
|
|
17
|
+
const cacheOptions = buildFlatNavigationCacheOptions(options);
|
|
18
|
+
const [registry, linkIndex] = await Promise.all([
|
|
19
|
+
getNavigationRegistry(context, config, cacheOptions),
|
|
20
|
+
getInternalLinkIndex(context, config, cacheOptions),
|
|
21
|
+
]);
|
|
22
|
+
const menu = menuId ? assembleNavigationById(menuId, registry, linkIndex) : undefined;
|
|
23
|
+
const footer = footerId ? assembleNavigationById(footerId, registry, linkIndex) : undefined;
|
|
24
|
+
const enriched = {
|
|
25
|
+
...model,
|
|
26
|
+
...(menu ? { menu } : {}),
|
|
27
|
+
...(footer ? { footer } : {}),
|
|
28
|
+
};
|
|
29
|
+
enriched.icons = await rebuildIconSpriteFromLayout(model.contents, menu ?? model.menu, footer ?? model.footer);
|
|
30
|
+
return enriched;
|
|
31
|
+
}
|
|
32
|
+
/** Flat-nav enrichment or bundled icon sprite processing after entity conversion. */
|
|
33
|
+
export async function finalizeModelIconsAndNavigation(model, context, config, options) {
|
|
34
|
+
if (options.navigationResolution === 'flat') {
|
|
35
|
+
return enrichModelNavigation(model, context, config, options);
|
|
36
|
+
}
|
|
37
|
+
if (model.icons && model.icons.length > 0) {
|
|
38
|
+
const processedIcons = await processIconsForSprite(model.icons);
|
|
39
|
+
return {
|
|
40
|
+
...model,
|
|
41
|
+
icons: processedIcons.length > 0 ? processedIcons : undefined,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return model;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=enrichModelNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrichModelNavigation.js","sourceRoot":"","sources":["../../src/navigation/enrichModelNavigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AASnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAQ,EACR,OAA6B,EAC7B,MAAwB,EACxB,OAAqB;IAErB,IAAI,OAAO,CAAC,oBAAoB,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;IAClC,MAAM,YAAY,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAE9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;QACpD,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;KACpD,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,MAAM,QAAQ,GAAM;QAClB,GAAG,KAAK;QACR,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;IAEF,QAAQ,CAAC,KAAK,GAAG,MAAM,2BAA2B,CAChD,KAAK,CAAC,QAAQ,EACd,IAAI,IAAI,KAAK,CAAC,IAAI,EAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CACvB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAAQ,EACR,OAA6B,EAC7B,MAAwB,EACxB,OAAqB;IAErB,IAAI,OAAO,CAAC,oBAAoB,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO;YACL,GAAG,KAAK;YACR,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BaseConverterContext } from '../converters/helpers';
|
|
2
|
+
import type { ContentfulConfig, FetchOptions } from '../types';
|
|
3
|
+
import type { InternalLinkIndex } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Fetches all routable entry links and builds an entry-id keyed index for navigation assembly.
|
|
6
|
+
* Includes link wrapper entries keyed by wrapper id and target id.
|
|
7
|
+
* Results are deduped per request and while in-flight.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getInternalLinkIndex(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<InternalLinkIndex>;
|
|
10
|
+
//# sourceMappingURL=linkIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkIndex.d.ts","sourceRoot":"","sources":["../../src/navigation/linkIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuBjD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAM5B"}
|