@se-studio/contentful-rest-api 1.9.0 → 1.11.0
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 +21 -0
- package/README.md +32 -1
- package/dist/api/article-type.js +7 -7
- package/dist/api/article.js +1 -1
- package/dist/api/asset.js +2 -2
- package/dist/api/banner.js +5 -5
- package/dist/api/breadcrumb.js +1 -1
- package/dist/api/componentPreview.js +7 -7
- package/dist/api/context.js +14 -14
- package/dist/api/custom-type.js +1 -1
- package/dist/api/helpers.d.ts +2 -0
- package/dist/api/helpers.d.ts.map +1 -1
- package/dist/api/helpers.js +25 -10
- package/dist/api/helpers.js.map +1 -1
- package/dist/api/index.d.ts +2 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +22 -21
- package/dist/api/index.js.map +1 -1
- package/dist/api/links.d.ts +6 -0
- package/dist/api/links.d.ts.map +1 -1
- package/dist/api/links.js +60 -40
- package/dist/api/links.js.map +1 -1
- package/dist/api/listing-fetch-params.d.ts +25 -2
- package/dist/api/listing-fetch-params.d.ts.map +1 -1
- package/dist/api/listing-fetch-params.js +5 -2
- package/dist/api/listing-fetch-params.js.map +1 -1
- package/dist/api/navigation.d.ts +9 -0
- package/dist/api/navigation.d.ts.map +1 -0
- package/dist/api/navigation.js +17 -0
- package/dist/api/navigation.js.map +1 -0
- package/dist/api/page.js +2 -2
- package/dist/api/person.js +7 -7
- package/dist/api/preview.js +1 -1
- package/dist/api/redirects.js +5 -5
- package/dist/api/server-asset.js +1 -1
- package/dist/api/sitemap.js +1 -1
- package/dist/api/tag-type.js +6 -6
- package/dist/api/tag.js +7 -7
- package/dist/api/template.js +4 -4
- package/dist/client.js +2 -2
- 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.js +1 -1
- package/dist/converters/article.js +7 -7
- package/dist/converters/asset.js +1 -1
- package/dist/converters/banner.js +2 -2
- package/dist/converters/collection.js +3 -3
- package/dist/converters/component.js +4 -4
- package/dist/converters/customType.js +5 -5
- package/dist/converters/enrichAssets.js +4 -4
- package/dist/converters/externalComponent.js +3 -3
- package/dist/converters/helpers.js +1 -1
- package/dist/converters/htmlComponent.js +1 -1
- package/dist/converters/iconCollector.js +1 -1
- package/dist/converters/index.js +12 -12
- package/dist/converters/link.js +3 -3
- package/dist/converters/navigationItem.js +3 -3
- package/dist/converters/page.js +6 -6
- package/dist/converters/pageVariantMerge.js +6 -6
- package/dist/converters/person.js +5 -5
- package/dist/converters/pictureBlurEnricher.js +1 -1
- package/dist/converters/redirect.js +1 -1
- package/dist/converters/resolver.js +4 -4
- package/dist/converters/tag.js +6 -6
- package/dist/converters/tagType.js +3 -3
- package/dist/converters/template.js +2 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- 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 +15 -0
- package/dist/navigation/cacheOptions.d.ts.map +1 -0
- package/dist/navigation/cacheOptions.js +38 -0
- package/dist/navigation/cacheOptions.js.map +1 -0
- package/dist/navigation/linkIndex.d.ts +9 -0
- package/dist/navigation/linkIndex.d.ts.map +1 -0
- package/dist/navigation/linkIndex.js +90 -0
- package/dist/navigation/linkIndex.js.map +1 -0
- package/dist/navigation/registry.d.ts +14 -0
- package/dist/navigation/registry.d.ts.map +1 -0
- package/dist/navigation/registry.js +113 -0
- package/dist/navigation/registry.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/handlers.d.ts.map +1 -1
- package/dist/revalidation/handlers.js +18 -3
- package/dist/revalidation/handlers.js.map +1 -1
- package/dist/revalidation/index.d.ts +1 -0
- package/dist/revalidation/index.d.ts.map +1 -1
- package/dist/revalidation/index.js +3 -2
- package/dist/revalidation/index.js.map +1 -1
- package/dist/revalidation/nextjs-route.js +1 -1
- package/dist/revalidation/route.js +3 -3
- package/dist/revalidation/tags.d.ts +9 -0
- package/dist/revalidation/tags.d.ts.map +1 -1
- package/dist/revalidation/tags.js +15 -1
- package/dist/revalidation/tags.js.map +1 -1
- package/dist/revalidation/utils.d.ts.map +1 -1
- package/dist/revalidation/utils.js +5 -1
- package/dist/revalidation/utils.js.map +1 -1
- 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 +27 -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.js +5 -5
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/index.js +5 -5
- package/dist/utils/retry.js +1 -1
- package/docs/llms.md +29 -1
- package/package.json +15 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getContentTypeKey } from '@se-studio/core-data-types';
|
|
2
|
-
import { PAGE_RESOLUTION_SCOPE } from '../api/listing-fetch-params';
|
|
2
|
+
import { PAGE_RESOLUTION_SCOPE } from '../api/listing-fetch-params.js';
|
|
3
3
|
export function resolveBuildYear(value) {
|
|
4
4
|
const buildYear = new Date().getFullYear();
|
|
5
5
|
return value.replaceAll('#buildYear#', buildYear.toString());
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isSvgImage } from '@se-studio/core-data-types';
|
|
2
|
-
import { fetchSvgContent, processSvgForSprite } from './svgProcessor';
|
|
2
|
+
import { fetchSvgContent, processSvgForSprite } from './svgProcessor.js';
|
|
3
3
|
/**
|
|
4
4
|
* Extract SVG image from a visual if it's marked as an icon.
|
|
5
5
|
* Only returns SVG images that have isIcon: true (set during conversion from icon fields).
|
package/dist/converters/index.js
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
* to typed objects. Use the base converters and compose with enhancers to
|
|
6
6
|
* create custom converters for your specific needs.
|
|
7
7
|
*/
|
|
8
|
-
export { createResponsiveVisual } from './asset';
|
|
9
|
-
export { baseCollectionConverter } from './collection';
|
|
10
|
-
export { baseComponentConverter } from './component';
|
|
11
|
-
export { baseExternalComponentConverter } from './externalComponent';
|
|
12
|
-
export { lookupAsset, } from './helpers';
|
|
13
|
-
export { baseHtmlComponentConverter } from './htmlComponent';
|
|
14
|
-
export { baseNavigationItemConverter, resolveNavigation } from './navigationItem';
|
|
15
|
-
export { basePageConverter, calculatePageHref, calculatePageVariantHref, } from './page';
|
|
16
|
-
export { mergeAlternatePageContentsInTree } from './pageVariantMerge';
|
|
17
|
-
export { baseRedirectConverter } from './redirect';
|
|
18
|
-
export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver';
|
|
19
|
-
export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType';
|
|
8
|
+
export { createResponsiveVisual } from './asset.js';
|
|
9
|
+
export { baseCollectionConverter } from './collection.js';
|
|
10
|
+
export { baseComponentConverter } from './component.js';
|
|
11
|
+
export { baseExternalComponentConverter } from './externalComponent.js';
|
|
12
|
+
export { lookupAsset, } from './helpers.js';
|
|
13
|
+
export { baseHtmlComponentConverter } from './htmlComponent.js';
|
|
14
|
+
export { baseNavigationItemConverter, resolveNavigation } from './navigationItem.js';
|
|
15
|
+
export { basePageConverter, calculatePageHref, calculatePageVariantHref, } from './page.js';
|
|
16
|
+
export { mergeAlternatePageContentsInTree } from './pageVariantMerge.js';
|
|
17
|
+
export { baseRedirectConverter } from './redirect.js';
|
|
18
|
+
export { resolveLink, resolveLinks, resolveRichTextDocument, } from './resolver.js';
|
|
19
|
+
export { baseTagTypeConverter, baseTagTypeLinkConverter } from './tagType.js';
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/dist/converters/link.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createResponsiveVisual } from './asset';
|
|
2
|
-
import { lookupAsset, lookupDownloadAsset, lookupIconAsset, makeContentfulTitle, resolveBuildYear, } from './helpers';
|
|
3
|
-
import { resolveLink } from './resolver';
|
|
1
|
+
import { createResponsiveVisual } from './asset.js';
|
|
2
|
+
import { lookupAsset, lookupDownloadAsset, lookupIconAsset, makeContentfulTitle, resolveBuildYear, } from './helpers.js';
|
|
3
|
+
import { resolveLink } from './resolver.js';
|
|
4
4
|
/**
|
|
5
5
|
* Converts a Contentful link entry to an ILinkProps object
|
|
6
6
|
* Handles all link types: internal, external, download, and blank
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createResponsiveVisual } from './asset';
|
|
2
|
-
import { lookupIconAsset, makeContentfulTitle, resolveBuildYear, } from './helpers';
|
|
3
|
-
import { resolveLink, resolveNavigationItem, resolveRichTextDocument } from './resolver';
|
|
1
|
+
import { createResponsiveVisual } from './asset.js';
|
|
2
|
+
import { lookupIconAsset, makeContentfulTitle, resolveBuildYear, } from './helpers.js';
|
|
3
|
+
import { resolveLink, resolveNavigationItem, resolveRichTextDocument } from './resolver.js';
|
|
4
4
|
function createLink(context, entry) {
|
|
5
5
|
const { sys: { id }, fields, } = entry;
|
|
6
6
|
const { title, link, text, internal, icon: navIcon, mobileIcon: mobileNavIcon, useTitle, ...otherFields } = fields;
|
package/dist/converters/page.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isCollection } from '@se-studio/core-data-types';
|
|
2
|
-
import { lookupMediaEntry } from './asset';
|
|
3
|
-
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulDescription, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers';
|
|
4
|
-
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector';
|
|
5
|
-
import { resolveNavigation } from './navigationItem';
|
|
6
|
-
import { resolveLink, resolvePageContent, resolveSchema } from './resolver';
|
|
7
|
-
import { resolveTemplate } from './template';
|
|
2
|
+
import { lookupMediaEntry } from './asset.js';
|
|
3
|
+
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulDescription, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers.js';
|
|
4
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
|
|
5
|
+
import { resolveNavigation } from './navigationItem.js';
|
|
6
|
+
import { resolveLink, resolvePageContent, resolveSchema } from './resolver.js';
|
|
7
|
+
import { resolveTemplate } from './template.js';
|
|
8
8
|
/**
|
|
9
9
|
* Base converter for Contentful Page entries to IPage type
|
|
10
10
|
*
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isCollection } from '@se-studio/core-data-types';
|
|
2
|
-
import { lookupMediaEntry } from './asset';
|
|
3
|
-
import { addPositionMetadata, lookupAsset, makeContentfulDescription, makeContentfulTitle, } from './helpers';
|
|
4
|
-
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector';
|
|
5
|
-
import { resolveNavigation } from './navigationItem';
|
|
6
|
-
import { basePageConverter } from './page';
|
|
7
|
-
import { resolveLink, resolvePageContent, resolveSchema } from './resolver';
|
|
2
|
+
import { lookupMediaEntry } from './asset.js';
|
|
3
|
+
import { addPositionMetadata, lookupAsset, makeContentfulDescription, makeContentfulTitle, } from './helpers.js';
|
|
4
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
|
|
5
|
+
import { resolveNavigation } from './navigationItem.js';
|
|
6
|
+
import { basePageConverter } from './page.js';
|
|
7
|
+
import { resolveLink, resolvePageContent, resolveSchema } from './resolver.js';
|
|
8
8
|
/**
|
|
9
9
|
* Replace or remove one content block (by source entry id) in a page content tree.
|
|
10
10
|
* Walks top-level items and nested collection {@link IBaseCollection.contents}.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers';
|
|
2
|
-
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector';
|
|
3
|
-
import { resolveNavigation } from './navigationItem';
|
|
4
|
-
import { resolvePageContent, resolveRichTextDocument, resolveSchema } from './resolver';
|
|
5
|
-
import { resolveTemplate } from './template';
|
|
1
|
+
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers.js';
|
|
2
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
|
|
3
|
+
import { resolveNavigation } from './navigationItem.js';
|
|
4
|
+
import { resolvePageContent, resolveRichTextDocument, resolveSchema } from './resolver.js';
|
|
5
|
+
import { resolveTemplate } from './template.js';
|
|
6
6
|
/**
|
|
7
7
|
* Base converter for Person entries to IPersonLink type
|
|
8
8
|
* Used when a person is referenced as a link in content
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { arrayOrUndefined } from '../utils';
|
|
2
|
-
import { convertExternalVideoEntryToVisual, convertMediaEntryToVisual } from './asset';
|
|
3
|
-
import { lookupAsset, lookupDownloadAsset } from './helpers';
|
|
4
|
-
import { baseSchemaConverter } from './schema';
|
|
1
|
+
import { arrayOrUndefined } from '../utils/index.js';
|
|
2
|
+
import { convertExternalVideoEntryToVisual, convertMediaEntryToVisual } from './asset.js';
|
|
3
|
+
import { lookupAsset, lookupDownloadAsset } from './helpers.js';
|
|
4
|
+
import { baseSchemaConverter } from './schema.js';
|
|
5
5
|
function resolveHelper(context, fromId, entry, getResolver) {
|
|
6
6
|
const id = entry.sys.id;
|
|
7
7
|
const possibleEntry = context.includes.get(id);
|
package/dist/converters/tag.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulDescription, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers';
|
|
2
|
-
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector';
|
|
3
|
-
import { resolveNavigation } from './navigationItem';
|
|
4
|
-
import { resolvePageContent, resolveSchema } from './resolver';
|
|
5
|
-
import { baseTagTypeConverter } from './tagType';
|
|
6
|
-
import { resolveTemplate } from './template';
|
|
1
|
+
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulDescription, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers.js';
|
|
2
|
+
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
|
|
3
|
+
import { resolveNavigation } from './navigationItem.js';
|
|
4
|
+
import { resolvePageContent, resolveSchema } from './resolver.js';
|
|
5
|
+
import { baseTagTypeConverter } from './tagType.js';
|
|
6
|
+
import { resolveTemplate } from './template.js';
|
|
7
7
|
export function baseTagLinkConverter(context, entry) {
|
|
8
8
|
const { sys, fields } = entry;
|
|
9
9
|
const { name, cmsLabel, tagType: tagTypeLink, show, ...simpleFields } = fields;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { addPositionMetadata, createInternalLink, shouldResolveContents, } from './helpers';
|
|
2
|
-
import { resolvePageContent } from './resolver';
|
|
3
|
-
import { resolveTemplate } from './template';
|
|
1
|
+
import { addPositionMetadata, createInternalLink, shouldResolveContents, } from './helpers.js';
|
|
2
|
+
import { resolvePageContent } from './resolver.js';
|
|
3
|
+
import { resolveTemplate } from './template.js';
|
|
4
4
|
export function baseTagTypeConverter(context, entry, customTypeEntry) {
|
|
5
5
|
const { sys, fields } = entry;
|
|
6
6
|
const { id } = sys;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { resolveNavigation } from './navigationItem';
|
|
2
|
-
import { resolvePageContent, resolveSchema } from './resolver';
|
|
1
|
+
import { resolveNavigation } from './navigationItem.js';
|
|
2
|
+
import { resolvePageContent, resolveSchema } from './resolver.js';
|
|
3
3
|
/**
|
|
4
4
|
* Resolves a template entry from an unresolved link
|
|
5
5
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -17,12 +17,13 @@
|
|
|
17
17
|
* );
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export { type AnyEntryRestResult, type ArticleTypeFetchOptions, type BreadcrumbLookup, type BreadcrumbLookupEntry, buildFetchOptions, type CmsContentType, type CmsFetchProfile, type ConverterResolutionScope, contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getPreviewEntryInfo, getResolutionScope, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_RESOLUTION_SCOPE, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInfo, type RelatedArticlesOptions, resolveIncludeDepth, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, type TagFetchOptions, type TagTypeFetchOptions, } from './api';
|
|
20
|
+
export { type AnyEntryRestResult, type ArticleTypeFetchOptions, type BreadcrumbLookup, type BreadcrumbLookupEntry, buildFetchOptions, buildFlatNavigationCacheOptions, type CmsContentType, type CmsFetchProfile, type ConverterResolutionScope, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation, getPreviewEntryInfo, getResolutionScope, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_RESOLUTION_SCOPE, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInfo, type RelatedArticlesOptions, resolveIncludeDepth, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, type TagFetchOptions, type TagTypeFetchOptions, } from './api';
|
|
21
21
|
export type { ContentfulFetchClient as ContentfulClient } from './client';
|
|
22
22
|
export { type ContentfulFetchClient, createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client';
|
|
23
23
|
export type { ContentResolverFunction } from './converters';
|
|
24
24
|
export { type BaseConverterContext, baseCollectionConverter, baseComponentConverter, baseExternalComponentConverter, baseNavigationItemConverter, basePageConverter, type ConverterContext, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, type IContentfulArticle, type IContentfulArticleLink, type IContentfulCollection, type IContentfulComponent, type IContentfulExternalComponent, type IContentfulPerson, lookupAsset, mergeAlternatePageContentsInTree, resolveLink, resolveLinks, resolveNavigation, resolveRichTextDocument, type UrlCalculators, } from './converters';
|
|
25
|
-
export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, GlobalTag, getCacheTags, getCacheTagsForPreview, getCacheTagsForProduction, LocationTag, locationTag, NavigationTag, PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, TagTag, TemplateTag, tagTag, templateTag, } from './revalidation';
|
|
25
|
+
export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, GlobalTag, getCacheTags, getCacheTagsForPreview, getCacheTagsForProduction, LinkTag, LocationTag, locationTag, NavigationItemTag, NavigationTag, PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV, TagTag, TagTypeTag, TemplateTag, tagTag, templateTag, } from './revalidation';
|
|
26
|
+
export { createMarketingSiteUrlCalculators, type MarketingSiteRoutingOptions, } from './routing';
|
|
26
27
|
export type { CmsError, CmsResponse, ContentfulConfig, FetchOptions, RetryConfig, } from './types';
|
|
27
28
|
export { type ArticleForTagSelection, AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, type PrimaryTagSelector, RateLimitError, RateLimiter, safeDate, type TagVisibilityFields, ValidationError, withRetry, } from './utils';
|
|
28
29
|
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, type RedirectMap, type RedirectMapEntry, } from './utils/redirectMap';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EAEnC,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,22 +18,23 @@
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
// API functions
|
|
21
|
-
export { buildFetchOptions, contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries,
|
|
21
|
+
export { buildFetchOptions, buildFlatNavigationCacheOptions, contentfulAllArticleLinks, contentfulAllArticleLinksForIntegrity, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, contentfulAnyEntryRest, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries,
|
|
22
22
|
// Asset/download functions
|
|
23
|
-
contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams,
|
|
23
|
+
contentfulAssetRest, contentfulBannerRest, contentfulComponentRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulRedirectsRest, contentfulTagRest, contentfulTagSitemapEntries, contentfulTagTypeRest, contentfulTemplateRest, coreGetContentfulConfig, createBaseConverterContext, createSitemapProvider, FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, filterRelatedArticles, getAllSitemapEntries, getBreadcrumbLookup, getDefaultInclude, getListingLinkFetchParams, getNavigation,
|
|
24
24
|
// Preview
|
|
25
|
-
getPreviewEntryInfo, getResolutionScope, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_RESOLUTION_SCOPE, resolveIncludeDepth, } from './api';
|
|
25
|
+
getPreviewEntryInfo, getResolutionScope, isBrowserViewable, LISTING_RESOLUTION_SCOPE, PAGE_RESOLUTION_SCOPE, resolveIncludeDepth, } from './api/index.js';
|
|
26
26
|
// Client exports
|
|
27
|
-
export { createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client';
|
|
27
|
+
export { createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client.js';
|
|
28
28
|
// Converter exports
|
|
29
|
-
export { baseCollectionConverter, baseComponentConverter, baseExternalComponentConverter, baseNavigationItemConverter, basePageConverter, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, lookupAsset, mergeAlternatePageContentsInTree, resolveLink, resolveLinks, resolveNavigation, resolveRichTextDocument, } from './converters';
|
|
29
|
+
export { baseCollectionConverter, baseComponentConverter, baseExternalComponentConverter, baseNavigationItemConverter, basePageConverter, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, lookupAsset, mergeAlternatePageContentsInTree, resolveLink, resolveLinks, resolveNavigation, resolveRichTextDocument, } from './converters/index.js';
|
|
30
30
|
// Revalidation utilities
|
|
31
31
|
export { AllTags, ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, BannerTag, CustomTypeTag, customTypeTag, GlobalTag, getCacheTags,
|
|
32
32
|
// Utility functions
|
|
33
|
-
getCacheTagsForPreview, getCacheTagsForProduction, LocationTag, locationTag, NavigationTag,
|
|
33
|
+
getCacheTagsForPreview, getCacheTagsForProduction, LinkTag, LocationTag, locationTag, NavigationItemTag, NavigationTag,
|
|
34
34
|
// Tag constants and functions
|
|
35
|
-
PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, TagTag, TemplateTag, tagTag, templateTag, } from './revalidation';
|
|
35
|
+
PageTag, PageVariantTag, PersonTag, pageTag, pageVariantTag, personTag, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV, TagTag, TagTypeTag, TemplateTag, tagTag, templateTag, } from './revalidation/index.js';
|
|
36
|
+
export { createMarketingSiteUrlCalculators, } from './routing/index.js';
|
|
36
37
|
// Error handling and retry utilities
|
|
37
|
-
export { AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, RateLimitError, RateLimiter, safeDate, ValidationError, withRetry, } from './utils';
|
|
38
|
-
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from './utils/redirectMap';
|
|
38
|
+
export { AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, filterVisibleTags, getPrimaryTag, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isTagShowEnabled, isTagVisible, isValidDate, notEmpty, RateLimitError, RateLimiter, safeDate, ValidationError, withRetry, } from './utils/index.js';
|
|
39
|
+
export { buildRedirectMap, filterSitemapEntriesExcludingRedirects, } from './utils/redirectMap.js';
|
|
39
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gBAAgB;AAChB,OAAO,EAKL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,gBAAgB;AAChB,OAAO,EAKL,iBAAiB,EACjB,+BAA+B,EAI/B,yBAAyB,EACzB,qCAAqC,EACrC,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC;AACnC,2BAA2B;AAC3B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EAErB,mBAAmB,EACnB,gCAAgC,EAChC,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa;AACb,UAAU;AACV,mBAAmB,EACnB,kBAAkB,EAKlB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAMrB,mBAAmB,GAOpB,MAAM,OAAO,CAAC;AAGf,iBAAiB;AACjB,OAAO,EAEL,sBAAsB,EACtB,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EAOtB,WAAW,EACX,gCAAgC,EAChC,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,yBAAyB;AACzB,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY;AACZ,oBAAoB;AACpB,sBAAsB,EACtB,yBAAyB,EACzB,OAAO,EACP,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa;AACb,8BAA8B;AAC9B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,wCAAwC,EACxC,4CAA4C,EAC5C,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iCAAiC,GAElC,MAAM,WAAW,CAAC;AASnB,qCAAqC;AACrC,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EAER,cAAc,EACd,WAAW,EACX,QAAQ,EAER,eAAe,EACf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,sCAAsC,GAGvC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IInternalLink, ILinkProps, INavigation, INavigationItem } from '@se-studio/core-data-types';
|
|
2
|
+
import type { InternalLinkIndex, NavItemRecord, NavigationRegistry, NavigationRootRecord } from './types';
|
|
3
|
+
export declare function createNavItemLink(record: NavItemRecord, linkIndex: InternalLinkIndex): ILinkProps | undefined;
|
|
4
|
+
export declare function assembleNavigationItem(id: string, registry: NavigationRegistry, linkIndex: InternalLinkIndex, visiting?: Set<string>): INavigationItem | undefined;
|
|
5
|
+
export declare function assembleNavigation(root: NavigationRootRecord, registry: NavigationRegistry, linkIndex: InternalLinkIndex): INavigation;
|
|
6
|
+
export declare function assembleNavigationById(navigationId: string, registry: NavigationRegistry, linkIndex: InternalLinkIndex): INavigation | undefined;
|
|
7
|
+
export declare function addLinkToIndex(index: InternalLinkIndex, link: IInternalLink): void;
|
|
8
|
+
//# sourceMappingURL=assembly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/navigation/assembly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,iBAAiB,GAC3B,UAAU,GAAG,SAAS,CAoFxB;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAChC,eAAe,GAAG,SAAS,CA0B7B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,WAAW,CAab;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,WAAW,GAAG,SAAS,CAMzB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAOlF"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { resolveBuildYear } from '../converters/helpers.js';
|
|
2
|
+
export function createNavItemLink(record, linkIndex) {
|
|
3
|
+
const { id, title, externalLink, text, internalId, icon, useTitle, variant, size, trackingEventName, longText, isButton, isOutlined, backgroundColour, textColour, } = record;
|
|
4
|
+
const trackingInfo = trackingEventName ? { trackingEventName } : undefined;
|
|
5
|
+
const realText = useTitle ? resolveBuildYear(title) : text ? resolveBuildYear(text) : undefined;
|
|
6
|
+
const styleProps = {
|
|
7
|
+
...(isButton !== undefined ? { isButton } : {}),
|
|
8
|
+
...(isOutlined !== undefined ? { isOutlined } : {}),
|
|
9
|
+
...(backgroundColour !== undefined ? { backgroundColour } : {}),
|
|
10
|
+
...(textColour !== undefined ? { textColour } : {}),
|
|
11
|
+
};
|
|
12
|
+
if (externalLink) {
|
|
13
|
+
return {
|
|
14
|
+
type: 'External link',
|
|
15
|
+
id,
|
|
16
|
+
href: externalLink,
|
|
17
|
+
icon,
|
|
18
|
+
name: title,
|
|
19
|
+
...styleProps,
|
|
20
|
+
longText,
|
|
21
|
+
variant,
|
|
22
|
+
size,
|
|
23
|
+
text: realText,
|
|
24
|
+
...(trackingInfo && { trackingInfo }),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (internalId) {
|
|
28
|
+
const resolved = linkIndex.get(internalId);
|
|
29
|
+
if (resolved) {
|
|
30
|
+
return {
|
|
31
|
+
...resolved,
|
|
32
|
+
...styleProps,
|
|
33
|
+
longText,
|
|
34
|
+
icon,
|
|
35
|
+
visual: icon?.visual ?? resolved.visual,
|
|
36
|
+
id,
|
|
37
|
+
text: realText,
|
|
38
|
+
variant,
|
|
39
|
+
size,
|
|
40
|
+
...(trackingInfo && {
|
|
41
|
+
trackingInfo: { ...resolved.trackingInfo, ...trackingInfo },
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (process.env.LOG_CMS) {
|
|
46
|
+
console.warn(`[CMS] Navigation item ${id} internal target ${internalId} not in link index (${linkIndex.size} links loaded)`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const blank = {
|
|
50
|
+
type: 'Blank link',
|
|
51
|
+
nick: true,
|
|
52
|
+
id,
|
|
53
|
+
name: title,
|
|
54
|
+
...styleProps,
|
|
55
|
+
longText,
|
|
56
|
+
variant,
|
|
57
|
+
size,
|
|
58
|
+
icon,
|
|
59
|
+
text: realText,
|
|
60
|
+
...(trackingInfo && { trackingInfo }),
|
|
61
|
+
};
|
|
62
|
+
return blank;
|
|
63
|
+
}
|
|
64
|
+
export function assembleNavigationItem(id, registry, linkIndex, visiting = new Set()) {
|
|
65
|
+
if (visiting.has(id)) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const record = registry.items.get(id);
|
|
69
|
+
if (!record) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
visiting.add(id);
|
|
73
|
+
const link = createNavItemLink(record, linkIndex);
|
|
74
|
+
const entries = record.childIds
|
|
75
|
+
.map((childId) => assembleNavigationItem(childId, registry, linkIndex, visiting))
|
|
76
|
+
.filter((item) => item !== undefined);
|
|
77
|
+
visiting.delete(id);
|
|
78
|
+
const result = {
|
|
79
|
+
id,
|
|
80
|
+
link,
|
|
81
|
+
entries: entries.length > 0 ? entries : undefined,
|
|
82
|
+
...(record.adminLabel ? { adminLabel: record.adminLabel } : {}),
|
|
83
|
+
};
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
export function assembleNavigation(root, registry, linkIndex) {
|
|
87
|
+
const entries = root.entryIds
|
|
88
|
+
.map((id) => assembleNavigationItem(id, registry, linkIndex))
|
|
89
|
+
.filter((item) => item !== undefined);
|
|
90
|
+
return {
|
|
91
|
+
id: root.id,
|
|
92
|
+
name: root.name,
|
|
93
|
+
entries,
|
|
94
|
+
...(root.adminLabel ? { adminLabel: root.adminLabel } : {}),
|
|
95
|
+
...(root.backgroundColour ? { backgroundColour: root.backgroundColour } : {}),
|
|
96
|
+
...(root.textColour ? { textColour: root.textColour } : {}),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function assembleNavigationById(navigationId, registry, linkIndex) {
|
|
100
|
+
const root = registry.roots.get(navigationId);
|
|
101
|
+
if (!root) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
return assembleNavigation(root, registry, linkIndex);
|
|
105
|
+
}
|
|
106
|
+
export function addLinkToIndex(index, link) {
|
|
107
|
+
index.set(link.internalId, link);
|
|
108
|
+
if (link.linkEntryId) {
|
|
109
|
+
index.set(link.linkEntryId, link);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
index.set(link.id, link);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=assembly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/navigation/assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FetchOptions } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Time-based ISR fallback (seconds) when a Contentful webhook does not invalidate cache tags.
|
|
4
|
+
* Primary invalidation is tag-based via {@link FLAT_NAV_CACHE_TAGS} on each sub-fetch.
|
|
5
|
+
* Apps may override with `options.next.revalidate` (set `false` for tag-only caching).
|
|
6
|
+
*/
|
|
7
|
+
export declare const FLAT_NAV_TIME_REVALIDATE_SECONDS = 3600;
|
|
8
|
+
/**
|
|
9
|
+
* Collection-level Next.js cache tags for flat navigation fetches.
|
|
10
|
+
* Webhook handlers must revalidate these when the corresponding content type publishes.
|
|
11
|
+
*/
|
|
12
|
+
export declare const FLAT_NAV_CACHE_TAGS: readonly ["navigation", "navigationItem", "page", "pageVariant", "article", "articleType", "customType", "tag", "tagType", "person", "link"];
|
|
13
|
+
/** Merge default flat-nav cache settings without clobbering app-provided `next` fields. */
|
|
14
|
+
export declare function buildFlatNavigationCacheOptions(options: FetchOptions): FetchOptions;
|
|
15
|
+
//# sourceMappingURL=cacheOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheOptions.d.ts","sourceRoot":"","sources":["../../src/navigation/cacheOptions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8IAYtB,CAAC;AAEX,2FAA2F;AAC3F,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAYnF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ArticleTag, ArticleTypeTag, CustomTypeTag, LinkTag, NavigationItemTag, NavigationTag, PageTag, PageVariantTag, PersonTag, TagTag, TagTypeTag, } from '../revalidation/tags.js';
|
|
2
|
+
/**
|
|
3
|
+
* Time-based ISR fallback (seconds) when a Contentful webhook does not invalidate cache tags.
|
|
4
|
+
* Primary invalidation is tag-based via {@link FLAT_NAV_CACHE_TAGS} on each sub-fetch.
|
|
5
|
+
* Apps may override with `options.next.revalidate` (set `false` for tag-only caching).
|
|
6
|
+
*/
|
|
7
|
+
export const FLAT_NAV_TIME_REVALIDATE_SECONDS = 3600;
|
|
8
|
+
/**
|
|
9
|
+
* Collection-level Next.js cache tags for flat navigation fetches.
|
|
10
|
+
* Webhook handlers must revalidate these when the corresponding content type publishes.
|
|
11
|
+
*/
|
|
12
|
+
export const FLAT_NAV_CACHE_TAGS = [
|
|
13
|
+
NavigationTag,
|
|
14
|
+
NavigationItemTag,
|
|
15
|
+
PageTag,
|
|
16
|
+
PageVariantTag,
|
|
17
|
+
ArticleTag,
|
|
18
|
+
ArticleTypeTag,
|
|
19
|
+
CustomTypeTag,
|
|
20
|
+
TagTag,
|
|
21
|
+
TagTypeTag,
|
|
22
|
+
PersonTag,
|
|
23
|
+
LinkTag,
|
|
24
|
+
];
|
|
25
|
+
/** Merge default flat-nav cache settings without clobbering app-provided `next` fields. */
|
|
26
|
+
export function buildFlatNavigationCacheOptions(options) {
|
|
27
|
+
const { revalidate, tags, ...restNext } = options.next ?? {};
|
|
28
|
+
return {
|
|
29
|
+
...options,
|
|
30
|
+
cache: options.cache ?? 'force-cache',
|
|
31
|
+
next: {
|
|
32
|
+
...restNext,
|
|
33
|
+
revalidate: revalidate ?? FLAT_NAV_TIME_REVALIDATE_SECONDS,
|
|
34
|
+
tags: [...new Set([...FLAT_NAV_CACHE_TAGS, ...(tags ?? [])])],
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=cacheOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheOptions.js","sourceRoot":"","sources":["../../src/navigation/cacheOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,iBAAiB;IACjB,OAAO;IACP,cAAc;IACd,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,OAAO;CACC,CAAC;AAEX,2FAA2F;AAC3F,MAAM,UAAU,+BAA+B,CAAC,OAAqB;IACnE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7D,OAAO;QACL,GAAG,OAAO;QACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,aAAa;QACrC,IAAI,EAAE;YACJ,GAAG,QAAQ;YACX,UAAU,EAAE,UAAU,IAAI,gCAAgC;YAC1D,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BaseConverterContext } from '../converters/helpers';
|
|
2
|
+
import type { ContentfulConfig, FetchOptions } from '../types';
|
|
3
|
+
import type { InternalLinkIndex } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Fetches all routable entry links and builds an entry-id keyed index for navigation assembly.
|
|
6
|
+
* Includes link wrapper entries keyed by wrapper id and target id.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getInternalLinkIndex(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<InternalLinkIndex>;
|
|
9
|
+
//# sourceMappingURL=linkIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkIndex.d.ts","sourceRoot":"","sources":["../../src/navigation/linkIndex.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA4C5B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { convertAllAssets, convertAllIncludes, convertAllRawAssets, createFullConverterContext, mergeFetchCacheTags, } from '../api/helpers.js';
|
|
2
|
+
import { contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllCustomTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulAllTagTypeLinks, } from '../api/links.js';
|
|
3
|
+
import { getContentfulClient } from '../client.js';
|
|
4
|
+
import { baseLinkConverter } from '../converters/link.js';
|
|
5
|
+
import { getCacheTags } from '../revalidation/utils.js';
|
|
6
|
+
import { addLinkToIndex } from './assembly.js';
|
|
7
|
+
import { buildFlatNavigationCacheOptions } from './cacheOptions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Fetches all routable entry links and builds an entry-id keyed index for navigation assembly.
|
|
10
|
+
* Includes link wrapper entries keyed by wrapper id and target id.
|
|
11
|
+
*/
|
|
12
|
+
export async function getInternalLinkIndex(context, config, options) {
|
|
13
|
+
const cacheOptions = {
|
|
14
|
+
...buildFlatNavigationCacheOptions(options),
|
|
15
|
+
fetchProfile: 'listing',
|
|
16
|
+
};
|
|
17
|
+
const [pageRes, articleRes, articleTypeRes, tagRes, personRes, customTypeRes, tagTypeRes, linkWrapperRes,] = await Promise.all([
|
|
18
|
+
contentfulAllPageLinks(context, config, cacheOptions),
|
|
19
|
+
contentfulAllArticleLinks(context, config, cacheOptions),
|
|
20
|
+
contentfulAllArticleTypeLinks(context, config, cacheOptions),
|
|
21
|
+
contentfulAllTagLinks(context, config, cacheOptions),
|
|
22
|
+
contentfulAllPersonLinks(context, config, cacheOptions),
|
|
23
|
+
contentfulAllCustomTypeLinks(context, config, cacheOptions),
|
|
24
|
+
contentfulAllTagTypeLinks(context, config, cacheOptions),
|
|
25
|
+
fetchLinkWrapperEntries(context, config, cacheOptions),
|
|
26
|
+
]);
|
|
27
|
+
const index = new Map();
|
|
28
|
+
for (const link of [
|
|
29
|
+
...pageRes.data,
|
|
30
|
+
...articleRes.data,
|
|
31
|
+
...articleTypeRes.data,
|
|
32
|
+
...tagRes.data,
|
|
33
|
+
...personRes.data,
|
|
34
|
+
...customTypeRes.data,
|
|
35
|
+
...tagTypeRes.data,
|
|
36
|
+
...linkWrapperRes.data,
|
|
37
|
+
]) {
|
|
38
|
+
if (link.type === 'Internal link') {
|
|
39
|
+
addLinkToIndex(index, link);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return index;
|
|
43
|
+
}
|
|
44
|
+
async function fetchLinkWrapperEntries(context, config, options) {
|
|
45
|
+
const client = getContentfulClient(config, options.preview);
|
|
46
|
+
const cacheTags = getCacheTags('link', undefined, options?.preview);
|
|
47
|
+
const requestOptions = {
|
|
48
|
+
...options,
|
|
49
|
+
next: mergeFetchCacheTags(options, cacheTags),
|
|
50
|
+
};
|
|
51
|
+
const data = [];
|
|
52
|
+
const pageSize = options.pageSize ?? 100;
|
|
53
|
+
let skip = 0;
|
|
54
|
+
let total = Number.POSITIVE_INFINITY;
|
|
55
|
+
while (skip < total) {
|
|
56
|
+
const response = await client.getEntries({
|
|
57
|
+
content_type: 'link',
|
|
58
|
+
order: 'sys.createdAt',
|
|
59
|
+
include: 1,
|
|
60
|
+
locale: options?.locale,
|
|
61
|
+
limit: pageSize,
|
|
62
|
+
skip,
|
|
63
|
+
}, requestOptions);
|
|
64
|
+
if (response.items.length === 0) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
const assets = convertAllAssets(response, context);
|
|
68
|
+
const rawAssets = convertAllRawAssets(response);
|
|
69
|
+
const includes = convertAllIncludes(response);
|
|
70
|
+
const { enrichAllAssets } = await import('../converters/enrichAssets.js');
|
|
71
|
+
const externalVideoEmbeds = options.skipAssetEnrichment
|
|
72
|
+
? new Map()
|
|
73
|
+
: await enrichAllAssets(assets, includes, options);
|
|
74
|
+
const fullContext = createFullConverterContext(context, includes, assets, rawAssets, externalVideoEmbeds, { ...options, fetchProfile: 'listing' });
|
|
75
|
+
for (const entry of response.items) {
|
|
76
|
+
if (!entry.fields) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const converted = baseLinkConverter(fullContext, entry);
|
|
80
|
+
if (converted.type === 'Internal link') {
|
|
81
|
+
converted.lastModified = new Date(entry.sys.updatedAt);
|
|
82
|
+
data.push(converted);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
total = response.total;
|
|
86
|
+
skip += pageSize;
|
|
87
|
+
}
|
|
88
|
+
return { data };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=linkIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkIndex.js","sourceRoot":"","sources":["../../src/navigation/linkIndex.ts"],"names":[],"mappings":"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"}
|