@se-studio/contentful-rest-api 2.0.6 → 2.0.9
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 +20 -0
- package/dist/api/article-type.d.ts.map +1 -1
- package/dist/api/article-type.js +4 -4
- package/dist/api/article-type.js.map +1 -1
- package/dist/api/componentPreview.d.ts +6 -24
- package/dist/api/componentPreview.d.ts.map +1 -1
- package/dist/api/componentPreview.js +27 -8
- package/dist/api/componentPreview.js.map +1 -1
- package/dist/api/helpers.d.ts +1 -1
- package/dist/api/helpers.d.ts.map +1 -1
- package/dist/api/helpers.js +4 -4
- package/dist/api/helpers.js.map +1 -1
- package/dist/api/links.d.ts.map +1 -1
- package/dist/api/links.js +12 -22
- package/dist/api/links.js.map +1 -1
- package/dist/api/listing-fetch-params.d.ts +22 -13
- package/dist/api/listing-fetch-params.d.ts.map +1 -1
- package/dist/api/listing-fetch-params.js +40 -11
- package/dist/api/listing-fetch-params.js.map +1 -1
- package/dist/api/person.d.ts.map +1 -1
- package/dist/api/person.js +2 -13
- package/dist/api/person.js.map +1 -1
- package/dist/api/tag.d.ts.map +1 -1
- package/dist/api/tag.js +4 -4
- package/dist/api/tag.js.map +1 -1
- package/dist/baseTypes/baseArticle.d.ts +7 -0
- package/dist/baseTypes/baseArticle.d.ts.map +1 -1
- package/dist/baseTypes/baseArticleType.d.ts +14 -0
- package/dist/baseTypes/baseArticleType.d.ts.map +1 -1
- package/dist/baseTypes/baseCustomType.d.ts +14 -0
- package/dist/baseTypes/baseCustomType.d.ts.map +1 -1
- package/dist/baseTypes/basePage.d.ts +14 -0
- package/dist/baseTypes/basePage.d.ts.map +1 -1
- package/dist/baseTypes/basePageVariant.d.ts +14 -0
- package/dist/baseTypes/basePageVariant.d.ts.map +1 -1
- package/dist/baseTypes/basePerson.d.ts +14 -0
- package/dist/baseTypes/basePerson.d.ts.map +1 -1
- package/dist/baseTypes/basePersonType.d.ts +21 -0
- package/dist/baseTypes/basePersonType.d.ts.map +1 -1
- package/dist/baseTypes/baseTag.d.ts +20 -0
- package/dist/baseTypes/baseTag.d.ts.map +1 -1
- package/dist/converters/article.d.ts.map +1 -1
- package/dist/converters/article.js +21 -7
- package/dist/converters/article.js.map +1 -1
- package/dist/converters/asset.d.ts +7 -1
- package/dist/converters/asset.d.ts.map +1 -1
- package/dist/converters/asset.js +16 -1
- package/dist/converters/asset.js.map +1 -1
- package/dist/converters/component.d.ts.map +1 -1
- package/dist/converters/component.js +2 -2
- package/dist/converters/component.js.map +1 -1
- package/dist/converters/customType.d.ts.map +1 -1
- package/dist/converters/customType.js +13 -4
- package/dist/converters/customType.js.map +1 -1
- package/dist/converters/helpers.d.ts +4 -0
- package/dist/converters/helpers.d.ts.map +1 -1
- package/dist/converters/helpers.js +5 -0
- package/dist/converters/helpers.js.map +1 -1
- package/dist/converters/listCard.d.ts.map +1 -1
- package/dist/converters/listCard.js +6 -0
- package/dist/converters/listCard.js.map +1 -1
- package/dist/converters/page.d.ts.map +1 -1
- package/dist/converters/page.js +22 -5
- package/dist/converters/page.js.map +1 -1
- package/dist/converters/pageVariantMerge.d.ts.map +1 -1
- package/dist/converters/pageVariantMerge.js +4 -1
- package/dist/converters/pageVariantMerge.js.map +1 -1
- package/dist/converters/person.d.ts.map +1 -1
- package/dist/converters/person.js +11 -3
- package/dist/converters/person.js.map +1 -1
- package/dist/converters/personType.d.ts.map +1 -1
- package/dist/converters/personType.js +11 -3
- package/dist/converters/personType.js.map +1 -1
- package/dist/converters/tag.d.ts.map +1 -1
- package/dist/converters/tag.js +59 -5
- package/dist/converters/tag.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/revalidation/route.d.ts.map +1 -1
- package/dist/revalidation/route.js +14 -2
- package/dist/revalidation/route.js.map +1 -1
- package/dist/revalidation/tags.d.ts +3 -0
- package/dist/revalidation/tags.d.ts.map +1 -1
- package/dist/revalidation/tags.js +6 -0
- package/dist/revalidation/tags.js.map +1 -1
- package/dist/revalidation/webhook-content-types.d.ts +4 -2
- package/dist/revalidation/webhook-content-types.d.ts.map +1 -1
- package/dist/revalidation/webhook-content-types.js +6 -1
- package/dist/revalidation/webhook-content-types.js.map +1 -1
- package/docs/llms.md +7 -1
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { NextResponse } from 'next/server';
|
|
4
4
|
import { contentTypeHandlers, revalidateAsset, revalidateDeletedAsset, revalidateDeletedEntry, revalidateEntry, } from './handlers.js';
|
|
5
5
|
import { revalidateSingleTag } from './server-utils.js';
|
|
6
|
-
import { collectRevalidateAllTags } from './tags.js';
|
|
6
|
+
import { collectRevalidateAllTags, entryTag, GlobalTag } from './tags.js';
|
|
7
7
|
// Handle asset publishing
|
|
8
8
|
async function publishAsset(content, preview) {
|
|
9
9
|
return await revalidateAsset(content, 'publish asset', preview);
|
|
@@ -12,14 +12,25 @@ async function publishAsset(content, preview) {
|
|
|
12
12
|
async function deleteAsset(content, preview) {
|
|
13
13
|
return await revalidateDeletedAsset(content.sys.id, preview);
|
|
14
14
|
}
|
|
15
|
+
// A by-id fetch is tagged before the content type is known.
|
|
16
|
+
async function revalidateCachedEntry(content, preview) {
|
|
17
|
+
if (preview) {
|
|
18
|
+
await revalidateSingleTag(GlobalTag, 'preview entry');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (content.sys.id) {
|
|
22
|
+
await revalidateSingleTag(entryTag(content.sys.id), 'entry');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
15
25
|
// Handle entry publishing
|
|
16
26
|
async function publishEntry(content, preview) {
|
|
27
|
+
await revalidateCachedEntry(content, preview);
|
|
17
28
|
const contentType = content.sys.contentType.sys.id;
|
|
18
29
|
const handler = contentTypeHandlers[contentType];
|
|
19
30
|
if (!handler) {
|
|
20
31
|
if (process.env.LOG_CMS)
|
|
21
32
|
console.warn(`Unknown content type: ${contentType}`);
|
|
22
|
-
return
|
|
33
|
+
return true;
|
|
23
34
|
}
|
|
24
35
|
return await revalidateEntry(handler, content, contentType, preview);
|
|
25
36
|
}
|
|
@@ -27,6 +38,7 @@ async function publishEntry(content, preview) {
|
|
|
27
38
|
async function deleteEntry(content, preview) {
|
|
28
39
|
if (process.env.LOG_CMS)
|
|
29
40
|
console.log(`Delete entry: ${content.sys.id}`);
|
|
41
|
+
await revalidateCachedEntry(content, preview);
|
|
30
42
|
const contentType = content.sys.contentType.sys.id;
|
|
31
43
|
const success = await revalidateDeletedEntry(contentType, preview);
|
|
32
44
|
// Note: Search rebuild logic would go here if needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/revalidation/route.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/revalidation/route.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare const SchemaTag = "schema";
|
|
|
17
17
|
export declare const NavigationTag = "navigation";
|
|
18
18
|
export declare const NavigationItemTag = "navigationItem";
|
|
19
19
|
export declare const BannerTag = "banner";
|
|
20
|
+
export declare const EntryTag = "entry";
|
|
20
21
|
export declare const RedirectTag = "redirect";
|
|
21
22
|
export declare const LocationTag = "location";
|
|
22
23
|
export declare const PageVariantTag = "pageVariant";
|
|
@@ -84,6 +85,8 @@ export declare function personTypeTag(slug: string): string;
|
|
|
84
85
|
* @returns Cache tag for the asset
|
|
85
86
|
*/
|
|
86
87
|
export declare function assetTag(assetId: string): string;
|
|
88
|
+
/** One entry fetched by id. Publishing it does not refresh parent pages. */
|
|
89
|
+
export declare function entryTag(entryId: string): string;
|
|
87
90
|
/**
|
|
88
91
|
* Individual template cache tag generator
|
|
89
92
|
* @param label - Template cmsLabel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/revalidation/tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,gFAAgF;AAChF,eAAO,MAAM,UAAU,YAAY,CAAC;AAGpC,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/revalidation/tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,eAAO,MAAM,UAAU,YAAY,CAAC;AACpC,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,eAAe,CAAC;AAC1C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAC5C,gFAAgF;AAChF,eAAO,MAAM,UAAU,YAAY,CAAC;AAGpC,eAAO,MAAM,SAAS,WAAW,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,UAuBnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAE3E"}
|
|
@@ -18,6 +18,7 @@ export const SchemaTag = 'schema';
|
|
|
18
18
|
export const NavigationTag = 'navigation';
|
|
19
19
|
export const NavigationItemTag = 'navigationItem';
|
|
20
20
|
export const BannerTag = 'banner';
|
|
21
|
+
export const EntryTag = 'entry';
|
|
21
22
|
export const RedirectTag = 'redirect';
|
|
22
23
|
export const LocationTag = 'location';
|
|
23
24
|
export const PageVariantTag = 'pageVariant';
|
|
@@ -108,6 +109,10 @@ export function personTypeTag(slug) {
|
|
|
108
109
|
export function assetTag(assetId) {
|
|
109
110
|
return `${AssetTag}#${assetId}`;
|
|
110
111
|
}
|
|
112
|
+
/** One entry fetched by id. Publishing it does not refresh parent pages. */
|
|
113
|
+
export function entryTag(entryId) {
|
|
114
|
+
return `${EntryTag}#${entryId}`;
|
|
115
|
+
}
|
|
111
116
|
/**
|
|
112
117
|
* Individual template cache tag generator
|
|
113
118
|
* @param label - Template cmsLabel
|
|
@@ -153,6 +158,7 @@ export const AllTags = [
|
|
|
153
158
|
NavigationTag,
|
|
154
159
|
NavigationItemTag,
|
|
155
160
|
BannerTag,
|
|
161
|
+
EntryTag,
|
|
156
162
|
LocationTag,
|
|
157
163
|
SitemapTag,
|
|
158
164
|
'hubspot-forms', // Legacy bulk tag; prefer hubspot-form#{formId} from @se-studio/hubspot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/revalidation/tags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/revalidation/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* Content type IDs for the production **published-entry** revalidation webhook filter
|
|
3
3
|
* (`sys.contentType.sys.id` in Contentful).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Includes types whose only clear is `entry#<id>`, or `global` in preview:
|
|
6
|
+
* `component`, `collection`, and `externalComponent`.
|
|
7
|
+
* Excludes:
|
|
6
8
|
* - `redirect` — uses Vercel deploy hook (baked at build), not `/api/revalidate`
|
|
7
9
|
* - `asset` — separate asset publish/unpublish webhook in project setup scripts
|
|
8
10
|
*/
|
|
9
|
-
export declare const REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES: readonly ['article', 'articleType', 'banner', 'customType', 'link', 'location', 'navigation', 'navigationItem', 'page', 'pageVariant', 'person', 'personType', 'schema', 'tag', 'tagType', 'template'];
|
|
11
|
+
export declare const REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES: readonly ['article', 'articleType', 'banner', 'collection', 'component', 'customType', 'externalComponent', 'link', 'location', 'navigation', 'navigationItem', 'page', 'pageVariant', 'person', 'personType', 'schema', 'tag', 'tagType', 'template'];
|
|
10
12
|
/** Comma-separated list for Contentful UI or copy-paste into webhook filters. */
|
|
11
13
|
export declare const REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES_CSV: string;
|
|
12
14
|
//# sourceMappingURL=webhook-content-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-content-types.d.ts","sourceRoot":"","sources":["../../src/revalidation/webhook-content-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webhook-content-types.d.ts","sourceRoot":"","sources":["../../src/revalidation/webhook-content-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,wCAAwC,YACnD,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,CACF,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,4CAA4C,QACL,CAAC"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* Content type IDs for the production **published-entry** revalidation webhook filter
|
|
3
3
|
* (`sys.contentType.sys.id` in Contentful).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Includes types whose only clear is `entry#<id>`, or `global` in preview:
|
|
6
|
+
* `component`, `collection`, and `externalComponent`.
|
|
7
|
+
* Excludes:
|
|
6
8
|
* - `redirect` — uses Vercel deploy hook (baked at build), not `/api/revalidate`
|
|
7
9
|
* - `asset` — separate asset publish/unpublish webhook in project setup scripts
|
|
8
10
|
*/
|
|
@@ -10,7 +12,10 @@ export const REVALIDATION_WEBHOOK_ENTRY_CONTENT_TYPES = [
|
|
|
10
12
|
'article',
|
|
11
13
|
'articleType',
|
|
12
14
|
'banner',
|
|
15
|
+
'collection',
|
|
16
|
+
'component',
|
|
13
17
|
'customType',
|
|
18
|
+
'externalComponent',
|
|
14
19
|
'link',
|
|
15
20
|
'location',
|
|
16
21
|
'navigation',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-content-types.js","sourceRoot":"","sources":["../../src/revalidation/webhook-content-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"webhook-content-types.js","sourceRoot":"","sources":["../../src/revalidation/webhook-content-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACtD,SAAS;IACT,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,MAAM;IACN,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,MAAM;IACN,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,KAAK;IACL,SAAS;IACT,UAAU;CACF,CAAC;AAEX,iFAAiF;AACjF,MAAM,CAAC,MAAM,4CAA4C,GACvD,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
package/docs/llms.md
CHANGED
|
@@ -188,6 +188,7 @@ Use these tag helpers to generate consistent cache tag strings:
|
|
|
188
188
|
```ts
|
|
189
189
|
import {
|
|
190
190
|
pageTag, // pageTag('home') → 'page#home'
|
|
191
|
+
entryTag, // entryTag(id) → 'entry#id'
|
|
191
192
|
articleTag, // articleTag('slug') → 'article#slug'
|
|
192
193
|
articleTypeTag, // articleTypeTag('news') → 'article-type#news'
|
|
193
194
|
tagTag, // tagTag('slug') → 'tag#slug'
|
|
@@ -232,7 +233,9 @@ Base converters available:
|
|
|
232
233
|
- `baseCustomTypeConverter` — custom type **index** `structuredData` comes from `indexPageStructuredData` only (entry-level `structuredData` applies to child entries)
|
|
233
234
|
- `baseArticleLinkConverter` — `href` is internal when the article has article-level body content (`topContent`, `content`, or `bottomContent` on the article entry; article-type `articlePageTopContent` does not count); external-only articles use `externalLink` as `href`; `externalLink` always on the link object
|
|
234
235
|
- `basePersonConverter`
|
|
235
|
-
- `baseTagConverter`, `baseTagTypeConverter`
|
|
236
|
+
- `baseTagConverter`, `baseTagTypeConverter` — optional `summary`; `parent` is the immediate parent tag (self-parents dropped, no further ancestors)
|
|
237
|
+
- Page, page variant, person, and person type converters resolve optional `summary`. Article type, custom type, and person type resolve optional `indexPageSummary`. Listing selects retry those fields until migration 37.
|
|
238
|
+
- Route types (`page`, `pageVariant`, `article`, `articleType`, `tag`, `person`, `personType`, `customType`) resolve optional `thumbnail`. Featured image (person `media`) stays the hero. Empty thumbnail is omitted. Listing selects retry `thumbnail` until migration 37.
|
|
236
239
|
- `baseBannerConverter`
|
|
237
240
|
|
|
238
241
|
### Context extension points
|
|
@@ -462,4 +465,7 @@ One matching asset returns the file. Zero matches, or two different assets with
|
|
|
462
465
|
- Always supply `spaceId`, `accessToken`, and `environment`.
|
|
463
466
|
- For Next.js: pass `cache.tags` and `cache.revalidate` so pages can be revalidated via Contentful webhooks.
|
|
464
467
|
- For preview mode, also supply `previewAccessToken` and pass `{ preview: true }` in options.
|
|
468
|
+
- `contentfulAnyEntryRest` uses the delivery API unless `options.preview` is true. Both modes use `cache: 'force-cache'` unless the caller sets `cache`. Preview is tagged `global`, so a preview publish clears it with every other preview fetch. Delivery is tagged `entry#<id>` and `entry`. Publishing or unpublishing any entry revalidates `entry#<id>`. Parent pages stay on their page tag.
|
|
469
|
+
- `contentfulComponentRest` still defaults to the Preview API. It is the `/cms/preview/render` helper.
|
|
470
|
+
- `getPreviewEntryInfo` still uses the Preview API. It resolves a Contentful “Open preview” entry id.
|
|
465
471
|
- `contentfulNavigationRest` is not a direct export — navigation is fetched via `contentfulAnyEntryRest` or via the app's `cms-server`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Type-safe Contentful REST API client with caching and rate limiting for Next.js applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@contentful/rich-text-types": "^17.2.7",
|
|
62
|
-
"@se-studio/core-data-types": "2.0.
|
|
62
|
+
"@se-studio/core-data-types": "2.0.2",
|
|
63
63
|
"contentful": "^11.12.10",
|
|
64
64
|
"fflate": "^0.8.3",
|
|
65
65
|
"server-only": "0.0.1"
|