@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.
Files changed (127) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +32 -1
  3. package/dist/api/article-type.js +7 -7
  4. package/dist/api/article.js +1 -1
  5. package/dist/api/asset.js +2 -2
  6. package/dist/api/banner.js +5 -5
  7. package/dist/api/breadcrumb.js +1 -1
  8. package/dist/api/componentPreview.js +7 -7
  9. package/dist/api/context.js +14 -14
  10. package/dist/api/custom-type.js +1 -1
  11. package/dist/api/helpers.d.ts +2 -0
  12. package/dist/api/helpers.d.ts.map +1 -1
  13. package/dist/api/helpers.js +25 -10
  14. package/dist/api/helpers.js.map +1 -1
  15. package/dist/api/index.d.ts +2 -1
  16. package/dist/api/index.d.ts.map +1 -1
  17. package/dist/api/index.js +22 -21
  18. package/dist/api/index.js.map +1 -1
  19. package/dist/api/links.d.ts +6 -0
  20. package/dist/api/links.d.ts.map +1 -1
  21. package/dist/api/links.js +60 -40
  22. package/dist/api/links.js.map +1 -1
  23. package/dist/api/listing-fetch-params.d.ts +25 -2
  24. package/dist/api/listing-fetch-params.d.ts.map +1 -1
  25. package/dist/api/listing-fetch-params.js +5 -2
  26. package/dist/api/listing-fetch-params.js.map +1 -1
  27. package/dist/api/navigation.d.ts +9 -0
  28. package/dist/api/navigation.d.ts.map +1 -0
  29. package/dist/api/navigation.js +17 -0
  30. package/dist/api/navigation.js.map +1 -0
  31. package/dist/api/page.js +2 -2
  32. package/dist/api/person.js +7 -7
  33. package/dist/api/preview.js +1 -1
  34. package/dist/api/redirects.js +5 -5
  35. package/dist/api/server-asset.js +1 -1
  36. package/dist/api/sitemap.js +1 -1
  37. package/dist/api/tag-type.js +6 -6
  38. package/dist/api/tag.js +7 -7
  39. package/dist/api/template.js +4 -4
  40. package/dist/client.js +2 -2
  41. package/dist/cms-integrity.d.ts +10 -0
  42. package/dist/cms-integrity.d.ts.map +1 -0
  43. package/dist/cms-integrity.js +7 -0
  44. package/dist/cms-integrity.js.map +1 -0
  45. package/dist/converters/animationEnricher.js +1 -1
  46. package/dist/converters/article.js +7 -7
  47. package/dist/converters/asset.js +1 -1
  48. package/dist/converters/banner.js +2 -2
  49. package/dist/converters/collection.js +3 -3
  50. package/dist/converters/component.js +4 -4
  51. package/dist/converters/customType.js +5 -5
  52. package/dist/converters/enrichAssets.js +4 -4
  53. package/dist/converters/externalComponent.js +3 -3
  54. package/dist/converters/helpers.js +1 -1
  55. package/dist/converters/htmlComponent.js +1 -1
  56. package/dist/converters/iconCollector.js +1 -1
  57. package/dist/converters/index.js +12 -12
  58. package/dist/converters/link.js +3 -3
  59. package/dist/converters/navigationItem.js +3 -3
  60. package/dist/converters/page.js +6 -6
  61. package/dist/converters/pageVariantMerge.js +6 -6
  62. package/dist/converters/person.js +5 -5
  63. package/dist/converters/pictureBlurEnricher.js +1 -1
  64. package/dist/converters/redirect.js +1 -1
  65. package/dist/converters/resolver.js +4 -4
  66. package/dist/converters/tag.js +6 -6
  67. package/dist/converters/tagType.js +3 -3
  68. package/dist/converters/template.js +2 -2
  69. package/dist/index.d.ts +3 -2
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +10 -9
  72. package/dist/index.js.map +1 -1
  73. package/dist/navigation/assembly.d.ts +8 -0
  74. package/dist/navigation/assembly.d.ts.map +1 -0
  75. package/dist/navigation/assembly.js +115 -0
  76. package/dist/navigation/assembly.js.map +1 -0
  77. package/dist/navigation/cacheOptions.d.ts +15 -0
  78. package/dist/navigation/cacheOptions.d.ts.map +1 -0
  79. package/dist/navigation/cacheOptions.js +38 -0
  80. package/dist/navigation/cacheOptions.js.map +1 -0
  81. package/dist/navigation/linkIndex.d.ts +9 -0
  82. package/dist/navigation/linkIndex.d.ts.map +1 -0
  83. package/dist/navigation/linkIndex.js +90 -0
  84. package/dist/navigation/linkIndex.js.map +1 -0
  85. package/dist/navigation/registry.d.ts +14 -0
  86. package/dist/navigation/registry.d.ts.map +1 -0
  87. package/dist/navigation/registry.js +113 -0
  88. package/dist/navigation/registry.js.map +1 -0
  89. package/dist/navigation/types.d.ts +45 -0
  90. package/dist/navigation/types.d.ts.map +1 -0
  91. package/dist/navigation/types.js +2 -0
  92. package/dist/navigation/types.js.map +1 -0
  93. package/dist/revalidation/handlers.d.ts.map +1 -1
  94. package/dist/revalidation/handlers.js +18 -3
  95. package/dist/revalidation/handlers.js.map +1 -1
  96. package/dist/revalidation/index.d.ts +1 -0
  97. package/dist/revalidation/index.d.ts.map +1 -1
  98. package/dist/revalidation/index.js +3 -2
  99. package/dist/revalidation/index.js.map +1 -1
  100. package/dist/revalidation/nextjs-route.js +1 -1
  101. package/dist/revalidation/route.js +3 -3
  102. package/dist/revalidation/tags.d.ts +9 -0
  103. package/dist/revalidation/tags.d.ts.map +1 -1
  104. package/dist/revalidation/tags.js +15 -1
  105. package/dist/revalidation/tags.js.map +1 -1
  106. package/dist/revalidation/utils.d.ts.map +1 -1
  107. package/dist/revalidation/utils.js +5 -1
  108. package/dist/revalidation/utils.js.map +1 -1
  109. package/dist/revalidation/webhook-content-types.d.ts +12 -0
  110. package/dist/revalidation/webhook-content-types.d.ts.map +1 -0
  111. package/dist/revalidation/webhook-content-types.js +27 -0
  112. package/dist/revalidation/webhook-content-types.js.map +1 -0
  113. package/dist/routing/index.d.ts +2 -0
  114. package/dist/routing/index.d.ts.map +1 -0
  115. package/dist/routing/index.js +2 -0
  116. package/dist/routing/index.js.map +1 -0
  117. package/dist/routing/marketing-site-url-calculators.d.ts +21 -0
  118. package/dist/routing/marketing-site-url-calculators.d.ts.map +1 -0
  119. package/dist/routing/marketing-site-url-calculators.js +43 -0
  120. package/dist/routing/marketing-site-url-calculators.js.map +1 -0
  121. package/dist/server.js +5 -5
  122. package/dist/types.d.ts +4 -0
  123. package/dist/types.d.ts.map +1 -1
  124. package/dist/utils/index.js +5 -5
  125. package/dist/utils/retry.js +1 -1
  126. package/docs/llms.md +29 -1
  127. 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,4 +1,4 @@
