@se-studio/contentful-rest-api 1.10.0 → 1.12.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 +16 -0
- package/README.md +41 -1
- package/dist/api/article-type.d.ts.map +1 -1
- package/dist/api/article-type.js +4 -6
- package/dist/api/article-type.js.map +1 -1
- package/dist/api/helpers.d.ts +2 -0
- package/dist/api/helpers.d.ts.map +1 -1
- package/dist/api/helpers.js +16 -13
- 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 +2 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/links.d.ts.map +1 -1
- package/dist/api/links.js +30 -31
- package/dist/api/links.js.map +1 -1
- package/dist/api/listing-fetch-params.d.ts +30 -4
- package/dist/api/listing-fetch-params.d.ts.map +1 -1
- package/dist/api/listing-fetch-params.js +21 -4
- 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/person.d.ts.map +1 -1
- package/dist/api/person.js +4 -6
- package/dist/api/person.js.map +1 -1
- package/dist/api/tag.d.ts.map +1 -1
- package/dist/api/tag.js +4 -6
- package/dist/api/tag.js.map +1 -1
- package/dist/api/template.d.ts.map +1 -1
- package/dist/api/template.js +3 -4
- package/dist/api/template.js.map +1 -1
- package/dist/converters/article.d.ts.map +1 -1
- package/dist/converters/article.js +11 -15
- package/dist/converters/article.js.map +1 -1
- package/dist/converters/customType.d.ts.map +1 -1
- package/dist/converters/customType.js +3 -11
- package/dist/converters/customType.js.map +1 -1
- package/dist/converters/index.d.ts +1 -1
- package/dist/converters/index.d.ts.map +1 -1
- package/dist/converters/index.js +1 -1
- package/dist/converters/index.js.map +1 -1
- package/dist/converters/navigationItem.d.ts +6 -0
- package/dist/converters/navigationItem.d.ts.map +1 -1
- package/dist/converters/navigationItem.js +24 -1
- package/dist/converters/navigationItem.js.map +1 -1
- package/dist/converters/page.js +3 -3
- package/dist/converters/page.js.map +1 -1
- package/dist/converters/pageVariantMerge.js +3 -3
- package/dist/converters/pageVariantMerge.js.map +1 -1
- package/dist/converters/person.js +3 -3
- package/dist/converters/person.js.map +1 -1
- package/dist/converters/tag.d.ts.map +1 -1
- package/dist/converters/tag.js +15 -19
- package/dist/converters/tag.js.map +1 -1
- package/dist/converters/template.d.ts.map +1 -1
- package/dist/converters/template.js +3 -4
- package/dist/converters/template.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- 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/enrichModelNavigation.d.ts +17 -0
- package/dist/navigation/enrichModelNavigation.d.ts.map +1 -0
- package/dist/navigation/enrichModelNavigation.js +47 -0
- package/dist/navigation/enrichModelNavigation.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 +16 -1
- 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 +1 -0
- package/dist/revalidation/index.js.map +1 -1
- 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/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/llms.md +35 -1
- package/package.json +1 -1
package/docs/llms.md
CHANGED
|
@@ -63,6 +63,36 @@ const allPersonLinks = await contentfulAllPersonLinks(config);
|
|
|
63
63
|
// CmsResponse<IPersonLink[]> — each link includes resolved bio (IResolvedRichText) when set in CMS
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
+
## Flat navigation
|
|
67
|
+
|
|
68
|
+
Assemble menus without Contentful include depth.
|
|
69
|
+
|
|
70
|
+
**Page renders (preferred):** `navigationResolution: 'flat'` on `FetchOptions` — converters stub nav root ids; post-convert step calls registry + link index and rebuilds `model.menu` / `model.footer` / `model.icons`. Set in app `buildOptions`. Default is `'bundled'`.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
buildFetchOptions({ navigationResolution: 'flat', ...options }, preview);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Ad hoc:** `getNavigation` from `createAppHelpers` only — registry/link-index fetchers are not exported.
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
const { getNavigation } = createAppHelpers({ /* ... */ });
|
|
80
|
+
const menu = await getNavigation(mainNavEntryId);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Caching (applied inside `getNavigation` via `buildFlatNavigationCacheOptions`):
|
|
84
|
+
|
|
85
|
+
- **Tags (primary):** `FLAT_NAV_CACHE_TAGS` — collection tags for navigation, navigationItem, page, article, tag, **tagType**, **link**, person, etc.
|
|
86
|
+
- **Revalidate (fallback):** `FLAT_NAV_TIME_REVALIDATE_SECONDS` (3600) when webhooks miss; override with `options.next.revalidate`.
|
|
87
|
+
|
|
88
|
+
Unresolved internal targets → blank link; set `LOG_CMS=1` to warn.
|
|
89
|
+
|
|
90
|
+
### Golden listing fields
|
|
91
|
+
|
|
92
|
+
Defined in `listing-fetch-params.ts` (table in file header). Bulk link/index fetches use these `select` lists. Flat-nav **registry** fetches omit `select` (schema-tolerant per space).
|
|
93
|
+
|
|
94
|
+
`tagType` links: `TAG_TYPE_LINK_FIELDS` includes `fields.slug`; spaces without slug fall back to `TAG_TYPE_MINIMAL_FIELDS` on 422.
|
|
95
|
+
|
|
66
96
|
## Related Articles Filtering
|
|
67
97
|
|
|
68
98
|
```ts
|
|
@@ -130,10 +160,14 @@ import {
|
|
|
130
160
|
customTypeTag,
|
|
131
161
|
assetTag,
|
|
132
162
|
// Constants
|
|
133
|
-
PageTag, ArticleTag, NavigationTag, BannerTag, GlobalTag, AllTags,
|
|
163
|
+
PageTag, ArticleTag, TagTypeTag, LinkTag, NavigationTag, BannerTag, GlobalTag, AllTags,
|
|
164
|
+
FLAT_NAV_CACHE_TAGS, FLAT_NAV_TIME_REVALIDATE_SECONDS, buildFlatNavigationCacheOptions,
|
|
165
|
+
REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES, REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV,
|
|
134
166
|
} from '@se-studio/contentful-rest-api';
|
|
135
167
|
```
|
|
136
168
|
|
|
169
|
+
Production published-entry webhook filter: `REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV` (includes `navigation`, `navigationItem`, `tagType`, `link` for flat nav). See `docs/CONTENTFUL_WEBHOOK_REVALIDATION.md`.
|
|
170
|
+
|
|
137
171
|
## Converter Pattern
|
|
138
172
|
|
|
139
173
|
Used to extend how Contentful entries are transformed into typed models. You typically call `createBaseConverterContext()` and pass it via `buildFetchOptions`.
|
package/package.json
CHANGED