@se-studio/contentful-rest-api 1.0.46 → 1.0.48
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 +424 -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 +134 -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 +55 -0
- package/dist/api/asset.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 +62 -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/helpers.d.ts +73 -0
- package/dist/api/helpers.d.ts.map +1 -0
- package/dist/api/helpers.js +296 -0
- package/dist/api/helpers.js.map +1 -0
- package/dist/api/index.d.ts +22 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +28 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/links.d.ts +109 -0
- package/dist/api/links.d.ts.map +1 -0
- package/dist/api/links.js +199 -0
- package/dist/api/links.js.map +1 -0
- package/dist/api/page.d.ts +33 -0
- package/dist/api/page.d.ts.map +1 -0
- package/dist/api/page.js +40 -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 +134 -0
- package/dist/api/person.js.map +1 -0
- package/dist/api/preview.d.ts +55 -0
- package/dist/api/preview.d.ts.map +1 -0
- package/dist/api/preview.js +160 -0
- package/dist/api/preview.js.map +1 -0
- package/dist/api/related-articles.d.ts +22 -0
- package/dist/api/related-articles.d.ts.map +1 -0
- package/dist/api/related-articles.js +82 -0
- package/dist/api/related-articles.js.map +1 -0
- package/dist/api/server-asset.d.ts +40 -0
- package/dist/api/server-asset.d.ts.map +1 -0
- package/dist/api/server-asset.js +65 -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 +199 -0
- package/dist/api/sitemap.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 +131 -0
- package/dist/api/tag.js.map +1 -0
- package/dist/api/template.d.ts +49 -0
- package/dist/api/template.d.ts.map +1 -0
- package/dist/api/template.js +88 -0
- package/dist/api/template.js.map +1 -0
- package/dist/api/types.d.ts +98 -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 +24 -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 +179 -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 +156 -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 +76 -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 +126 -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/baseExternalComponent.d.ts +66 -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 +85 -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/baseLink.d.ts +90 -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 +92 -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 +36 -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 +96 -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 +120 -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/basePageTest.d.ts +66 -0
- package/dist/baseTypes/basePageTest.d.ts.map +1 -0
- package/dist/baseTypes/basePageTest.js +2 -0
- package/dist/baseTypes/basePageTest.js.map +1 -0
- package/dist/baseTypes/basePageVariant.d.ts +123 -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 +111 -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/baseSchema.d.ts +18 -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 +30 -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 +108 -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 +11 -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 +55 -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 +143 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +268 -0
- package/dist/client.js.map +1 -0
- package/dist/converters/article.d.ts +42 -0
- package/dist/converters/article.d.ts.map +1 -0
- package/dist/converters/article.js +220 -0
- package/dist/converters/article.js.map +1 -0
- package/dist/converters/asset.d.ts +22 -0
- package/dist/converters/asset.d.ts.map +1 -0
- package/dist/converters/asset.js +282 -0
- package/dist/converters/asset.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 +50 -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 +71 -0
- package/dist/converters/customType.js.map +1 -0
- package/dist/converters/externalComponent.d.ts +22 -0
- package/dist/converters/externalComponent.d.ts.map +1 -0
- package/dist/converters/externalComponent.js +34 -0
- package/dist/converters/externalComponent.js.map +1 -0
- package/dist/converters/helpers.d.ts +116 -0
- package/dist/converters/helpers.d.ts.map +1 -0
- package/dist/converters/helpers.js +128 -0
- package/dist/converters/helpers.js.map +1 -0
- package/dist/converters/iconCollector.d.ts +65 -0
- package/dist/converters/iconCollector.d.ts.map +1 -0
- package/dist/converters/iconCollector.js +282 -0
- package/dist/converters/iconCollector.js.map +1 -0
- package/dist/converters/index.d.ts +18 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +18 -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 +96 -0
- package/dist/converters/link.js.map +1 -0
- package/dist/converters/navigationItem.d.ts +11 -0
- package/dist/converters/navigationItem.d.ts.map +1 -0
- package/dist/converters/navigationItem.js +73 -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 +121 -0
- package/dist/converters/page.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 +109 -0
- package/dist/converters/person.js.map +1 -0
- package/dist/converters/resolver.d.ts +29 -0
- package/dist/converters/resolver.d.ts.map +1 -0
- package/dist/converters/resolver.js +317 -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 +18 -0
- package/dist/converters/schema.js.map +1 -0
- package/dist/converters/svgProcessor.d.ts +23 -0
- package/dist/converters/svgProcessor.d.ts.map +1 -0
- package/dist/converters/svgProcessor.js +47 -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 +98 -0
- package/dist/converters/tag.js.map +1 -0
- package/dist/converters/template.d.ts +26 -0
- package/dist/converters/template.d.ts.map +1 -0
- package/dist/converters/template.js +44 -0
- package/dist/converters/template.js.map +1 -0
- package/dist/index.d.ts +28 -721
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -3634
- package/dist/index.js.map +1 -1
- package/dist/revalidation/handlers.d.ts +52 -0
- package/dist/revalidation/handlers.d.ts.map +1 -0
- package/dist/revalidation/handlers.js +130 -0
- package/dist/revalidation/handlers.js.map +1 -0
- package/dist/revalidation/index.d.ts +3 -0
- package/dist/revalidation/index.d.ts.map +1 -0
- package/dist/revalidation/index.js +4 -0
- package/dist/revalidation/index.js.map +1 -0
- package/dist/revalidation/nextjs-route.d.ts +31 -0
- package/dist/revalidation/nextjs-route.d.ts.map +1 -0
- package/dist/revalidation/nextjs-route.js +34 -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 +97 -0
- package/dist/revalidation/route.js.map +1 -0
- package/dist/revalidation/server-utils.d.ts +22 -0
- package/dist/revalidation/server-utils.d.ts.map +1 -0
- package/dist/revalidation/server-utils.js +41 -0
- package/dist/revalidation/server-utils.js.map +1 -0
- package/dist/revalidation/tags.d.ts +81 -0
- package/dist/revalidation/tags.d.ts.map +1 -0
- package/dist/revalidation/tags.js +117 -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 +51 -0
- package/dist/revalidation/utils.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/types.d.ts +67 -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 +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-utils.d.ts +17 -0
- package/dist/utils/json-utils.d.ts.map +1 -0
- package/dist/utils/json-utils.js +43 -0
- package/dist/utils/json-utils.js.map +1 -0
- package/dist/utils/retry.d.ts +112 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +221 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +12 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { IArticleLink, IArticleTypeLink, IBaseArticle, IBaseArticleType } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier } from '../api';
|
|
4
|
+
import type { BaseArticleSkeleton } from '../baseTypes/baseArticle';
|
|
5
|
+
import type { BaseArticleTypeSkeleton } from '../baseTypes/baseArticleType';
|
|
6
|
+
import type { BaseCustomTypeSkeleton } from '../baseTypes/baseCustomType';
|
|
7
|
+
import { type ConverterContext } from './helpers';
|
|
8
|
+
/**
|
|
9
|
+
* Base converter for Contentful Article entries to IArticle type
|
|
10
|
+
*
|
|
11
|
+
* This is a minimal implementation that can be extended using
|
|
12
|
+
* the functional composition pattern.
|
|
13
|
+
*
|
|
14
|
+
* @param entry - Contentful entry to convert
|
|
15
|
+
* @returns IArticle object
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const article = baseArticleConverter(contentfulEntry);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function baseArticleConverter(context: ConverterContext, entry: Entry<BaseArticleSkeleton, DefaultChainModifier, string>): IBaseArticle;
|
|
23
|
+
export declare function baseArticleLinkConverter(context: ConverterContext, entry: Entry<BaseArticleSkeleton, DefaultChainModifier, string>): IArticleLink;
|
|
24
|
+
export declare function baseArticleTypeLinkConverter(context: ConverterContext, entry: Entry<BaseArticleTypeSkeleton, DefaultChainModifier, string>): IArticleTypeLink;
|
|
25
|
+
/**
|
|
26
|
+
* Base converter for Contentful Article Type entries to IArticleType type
|
|
27
|
+
*
|
|
28
|
+
* This is a minimal implementation that can be extended using
|
|
29
|
+
* the functional composition pattern.
|
|
30
|
+
*
|
|
31
|
+
* @param context - Converter context containing includes
|
|
32
|
+
* @param entry - Contentful entry to convert
|
|
33
|
+
* @param customTypeEntry - Optional custom type entry that defines templates and navigation
|
|
34
|
+
* @returns IBaseArticleType object
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* const articleType = baseArticleTypeConverter(context, contentfulEntry, customTypeEntry);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function baseArticleTypeConverter(context: ConverterContext, entry: Entry<BaseArticleTypeSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseArticleType;
|
|
42
|
+
//# sourceMappingURL=article.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/converters/article.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAEL,KAAK,gBAAgB,EAOtB,MAAM,WAAW,CAAC;AAgDnB;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,YAAY,CAkFd;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC9D,YAAY,CAuCd;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAClE,gBAAgB,CAwBlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EACnE,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,gBAAgB,CA0FlB"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, lookupDownloadAsset, makeContentfulDescription, makeContentfulTitle, } from './helpers';
|
|
2
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector';
|
|
3
|
+
import { resolveNavigation } from './navigationItem';
|
|
4
|
+
import { resolveLink, resolvePageContent, resolveSchema } from './resolver';
|
|
5
|
+
import { resolveTemplate } from './template';
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the article template using a hierarchy:
|
|
8
|
+
* 1. Article's explicit template field (if set)
|
|
9
|
+
* 2. ArticleType's articleTemplate field (if set)
|
|
10
|
+
*
|
|
11
|
+
* @param context - Converter context containing includes
|
|
12
|
+
* @param articleTypeLink - Link to the article's ArticleType
|
|
13
|
+
* @param directTemplateLink - Optional direct template link from the article
|
|
14
|
+
* @returns Resolved template or null if no template found in hierarchy
|
|
15
|
+
*/
|
|
16
|
+
function resolveArticleTemplateHierarchy(context, articleTypeLink, directTemplateLink) {
|
|
17
|
+
// Direct template on article takes precedence
|
|
18
|
+
if (directTemplateLink) {
|
|
19
|
+
return resolveTemplate(context, directTemplateLink);
|
|
20
|
+
}
|
|
21
|
+
// Fall back to articleType's articleTemplate
|
|
22
|
+
const articleTypeEntry = context.includes.get(articleTypeLink.sys.id);
|
|
23
|
+
if (!articleTypeEntry) {
|
|
24
|
+
console.warn(`ArticleType entry not found for id: ${articleTypeLink.sys.id}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const articleTypeFields = articleTypeEntry.entry.fields;
|
|
28
|
+
if (articleTypeFields?.articleTemplate) {
|
|
29
|
+
return resolveTemplate(context, articleTypeFields.articleTemplate);
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Base converter for Contentful Article entries to IArticle type
|
|
35
|
+
*
|
|
36
|
+
* This is a minimal implementation that can be extended using
|
|
37
|
+
* the functional composition pattern.
|
|
38
|
+
*
|
|
39
|
+
* @param entry - Contentful entry to convert
|
|
40
|
+
* @returns IArticle object
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* const article = baseArticleConverter(contentfulEntry);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export function baseArticleConverter(context, entry) {
|
|
48
|
+
const { sys, fields } = entry;
|
|
49
|
+
const { id } = sys;
|
|
50
|
+
const { slug, title, description, featuredImage, tags, content, template: templateLink, topContent: topContentLinks, bottomContent: bottomContentLinks, articleType, structuredData, ...simpleFields } = fields;
|
|
51
|
+
const articleTypeLink = resolveLink(context, id, articleType);
|
|
52
|
+
// Resolve template with hierarchy (article template → articleType template)
|
|
53
|
+
const template = resolveArticleTemplateHierarchy(context, articleType, templateLink);
|
|
54
|
+
// Resolve all content sections
|
|
55
|
+
const topContent = topContentLinks
|
|
56
|
+
?.map((c) => resolvePageContent(context, id, c))
|
|
57
|
+
.filter((item) => item !== null) ?? [];
|
|
58
|
+
const articleContent = content
|
|
59
|
+
?.map((c) => resolvePageContent(context, id, c))
|
|
60
|
+
.filter((item) => item !== null) ?? [];
|
|
61
|
+
const bottomContent = bottomContentLinks
|
|
62
|
+
?.map((c) => resolvePageContent(context, id, c))
|
|
63
|
+
.filter((item) => item !== null) ?? [];
|
|
64
|
+
const preContent = template?.preContent ?? [];
|
|
65
|
+
const postContent = template?.postContent ?? [];
|
|
66
|
+
// Merge in correct order and add position metadata
|
|
67
|
+
const contents = addPositionMetadata([
|
|
68
|
+
...topContent,
|
|
69
|
+
...preContent,
|
|
70
|
+
...articleContent,
|
|
71
|
+
...postContent,
|
|
72
|
+
...bottomContent,
|
|
73
|
+
]);
|
|
74
|
+
// Determine final menu and footer (from template)
|
|
75
|
+
const finalMenu = template?.menu;
|
|
76
|
+
const finalFooter = template?.footer;
|
|
77
|
+
// Collect and deduplicate all SVG icons from article content and navigation
|
|
78
|
+
const icons = deduplicateIcons(collectIconsFromContent(contents), collectIconsFromNavigation(finalMenu), collectIconsFromNavigation(finalFooter));
|
|
79
|
+
const articleTitle = makeContentfulTitle(title, sys.id);
|
|
80
|
+
const article = {
|
|
81
|
+
type: 'Article',
|
|
82
|
+
id,
|
|
83
|
+
slug,
|
|
84
|
+
name: articleTitle,
|
|
85
|
+
title: articleTitle,
|
|
86
|
+
description: makeContentfulDescription(description, sys.id),
|
|
87
|
+
featuredImage: lookupAsset(context, featuredImage),
|
|
88
|
+
contentCount: calculateContentCount(topContent, articleContent, bottomContent),
|
|
89
|
+
articleType: articleTypeLink,
|
|
90
|
+
tags: tags?.map((tag) => resolveLink(context, id, tag)),
|
|
91
|
+
contents,
|
|
92
|
+
icons,
|
|
93
|
+
structuredData: structuredData
|
|
94
|
+
?.map((link) => resolveSchema(context, id, link))
|
|
95
|
+
.filter((item) => item !== null),
|
|
96
|
+
...simpleFields,
|
|
97
|
+
// Note: summary field exists in Contentful but is not part of IArticle interface
|
|
98
|
+
// Keeping it in simpleFields for potential future use
|
|
99
|
+
menu: finalMenu,
|
|
100
|
+
footer: finalFooter,
|
|
101
|
+
};
|
|
102
|
+
return article;
|
|
103
|
+
}
|
|
104
|
+
export function baseArticleLinkConverter(context, entry) {
|
|
105
|
+
const { sys, fields } = entry;
|
|
106
|
+
if (sys.contentType.sys.id !== 'article') {
|
|
107
|
+
throw new Error(`Invalid content type: expected "article", got "${sys.contentType.sys.id}"`);
|
|
108
|
+
}
|
|
109
|
+
const { articleType: fieldsArticleType, tags: fieldsTags, author: fieldsAuthor, date, externalLink, download: fieldsDownload, ...simpleFields } = fields;
|
|
110
|
+
const articleType = resolveLink(context, sys.id, fieldsArticleType);
|
|
111
|
+
const tags = fieldsTags?.map((tag) => resolveLink(context, sys.id, tag));
|
|
112
|
+
const primaryTag = tags?.[0] ?? undefined;
|
|
113
|
+
const author = fieldsAuthor ? resolveLink(context, sys.id, fieldsAuthor) : undefined;
|
|
114
|
+
const download = lookupDownloadAsset(context, fieldsDownload);
|
|
115
|
+
const href = externalLink
|
|
116
|
+
? externalLink
|
|
117
|
+
: context.urlCalculators.article(articleType.slug, fields.slug, primaryTag?.slug);
|
|
118
|
+
return createInternalLink(sys.id, { ...simpleFields, name: fields.cmsLabel }, context, href, 'Article', {
|
|
119
|
+
tags,
|
|
120
|
+
primaryTag,
|
|
121
|
+
articleType,
|
|
122
|
+
date,
|
|
123
|
+
author,
|
|
124
|
+
download,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
export function baseArticleTypeLinkConverter(context, entry) {
|
|
128
|
+
const { sys, fields } = entry;
|
|
129
|
+
if (sys.contentType.sys.id !== 'articleType') {
|
|
130
|
+
throw new Error(`Invalid content type: expected "articleType", got "${sys.contentType.sys.id}"`);
|
|
131
|
+
}
|
|
132
|
+
const { name, cmsLabel, featuredImage, slug, ...simpleFields } = fields;
|
|
133
|
+
return createInternalLink(sys.id, {
|
|
134
|
+
cmsLabel,
|
|
135
|
+
name,
|
|
136
|
+
title: name,
|
|
137
|
+
featuredImage,
|
|
138
|
+
slug,
|
|
139
|
+
...simpleFields,
|
|
140
|
+
}, context, context.urlCalculators.articleType(slug), 'ArticleType');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Base converter for Contentful Article Type entries to IArticleType type
|
|
144
|
+
*
|
|
145
|
+
* This is a minimal implementation that can be extended using
|
|
146
|
+
* the functional composition pattern.
|
|
147
|
+
*
|
|
148
|
+
* @param context - Converter context containing includes
|
|
149
|
+
* @param entry - Contentful entry to convert
|
|
150
|
+
* @param customTypeEntry - Optional custom type entry that defines templates and navigation
|
|
151
|
+
* @returns IBaseArticleType object
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```ts
|
|
155
|
+
* const articleType = baseArticleTypeConverter(context, contentfulEntry, customTypeEntry);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export function baseArticleTypeConverter(context, entry, customTypeEntry) {
|
|
159
|
+
const { sys, fields } = entry;
|
|
160
|
+
const { id } = sys;
|
|
161
|
+
const { name, indexPageDescription, indexPageTitle, featuredImage, menu: menuLink, footer: footerLink, indexPageTemplate: templateLink, indexPageTopContent: topContentLinks, structuredData, indexPageStructuredData, slug, ...other } = fields;
|
|
162
|
+
// Resolve custom type (if provided)
|
|
163
|
+
const customType = customTypeEntry
|
|
164
|
+
? context.customTypeResolver(context, customTypeEntry)
|
|
165
|
+
: undefined;
|
|
166
|
+
// Resolve template (ArticleType template > Custom Type template)
|
|
167
|
+
let template = templateLink ? resolveTemplate(context, templateLink) : null;
|
|
168
|
+
if (!template && customTypeEntry?.fields.template) {
|
|
169
|
+
template = resolveTemplate(context, customTypeEntry.fields.template);
|
|
170
|
+
}
|
|
171
|
+
// Resolve navigation (ArticleType > Custom Type > Template)
|
|
172
|
+
const menu = menuLink
|
|
173
|
+
? resolveNavigation(context, menuLink)
|
|
174
|
+
: customTypeEntry?.fields.menu
|
|
175
|
+
? resolveNavigation(context, customTypeEntry.fields.menu)
|
|
176
|
+
: template?.menu;
|
|
177
|
+
const footer = footerLink
|
|
178
|
+
? resolveNavigation(context, footerLink)
|
|
179
|
+
: customTypeEntry?.fields.footer
|
|
180
|
+
? resolveNavigation(context, customTypeEntry.fields.footer)
|
|
181
|
+
: template?.footer;
|
|
182
|
+
// Resolve all content sections
|
|
183
|
+
const topContent = topContentLinks
|
|
184
|
+
?.map((c) => resolvePageContent(context, id, c))
|
|
185
|
+
.filter((item) => item !== null) ?? [];
|
|
186
|
+
const preContent = template?.preContent ?? [];
|
|
187
|
+
const postContent = template?.postContent ?? [];
|
|
188
|
+
// Merge in correct order and add position metadata
|
|
189
|
+
const contents = addPositionMetadata([...topContent, ...preContent, ...postContent]);
|
|
190
|
+
// Determine final menu and footer (articleType-level overrides template)
|
|
191
|
+
const finalMenu = menu;
|
|
192
|
+
const finalFooter = footer;
|
|
193
|
+
// Collect and deduplicate all SVG icons from article type content and navigation
|
|
194
|
+
const icons = deduplicateIcons(collectIconsFromContent(contents), collectIconsFromNavigation(finalMenu), collectIconsFromNavigation(finalFooter));
|
|
195
|
+
const articleType = {
|
|
196
|
+
type: 'Article type',
|
|
197
|
+
id,
|
|
198
|
+
slug,
|
|
199
|
+
name,
|
|
200
|
+
title: makeContentfulTitle(indexPageTitle, sys.id),
|
|
201
|
+
description: makeContentfulDescription(indexPageDescription, sys.id),
|
|
202
|
+
featuredImage: lookupAsset(context, featuredImage),
|
|
203
|
+
contentCount: 0,
|
|
204
|
+
contents,
|
|
205
|
+
icons,
|
|
206
|
+
structuredData: [
|
|
207
|
+
...(structuredData?.map((link) => resolveSchema(context, id, link)) ?? []),
|
|
208
|
+
...(indexPageStructuredData?.map((link) => resolveSchema(context, id, link)) ?? []),
|
|
209
|
+
].filter((item) => item !== null),
|
|
210
|
+
menu: finalMenu,
|
|
211
|
+
footer: finalFooter,
|
|
212
|
+
...other,
|
|
213
|
+
};
|
|
214
|
+
if (customType) {
|
|
215
|
+
// @ts-expect-error - customType is not yet in IBaseArticleType but might be added later or intersection type used
|
|
216
|
+
articleType.customType = customType;
|
|
217
|
+
}
|
|
218
|
+
return articleType;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=article.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/converters/article.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IAnimation, IImage, IResponsiveVisual, IVideo, IVisual } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Asset, Entry, UnresolvedLink } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier } from '../api';
|
|
4
|
+
import type { BaseExternalVideoSkeleton } from '../baseTypes/baseExternalVideo';
|
|
5
|
+
import type { BaseMediaSkeleton } from '../baseTypes/baseMedia';
|
|
6
|
+
import type { BaseConverterContext, ConverterContext } from './helpers';
|
|
7
|
+
export declare function convertAssetToVisual(context: BaseConverterContext, asset?: Asset<DefaultChainModifier, string>, options?: Partial<IImage> | Partial<IVideo> | Partial<IAnimation>): IVisual | undefined;
|
|
8
|
+
export declare function createResponsiveVisual(visual: IVisual | undefined, mobileVisual: IVisual | undefined, customSize?: number | null): IResponsiveVisual | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Converts a baseMedia entry to IVisual by looking up the asset and merging metadata.
|
|
11
|
+
* Resolves mask from either maskImage asset or mask dropdown via project's maskResolver.
|
|
12
|
+
*/
|
|
13
|
+
export declare function convertMediaEntryToVisual(context: ConverterContext, entry: Entry<BaseMediaSkeleton, DefaultChainModifier, string>): IVisual | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Converts a baseExternalVideo entry to IVisual with external video
|
|
16
|
+
*/
|
|
17
|
+
export declare function convertExternalVideoEntryToVisual(context: ConverterContext, entry: Entry<BaseExternalVideoSkeleton, DefaultChainModifier, string>): IVisual | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Looks up and converts a media or external video entry from an unresolved link
|
|
20
|
+
*/
|
|
21
|
+
export declare function lookupMediaEntry(context: ConverterContext, link: UnresolvedLink<'Entry'> | undefined): IVisual | undefined;
|
|
22
|
+
//# sourceMappingURL=asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EAEN,iBAAiB,EAEjB,MAAM,EAEN,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAoC,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAQxE,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,EAC3C,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAChE,OAAO,GAAG,SAAS,CAkDrB;AAyID,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,iBAAiB,GAAG,SAAS,CAO/B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5D,OAAO,GAAG,SAAS,CAyDrB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GACpE,OAAO,GAAG,SAAS,CA8CrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,GAAG,SAAS,CA2BrB"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { lookupAsset, makeContentfulDescription, makeContentfulTitle, stringOrUndefined, } from './helpers';
|
|
2
|
+
export function convertAssetToVisual(context, asset, options) {
|
|
3
|
+
if (!asset)
|
|
4
|
+
return undefined;
|
|
5
|
+
const { fields, sys } = asset;
|
|
6
|
+
if (!fields)
|
|
7
|
+
return undefined;
|
|
8
|
+
const { id } = sys;
|
|
9
|
+
const { file } = fields;
|
|
10
|
+
if (!file)
|
|
11
|
+
return undefined;
|
|
12
|
+
const { contentType } = file;
|
|
13
|
+
if (contentType?.startsWith('image/')) {
|
|
14
|
+
const image = convertAssetToImage(file, fields, sys, options);
|
|
15
|
+
if (!image)
|
|
16
|
+
return undefined;
|
|
17
|
+
return {
|
|
18
|
+
id,
|
|
19
|
+
type: 'Visual',
|
|
20
|
+
image,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (contentType?.startsWith('video/')) {
|
|
24
|
+
const video = convertAssetToVideo(file, fields, sys, context, options);
|
|
25
|
+
if (!video)
|
|
26
|
+
return undefined;
|
|
27
|
+
return {
|
|
28
|
+
id,
|
|
29
|
+
type: 'Visual',
|
|
30
|
+
video,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (contentType === 'application/json') {
|
|
34
|
+
const animation = convertAssetToAnimation(file, fields, sys, options);
|
|
35
|
+
if (!animation)
|
|
36
|
+
return undefined;
|
|
37
|
+
return {
|
|
38
|
+
id,
|
|
39
|
+
type: 'Visual',
|
|
40
|
+
animation,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
function convertAssetToAnimation(file, fields, sys, options) {
|
|
46
|
+
const { id } = sys;
|
|
47
|
+
const { title, description } = fields;
|
|
48
|
+
const { url } = file;
|
|
49
|
+
if (!url)
|
|
50
|
+
return undefined;
|
|
51
|
+
return {
|
|
52
|
+
...options,
|
|
53
|
+
id,
|
|
54
|
+
type: 'Animation',
|
|
55
|
+
animationSrc: `https:${url}`,
|
|
56
|
+
name: makeContentfulTitle(title, id),
|
|
57
|
+
description: stringOrUndefined(description),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function convertAssetToImage(file, fields, sys, options) {
|
|
61
|
+
const { contentType } = file;
|
|
62
|
+
if (contentType === 'image/svg+xml') {
|
|
63
|
+
return convertAssetToSvgImage(file, fields, sys, options);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return convertAssetToPicture(file, fields, sys, options);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function convertAssetToPicture(file, fields, sys, options) {
|
|
70
|
+
const { id } = sys;
|
|
71
|
+
const { title, description } = fields;
|
|
72
|
+
const { contentType, details, url } = file;
|
|
73
|
+
if (!details)
|
|
74
|
+
return undefined;
|
|
75
|
+
const { size, image } = details;
|
|
76
|
+
const { width, height } = image || {};
|
|
77
|
+
return {
|
|
78
|
+
...options,
|
|
79
|
+
id,
|
|
80
|
+
type: 'Picture',
|
|
81
|
+
src: `https:${url}`,
|
|
82
|
+
mimeType: contentType,
|
|
83
|
+
size,
|
|
84
|
+
width: width || 0,
|
|
85
|
+
height: height || 0,
|
|
86
|
+
name: makeContentfulTitle(title, id),
|
|
87
|
+
description: makeContentfulDescription(description, id),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function convertAssetToSvgImage(file, fields, sys, options) {
|
|
91
|
+
const { id } = sys;
|
|
92
|
+
const { title, description } = fields;
|
|
93
|
+
const { contentType, details, url } = file;
|
|
94
|
+
if (!details)
|
|
95
|
+
return undefined;
|
|
96
|
+
const { size, image } = details;
|
|
97
|
+
const { width, height } = image || {};
|
|
98
|
+
return {
|
|
99
|
+
...options,
|
|
100
|
+
id,
|
|
101
|
+
type: 'Svg image',
|
|
102
|
+
svgSrc: `https:${url}`,
|
|
103
|
+
mimeType: contentType,
|
|
104
|
+
size,
|
|
105
|
+
width: width || 0,
|
|
106
|
+
height: height || 0,
|
|
107
|
+
name: makeContentfulTitle(title, id),
|
|
108
|
+
description: stringOrUndefined(description),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function convertAssetToVideoDetails(file, sys) {
|
|
112
|
+
const { id } = sys;
|
|
113
|
+
const { details, url, contentType, fileName } = file;
|
|
114
|
+
if (!details)
|
|
115
|
+
return undefined;
|
|
116
|
+
const { size } = details;
|
|
117
|
+
return {
|
|
118
|
+
id,
|
|
119
|
+
videoUrl: `https:${url}`,
|
|
120
|
+
size,
|
|
121
|
+
mimeType: contentType,
|
|
122
|
+
fileName,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function convertAssetToVideo(file, fields, sys, context, options) {
|
|
126
|
+
const { id } = sys;
|
|
127
|
+
const { title, description } = fields;
|
|
128
|
+
const { details } = file;
|
|
129
|
+
if (!details) {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
const { image } = details;
|
|
133
|
+
const { width, height } = image || {};
|
|
134
|
+
const videoDetails = convertAssetToVideoDetails(file, sys);
|
|
135
|
+
if (!videoDetails)
|
|
136
|
+
return undefined;
|
|
137
|
+
return {
|
|
138
|
+
...options,
|
|
139
|
+
id,
|
|
140
|
+
type: 'Local video',
|
|
141
|
+
preview: videoDetails,
|
|
142
|
+
videoPrefix: context.videoPrefix,
|
|
143
|
+
width: width || 0,
|
|
144
|
+
height: height || 0,
|
|
145
|
+
name: makeContentfulTitle(title, id),
|
|
146
|
+
description: makeContentfulDescription(description, id),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export function createResponsiveVisual(visual, mobileVisual, customSize) {
|
|
150
|
+
if (!visual)
|
|
151
|
+
return undefined;
|
|
152
|
+
return {
|
|
153
|
+
visual,
|
|
154
|
+
mobileVisual,
|
|
155
|
+
visualCustomSize: customSize,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Converts a baseMedia entry to IVisual by looking up the asset and merging metadata.
|
|
160
|
+
* Resolves mask from either maskImage asset or mask dropdown via project's maskResolver.
|
|
161
|
+
*/
|
|
162
|
+
export function convertMediaEntryToVisual(context, entry) {
|
|
163
|
+
const { fields, sys } = entry;
|
|
164
|
+
if (!fields)
|
|
165
|
+
return undefined;
|
|
166
|
+
// Lookup the asset from context
|
|
167
|
+
const baseVisual = lookupAsset(context, fields.asset);
|
|
168
|
+
if (!baseVisual)
|
|
169
|
+
return undefined;
|
|
170
|
+
// Destructure mask fields separately so they don't go into metadata
|
|
171
|
+
const { name, mask: maskDropdown, maskImage, ...otherFields } = fields;
|
|
172
|
+
// Resolve mask: custom maskImage takes precedence over dropdown
|
|
173
|
+
let mask;
|
|
174
|
+
if (maskImage) {
|
|
175
|
+
// Custom SVG mask from asset
|
|
176
|
+
const maskVisual = lookupAsset(context, maskImage);
|
|
177
|
+
if (maskVisual?.image?.type === 'Svg image') {
|
|
178
|
+
mask = maskVisual.image.svgSrc;
|
|
179
|
+
}
|
|
180
|
+
else if (maskVisual?.image?.type === 'Picture') {
|
|
181
|
+
mask = maskVisual.image.src;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else if (maskDropdown && context.maskResolver) {
|
|
185
|
+
// Predefined mask from dropdown
|
|
186
|
+
mask = context.maskResolver(maskDropdown);
|
|
187
|
+
}
|
|
188
|
+
// Extract metadata from the media entry
|
|
189
|
+
const metadata = {
|
|
190
|
+
name: makeContentfulTitle(name, sys.id),
|
|
191
|
+
...otherFields,
|
|
192
|
+
};
|
|
193
|
+
// Merge metadata into the image or video
|
|
194
|
+
const visual = {
|
|
195
|
+
...baseVisual,
|
|
196
|
+
id: sys.id,
|
|
197
|
+
mask,
|
|
198
|
+
};
|
|
199
|
+
if (baseVisual.image) {
|
|
200
|
+
visual.image = {
|
|
201
|
+
...baseVisual.image,
|
|
202
|
+
...metadata,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
else if (baseVisual.video) {
|
|
206
|
+
visual.video = {
|
|
207
|
+
...baseVisual.video,
|
|
208
|
+
...metadata,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
else if (baseVisual.animation) {
|
|
212
|
+
visual.animation = {
|
|
213
|
+
...baseVisual.animation,
|
|
214
|
+
...metadata,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
return visual;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Converts a baseExternalVideo entry to IVisual with external video
|
|
221
|
+
*/
|
|
222
|
+
export function convertExternalVideoEntryToVisual(context, entry) {
|
|
223
|
+
const { fields, sys } = entry;
|
|
224
|
+
if (!fields || !fields.url)
|
|
225
|
+
return undefined;
|
|
226
|
+
// Lookup optional preview and poster assets
|
|
227
|
+
const previewVisual = lookupAsset(context, fields.preview);
|
|
228
|
+
const posterVisual = lookupAsset(context, fields.posterImage);
|
|
229
|
+
// Extract preview IVideoDetails if available
|
|
230
|
+
const preview = previewVisual?.video?.type === 'Local video' ? previewVisual.video.preview : undefined;
|
|
231
|
+
// Extract poster URL if available
|
|
232
|
+
const poster = posterVisual?.image?.type === 'Picture' ? posterVisual.image.src : undefined;
|
|
233
|
+
// Map Contentful's "Center" to our "Middle" type
|
|
234
|
+
const mapHorizontal = (value) => {
|
|
235
|
+
if (!value)
|
|
236
|
+
return null;
|
|
237
|
+
return value === 'Center' ? 'Middle' : value;
|
|
238
|
+
};
|
|
239
|
+
const video = {
|
|
240
|
+
id: sys.id,
|
|
241
|
+
type: 'External video',
|
|
242
|
+
name: makeContentfulTitle(fields.name, sys.id),
|
|
243
|
+
nameAsCaption: fields.nameAsCaption ?? null,
|
|
244
|
+
external: fields.url,
|
|
245
|
+
preview,
|
|
246
|
+
poster,
|
|
247
|
+
autoPlay: fields.autoPlay ?? null,
|
|
248
|
+
loop: fields.loop ?? null,
|
|
249
|
+
hideControls: fields.hideControls ?? null,
|
|
250
|
+
dontCrop: fields.dontCrop ?? null,
|
|
251
|
+
verticalCropPosition: fields.verticalCropPosition ?? null,
|
|
252
|
+
horizontalCropPosition: mapHorizontal(fields.horizontalCropPosition),
|
|
253
|
+
horizontalPosition: fields.horizontalPosition ?? null,
|
|
254
|
+
widthPercent: fields.width ?? null,
|
|
255
|
+
};
|
|
256
|
+
return {
|
|
257
|
+
id: sys.id,
|
|
258
|
+
type: 'Visual',
|
|
259
|
+
video,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Looks up and converts a media or external video entry from an unresolved link
|
|
264
|
+
*/
|
|
265
|
+
export function lookupMediaEntry(context, link) {
|
|
266
|
+
if (!link)
|
|
267
|
+
return undefined;
|
|
268
|
+
const id = link.sys.id;
|
|
269
|
+
const possibleEntry = context.includes.get(id);
|
|
270
|
+
if (!possibleEntry) {
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
const { type, entry } = possibleEntry;
|
|
274
|
+
if (type === 'media') {
|
|
275
|
+
return convertMediaEntryToVisual(context, entry);
|
|
276
|
+
}
|
|
277
|
+
if (type === 'externalVideo') {
|
|
278
|
+
return convertExternalVideoEntryToVisual(context, entry);
|
|
279
|
+
}
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/converters/asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BaseCollectionContent, IBaseCollection } from '@se-studio/core-data-types';
|
|
2
|
+
import type { Entry } from 'contentful';
|
|
3
|
+
import type { DefaultChainModifier, IContentfulRichText } from '../api';
|
|
4
|
+
import type { BaseCollectionSkeleton } from '../baseTypes/baseCollection';
|
|
5
|
+
import { type ConverterContext } from './helpers';
|
|
6
|
+
export type IContentfulCollection<TContents extends BaseCollectionContent = BaseCollectionContent> = IBaseCollection<TContents> & {
|
|
7
|
+
body?: IContentfulRichText | null;
|
|
8
|
+
additionalCopy?: IContentfulRichText | null;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Base converter for Contentful Collection entries to ICollection type
|
|
12
|
+
*
|
|
13
|
+
* This is a minimal implementation that can be extended using
|
|
14
|
+
* the functional composition pattern.
|
|
15
|
+
*
|
|
16
|
+
* @param context - Converter context containing assets, includes, and resolvers
|
|
17
|
+
* @param entry - Contentful entry to convert
|
|
18
|
+
* @returns ICollection object
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const collection = baseCollectionConverter(context, contentfulEntry);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function baseCollectionConverter(context: ConverterContext, entry: Entry<BaseCollectionSkeleton, DefaultChainModifier, string>): IContentfulCollection;
|
|
26
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/converters/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,IAC/F,eAAe,CAAC,SAAS,CAAC,GAAG;IAC3B,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GACjE,qBAAqB,CAoDvB"}
|