1
- import { DEFAULT_POSITION_FIELDS, makeContentfulTitle } from './helpers';
1
+ import { DEFAULT_POSITION_FIELDS, makeContentfulTitle } from './helpers.js';
2
2
  /**
3
3
  * Converts a Contentful htmlComponent entry to an IBaseHtmlComponent.
4
4
  *
@@ -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).
@@ -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
@@ -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;
@@ -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,4 +1,4 @@
1
- import { assetTag } from '../revalidation/tags';
1
+ import { assetTag } from '../revalidation/tags.js';
2
2
  /**
3
3
  * Tiny raster width for LQIP-style blur data URLs. Kept small to limit fetch size and base64 payload.
4
4
  */
@@ -1,4 +1,4 @@
1
- import { resolveLink } from './resolver';
1
+ import { resolveLink } from './resolver.js';
2
2
  /**
3
3
  * Converts a Contentful redirect entry to an IRedirect object.
4
4
  *
@@ -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);
@@ -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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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,EAIjB,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;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,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB;AACzB,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,WAAW,EACX,WAAW,EACX,aAAa;AACb,8BAA8B;AAC9B,OAAO,EACP,cAAc,EACd,SAAS,EACT,OAAO,EACP,cAAc,EACd,SAAS,EACT,MAAM,EACN,WAAW,EACX,MAAM,EACN,WAAW,GACZ,MAAM,gBAAgB,CAAC;AASxB,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"}
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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"}