@se-studio/contentful-rest-api 1.23.0 → 1.25.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 +17 -0
- package/dist/api/listing-fetch-params.d.ts +1 -1
- package/dist/api/listing-fetch-params.d.ts.map +1 -1
- package/dist/api/listing-fetch-params.js +1 -1
- package/dist/api/listing-fetch-params.js.map +1 -1
- package/dist/baseTypes/basePerson.d.ts +30 -1
- package/dist/baseTypes/basePerson.d.ts.map +1 -1
- package/dist/converters/person.d.ts +1 -0
- 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/revalidation/server-utils.d.ts +9 -0
- package/dist/revalidation/server-utils.d.ts.map +1 -1
- package/dist/revalidation/server-utils.js +13 -2
- package/dist/revalidation/server-utils.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @se-studio/contentful-rest-api
|
|
2
2
|
|
|
3
|
+
## 1.25.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8e94be2: Support Next.js 16.3 while remaining compatible with Next.js 15.5 (peer `>=15.5.0 <17`). CMS webhooks call `revalidateTag(tag, { expire: 0 })` so published content is not served stale. Template apps use `proxy.ts` on Next 16. Not-found metadata uses `title.absolute` so layout `title.template` does not produce duplicated site names.
|
|
8
|
+
|
|
9
|
+
## 1.24.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- f6a7b89: Add Person profile fields for author/expert pages: quote, website, expertise (Tag links), and publishedIn (rich text). Migration 27 also adds twitter and alumniOf on spaces that still lack them.
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [f6a7b89]
|
|
18
|
+
- @se-studio/core-data-types@1.12.0
|
|
19
|
+
|
|
3
20
|
## 1.23.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
|
@@ -48,7 +48,7 @@ export declare const ARTICLE_LISTING_FIELDS = "sys,fields.cmsLabel,fields.title,
|
|
|
48
48
|
export declare const ARTICLE_LINK_FIELDS = "sys,fields.cmsLabel,fields.title,fields.subtitle,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.tags,fields.articleType,fields.date,fields.author,fields.authors,fields.externalLink,fields.download,fields.visuals,fields.description,fields.summary,fields.icon,fields.topContent,fields.content,fields.bottomContent";
|
|
49
49
|
export declare const ARTICLE_TYPE_LINK_FIELDS = "sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
50
50
|
export declare const TAG_LINK_FIELDS = "sys,fields.cmsLabel,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.show,fields.tagType";
|
|
51
|
-
export declare const PERSON_LINK_FIELDS = "sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
51
|
+
export declare const PERSON_LINK_FIELDS = "sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden";
|
|
52
52
|
export declare const CUSTOM_TYPE_LINK_FIELDS = "sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.indexPageName";
|
|
53
53
|
/** Fields present on every tagType schema (see BaseTagTypeSkeleton). */
|
|
54
54
|
export declare const TAG_TYPE_MINIMAL_FIELDS = "sys,fields.name,fields.show";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-fetch-params.d.ts","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,aAAa,GACb,KAAK,GACL,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,wBAGtC,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,wBAGhC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,eAAwB,EACjC,oBAAoB,GAAE,oBAAgC,GACrD,wBAAwB,CAQ1B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,wBAAwB,CAK1B;AAsBD,uGAAuG;AACvG,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,EAC3B,OAAO,GAAE,eAAwB,GAChC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,eAAe,CAAA;CAAE,EAC7D,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAQR;AAED,eAAO,MAAM,gBAAgB,gLACkJ,CAAC;AAEhL,eAAO,MAAM,sBAAsB,6VACyT,CAAC;AAE7V,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,mZAAoF,CAAC;AAErH,eAAO,MAAM,wBAAwB,mJAC6G,CAAC;AAEnJ,eAAO,MAAM,eAAe,8LACiK,CAAC;AAE9L,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"listing-fetch-params.d.ts","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,kFAAkF;AAClF,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,aAAa,GACb,KAAK,GACL,SAAS,GACT,QAAQ,GACR,YAAY,CAAC;AAEjB,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,wBAGtC,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,wBAGhC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,eAAwB,EACjC,oBAAoB,GAAE,oBAAgC,GACrD,wBAAwB,CAQ1B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,wBAAwB,CAK1B;AAsBD,uGAAuG;AACvG,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,EAC3B,OAAO,GAAE,eAAwB,GAChC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,eAAe,CAAA;CAAE,EAC7D,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAQR;AAED,eAAO,MAAM,gBAAgB,gLACkJ,CAAC;AAEhL,eAAO,MAAM,sBAAsB,6VACyT,CAAC;AAE7V,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,mZAAoF,CAAC;AAErH,eAAO,MAAM,wBAAwB,mJAC6G,CAAC;AAEnJ,eAAO,MAAM,eAAe,8LACiK,CAAC;AAE9L,eAAO,MAAM,kBAAkB,iQACiO,CAAC;AAEjQ,eAAO,MAAM,uBAAuB,wKACmI,CAAC;AAExK,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAErE,sGAAsG;AACtG,eAAO,MAAM,oBAAoB,4CAA4C,CAAC;AAE9E,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,iNAA0C,CAAC;AAE1E,eAAO,MAAM,2BAA2B,6KACoI,CAAC;AAE7K,eAAO,MAAM,0BAA0B,6KACqI,CAAC;AAE7K,eAAO,MAAM,uBAAuB,gCAA0B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,gKAC+H,CAAC;AAEhK,eAAO,MAAM,6BAA6B,wPAC6M,CAAC;AAExP,eAAO,MAAM,qBAAqB,uJACoH,CAAC;AAEvJ,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,cAAc,GAAG;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAqBA;AAED,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAmB5F"}
|
|
@@ -65,7 +65,7 @@ export const ARTICLE_LISTING_FIELDS = 'sys,fields.cmsLabel,fields.title,fields.s
|
|
|
65
65
|
export const ARTICLE_LINK_FIELDS = `${ARTICLE_LISTING_FIELDS},fields.topContent,fields.content,fields.bottomContent`;
|
|
66
66
|
export const ARTICLE_TYPE_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
67
67
|
export const TAG_LINK_FIELDS = 'sys,fields.cmsLabel,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.show,fields.tagType';
|
|
68
|
-
export const PERSON_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
68
|
+
export const PERSON_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.media,fields.bio,fields.jobTitle,fields.phoneNumber,fields.emailAddress,fields.location,fields.linkedIn,fields.twitter,fields.website,fields.quote,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden';
|
|
69
69
|
export const CUSTOM_TYPE_LINK_FIELDS = 'sys,fields.name,fields.slug,fields.breadcrumbTitle,fields.featuredImage,fields.backgroundColour,fields.textColour,fields.indexed,fields.hidden,fields.indexPageName';
|
|
70
70
|
/** Fields present on every tagType schema (see BaseTagTypeSkeleton). */
|
|
71
71
|
export const TAG_TYPE_MINIMAL_FIELDS = 'sys,fields.name,fields.show';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-fetch-params.js","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA6B;IAChE,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,UAA2B,MAAM,EACjC,uBAA6C,SAAS;IAEtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,IAAI,oBAAoB,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAoE;IAEpE,OAAO,kBAAkB,CACvB,OAAO,CAAC,YAAY,IAAI,MAAM,EAC9B,OAAO,CAAC,oBAAoB,IAAI,SAAS,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAmC;IAC5D,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,wBAAwB,GAAmC;IAC/D,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,uGAAuG;AACvG,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAA2B,EAC3B,UAA2B,MAAM;IAEjC,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACvF,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,WAA2B,EAC3B,OAA6D,EAC7D,eAAwB;IAExB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAC3B,6KAA6K,CAAC;AAEhL,MAAM,CAAC,MAAM,sBAAsB,GACjC,0VAA0V,CAAC;AAE7V,kHAAkH;AAClH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,sBAAsB,wDAAwD,CAAC;AAErH,MAAM,CAAC,MAAM,wBAAwB,GACnC,gJAAgJ,CAAC;AAEnJ,MAAM,CAAC,MAAM,eAAe,GAC1B,2LAA2L,CAAC;AAE9L,MAAM,CAAC,MAAM,kBAAkB,GAC7B,
|
|
1
|
+
{"version":3,"file":"listing-fetch-params.js","sourceRoot":"","sources":["../../src/api/listing-fetch-params.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { BaseExternalVideoSkeleton } from './baseExternalVideo';
|
|
|
3
3
|
import type { BaseMediaSkeleton } from './baseMedia';
|
|
4
4
|
import type { BaseSchemaSkeleton } from './baseSchema';
|
|
5
5
|
import type { BaseContent } from './baseShared';
|
|
6
|
+
import type { BaseTagSkeleton } from './baseTag';
|
|
6
7
|
interface BasePersonFields {
|
|
7
8
|
/**
|
|
8
9
|
* Field type definition for field 'name' (Name)
|
|
@@ -47,17 +48,45 @@ interface BasePersonFields {
|
|
|
47
48
|
*/
|
|
48
49
|
linkedIn?: EntryFieldTypes.Symbol;
|
|
49
50
|
/**
|
|
50
|
-
* Field type definition for field 'twitter' (Twitter)
|
|
51
|
+
* Field type definition for field 'twitter' (Twitter / X)
|
|
51
52
|
* @name Twitter
|
|
52
53
|
* @localized false
|
|
53
54
|
*/
|
|
54
55
|
twitter?: EntryFieldTypes.Symbol;
|
|
56
|
+
/**
|
|
57
|
+
* Field type definition for field 'website' (Website)
|
|
58
|
+
* Personal or professional site URL (schema sameAs).
|
|
59
|
+
* @name Website
|
|
60
|
+
* @localized false
|
|
61
|
+
*/
|
|
62
|
+
website?: EntryFieldTypes.Symbol;
|
|
63
|
+
/**
|
|
64
|
+
* Field type definition for field 'quote' (Quote)
|
|
65
|
+
* Short first-person line for author/expert pages.
|
|
66
|
+
* @name Quote
|
|
67
|
+
* @localized false
|
|
68
|
+
*/
|
|
69
|
+
quote?: EntryFieldTypes.Text;
|
|
55
70
|
/**
|
|
56
71
|
* Field type definition for field 'alumniOf' (Alumni of)
|
|
57
72
|
* @name Alumni of
|
|
58
73
|
* @localized false
|
|
59
74
|
*/
|
|
60
75
|
alumniOf?: EntryFieldTypes.Array<EntryFieldTypes.Symbol>;
|
|
76
|
+
/**
|
|
77
|
+
* Field type definition for field 'expertise' (Expertise)
|
|
78
|
+
* Topic tags this person covers. Link existing Tag entries only.
|
|
79
|
+
* @name Expertise
|
|
80
|
+
* @localized false
|
|
81
|
+
*/
|
|
82
|
+
expertise?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseTagSkeleton>>;
|
|
83
|
+
/**
|
|
84
|
+
* Field type definition for field 'publishedIn' (Published in)
|
|
85
|
+
* Prior bylines and outlets (rich text so editors can add links).
|
|
86
|
+
* @name Published in
|
|
87
|
+
* @localized false
|
|
88
|
+
*/
|
|
89
|
+
publishedIn?: EntryFieldTypes.RichText;
|
|
61
90
|
/**
|
|
62
91
|
* Field type definition for field 'media' (Media)
|
|
63
92
|
* @name Media
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basePerson.d.ts","sourceRoot":"","sources":["../../src/baseTypes/basePerson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"basePerson.d.ts","sourceRoot":"","sources":["../../src/baseTypes/basePerson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,UAAU,gBAAgB;IACxB;;;;OAIG;IACH,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B;;;;OAIG;IACH,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IACjC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACzD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IAC9E;;;;;OAKG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE;;;;OAIG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtF;;;;;OAKG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;IAC5B;;;;OAIG;IACH,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;IACjC;;;;OAIG;IACH,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAChC;;;;OAIG;IACH,GAAG,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAC7B,eAAe,CAAC,SAAS,CAAC,yBAAyB,GAAG,iBAAiB,CAAC,CACzE,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ import type { BasePersonSkeleton } from '../baseTypes/basePerson';
|
|
|
6
6
|
import { type ConverterContext } from './helpers';
|
|
7
7
|
export type IContentfulPerson = IBasePerson & {
|
|
8
8
|
bio?: IContentfulRichText | null;
|
|
9
|
+
publishedIn?: IContentfulRichText | null;
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* Base converter for Person entries to IPersonLink type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/converters/person.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"person.d.ts","sourceRoot":"","sources":["../../src/converters/person.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EAIZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEL,KAAK,gBAAgB,EAOtB,MAAM,WAAW,CAAC;AAenB,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,GAAG,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC7D,WAAW,CAkDb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAC9D,eAAe,CAAC,EAAE,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,CAAC,GAC5E,iBAAiB,CA8HnB"}
|
|
@@ -2,7 +2,7 @@ import { resolvedMeta } from '@se-studio/core-data-types';
|
|
|
2
2
|
import { addPositionMetadata, calculateContentCount, createInternalLink, lookupAsset, makeContentfulTitle, shouldResolveContents, shouldResolveNavigation, } from './helpers.js';
|
|
3
3
|
import { collectIconsFromContent, collectIconsFromNavigation, deduplicateIcons, } from './iconCollector.js';
|
|
4
4
|
import { resolveNavigationOrStub } from './navigationItem.js';
|
|
5
|
-
import { resolvePageContent, resolveRichTextDocument, resolveSchema } from './resolver.js';
|
|
5
|
+
import { resolveLinks, resolvePageContent, resolveRichTextDocument, resolveSchema, } from './resolver.js';
|
|
6
6
|
import { resolveTemplate } from './template.js';
|
|
7
7
|
/**
|
|
8
8
|
* Base converter for Person entries to IPersonLink type
|
|
@@ -19,7 +19,7 @@ import { resolveTemplate } from './template.js';
|
|
|
19
19
|
*/
|
|
20
20
|
export function basePersonLinkConverter(context, entry) {
|
|
21
21
|
const { sys, fields } = entry;
|
|
22
|
-
const { name, bio: fieldsBio, jobTitle, description, phoneNumber, emailAddress, linkedIn, twitter, alumniOf, location, media, ...simpleFields } = fields;
|
|
22
|
+
const { name, bio: fieldsBio, jobTitle, description, phoneNumber, emailAddress, linkedIn, twitter, website, quote, alumniOf, location, media, ...simpleFields } = fields;
|
|
23
23
|
if (sys.contentType.sys.id !== 'person') {
|
|
24
24
|
throw new Error(`Invalid content type: expected "person", got "${sys.contentType.sys.id}"`);
|
|
25
25
|
}
|
|
@@ -38,6 +38,8 @@ export function basePersonLinkConverter(context, entry) {
|
|
|
38
38
|
emailAddress,
|
|
39
39
|
linkedIn,
|
|
40
40
|
twitter,
|
|
41
|
+
website,
|
|
42
|
+
quote,
|
|
41
43
|
alumniOf,
|
|
42
44
|
location,
|
|
43
45
|
});
|
|
@@ -61,7 +63,7 @@ export function basePersonConverter(context, entry, customTypeEntry) {
|
|
|
61
63
|
if (contentType.sys.id !== 'person') {
|
|
62
64
|
throw new Error(`Invalid content type: expected "person", got "${contentType.sys.id}"`);
|
|
63
65
|
}
|
|
64
|
-
const { slug, name, description, jobTitle, media, bio: bioField, content: contentLinks, structuredData, meta: personMeta, backgroundColour: personBackgroundColour, textColour: personTextColour, ...rest } = fields;
|
|
66
|
+
const { slug, name, description, jobTitle, media, bio: bioField, quote, website, expertise: expertiseLinks, publishedIn: publishedInField, content: contentLinks, structuredData, meta: personMeta, backgroundColour: personBackgroundColour, textColour: personTextColour, ...rest } = fields;
|
|
65
67
|
if (!shouldResolveNavigation(context) && !shouldResolveContents(context)) {
|
|
66
68
|
return {
|
|
67
69
|
type: 'Person',
|
|
@@ -71,6 +73,8 @@ export function basePersonConverter(context, entry, customTypeEntry) {
|
|
|
71
73
|
title: makeContentfulTitle(name, id),
|
|
72
74
|
description: description ?? jobTitle ?? `Description for ${id}`,
|
|
73
75
|
jobTitle,
|
|
76
|
+
quote,
|
|
77
|
+
website,
|
|
74
78
|
featuredImage: lookupAsset(context, media),
|
|
75
79
|
href: context.urlCalculators.person(slug),
|
|
76
80
|
contentCount: 0,
|
|
@@ -121,9 +125,13 @@ export function basePersonConverter(context, entry, customTypeEntry) {
|
|
|
121
125
|
title: makeContentfulTitle(name, id),
|
|
122
126
|
description: description ?? jobTitle ?? `Description for ${id}`,
|
|
123
127
|
jobTitle,
|
|
128
|
+
quote,
|
|
129
|
+
website,
|
|
124
130
|
featuredImage: lookupAsset(context, media), // Person uses 'media' not 'featuredImage'
|
|
125
131
|
href: context.urlCalculators.person(slug),
|
|
126
132
|
bio: resolveRichTextDocument(context, id, bioField) ?? null,
|
|
133
|
+
expertise: resolveLinks(context, id, expertiseLinks) ?? null,
|
|
134
|
+
publishedIn: resolveRichTextDocument(context, id, publishedInField) ?? null,
|
|
127
135
|
contentCount: calculateContentCount(personContent),
|
|
128
136
|
contents,
|
|
129
137
|
menu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/converters/person.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"person.js","sourceRoot":"","sources":["../../src/converters/person.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
|
+
/**
|
|
3
|
+
* Immediate cache-tag expiry for Contentful webhooks.
|
|
4
|
+
*
|
|
5
|
+
* Next.js 16 requires a second argument. `'max'` is stale-while-revalidate and
|
|
6
|
+
* would leave published CMS content stale for the next visitor. `{ expire: 0 }`
|
|
7
|
+
* is the documented webhook/third-party path. Next 15.5 ignores the extra
|
|
8
|
+
* argument and keeps the previous immediate behaviour.
|
|
9
|
+
*/
|
|
10
|
+
export declare function revalidateCacheTag(tag: string): void;
|
|
2
11
|
/**
|
|
3
12
|
* Revalidates multiple Next.js cache tags.
|
|
4
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-utils.d.ts","sourceRoot":"","sources":["../../src/revalidation/server-utils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF"}
|
|
1
|
+
{"version":3,"file":"server-utils.d.ts","sourceRoot":"","sources":["../../src/revalidation/server-utils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQlF;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import { revalidateTag } from 'next/cache';
|
|
3
|
+
/**
|
|
4
|
+
* Immediate cache-tag expiry for Contentful webhooks.
|
|
5
|
+
*
|
|
6
|
+
* Next.js 16 requires a second argument. `'max'` is stale-while-revalidate and
|
|
7
|
+
* would leave published CMS content stale for the next visitor. `{ expire: 0 }`
|
|
8
|
+
* is the documented webhook/third-party path. Next 15.5 ignores the extra
|
|
9
|
+
* argument and keeps the previous immediate behaviour.
|
|
10
|
+
*/
|
|
11
|
+
export function revalidateCacheTag(tag) {
|
|
12
|
+
revalidateTag(tag, { expire: 0 });
|
|
13
|
+
}
|
|
3
14
|
/**
|
|
4
15
|
* Revalidates multiple Next.js cache tags.
|
|
5
16
|
*
|
|
@@ -15,7 +26,7 @@ export async function revalidateTags(tags, reason) {
|
|
|
15
26
|
for (const tag of tags) {
|
|
16
27
|
if (process.env.LOG_CMS)
|
|
17
28
|
console.log(`Revalidating tag: ${tag} - ${reason}`);
|
|
18
|
-
|
|
29
|
+
revalidateCacheTag(tag);
|
|
19
30
|
}
|
|
20
31
|
}
|
|
21
32
|
/**
|
|
@@ -31,7 +42,7 @@ export async function revalidateSingleTag(tag, reason) {
|
|
|
31
42
|
await delay(500);
|
|
32
43
|
if (process.env.LOG_CMS)
|
|
33
44
|
console.log(`Revalidating single tag: ${tag} - ${reason}`);
|
|
34
|
-
|
|
45
|
+
revalidateCacheTag(tag);
|
|
35
46
|
}
|
|
36
47
|
/**
|
|
37
48
|
* Utility delay function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-utils.js","sourceRoot":"","sources":["../../src/revalidation/server-utils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc,EAAE,MAAc;IACjE,uDAAuD;IACvD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC;QAC7E,
|
|
1
|
+
{"version":3,"file":"server-utils.js","sourceRoot":"","sources":["../../src/revalidation/server-utils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,aAAa,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc,EAAE,MAAc;IACjE,uDAAuD;IACvD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC;QAC7E,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,MAAc;IACnE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC;IACpF,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/contentful-rest-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
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",
|
|
@@ -62,15 +62,15 @@
|
|
|
62
62
|
"contentful": "^11.12.7",
|
|
63
63
|
"fflate": "^0.8.3",
|
|
64
64
|
"server-only": "0.0.1",
|
|
65
|
-
"@se-studio/core-data-types": "1.
|
|
65
|
+
"@se-studio/core-data-types": "1.12.0"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
|
-
"next": ">=15.5.0 <
|
|
68
|
+
"next": ">=15.5.0 <17"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@biomejs/biome": "^2.5.5",
|
|
72
72
|
"@types/node": "^24.13.3",
|
|
73
|
-
"next": "^
|
|
73
|
+
"next": "^16.3.1",
|
|
74
74
|
"typescript": "^6.0.3",
|
|
75
75
|
"vitest": "^4.1.10"
|
|
76
76
|
},
|