@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 @@
|
|
|
1
|
+
{"version":3,"file":"pictureBlurEnricher.d.ts","sourceRoot":"","sources":["../../src/converters/pictureBlurEnricher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAkEpE;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { assetTag } from '../revalidation/tags.js';
|
|
2
|
+
/**
|
|
3
|
+
* Tiny raster width for LQIP-style blur data URLs. Kept small to limit fetch size and base64 payload.
|
|
4
|
+
*/
|
|
5
|
+
const BLUR_TARGET_WIDTH_PX = 24;
|
|
6
|
+
/** Output format for the placeholder fetch (JPEG compresses well at low dimensions). */
|
|
7
|
+
const BLUR_FORMAT = 'jpg';
|
|
8
|
+
/** JPEG quality for the placeholder (low = smaller file). */
|
|
9
|
+
const BLUR_QUALITY = 20;
|
|
10
|
+
function isContentfulImageHost(hostname) {
|
|
11
|
+
return (hostname === 'images.ctfassets.net' ||
|
|
12
|
+
hostname === 'assets.ctfassets.net' ||
|
|
13
|
+
hostname.endsWith('.ctfassets.net'));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Builds a Contentful Images API URL for a small JPEG suitable for `blurDataURL`.
|
|
17
|
+
* Returns undefined if the source is not a Contentful delivery host or cannot be parsed.
|
|
18
|
+
*/
|
|
19
|
+
function buildTinyBlurFetchUrl(src) {
|
|
20
|
+
if (!src)
|
|
21
|
+
return undefined;
|
|
22
|
+
try {
|
|
23
|
+
const parsed = new URL(src);
|
|
24
|
+
if (!isContentfulImageHost(parsed.hostname))
|
|
25
|
+
return undefined;
|
|
26
|
+
parsed.searchParams.set('w', String(BLUR_TARGET_WIDTH_PX));
|
|
27
|
+
parsed.searchParams.set('fm', BLUR_FORMAT);
|
|
28
|
+
parsed.searchParams.set('q', String(BLUR_QUALITY));
|
|
29
|
+
return parsed.toString();
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function fetchPictureBlurDataURL(pictureSrc, assetId) {
|
|
36
|
+
const url = buildTinyBlurFetchUrl(pictureSrc);
|
|
37
|
+
if (!url)
|
|
38
|
+
return undefined;
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch(url, {
|
|
41
|
+
cache: 'force-cache',
|
|
42
|
+
next: {
|
|
43
|
+
tags: [assetTag(assetId)],
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (!response.ok)
|
|
47
|
+
return undefined;
|
|
48
|
+
const mimeType = response.headers.get('content-type')?.split(';')[0]?.trim() || 'image/jpeg';
|
|
49
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
50
|
+
if (bytes.length === 0)
|
|
51
|
+
return undefined;
|
|
52
|
+
const base64 = Buffer.from(bytes).toString('base64');
|
|
53
|
+
return `data:${mimeType};base64,${base64}`;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Enriches raster pictures in the assets map with `blurDataURL` by fetching a tiny CDN variant.
|
|
61
|
+
* Mutates each `IPicture` in place. Skips non-Contentful hosts, SVG, existing `blurDataURL`, and failures.
|
|
62
|
+
*
|
|
63
|
+
* @param assets - Map from asset id to visual (from `convertAllAssets`)
|
|
64
|
+
*/
|
|
65
|
+
export async function enrichPictureBlurPlaceholders(assets) {
|
|
66
|
+
const pictureEntries = Array.from(assets.entries()).filter(([, visual]) => visual.image?.type === 'Picture');
|
|
67
|
+
if (pictureEntries.length === 0)
|
|
68
|
+
return;
|
|
69
|
+
await Promise.all(pictureEntries.map(async ([assetId, visual]) => {
|
|
70
|
+
const picture = visual.image;
|
|
71
|
+
if (picture.blurDataURL)
|
|
72
|
+
return;
|
|
73
|
+
const blurDataURL = await fetchPictureBlurDataURL(picture.src, assetId);
|
|
74
|
+
if (!blurDataURL)
|
|
75
|
+
return;
|
|
76
|
+
visual.image = { ...picture, blurDataURL };
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=pictureBlurEnricher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pictureBlurEnricher.js","sourceRoot":"","sources":["../../src/converters/pictureBlurEnricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IRedirect } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier } from '../api';
|
|
4
|
+
import type { BaseRedirectSkeleton } from '../baseTypes/baseRedirect';
|
|
5
|
+
import type { ConverterContext } from './helpers';
|
|
6
|
+
/**
|
|
7
|
+
* Converts a Contentful redirect entry to an IRedirect object.
|
|
8
|
+
*
|
|
9
|
+
* The effective `fromPath` and `to` are always concrete strings:
|
|
10
|
+
* - If the single `fromInternal` / `toInternal` reference is populated, its
|
|
11
|
+
* resolved IInternalLink.href is used (this is what makes picking a page/article/tagType
|
|
12
|
+
* etc. work for non-technical editors without them typing slugs).
|
|
13
|
+
* - Otherwise the raw `fromPath` / `toPath` symbol is used (for old/vanity URLs,
|
|
14
|
+
* external targets, etc.).
|
|
15
|
+
*
|
|
16
|
+
* Internal reference wins over raw when both are supplied (editors should normally
|
|
17
|
+
* use one or the other; the UI help text will guide them).
|
|
18
|
+
*/
|
|
19
|
+
export declare function baseRedirectConverter(context: ConverterContext, entry: Entry<BaseRedirectSkeleton, DefaultChainModifier, string>): IRedirect;
|
|
20
|
+
//# sourceMappingURL=redirect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirect.d.ts","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAsB,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC/D,SAAS,CAoDX"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { resolveLink } from './resolver.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a Contentful redirect entry to an IRedirect object.
|
|
4
|
+
*
|
|
5
|
+
* The effective `fromPath` and `to` are always concrete strings:
|
|
6
|
+
* - If the single `fromInternal` / `toInternal` reference is populated, its
|
|
7
|
+
* resolved IInternalLink.href is used (this is what makes picking a page/article/tagType
|
|
8
|
+
* etc. work for non-technical editors without them typing slugs).
|
|
9
|
+
* - Otherwise the raw `fromPath` / `toPath` symbol is used (for old/vanity URLs,
|
|
10
|
+
* external targets, etc.).
|
|
11
|
+
*
|
|
12
|
+
* Internal reference wins over raw when both are supplied (editors should normally
|
|
13
|
+
* use one or the other; the UI help text will guide them).
|
|
14
|
+
*/
|
|
15
|
+
export function baseRedirectConverter(context, entry) {
|
|
16
|
+
const { sys, fields } = entry;
|
|
17
|
+
if (sys.contentType.sys.id !== 'redirect') {
|
|
18
|
+
throw new Error(`Invalid content type: expected "redirect", got "${sys.contentType.sys.id}"`);
|
|
19
|
+
}
|
|
20
|
+
const id = sys.id;
|
|
21
|
+
const { fromPath: rawFromPath, fromInternal: rawFromInternal, toPath: rawToPath, toInternal: rawToInternal, statusCode, active, note, ...simpleFields } = fields;
|
|
22
|
+
// Resolve the (at most one) internal reference on each side. These carry the correct
|
|
23
|
+
// .href computed by the project's urlCalculators via the link converters.
|
|
24
|
+
const fromInternal = rawFromInternal
|
|
25
|
+
? resolveLink(context, id, rawFromInternal)
|
|
26
|
+
: undefined;
|
|
27
|
+
const toInternal = rawToInternal
|
|
28
|
+
? resolveLink(context, id, rawToInternal)
|
|
29
|
+
: undefined;
|
|
30
|
+
// Effective fromPath: prefer the internal reference's href, fall back to raw symbol.
|
|
31
|
+
const fromPath = fromInternal?.href || rawFromPath || '';
|
|
32
|
+
// Effective to: prefer internal reference href, fall back to raw (which may be a full external URL).
|
|
33
|
+
const to = toInternal?.href || rawToPath || '';
|
|
34
|
+
const normalizedStatus = statusCode
|
|
35
|
+
? Number.parseInt(statusCode, 10)
|
|
36
|
+
: 301;
|
|
37
|
+
return {
|
|
38
|
+
type: 'Redirect',
|
|
39
|
+
id,
|
|
40
|
+
fromPath: fromPath || rawFromPath || '',
|
|
41
|
+
to: to || rawToPath || '',
|
|
42
|
+
statusCode: normalizedStatus,
|
|
43
|
+
active: active ?? true,
|
|
44
|
+
note: note ?? null,
|
|
45
|
+
...(fromInternal ? { fromInternal } : {}),
|
|
46
|
+
...(toInternal ? { toInternal } : {}),
|
|
47
|
+
...simpleFields,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=redirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../src/converters/redirect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACzB,KAAgE;IAEhE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE9B,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAElB,MAAM,EACJ,QAAQ,EAAE,WAAW,EACrB,YAAY,EAAE,eAAe,EAC7B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,aAAa,EACzB,UAAU,EACV,MAAM,EACN,IAAI,EACJ,GAAG,YAAY,EAChB,GAAG,MAAM,CAAC;IAEX,qFAAqF;IACrF,0EAA0E;IAC1E,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAE,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,eAAe,CAA+B;QAC1E,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAE,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,CAA+B;QACxE,CAAC,CAAC,SAAS,CAAC;IAEd,qFAAqF;IACrF,MAAM,QAAQ,GAAG,YAAY,EAAE,IAAI,IAAK,WAAkC,IAAI,EAAE,CAAC;IAEjF,qGAAqG;IACrG,MAAM,EAAE,GAAG,UAAU,EAAE,IAAI,IAAK,SAAgC,IAAI,EAAE,CAAC;IAEvE,MAAM,gBAAgB,GAAG,UAAU;QACjC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAwB;QACzD,CAAC,CAAC,GAAG,CAAC;IAER,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE;QACF,QAAQ,EAAE,QAAQ,IAAK,WAAsB,IAAI,EAAE;QACnD,EAAE,EAAE,EAAE,IAAK,SAAoB,IAAI,EAAE;QACrC,UAAU,EAAE,gBAAgB;QAC5B,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,IAAI,EAAG,IAA2B,IAAI,IAAI;QAC1C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,YAAY;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Document } from '@contentful/rich-text-types';
|
|
2
|
+
import type { BaseCollectionContent, IInternalLink, INavigationItem, ISchema, ITyped } from '@se-studio/core-data-types';
|
|
3
|
+
import type { UnresolvedLink } from 'contentful';
|
|
4
|
+
import type { ConverterContext } from './helpers';
|
|
5
|
+
export declare function resolveSchema(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): ISchema | undefined;
|
|
6
|
+
export declare function resolveLink(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): IInternalLink | undefined;
|
|
7
|
+
export declare function resolveLinks(context: ConverterContext, fromId: string, entries: UnresolvedLink<'Entry'>[] | undefined): readonly IInternalLink[] | undefined;
|
|
8
|
+
export declare function resolveNavigationItem(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): INavigationItem | undefined;
|
|
9
|
+
export declare function resolveCollectionContent(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): BaseCollectionContent | null;
|
|
10
|
+
/**
|
|
11
|
+
* Resolves a PageContent entry from an unresolved link
|
|
12
|
+
* PageContent can be: Component, Collection, ExternalComponent, Visual (media/externalVideo), or PersonLink
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolvePageContent(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): ITyped | null;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves all embedded entries and assets within a rich text document
|
|
17
|
+
* Recursively traverses the document tree and resolves link references
|
|
18
|
+
*
|
|
19
|
+
* @param context - The converter context with includes and assets maps
|
|
20
|
+
* @param richText - The unresolved rich text document from Contentful
|
|
21
|
+
* @returns The rich text document with all embedded content resolved
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveRichTextDocument(context: ConverterContext, fromId: string, richText: Document | undefined): {
|
|
24
|
+
json: Document;
|
|
25
|
+
} | undefined;
|
|
26
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/converters/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,OAAO,EACP,MAAM,EACP,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,YAAY,CAAC;AAY3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAuDlD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAC7B,OAAO,GAAG,SAAS,CAOrB;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAC7B,aAAa,GAAG,SAAS,CAI3B;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,GAC7C,SAAS,aAAa,EAAE,GAAG,SAAS,CAMtC;AAgBD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAC7B,eAAe,GAAG,SAAS,CAO7B;AAGD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAC7B,qBAAqB,GAAG,IAAI,CA2E9B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,GAC7B,MAAM,GAAG,IAAI,CA+Hf;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,SAAS;UA0KH,QAAQ;cACpC"}
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import { INLINES, } from '@contentful/rich-text-types';
|
|
2
|
+
import { arrayOrUndefined } from '../utils/index.js';
|
|
3
|
+
import { convertExternalVideoEntryToVisual, convertMediaEntryToVisual } from './asset.js';
|
|
4
|
+
import { lookupAsset, lookupDownloadAsset } from './helpers.js';
|
|
5
|
+
import { baseSchemaConverter } from './schema.js';
|
|
6
|
+
function resolveHelper(context, fromId, entry, getResolver) {
|
|
7
|
+
const id = entry.sys.id;
|
|
8
|
+
const possibleEntry = context.includes.get(id);
|
|
9
|
+
if (!possibleEntry) {
|
|
10
|
+
const message = `[CMS UNRESOLVED] entry ${id} (referenced from ${fromId}) not in includes map (${context.includes.size} entries loaded)`;
|
|
11
|
+
if (process.env.LOG_CMS) {
|
|
12
|
+
console.warn(message);
|
|
13
|
+
}
|
|
14
|
+
context.errors.push({ entryId: id, entryType: 'unknown', message, error: new Error(message) });
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
if (!possibleEntry.resolved) {
|
|
18
|
+
const resolver = getResolver(possibleEntry.type);
|
|
19
|
+
if (!resolver) {
|
|
20
|
+
const message = `No resolver found for link type ${possibleEntry.type} (id: ${id})`;
|
|
21
|
+
if (process.env.LOG_CMS) {
|
|
22
|
+
console.warn(message);
|
|
23
|
+
}
|
|
24
|
+
context.errors.push({
|
|
25
|
+
entryId: id,
|
|
26
|
+
entryType: possibleEntry.type,
|
|
27
|
+
message,
|
|
28
|
+
error: new Error(message),
|
|
29
|
+
});
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const resolved = resolver(context, possibleEntry.entry);
|
|
33
|
+
possibleEntry.resolved = resolved;
|
|
34
|
+
return resolved;
|
|
35
|
+
}
|
|
36
|
+
return possibleEntry.resolved;
|
|
37
|
+
}
|
|
38
|
+
export function resolveSchema(context, fromId, entry) {
|
|
39
|
+
return resolveHelper(context, fromId, entry, () => baseSchemaConverter);
|
|
40
|
+
}
|
|
41
|
+
export function resolveLink(context, fromId, entry) {
|
|
42
|
+
return resolveHelper(context, fromId, entry, (type) => context.linkResolver.get(type));
|
|
43
|
+
}
|
|
44
|
+
export function resolveLinks(context, fromId, entries) {
|
|
45
|
+
return arrayOrUndefined(entries
|
|
46
|
+
?.map((entry) => resolveLink(context, fromId, entry))
|
|
47
|
+
.filter((l) => l != null));
|
|
48
|
+
}
|
|
49
|
+
function resolveContent(context, fromId, entry) {
|
|
50
|
+
return resolveHelper(context, fromId, entry, (type) => {
|
|
51
|
+
const resolver = context.contentResolver.get(type);
|
|
52
|
+
return resolver;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function resolveNavigationItem(context, fromId, entry) {
|
|
56
|
+
return resolveHelper(context, fromId, entry, () => context.navigationItemResolver);
|
|
57
|
+
}
|
|
58
|
+
export function resolveCollectionContent(context, fromId, entry) {
|
|
59
|
+
const id = entry.sys.id;
|
|
60
|
+
const possibleEntry = context.includes.get(id);
|
|
61
|
+
if (!possibleEntry) {
|
|
62
|
+
const message = `[CMS UNRESOLVED] collection entry ${id} (referenced from ${fromId}) not in includes map`;
|
|
63
|
+
if (process.env.LOG_CMS) {
|
|
64
|
+
console.warn(message);
|
|
65
|
+
}
|
|
66
|
+
context.errors.push({ entryId: id, entryType: 'unknown', message, error: new Error(message) });
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
// Return cached resolved entry if available
|
|
70
|
+
if (possibleEntry.resolved) {
|
|
71
|
+
return possibleEntry.resolved;
|
|
72
|
+
}
|
|
73
|
+
const { type } = possibleEntry;
|
|
74
|
+
// Handle Media - convert to IVisual
|
|
75
|
+
if (type === 'media') {
|
|
76
|
+
const visual = convertMediaEntryToVisual(context, possibleEntry.entry);
|
|
77
|
+
if (!visual) {
|
|
78
|
+
const message = `Failed to convert media entry with id ${id}`;
|
|
79
|
+
context.errors.push({ entryId: id, entryType: type, message, error: new Error(message) });
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
possibleEntry.resolved = visual;
|
|
83
|
+
return visual;
|
|
84
|
+
}
|
|
85
|
+
// Handle ExternalVideo - convert to IVisual
|
|
86
|
+
if (type === 'externalVideo') {
|
|
87
|
+
const visual = convertExternalVideoEntryToVisual(context, possibleEntry.entry);
|
|
88
|
+
if (!visual) {
|
|
89
|
+
const message = `Failed to convert externalVideo entry with id ${id}`;
|
|
90
|
+
context.errors.push({ entryId: id, entryType: type, message, error: new Error(message) });
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
possibleEntry.resolved = visual;
|
|
94
|
+
return visual;
|
|
95
|
+
}
|
|
96
|
+
// Fall back to resolver lookup for other types
|
|
97
|
+
return (resolveHelper(context, fromId, entry, (resolverType) => {
|
|
98
|
+
const resolver = context.contentResolver.get(resolverType);
|
|
99
|
+
if (resolver) {
|
|
100
|
+
return resolver;
|
|
101
|
+
}
|
|
102
|
+
const linkResolver = context.linkResolver.get(resolverType);
|
|
103
|
+
if (linkResolver) {
|
|
104
|
+
return linkResolver;
|
|
105
|
+
}
|
|
106
|
+
return undefined;
|
|
107
|
+
}) ?? null);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Resolves a PageContent entry from an unresolved link
|
|
111
|
+
* PageContent can be: Component, Collection, ExternalComponent, Visual (media/externalVideo), or PersonLink
|
|
112
|
+
*/
|
|
113
|
+
export function resolvePageContent(context, fromId, entry) {
|
|
114
|
+
const id = entry.sys.id;
|
|
115
|
+
const possibleEntry = context.includes.get(id);
|
|
116
|
+
if (!possibleEntry) {
|
|
117
|
+
const errorMessage = `Cannot find included entry for content from ${fromId} with id ${id}`;
|
|
118
|
+
const cmsError = {
|
|
119
|
+
entryId: id,
|
|
120
|
+
entryType: 'unknown',
|
|
121
|
+
message: errorMessage,
|
|
122
|
+
error: new Error(errorMessage),
|
|
123
|
+
};
|
|
124
|
+
context.errors.push(cmsError);
|
|
125
|
+
console.error(errorMessage);
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const { type } = possibleEntry;
|
|
129
|
+
// Handle Media - convert to IVisual
|
|
130
|
+
if (type === 'media') {
|
|
131
|
+
try {
|
|
132
|
+
const visual = convertMediaEntryToVisual(context, possibleEntry.entry);
|
|
133
|
+
if (!visual) {
|
|
134
|
+
const errorMessage = `Failed to convert media entry with id ${id}`;
|
|
135
|
+
const cmsError = {
|
|
136
|
+
entryId: id,
|
|
137
|
+
entryType: type,
|
|
138
|
+
message: errorMessage,
|
|
139
|
+
error: new Error(errorMessage),
|
|
140
|
+
};
|
|
141
|
+
context.errors.push(cmsError);
|
|
142
|
+
console.error(errorMessage);
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return visual;
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const errorMessage = `Error converting media entry with id ${id}: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
149
|
+
const cmsError = {
|
|
150
|
+
entryId: id,
|
|
151
|
+
entryType: type,
|
|
152
|
+
message: errorMessage,
|
|
153
|
+
error,
|
|
154
|
+
};
|
|
155
|
+
context.errors.push(cmsError);
|
|
156
|
+
console.error(errorMessage);
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Handle ExternalVideo - convert to IVisual
|
|
161
|
+
if (type === 'externalVideo') {
|
|
162
|
+
try {
|
|
163
|
+
const visual = convertExternalVideoEntryToVisual(context, possibleEntry.entry);
|
|
164
|
+
if (!visual) {
|
|
165
|
+
const errorMessage = `Failed to convert externalVideo entry with id ${id}`;
|
|
166
|
+
const cmsError = {
|
|
167
|
+
entryId: id,
|
|
168
|
+
entryType: type,
|
|
169
|
+
message: errorMessage,
|
|
170
|
+
error: new Error(errorMessage),
|
|
171
|
+
};
|
|
172
|
+
context.errors.push(cmsError);
|
|
173
|
+
console.error(errorMessage);
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
return visual;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
const errorMessage = `Error converting externalVideo entry with id ${id}: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
180
|
+
const cmsError = {
|
|
181
|
+
entryId: id,
|
|
182
|
+
entryType: type,
|
|
183
|
+
message: errorMessage,
|
|
184
|
+
error,
|
|
185
|
+
};
|
|
186
|
+
context.errors.push(cmsError);
|
|
187
|
+
console.error(errorMessage);
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// // Handle ExternalComponent
|
|
192
|
+
// if (type === 'externalComponent') {
|
|
193
|
+
// return resolveHelper<
|
|
194
|
+
// TConfig,
|
|
195
|
+
// BaseExternalComponentSkeleton<TConfig>,
|
|
196
|
+
// TConfig['ExternalComponent']
|
|
197
|
+
// >(context, entry, () => baseExternalComponentConverter);
|
|
198
|
+
// }
|
|
199
|
+
try {
|
|
200
|
+
if (context.contentResolver.has(type)) {
|
|
201
|
+
return resolveContent(context, fromId, entry) ?? null;
|
|
202
|
+
}
|
|
203
|
+
if (context.linkResolver.has(type)) {
|
|
204
|
+
return resolveLink(context, fromId, entry) ?? null;
|
|
205
|
+
}
|
|
206
|
+
const errorMessage = `Unknown content type "${type}" for entry with id ${id}`;
|
|
207
|
+
const cmsError = {
|
|
208
|
+
entryId: id,
|
|
209
|
+
entryType: type,
|
|
210
|
+
message: errorMessage,
|
|
211
|
+
error: new Error(errorMessage),
|
|
212
|
+
};
|
|
213
|
+
context.errors.push(cmsError);
|
|
214
|
+
console.error(errorMessage);
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
const errorMessage = `Error resolving content entry with id ${id} of type ${type}: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
219
|
+
const cmsError = {
|
|
220
|
+
entryId: id,
|
|
221
|
+
entryType: type,
|
|
222
|
+
message: errorMessage,
|
|
223
|
+
error,
|
|
224
|
+
};
|
|
225
|
+
context.errors.push(cmsError);
|
|
226
|
+
console.error(errorMessage);
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Resolves all embedded entries and assets within a rich text document
|
|
232
|
+
* Recursively traverses the document tree and resolves link references
|
|
233
|
+
*
|
|
234
|
+
* @param context - The converter context with includes and assets maps
|
|
235
|
+
* @param richText - The unresolved rich text document from Contentful
|
|
236
|
+
* @returns The rich text document with all embedded content resolved
|
|
237
|
+
*/
|
|
238
|
+
export function resolveRichTextDocument(context, fromId, richText) {
|
|
239
|
+
if (!richText) {
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
// Track resolved entries to prevent infinite recursion
|
|
243
|
+
const resolvingEntries = new Set();
|
|
244
|
+
const resolvedEntries = new Set();
|
|
245
|
+
/** Process content array, filter null/undefined, and log when malformed (DEBUG) */
|
|
246
|
+
const processContent = (rawContent, resolveNodeFn, nodeType = 'unknown') => {
|
|
247
|
+
if (!rawContent)
|
|
248
|
+
return [];
|
|
249
|
+
const hasNulls = rawContent.some((c) => c == null);
|
|
250
|
+
if (hasNulls && process.env.LOG_CMS) {
|
|
251
|
+
console.warn('[resolveRichTextDocument] Content array has null/undefined:', {
|
|
252
|
+
fromId,
|
|
253
|
+
nodeType,
|
|
254
|
+
indices: rawContent
|
|
255
|
+
.map((c, i) => (c == null ? i : null))
|
|
256
|
+
.filter((i) => i !== null),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
return rawContent.filter((n) => n != null).map(resolveNodeFn);
|
|
260
|
+
};
|
|
261
|
+
const resolveNode = (node) => {
|
|
262
|
+
// Handle embedded-entry-block nodes
|
|
263
|
+
const block = node;
|
|
264
|
+
if (block.data.target &&
|
|
265
|
+
'sys' in block.data.target &&
|
|
266
|
+
block.data.target.sys.linkType === 'Entry') {
|
|
267
|
+
const entryId = block.data.target.sys.id;
|
|
268
|
+
// Check for circular references
|
|
269
|
+
if (resolvingEntries.has(entryId)) {
|
|
270
|
+
if (process.env.LOG_CMS)
|
|
271
|
+
console.warn(`Circular reference detected in rich text resolution for entry ${entryId}. Skipping to prevent infinite recursion.`);
|
|
272
|
+
// Return the node as-is to break the cycle
|
|
273
|
+
return {
|
|
274
|
+
...block,
|
|
275
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
// Check if already resolved
|
|
279
|
+
if (resolvedEntries.has(entryId)) {
|
|
280
|
+
// Entry already resolved, skip to avoid duplicate work
|
|
281
|
+
return {
|
|
282
|
+
...block,
|
|
283
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
resolvingEntries.add(entryId);
|
|
288
|
+
const resolvedEntry = resolvePageContent(context, fromId, block.data.target);
|
|
289
|
+
resolvingEntries.delete(entryId);
|
|
290
|
+
resolvedEntries.add(entryId);
|
|
291
|
+
// If resolvePageContent returned null due to error, return node as-is
|
|
292
|
+
if (resolvedEntry === null) {
|
|
293
|
+
return {
|
|
294
|
+
...block,
|
|
295
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
...block,
|
|
300
|
+
data: {
|
|
301
|
+
...block.data,
|
|
302
|
+
target: resolvedEntry,
|
|
303
|
+
},
|
|
304
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
resolvingEntries.delete(entryId); // Clean up on error
|
|
309
|
+
console.error(`Failed to resolve entry with id ${entryId}:`, error);
|
|
310
|
+
// Return the node as-is if resolution fails
|
|
311
|
+
return {
|
|
312
|
+
...block,
|
|
313
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
if (block.data.target &&
|
|
318
|
+
'sys' in block.data.target &&
|
|
319
|
+
block.data.target.sys.linkType === 'Asset') {
|
|
320
|
+
const assetLink = block.data.target;
|
|
321
|
+
try {
|
|
322
|
+
// Inline asset hyperlinks render as download links (IDownloadAsset), not visuals.
|
|
323
|
+
if (node.nodeType === INLINES.ASSET_HYPERLINK) {
|
|
324
|
+
const downloadAsset = lookupDownloadAsset(context, assetLink);
|
|
325
|
+
if (downloadAsset) {
|
|
326
|
+
return {
|
|
327
|
+
...block,
|
|
328
|
+
data: {
|
|
329
|
+
...block.data,
|
|
330
|
+
target: downloadAsset,
|
|
331
|
+
},
|
|
332
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
const resolvedAsset = lookupAsset(context, assetLink);
|
|
338
|
+
if (resolvedAsset) {
|
|
339
|
+
return {
|
|
340
|
+
...block,
|
|
341
|
+
data: {
|
|
342
|
+
...block.data,
|
|
343
|
+
target: resolvedAsset,
|
|
344
|
+
},
|
|
345
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
// Fallback to lookupDownloadAsset for non-visual assets (e.g. PDFs)
|
|
349
|
+
const downloadAsset = lookupDownloadAsset(context, assetLink);
|
|
350
|
+
if (downloadAsset) {
|
|
351
|
+
return {
|
|
352
|
+
...block,
|
|
353
|
+
data: {
|
|
354
|
+
...block.data,
|
|
355
|
+
target: downloadAsset,
|
|
356
|
+
},
|
|
357
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
catch (error) {
|
|
363
|
+
console.error(`Failed to resolve ${block.nodeType} asset with id ${assetLink.sys.id}:`, error);
|
|
364
|
+
// Return the node as-is if resolution fails
|
|
365
|
+
return {
|
|
366
|
+
...block,
|
|
367
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
// For all other node types, recursively process content if present
|
|
372
|
+
return {
|
|
373
|
+
...block,
|
|
374
|
+
content: processContent(block.content, resolveNode, block.nodeType),
|
|
375
|
+
};
|
|
376
|
+
};
|
|
377
|
+
// Cast the EntryFieldTypes.RichText to our working type
|
|
378
|
+
// Resolve the entire document tree
|
|
379
|
+
const resolved = resolveNode(richText);
|
|
380
|
+
// Cast back to the config's RichText type
|
|
381
|
+
return { json: resolved };
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/converters/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,GAGR,MAAM,6BAA6B,CAAC;AAkBrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iCAAiC,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,SAAS,aAAa,CACpB,OAAyB,EACzB,MAAc,EACd,KAA8B,EAC9B,WAOa;IAEb,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAExB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,0BAA0B,EAAE,qBAAqB,MAAM,0BAA0B,OAAO,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC;QACzI,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,mCAAmC,aAAa,CAAC,IAAI,SAAS,EAAE,GAAG,CAAC;YACpF,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAClB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,aAAa,CAAC,IAAI;gBAC7B,OAAO;gBACP,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC;aAC1B,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CACvB,OAAO,EACP,aAAa,CAAC,KAAgE,CAC/E,CAAC;QAEF,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,aAAa,CAAC,QAAmB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,OAAO,aAAa,CAClB,OAAO,EACP,MAAM,EACN,KAAK,EACL,GAAG,EAAE,CAAC,mBAAmB,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,OAAO,aAAa,CAA0B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7E,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,MAAc,EACd,OAA8C;IAE9C,OAAO,gBAAgB,CACrB,OAAO;QACL,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,OAAO,aAAa,CAAmB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,QAGI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,OAAO,aAAa,CAClB,OAAO,EACP,MAAM,EACN,KAAK,EACL,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,CACrC,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,wBAAwB,CACtC,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,qCAAqC,EAAE,qBAAqB,MAAM,uBAAuB,CAAC;QAC1G,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC,QAAiC,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAE/B,oCAAoC;IACpC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,yBAAyB,CACtC,OAAO,EACP,aAAa,CAAC,KAA+D,CAC9E,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,yCAAyC,EAAE,EAAE,CAAC;YAC9D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,iCAAiC,CAC9C,OAAO,EACP,aAAa,CAAC,KAAuE,CACtF,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,iDAAiD,EAAE,EAAE,CAAC;YACtE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+CAA+C;IAC/C,OAAO,CACL,aAAa,CACX,OAAO,EACP,MAAM,EACN,KAAK,EACL,CAAC,YAAY,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAGmB,CAAC;QAC7B,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAGmB,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CACF,IAAI,IAAI,CACV,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAyB,EACzB,MAAc,EACd,KAA8B;IAE9B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,+CAA+C,MAAM,YAAY,EAAE,EAAE,CAAC;QAC3F,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC;SAC/B,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAE/B,oCAAoC;IACpC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,yBAAyB,CACtC,OAAO,EACP,aAAa,CAAC,KAA+D,CAC9E,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,yCAAyC,EAAE,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAa;oBACzB,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC;iBAC/B,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,wCAAwC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAC/H,MAAM,QAAQ,GAAa;gBACzB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,YAAY;gBACrB,KAAK;aACN,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iCAAiC,CAC9C,OAAO,EACP,aAAa,CAAC,KAAuE,CACtF,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,iDAAiD,EAAE,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAa;oBACzB,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC;iBAC/B,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,gDAAgD,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YACvI,MAAM,QAAQ,GAAa;gBACzB,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,YAAY;gBACrB,KAAK;aACN,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,sCAAsC;IACtC,0BAA0B;IAC1B,eAAe;IACf,8CAA8C;IAC9C,mCAAmC;IACnC,6DAA6D;IAC7D,IAAI;IAEJ,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;QACrD,CAAC;QAED,MAAM,YAAY,GAAG,yBAAyB,IAAI,uBAAuB,EAAE,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC;SAC/B,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,yCAAyC,EAAE,YAAY,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;QAChJ,MAAM,QAAQ,GAAa;YACzB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,YAAY;YACrB,KAAK;SACN,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyB,EACzB,MAAc,EACd,QAA8B;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,mFAAmF;IACnF,MAAM,cAAc,GAAG,CACrB,UAAiD,EACjD,aAAkE,EAClE,WAAmB,SAAS,EACD,EAAE;QAC7B,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,6DAA6D,EAAE;gBAC1E,MAAM;gBACN,QAAQ;gBACR,OAAO,EAAE,UAAU;qBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACrC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAA2B,EAAyB,EAAE;QACzE,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAa,CAAC;QAC5B,IACE,KAAK,CAAC,IAAI,CAAC,MAAM;YACjB,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,EAC1C,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAEzC,gCAAgC;YAChC,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;oBACrB,OAAO,CAAC,IAAI,CACV,iEAAiE,OAAO,2CAA2C,CACpH,CAAC;gBACJ,2CAA2C;gBAC3C,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACpE,CAAC;YACJ,CAAC;YAED,4BAA4B;YAC5B,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,uDAAuD;gBACvD,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACpE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM,aAAa,GAAG,kBAAkB,CACtC,OAAO,EACP,MAAM,EACN,KAAK,CAAC,IAAI,CAAC,MAAiC,CAC7C,CAAC;gBACF,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE7B,sEAAsE;gBACtE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO;wBACL,GAAG,KAAK;wBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;qBACpE,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,GAAG,KAAK;oBACR,IAAI,EAAE;wBACJ,GAAG,KAAK,CAAC,IAAI;wBACb,MAAM,EAAE,aAAa;qBACtB;oBACD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACpE,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;gBACtD,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpE,4CAA4C;gBAC5C,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IACE,KAAK,CAAC,IAAI,CAAC,MAAM;YACjB,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,EAC1C,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC;YAC/D,IAAI,CAAC;gBACH,kFAAkF;gBAClF,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC9D,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO;4BACL,GAAG,KAAK;4BACR,IAAI,EAAE;gCACJ,GAAG,KAAK,CAAC,IAAI;gCACb,MAAM,EAAE,aAAa;6BACtB;4BACD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;yBACpE,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACtD,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO;4BACL,GAAG,KAAK;4BACR,IAAI,EAAE;gCACJ,GAAG,KAAK,CAAC,IAAI;gCACb,MAAM,EAAE,aAAa;6BACtB;4BACD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;yBACpE,CAAC;oBACJ,CAAC;oBAED,oEAAoE;oBACpE,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC9D,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO;4BACL,GAAG,KAAK;4BACR,IAAI,EAAE;gCACJ,GAAG,KAAK,CAAC,IAAI;gCACb,MAAM,EAAE,aAAa;6BACtB;4BACD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;yBACpE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,qBAAqB,KAAK,CAAC,QAAQ,kBAAkB,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,EACxE,KAAK,CACN,CAAC;gBACF,4CAA4C;gBAC5C,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACpE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC;SACpE,CAAC;IACJ,CAAC,CAAC;IAEF,wDAAwD;IACxD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,0CAA0C;IAC1C,OAAO,EAAE,IAAI,EAAE,QAAoB,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ISchema } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier } from '../api';
|
|
4
|
+
import type { BaseSchemaSkeleton } from '../baseTypes/baseSchema';
|
|
5
|
+
import type { ConverterContext } from './helpers';
|
|
6
|
+
/**
|
|
7
|
+
* Base converter for Schema entries to ISchema type
|
|
8
|
+
*
|
|
9
|
+
* @param context - Converter context
|
|
10
|
+
* @param entry - Contentful entry to convert
|
|
11
|
+
* @returns ISchema object
|
|
12
|
+
*/
|
|
13
|
+
export declare function baseSchemaConverter(_context: ConverterContext, entry: Entry<BaseSchemaSkeleton, DefaultChainModifier, string>): ISchema;
|
|
14
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/converters/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC7D,OAAO,CAmBT"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base converter for Schema entries to ISchema type
|
|
3
|
+
*
|
|
4
|
+
* @param context - Converter context
|
|
5
|
+
* @param entry - Contentful entry to convert
|
|
6
|
+
* @returns ISchema object
|
|
7
|
+
*/
|
|
8
|
+
export function baseSchemaConverter(_context, entry) {
|
|
9
|
+
const { sys, fields } = entry;
|
|
10
|
+
const { cmsLabel, markup } = fields;
|
|
11
|
+
// markup is typed as Text (string) but may be a JSON field in older CMS configurations,
|
|
12
|
+
// which Contentful returns as a parsed object/array. Normalise all cases to a string:
|
|
13
|
+
// - string → use as-is (new projects: free-text Mustache template)
|
|
14
|
+
// - object/array → JSON.stringify (older projects: pre-built JSON schema stored as JSON field)
|
|
15
|
+
// - null/undefined → empty string
|
|
16
|
+
const markupRaw = markup;
|
|
17
|
+
const markupString = typeof markupRaw === 'string' ? markupRaw : markupRaw != null ? JSON.stringify(markupRaw) : '';
|
|
18
|
+
return {
|
|
19
|
+
id: sys.id,
|
|
20
|
+
name: cmsLabel,
|
|
21
|
+
markup: markupString,
|
|
22
|
+
description: `Schema for ${cmsLabel}`,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=schema.js.map
|