@se-studio/contentful-rest-api 1.0.46 → 1.0.48

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 (298) hide show
  1. package/CHANGELOG.md +424 -0
  2. package/dist/api/article-type.d.ts +37 -0
  3. package/dist/api/article-type.d.ts.map +1 -0
  4. package/dist/api/article-type.js +134 -0
  5. package/dist/api/article-type.js.map +1 -0
  6. package/dist/api/article.d.ts +32 -0
  7. package/dist/api/article.d.ts.map +1 -0
  8. package/dist/api/article.js +43 -0
  9. package/dist/api/article.js.map +1 -0
  10. package/dist/api/asset.d.ts +28 -0
  11. package/dist/api/asset.d.ts.map +1 -0
  12. package/dist/api/asset.js +55 -0
  13. package/dist/api/asset.js.map +1 -0
  14. package/dist/api/context.d.ts +24 -0
  15. package/dist/api/context.d.ts.map +1 -0
  16. package/dist/api/context.js +62 -0
  17. package/dist/api/context.js.map +1 -0
  18. package/dist/api/custom-type.d.ts +37 -0
  19. package/dist/api/custom-type.d.ts.map +1 -0
  20. package/dist/api/custom-type.js +44 -0
  21. package/dist/api/custom-type.js.map +1 -0
  22. package/dist/api/helpers.d.ts +73 -0
  23. package/dist/api/helpers.d.ts.map +1 -0
  24. package/dist/api/helpers.js +296 -0
  25. package/dist/api/helpers.js.map +1 -0
  26. package/dist/api/index.d.ts +22 -0
  27. package/dist/api/index.d.ts.map +1 -0
  28. package/dist/api/index.js +28 -0
  29. package/dist/api/index.js.map +1 -0
  30. package/dist/api/links.d.ts +109 -0
  31. package/dist/api/links.d.ts.map +1 -0
  32. package/dist/api/links.js +199 -0
  33. package/dist/api/links.js.map +1 -0
  34. package/dist/api/page.d.ts +33 -0
  35. package/dist/api/page.d.ts.map +1 -0
  36. package/dist/api/page.js +40 -0
  37. package/dist/api/page.js.map +1 -0
  38. package/dist/api/person.d.ts +37 -0
  39. package/dist/api/person.d.ts.map +1 -0
  40. package/dist/api/person.js +134 -0
  41. package/dist/api/person.js.map +1 -0
  42. package/dist/api/preview.d.ts +55 -0
  43. package/dist/api/preview.d.ts.map +1 -0
  44. package/dist/api/preview.js +160 -0
  45. package/dist/api/preview.js.map +1 -0
  46. package/dist/api/related-articles.d.ts +22 -0
  47. package/dist/api/related-articles.d.ts.map +1 -0
  48. package/dist/api/related-articles.js +82 -0
  49. package/dist/api/related-articles.js.map +1 -0
  50. package/dist/api/server-asset.d.ts +40 -0
  51. package/dist/api/server-asset.d.ts.map +1 -0
  52. package/dist/api/server-asset.js +65 -0
  53. package/dist/api/server-asset.js.map +1 -0
  54. package/dist/api/sitemap.d.ts +131 -0
  55. package/dist/api/sitemap.d.ts.map +1 -0
  56. package/dist/api/sitemap.js +199 -0
  57. package/dist/api/sitemap.js.map +1 -0
  58. package/dist/api/tag.d.ts +37 -0
  59. package/dist/api/tag.d.ts.map +1 -0
  60. package/dist/api/tag.js +131 -0
  61. package/dist/api/tag.js.map +1 -0
  62. package/dist/api/template.d.ts +49 -0
  63. package/dist/api/template.d.ts.map +1 -0
  64. package/dist/api/template.js +88 -0
  65. package/dist/api/template.js.map +1 -0
  66. package/dist/api/types.d.ts +98 -0
  67. package/dist/api/types.d.ts.map +1 -0
  68. package/dist/api/types.js +2 -0
  69. package/dist/api/types.js.map +1 -0
  70. package/dist/baseTypes/baseAlternatePageContent.d.ts +24 -0
  71. package/dist/baseTypes/baseAlternatePageContent.d.ts.map +1 -0
  72. package/dist/baseTypes/baseAlternatePageContent.js +2 -0
  73. package/dist/baseTypes/baseAlternatePageContent.js.map +1 -0
  74. package/dist/baseTypes/baseArticle.d.ts +179 -0
  75. package/dist/baseTypes/baseArticle.d.ts.map +1 -0
  76. package/dist/baseTypes/baseArticle.js +2 -0
  77. package/dist/baseTypes/baseArticle.js.map +1 -0
  78. package/dist/baseTypes/baseArticleType.d.ts +156 -0
  79. package/dist/baseTypes/baseArticleType.d.ts.map +1 -0
  80. package/dist/baseTypes/baseArticleType.js +2 -0
  81. package/dist/baseTypes/baseArticleType.js.map +1 -0
  82. package/dist/baseTypes/baseBanner.d.ts +76 -0
  83. package/dist/baseTypes/baseBanner.d.ts.map +1 -0
  84. package/dist/baseTypes/baseBanner.js +2 -0
  85. package/dist/baseTypes/baseBanner.js.map +1 -0
  86. package/dist/baseTypes/baseCollection.d.ts +132 -0
  87. package/dist/baseTypes/baseCollection.d.ts.map +1 -0
  88. package/dist/baseTypes/baseCollection.js +2 -0
  89. package/dist/baseTypes/baseCollection.js.map +1 -0
  90. package/dist/baseTypes/baseComponent.d.ts +130 -0
  91. package/dist/baseTypes/baseComponent.d.ts.map +1 -0
  92. package/dist/baseTypes/baseComponent.js +2 -0
  93. package/dist/baseTypes/baseComponent.js.map +1 -0
  94. package/dist/baseTypes/baseCustomType.d.ts +126 -0
  95. package/dist/baseTypes/baseCustomType.d.ts.map +1 -0
  96. package/dist/baseTypes/baseCustomType.js +2 -0
  97. package/dist/baseTypes/baseCustomType.js.map +1 -0
  98. package/dist/baseTypes/baseExternalComponent.d.ts +66 -0
  99. package/dist/baseTypes/baseExternalComponent.d.ts.map +1 -0
  100. package/dist/baseTypes/baseExternalComponent.js +2 -0
  101. package/dist/baseTypes/baseExternalComponent.js.map +1 -0
  102. package/dist/baseTypes/baseExternalVideo.d.ts +85 -0
  103. package/dist/baseTypes/baseExternalVideo.d.ts.map +1 -0
  104. package/dist/baseTypes/baseExternalVideo.js +2 -0
  105. package/dist/baseTypes/baseExternalVideo.js.map +1 -0
  106. package/dist/baseTypes/baseLink.d.ts +90 -0
  107. package/dist/baseTypes/baseLink.d.ts.map +1 -0
  108. package/dist/baseTypes/baseLink.js +2 -0
  109. package/dist/baseTypes/baseLink.js.map +1 -0
  110. package/dist/baseTypes/baseMedia.d.ts +92 -0
  111. package/dist/baseTypes/baseMedia.d.ts.map +1 -0
  112. package/dist/baseTypes/baseMedia.js +2 -0
  113. package/dist/baseTypes/baseMedia.js.map +1 -0
  114. package/dist/baseTypes/baseNavigation.d.ts +36 -0
  115. package/dist/baseTypes/baseNavigation.d.ts.map +1 -0
  116. package/dist/baseTypes/baseNavigation.js +2 -0
  117. package/dist/baseTypes/baseNavigation.js.map +1 -0
  118. package/dist/baseTypes/baseNavigationItem.d.ts +96 -0
  119. package/dist/baseTypes/baseNavigationItem.d.ts.map +1 -0
  120. package/dist/baseTypes/baseNavigationItem.js +2 -0
  121. package/dist/baseTypes/baseNavigationItem.js.map +1 -0
  122. package/dist/baseTypes/basePage.d.ts +120 -0
  123. package/dist/baseTypes/basePage.d.ts.map +1 -0
  124. package/dist/baseTypes/basePage.js +2 -0
  125. package/dist/baseTypes/basePage.js.map +1 -0
  126. package/dist/baseTypes/basePageTest.d.ts +66 -0
  127. package/dist/baseTypes/basePageTest.d.ts.map +1 -0
  128. package/dist/baseTypes/basePageTest.js +2 -0
  129. package/dist/baseTypes/basePageTest.js.map +1 -0
  130. package/dist/baseTypes/basePageVariant.d.ts +123 -0
  131. package/dist/baseTypes/basePageVariant.d.ts.map +1 -0
  132. package/dist/baseTypes/basePageVariant.js +2 -0
  133. package/dist/baseTypes/basePageVariant.js.map +1 -0
  134. package/dist/baseTypes/basePerson.d.ts +111 -0
  135. package/dist/baseTypes/basePerson.d.ts.map +1 -0
  136. package/dist/baseTypes/basePerson.js +2 -0
  137. package/dist/baseTypes/basePerson.js.map +1 -0
  138. package/dist/baseTypes/baseSchema.d.ts +18 -0
  139. package/dist/baseTypes/baseSchema.d.ts.map +1 -0
  140. package/dist/baseTypes/baseSchema.js +2 -0
  141. package/dist/baseTypes/baseSchema.js.map +1 -0
  142. package/dist/baseTypes/baseShared.d.ts +30 -0
  143. package/dist/baseTypes/baseShared.d.ts.map +1 -0
  144. package/dist/baseTypes/baseShared.js +2 -0
  145. package/dist/baseTypes/baseShared.js.map +1 -0
  146. package/dist/baseTypes/baseTag.d.ts +108 -0
  147. package/dist/baseTypes/baseTag.d.ts.map +1 -0
  148. package/dist/baseTypes/baseTag.js +2 -0
  149. package/dist/baseTypes/baseTag.js.map +1 -0
  150. package/dist/baseTypes/baseTagType.d.ts +11 -0
  151. package/dist/baseTypes/baseTagType.d.ts.map +1 -0
  152. package/dist/baseTypes/baseTagType.js +2 -0
  153. package/dist/baseTypes/baseTagType.js.map +1 -0
  154. package/dist/baseTypes/baseTemplate.d.ts +55 -0
  155. package/dist/baseTypes/baseTemplate.d.ts.map +1 -0
  156. package/dist/baseTypes/baseTemplate.js +2 -0
  157. package/dist/baseTypes/baseTemplate.js.map +1 -0
  158. package/dist/client.d.ts +143 -0
  159. package/dist/client.d.ts.map +1 -0
  160. package/dist/client.js +268 -0
  161. package/dist/client.js.map +1 -0
  162. package/dist/converters/article.d.ts +42 -0
  163. package/dist/converters/article.d.ts.map +1 -0
  164. package/dist/converters/article.js +220 -0
  165. package/dist/converters/article.js.map +1 -0
  166. package/dist/converters/asset.d.ts +22 -0
  167. package/dist/converters/asset.d.ts.map +1 -0
  168. package/dist/converters/asset.js +282 -0
  169. package/dist/converters/asset.js.map +1 -0
  170. package/dist/converters/collection.d.ts +26 -0
  171. package/dist/converters/collection.d.ts.map +1 -0
  172. package/dist/converters/collection.js +50 -0
  173. package/dist/converters/collection.js.map +1 -0
  174. package/dist/converters/component.d.ts +26 -0
  175. package/dist/converters/component.d.ts.map +1 -0
  176. package/dist/converters/component.js +54 -0
  177. package/dist/converters/component.js.map +1 -0
  178. package/dist/converters/customType.d.ts +24 -0
  179. package/dist/converters/customType.d.ts.map +1 -0
  180. package/dist/converters/customType.js +71 -0
  181. package/dist/converters/customType.js.map +1 -0
  182. package/dist/converters/externalComponent.d.ts +22 -0
  183. package/dist/converters/externalComponent.d.ts.map +1 -0
  184. package/dist/converters/externalComponent.js +34 -0
  185. package/dist/converters/externalComponent.js.map +1 -0
  186. package/dist/converters/helpers.d.ts +116 -0
  187. package/dist/converters/helpers.d.ts.map +1 -0
  188. package/dist/converters/helpers.js +128 -0
  189. package/dist/converters/helpers.js.map +1 -0
  190. package/dist/converters/iconCollector.d.ts +65 -0
  191. package/dist/converters/iconCollector.d.ts.map +1 -0
  192. package/dist/converters/iconCollector.js +282 -0
  193. package/dist/converters/iconCollector.js.map +1 -0
  194. package/dist/converters/index.d.ts +18 -0
  195. package/dist/converters/index.d.ts.map +1 -0
  196. package/dist/converters/index.js +18 -0
  197. package/dist/converters/index.js.map +1 -0
  198. package/dist/converters/link.d.ts +11 -0
  199. package/dist/converters/link.d.ts.map +1 -0
  200. package/dist/converters/link.js +96 -0
  201. package/dist/converters/link.js.map +1 -0
  202. package/dist/converters/navigationItem.d.ts +11 -0
  203. package/dist/converters/navigationItem.d.ts.map +1 -0
  204. package/dist/converters/navigationItem.js +73 -0
  205. package/dist/converters/navigationItem.js.map +1 -0
  206. package/dist/converters/page.d.ts +44 -0
  207. package/dist/converters/page.d.ts.map +1 -0
  208. package/dist/converters/page.js +121 -0
  209. package/dist/converters/page.js.map +1 -0
  210. package/dist/converters/person.d.ts +40 -0
  211. package/dist/converters/person.d.ts.map +1 -0
  212. package/dist/converters/person.js +109 -0
  213. package/dist/converters/person.js.map +1 -0
  214. package/dist/converters/resolver.d.ts +29 -0
  215. package/dist/converters/resolver.d.ts.map +1 -0
  216. package/dist/converters/resolver.js +317 -0
  217. package/dist/converters/resolver.js.map +1 -0
  218. package/dist/converters/schema.d.ts +14 -0
  219. package/dist/converters/schema.d.ts.map +1 -0
  220. package/dist/converters/schema.js +18 -0
  221. package/dist/converters/schema.js.map +1 -0
  222. package/dist/converters/svgProcessor.d.ts +23 -0
  223. package/dist/converters/svgProcessor.d.ts.map +1 -0
  224. package/dist/converters/svgProcessor.js +47 -0
  225. package/dist/converters/svgProcessor.js.map +1 -0
  226. package/dist/converters/tag.d.ts +25 -0
  227. package/dist/converters/tag.d.ts.map +1 -0
  228. package/dist/converters/tag.js +98 -0
  229. package/dist/converters/tag.js.map +1 -0
  230. package/dist/converters/template.d.ts +26 -0
  231. package/dist/converters/template.d.ts.map +1 -0
  232. package/dist/converters/template.js +44 -0
  233. package/dist/converters/template.js.map +1 -0
  234. package/dist/index.d.ts +28 -721
  235. package/dist/index.d.ts.map +1 -0
  236. package/dist/index.js +37 -3634
  237. package/dist/index.js.map +1 -1
  238. package/dist/revalidation/handlers.d.ts +52 -0
  239. package/dist/revalidation/handlers.d.ts.map +1 -0
  240. package/dist/revalidation/handlers.js +130 -0
  241. package/dist/revalidation/handlers.js.map +1 -0
  242. package/dist/revalidation/index.d.ts +3 -0
  243. package/dist/revalidation/index.d.ts.map +1 -0
  244. package/dist/revalidation/index.js +4 -0
  245. package/dist/revalidation/index.js.map +1 -0
  246. package/dist/revalidation/nextjs-route.d.ts +31 -0
  247. package/dist/revalidation/nextjs-route.d.ts.map +1 -0
  248. package/dist/revalidation/nextjs-route.js +34 -0
  249. package/dist/revalidation/nextjs-route.js.map +1 -0
  250. package/dist/revalidation/route.d.ts +3 -0
  251. package/dist/revalidation/route.d.ts.map +1 -0
  252. package/dist/revalidation/route.js +97 -0
  253. package/dist/revalidation/route.js.map +1 -0
  254. package/dist/revalidation/server-utils.d.ts +22 -0
  255. package/dist/revalidation/server-utils.d.ts.map +1 -0
  256. package/dist/revalidation/server-utils.js +41 -0
  257. package/dist/revalidation/server-utils.js.map +1 -0
  258. package/dist/revalidation/tags.d.ts +81 -0
  259. package/dist/revalidation/tags.d.ts.map +1 -0
  260. package/dist/revalidation/tags.js +117 -0
  261. package/dist/revalidation/tags.js.map +1 -0
  262. package/dist/revalidation/utils.d.ts +21 -0
  263. package/dist/revalidation/utils.d.ts.map +1 -0
  264. package/dist/revalidation/utils.js +51 -0
  265. package/dist/revalidation/utils.js.map +1 -0
  266. package/dist/server.d.ts +7 -0
  267. package/dist/server.d.ts.map +1 -0
  268. package/dist/server.js +10 -0
  269. package/dist/server.js.map +1 -0
  270. package/dist/types.d.ts +67 -0
  271. package/dist/types.d.ts.map +1 -0
  272. package/dist/types.js +2 -0
  273. package/dist/types.js.map +1 -0
  274. package/dist/utils/arrayUtils.d.ts +3 -0
  275. package/dist/utils/arrayUtils.d.ts.map +1 -0
  276. package/dist/utils/arrayUtils.js +12 -0
  277. package/dist/utils/arrayUtils.js.map +1 -0
  278. package/dist/utils/dateUtils.d.ts +9 -0
  279. package/dist/utils/dateUtils.d.ts.map +1 -0
  280. package/dist/utils/dateUtils.js +26 -0
  281. package/dist/utils/dateUtils.js.map +1 -0
  282. package/dist/utils/errors.d.ts +56 -0
  283. package/dist/utils/errors.d.ts.map +1 -0
  284. package/dist/utils/errors.js +100 -0
  285. package/dist/utils/errors.js.map +1 -0
  286. package/dist/utils/index.d.ts +8 -0
  287. package/dist/utils/index.d.ts.map +1 -0
  288. package/dist/utils/index.js +8 -0
  289. package/dist/utils/index.js.map +1 -0
  290. package/dist/utils/json-utils.d.ts +17 -0
  291. package/dist/utils/json-utils.d.ts.map +1 -0
  292. package/dist/utils/json-utils.js +43 -0
  293. package/dist/utils/json-utils.js.map +1 -0
  294. package/dist/utils/retry.d.ts +112 -0
  295. package/dist/utils/retry.d.ts.map +1 -0
  296. package/dist/utils/retry.js +221 -0
  297. package/dist/utils/retry.js.map +1 -0
  298. package/package.json +12 -6
package/dist/index.d.ts CHANGED
@@ -1,721 +1,28 @@
1
- import { IBasePerson, IBaseArticle, IBaseArticleType, BaseCollectionContent, IBaseCollection, IBaseComponent, IBaseCustomType, INavigationItem, IBasePage, IBaseTag, IInternalLink, IVisual, INavigation, IArticleLink, IArticleTypeLink, ITyped, ISvgImage, IResponsiveVisual } from '@se-studio/core-data-types';
2
- import * as contentful from 'contentful';
3
- import { EntrySkeletonType, EntryFieldTypes, Entry, Asset, UnresolvedLink } from 'contentful';
4
- import { Document } from '@contentful/rich-text-types';
5
- import { NextRequest, NextResponse } from 'next/server';
6
-
7
- interface BaseExternalVideoFields {
8
- name: EntryFieldTypes.Symbol;
9
- nameAsCaption?: EntryFieldTypes.Boolean;
10
- url: EntryFieldTypes.Symbol;
11
- preview?: EntryFieldTypes.AssetLink;
12
- posterImage?: EntryFieldTypes.AssetLink;
13
- autoPlay?: EntryFieldTypes.Boolean;
14
- loop?: EntryFieldTypes.Boolean;
15
- hideControls?: EntryFieldTypes.Boolean;
16
- dontCrop?: EntryFieldTypes.Boolean;
17
- verticalCropPosition?: EntryFieldTypes.Symbol<'Bottom' | 'Middle' | 'Top'>;
18
- horizontalCropPosition?: EntryFieldTypes.Symbol<'Center' | 'Left' | 'Right'>;
19
- horizontalPosition?: EntryFieldTypes.Symbol<'Left' | 'Middle' | 'Right'>;
20
- width?: EntryFieldTypes.Integer;
21
- }
22
- type BaseExternalVideoSkeleton = EntrySkeletonType<BaseExternalVideoFields, 'externalVideo'>;
23
-
24
- interface BaseMediaFields {
25
- name: EntryFieldTypes.Symbol;
26
- nameAsCaption?: EntryFieldTypes.Boolean;
27
- asset: EntryFieldTypes.AssetLink;
28
- dontCrop?: EntryFieldTypes.Boolean;
29
- verticalCropPosition?: EntryFieldTypes.Symbol<'Bottom' | 'Middle' | 'Top'>;
30
- horizontalCropPosition?: EntryFieldTypes.Symbol<'Left' | 'Middle' | 'Right'>;
31
- autoplay?: EntryFieldTypes.Boolean;
32
- loop?: EntryFieldTypes.Boolean;
33
- loopDelayMs?: EntryFieldTypes.Integer;
34
- hideControls?: EntryFieldTypes.Boolean;
35
- horizontalPosition?: EntryFieldTypes.Symbol<'Left' | 'Middle' | 'Right'>;
36
- width?: EntryFieldTypes.Integer;
37
- mask?: EntryFieldTypes.Symbol<'Circle' | 'Pill' | 'Rounded diamond' | 'Rounded rectangle' | 'Rounded square'>;
38
- maskImage?: EntryFieldTypes.AssetLink;
39
- }
40
- type BaseMediaSkeleton = EntrySkeletonType<BaseMediaFields, 'media'>;
41
-
42
- interface BaseSchemaFields {
43
- cmsLabel: EntryFieldTypes.Symbol;
44
- markup?: EntryFieldTypes.Text;
45
- }
46
- type BaseSchemaSkeleton = EntrySkeletonType<BaseSchemaFields, 'schema'>;
47
-
48
- interface BaseTemplateFields {
49
- cmsLabel: EntryFieldTypes.Symbol;
50
- preContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
51
- postContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
52
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
53
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
54
- backgroundColour?: EntryFieldTypes.Symbol<string>;
55
- textColour?: EntryFieldTypes.Symbol<string>;
56
- flags?: EntryFieldTypes.Array<EntryFieldTypes.Symbol<'Sticky nav'>>;
57
- }
58
- type BaseTemplateSkeleton = EntrySkeletonType<BaseTemplateFields, 'template'>;
59
-
60
- interface BaseArticleTypeFields {
61
- name: EntryFieldTypes.Symbol;
62
- cmsLabel: EntryFieldTypes.Symbol;
63
- slug: EntryFieldTypes.Symbol;
64
- indexPageTitle: EntryFieldTypes.Symbol;
65
- indexPageDescription: EntryFieldTypes.Symbol;
66
- featuredImage: EntryFieldTypes.AssetLink;
67
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
68
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
69
- indexPageTemplate?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
70
- indexPageTopContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
71
- indexPageStructuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
72
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
73
- articleTemplate?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
74
- articlePageTopContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
75
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
76
- backgroundColour?: EntryFieldTypes.Symbol<string>;
77
- textColour?: EntryFieldTypes.Symbol<string>;
78
- indexed: EntryFieldTypes.Boolean;
79
- hidden: EntryFieldTypes.Boolean;
80
- indexPageHidden?: EntryFieldTypes.Boolean;
81
- articlePageHidden?: EntryFieldTypes.Boolean;
82
- flags?: EntryFieldTypes.Array<EntryFieldTypes.Symbol<'Sticky nav'>>;
83
- searchTemplate?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
84
- searchTopContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
85
- }
86
- type BaseArticleTypeSkeleton = EntrySkeletonType<BaseArticleTypeFields, 'articleType'>;
87
-
88
- interface BasePersonFields {
89
- name: EntryFieldTypes.Symbol;
90
- slug: EntryFieldTypes.Symbol;
91
- jobTitle: EntryFieldTypes.Symbol;
92
- description?: EntryFieldTypes.Text;
93
- phoneNumber?: EntryFieldTypes.Symbol;
94
- emailAddress?: EntryFieldTypes.Symbol;
95
- linkedIn?: EntryFieldTypes.Symbol;
96
- media?: EntryFieldTypes.AssetLink;
97
- location?: EntryFieldTypes.Symbol;
98
- content?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
99
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
100
- indexed: EntryFieldTypes.Boolean;
101
- hidden: EntryFieldTypes.Boolean;
102
- bio?: EntryFieldTypes.RichText;
103
- textColour?: EntryFieldTypes.Symbol<string>;
104
- backgroundColour?: EntryFieldTypes.Symbol<string>;
105
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
106
- }
107
- type BasePersonSkeleton = EntrySkeletonType<BasePersonFields, 'person'>;
108
-
109
- interface BaseTagTypeFields {
110
- name: EntryFieldTypes.Symbol;
111
- }
112
- type BaseTagTypeSkeleton = EntrySkeletonType<BaseTagTypeFields, 'tagType'>;
113
-
114
- interface BaseTagFields {
115
- cmsLabel: EntryFieldTypes.Symbol;
116
- name: EntryFieldTypes.Symbol;
117
- tagType: EntryFieldTypes.EntryLink<BaseTagTypeSkeleton>;
118
- slug: EntryFieldTypes.Symbol;
119
- description: EntryFieldTypes.Symbol;
120
- featuredImage: EntryFieldTypes.AssetLink;
121
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
122
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
123
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
124
- template?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
125
- topContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
126
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
127
- backgroundColour?: EntryFieldTypes.Symbol<string>;
128
- textColour?: EntryFieldTypes.Symbol<string>;
129
- indexed: EntryFieldTypes.Boolean;
130
- hidden: EntryFieldTypes.Boolean;
131
- }
132
- type BaseTagSkeleton = EntrySkeletonType<BaseTagFields, 'tag'>;
133
-
134
- interface BaseArticleFields {
135
- cmsLabel: EntryFieldTypes.Symbol;
136
- articleType: EntryFieldTypes.EntryLink<BaseArticleTypeSkeleton>;
137
- title: EntryFieldTypes.Symbol;
138
- description?: EntryFieldTypes.Text;
139
- author?: EntryFieldTypes.EntryLink<BasePersonSkeleton>;
140
- subtitle?: EntryFieldTypes.Symbol;
141
- date: EntryFieldTypes.Date;
142
- slug: EntryFieldTypes.Symbol;
143
- featuredImage: EntryFieldTypes.AssetLink;
144
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
145
- icon?: EntryFieldTypes.AssetLink;
146
- tags?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseTagSkeleton>>;
147
- topContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
148
- content?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
149
- bottomContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
150
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
151
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
152
- template?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
153
- backgroundColour?: EntryFieldTypes.Symbol<string>;
154
- textColour?: EntryFieldTypes.Symbol<string>;
155
- indexed: EntryFieldTypes.Boolean;
156
- hidden: EntryFieldTypes.Boolean;
157
- redirectTo?: EntryFieldTypes.Symbol;
158
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
159
- externalLink?: EntryFieldTypes.Symbol;
160
- download?: EntryFieldTypes.AssetLink;
161
- flags?: EntryFieldTypes.Array<EntryFieldTypes.Symbol<'Sticky nav'>>;
162
- }
163
- type BaseArticleSkeleton = EntrySkeletonType<BaseArticleFields, 'article'>;
164
-
165
- interface BaseLinkFields {
166
- name: EntryFieldTypes.Symbol;
167
- useName: EntryFieldTypes.Boolean;
168
- linkText?: EntryFieldTypes.Symbol;
169
- internal?: EntryFieldTypes.EntryLink<BaseArticleSkeleton | BaseArticleTypeSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton>;
170
- external?: EntryFieldTypes.Symbol;
171
- isButton?: EntryFieldTypes.Boolean;
172
- isOutlined?: EntryFieldTypes.Boolean;
173
- backgroundColour?: EntryFieldTypes.Symbol<string>;
174
- textColour?: EntryFieldTypes.Symbol<string>;
175
- icon?: EntryFieldTypes.AssetLink;
176
- mobileIcon?: EntryFieldTypes.AssetLink;
177
- downloadAsset?: EntryFieldTypes.AssetLink;
178
- variant?: EntryFieldTypes.Symbol<string>;
179
- size?: EntryFieldTypes.Symbol<string>;
180
- }
181
- type BaseLinkSkeleton = EntrySkeletonType<BaseLinkFields, 'link'>;
182
-
183
- interface BaseCollectionFields {
184
- cmsLabel: EntryFieldTypes.Symbol;
185
- heading?: EntryFieldTypes.Symbol;
186
- collectionType: EntryFieldTypes.Symbol<string>;
187
- showHeading: EntryFieldTypes.Boolean;
188
- anchor?: EntryFieldTypes.Symbol;
189
- backgroundColour?: EntryFieldTypes.Symbol<string>;
190
- backgroundVisual?: EntryFieldTypes.AssetLink;
191
- mobileBackgroundVisual?: EntryFieldTypes.AssetLink;
192
- backgroundOverlayOpacity?: EntryFieldTypes.Number;
193
- textColour?: EntryFieldTypes.Symbol<string>;
194
- preHeading?: EntryFieldTypes.Symbol;
195
- postHeading?: EntryFieldTypes.Symbol;
196
- body?: EntryFieldTypes.RichText;
197
- icon?: EntryFieldTypes.AssetLink;
198
- links?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseLinkSkeleton | BaseLink>>;
199
- contents?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent | BaseLink>>;
200
- visual?: EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>;
201
- mobileVisual?: EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>;
202
- visualCustomSize?: EntryFieldTypes.Integer;
203
- additionalCopy?: EntryFieldTypes.RichText;
204
- }
205
- type BaseCollectionSkeleton = EntrySkeletonType<BaseCollectionFields, 'collection'>;
206
-
207
- interface BaseComponentFields {
208
- cmsLabel: EntryFieldTypes.Symbol;
209
- heading?: EntryFieldTypes.Symbol;
210
- showHeading: EntryFieldTypes.Boolean;
211
- componentType: EntryFieldTypes.Symbol<string>;
212
- anchor?: EntryFieldTypes.Symbol;
213
- backgroundColour?: EntryFieldTypes.Symbol<string>;
214
- backgroundVisual?: EntryFieldTypes.AssetLink;
215
- mobileBackgroundVisual?: EntryFieldTypes.AssetLink;
216
- backgroundOverlayOpacity?: EntryFieldTypes.Number;
217
- textColour?: EntryFieldTypes.Symbol<string>;
218
- preHeading?: EntryFieldTypes.Symbol;
219
- postHeading?: EntryFieldTypes.Symbol;
220
- body?: EntryFieldTypes.RichText;
221
- icon?: EntryFieldTypes.AssetLink;
222
- links?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseLink | BaseLinkSkeleton>>;
223
- visual?: EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>;
224
- mobileVisual?: EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>;
225
- visualCustomSize?: EntryFieldTypes.Integer;
226
- otherMedia?: EntryFieldTypes.Array<EntryFieldTypes.AssetLink>;
227
- additionalCopy?: EntryFieldTypes.RichText;
228
- }
229
- type BaseComponentSkeleton = EntrySkeletonType<BaseComponentFields, 'component'>;
230
-
231
- interface BaseExternalComponentFields {
232
- cmsLabel: EntryFieldTypes.Symbol;
233
- externalComponentType: EntryFieldTypes.Symbol<string>;
234
- heading?: EntryFieldTypes.Symbol;
235
- data: EntryFieldTypes.Object;
236
- html: EntryFieldTypes.Text;
237
- backgroundColour?: EntryFieldTypes.Symbol<string>;
238
- textColour?: EntryFieldTypes.Symbol<string>;
239
- backgroundVisual?: EntryFieldTypes.AssetLink;
240
- mobileBackgroundVisual?: EntryFieldTypes.AssetLink;
241
- backgroundOverlayOpacity?: EntryFieldTypes.Number;
242
- }
243
- type BaseExternalComponentSkeleton = EntrySkeletonType<BaseExternalComponentFields, 'externalComponent'>;
244
-
245
- interface BasePageFields {
246
- cmsLabel: EntryFieldTypes.Symbol;
247
- title: EntryFieldTypes.Symbol;
248
- slug: EntryFieldTypes.Symbol;
249
- description?: EntryFieldTypes.Text;
250
- featuredImage: EntryFieldTypes.AssetLink;
251
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
252
- tags?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseTagSkeleton>>;
253
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
254
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
255
- template?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
256
- topContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
257
- content?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
258
- bottomContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
259
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
260
- backgroundColour?: EntryFieldTypes.Symbol<string>;
261
- textColour?: EntryFieldTypes.Symbol<string>;
262
- indexed: EntryFieldTypes.Boolean;
263
- hidden: EntryFieldTypes.Boolean;
264
- }
265
- type BasePageSkeleton = EntrySkeletonType<BasePageFields, 'page'>;
266
-
267
- interface BaseAlternatePageContentFields {
268
- cmsLabel: EntryFieldTypes.Symbol;
269
- sourceContent: EntryFieldTypes.EntryLink<BaseContent>;
270
- replacementContent?: EntryFieldTypes.EntryLink<BaseContent>;
271
- }
272
- type BaseAlternatePageContentSkeleton = EntrySkeletonType<BaseAlternatePageContentFields, 'alternatePageContent'>;
273
-
274
- interface BasePageVariantFields {
275
- cmsLabel: EntryFieldTypes.Symbol;
276
- title?: EntryFieldTypes.Symbol;
277
- slug: EntryFieldTypes.Symbol;
278
- originalPage: EntryFieldTypes.EntryLink<BasePageSkeleton>;
279
- alternativeContents?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseAlternatePageContentSkeleton>>;
280
- description?: EntryFieldTypes.Symbol;
281
- featuredImage?: EntryFieldTypes.AssetLink;
282
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
283
- tags?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseTagSkeleton>>;
284
- template?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
285
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
286
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
287
- backgroundColour?: EntryFieldTypes.Symbol<string>;
288
- textColour?: EntryFieldTypes.Symbol<string>;
289
- indexed: EntryFieldTypes.Boolean;
290
- hidden: EntryFieldTypes.Boolean;
291
- redirectTo?: EntryFieldTypes.Symbol;
292
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
293
- }
294
- type BasePageVariantSkeleton = EntrySkeletonType<BasePageVariantFields, 'pageVariant'>;
295
-
296
- type BaseContent = BaseCollectionSkeleton | BaseComponentSkeleton | BaseExternalComponentSkeleton | BaseExternalVideoSkeleton | BaseMediaSkeleton | BasePersonSkeleton;
297
- type BaseLink = BaseArticleSkeleton | BaseArticleTypeSkeleton | BaseLinkSkeleton | BasePageSkeleton | BasePageVariantSkeleton | BasePersonSkeleton | BaseTagSkeleton | BaseCustomTypeSkeleton;
298
-
299
- interface BaseNavigationItemFields {
300
- title: EntryFieldTypes.Symbol;
301
- useTitle: EntryFieldTypes.Boolean;
302
- navigationItems?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseNavigationItemSkeleton>>;
303
- text?: EntryFieldTypes.Symbol;
304
- internal?: EntryFieldTypes.EntryLink<BaseLink>;
305
- link?: EntryFieldTypes.Symbol;
306
- isButton?: EntryFieldTypes.Boolean;
307
- isOutlined?: EntryFieldTypes.Boolean;
308
- backgroundColour?: EntryFieldTypes.Symbol<string>;
309
- textColour?: EntryFieldTypes.Symbol<string>;
310
- icon?: EntryFieldTypes.AssetLink;
311
- mobileIcon?: EntryFieldTypes.AssetLink;
312
- variant?: EntryFieldTypes.Symbol<string>;
313
- size?: EntryFieldTypes.Symbol<string>;
314
- longText?: EntryFieldTypes.RichText;
315
- }
316
- type BaseNavigationItemSkeleton = EntrySkeletonType<BaseNavigationItemFields, 'navigationItem'>;
317
-
318
- interface BaseNavigationFields {
319
- adminLabel: EntryFieldTypes.Symbol;
320
- name: EntryFieldTypes.Symbol;
321
- backgroundColour?: EntryFieldTypes.Symbol<string>;
322
- textColour?: EntryFieldTypes.Symbol<string>;
323
- entries?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseNavigationItemSkeleton>>;
324
- }
325
- type BaseNavigationSkeleton = EntrySkeletonType<BaseNavigationFields, 'navigation'>;
326
-
327
- interface BaseCustomTypeFields {
328
- name: EntryFieldTypes.Symbol;
329
- cmsLabel: EntryFieldTypes.Symbol;
330
- slug: EntryFieldTypes.Symbol;
331
- indexPageTitle: EntryFieldTypes.Symbol;
332
- indexPageDescription: EntryFieldTypes.Symbol;
333
- featuredImage: EntryFieldTypes.AssetLink;
334
- menu?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
335
- footer?: EntryFieldTypes.EntryLink<BaseNavigationSkeleton>;
336
- indexPageTemplate?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
337
- indexPageTopContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
338
- indexPageStructuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
339
- template?: EntryFieldTypes.EntryLink<BaseTemplateSkeleton>;
340
- topContent?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseContent>>;
341
- structuredData?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseSchemaSkeleton>>;
342
- backgroundColour?: EntryFieldTypes.Symbol<string>;
343
- textColour?: EntryFieldTypes.Symbol<string>;
344
- indexed: EntryFieldTypes.Boolean;
345
- hidden: EntryFieldTypes.Boolean;
346
- visuals?: EntryFieldTypes.Array<EntryFieldTypes.EntryLink<BaseExternalVideoSkeleton | BaseMediaSkeleton>>;
347
- }
348
- type BaseCustomTypeSkeleton = EntrySkeletonType<BaseCustomTypeFields, 'customType'>;
349
-
350
- type IContentfulPerson = IBasePerson & {
351
- bio?: IContentfulRichText | null;
352
- };
353
- declare function basePersonConverter(context: ConverterContext, entry: Entry<BasePersonSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IContentfulPerson;
354
-
355
- interface ContentfulConfig {
356
- spaceId: string;
357
- accessToken: string;
358
- environment?: string;
359
- host?: string;
360
- }
361
- interface RetryConfig {
362
- maxRetries?: number;
363
- initialDelay?: number;
364
- maxDelay?: number;
365
- backoffMultiplier?: number;
366
- }
367
- interface FetchOptions {
368
- locale?: string;
369
- preview: boolean;
370
- include?: number;
371
- cache?: 'force-cache' | 'no-store';
372
- next?: {
373
- revalidate?: number | false;
374
- tags?: string[];
375
- };
376
- retry?: RetryConfig;
377
- }
378
- interface CmsError {
379
- entryId: string;
380
- entryType?: string;
381
- message: string;
382
- error?: unknown;
383
- }
384
- interface CmsResponse<T> {
385
- data: T;
386
- errors: CmsError[];
387
- }
388
-
389
- declare function baseArticleConverter(context: ConverterContext, entry: Entry<BaseArticleSkeleton, DefaultChainModifier, string>): IBaseArticle;
390
- declare function baseArticleTypeConverter(context: ConverterContext, entry: Entry<BaseArticleTypeSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseArticleType;
391
-
392
- type IContentfulCollection<TContents = BaseCollectionContent> = IBaseCollection<TContents> & {
393
- body?: IContentfulRichText | null;
394
- additionalCopy?: IContentfulRichText | null;
395
- };
396
- declare function baseCollectionConverter(context: ConverterContext, entry: Entry<BaseCollectionSkeleton, DefaultChainModifier, string>): IContentfulCollection;
397
-
398
- type IContentfulComponent = IBaseComponent & {
399
- body?: IContentfulRichText | null;
400
- additionalCopy?: IContentfulRichText | null;
401
- };
402
- declare function baseComponentConverter(context: ConverterContext, entry: Entry<BaseComponentSkeleton, DefaultChainModifier, string>): IContentfulComponent;
403
-
404
- declare function baseCustomTypeConverter(context: ConverterContext, entry: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseCustomType;
405
-
406
- declare function baseNavigationItemConverter(context: ConverterContext, entry: Entry<BaseNavigationItemSkeleton, DefaultChainModifier, string>): INavigationItem;
407
-
408
- declare function basePageConverter(context: ConverterContext, entry: Entry<BasePageSkeleton, DefaultChainModifier, string>): IBasePage;
409
- declare function calculatePageHref(slug: string): string;
410
- declare function calculatePageVariantHref(slug: string): string;
411
-
412
- declare function baseTagConverter(context: ConverterContext, entry: Entry<BaseTagSkeleton, DefaultChainModifier, string>, customTypeEntry?: Entry<BaseCustomTypeSkeleton, DefaultChainModifier, string>): IBaseTag;
413
-
414
- declare function lookupAsset(context: ConverterContext, asset: UnresolvedLink<'Asset'> | undefined): IVisual | undefined;
415
- type ContentResolverFunction = (context: ConverterContext, entry: Entry<BaseContent, DefaultChainModifier, string>) => unknown;
416
- type LinkResolverFunction<TResult extends IInternalLink = IInternalLink> = (context: ConverterContext, entry: Entry<BaseLink, DefaultChainModifier, string>) => TResult;
417
- type LinkResolverMap = Map<string, LinkResolverFunction>;
418
- type UrlCalculators = {
419
- page: (slug: string) => string;
420
- pageVariant: (slug: string) => string;
421
- article: (articleTypeSlug: string, slug: string, primaryTagSlug?: string) => string;
422
- articleType: (slug: string) => string;
423
- tag: (slug: string) => string;
424
- person: (slug: string) => string;
425
- customType: (slug: string) => string;
426
- };
427
- type BaseConverterContext = {
428
- videoPrefix: string;
429
- maskResolver?: (maskName: string) => string | undefined;
430
- urlCalculators: UrlCalculators;
431
- linkResolver: LinkResolverMap;
432
- contentResolver: Map<string, (context: ConverterContext, entry: Entry<BaseContent, DefaultChainModifier, string>) => unknown>;
433
- navigationItemResolver: typeof baseNavigationItemConverter;
434
- pageResolver: typeof basePageConverter;
435
- articleResolver: typeof baseArticleConverter;
436
- articleTypeResolver: typeof baseArticleTypeConverter;
437
- tagResolver: typeof baseTagConverter;
438
- personResolver: typeof basePersonConverter;
439
- customTypeResolver: typeof baseCustomTypeConverter;
440
- componentResolver: typeof baseComponentConverter;
441
- collectionResolver: typeof baseCollectionConverter;
442
- };
443
- type ConverterContext = BaseConverterContext & {
444
- includes: Map<string, PossibleResolvedEntry>;
445
- assets: Map<string, IVisual>;
446
- rawAssets: Map<string, Asset>;
447
- errors: CmsError[];
448
- };
449
-
450
- declare function contentfulArticleRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, articleTypeSlug: string, options: FetchOptions): Promise<CmsResponse<IBaseArticle | null>>;
451
-
452
- interface ArticleTypeFetchOptions extends FetchOptions {
453
- customType?: string;
454
- }
455
- declare function contentfulArticleTypeRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: ArticleTypeFetchOptions): Promise<CmsResponse<IBaseArticleType | null>>;
456
-
457
- interface ContentfulResponse<T = any> {
458
- sys: {
459
- type: 'Array';
460
- };
461
- total: number;
462
- skip: number;
463
- limit: number;
464
- items: T extends contentful.EntrySkeletonType ? Array<contentful.Entry<T, 'WITHOUT_LINK_RESOLUTION', string>> : T[];
465
- includes?: {
466
- Entry?: any[];
467
- Asset?: any[];
468
- };
469
- }
470
- interface ContentfulAssetFields {
471
- title?: string;
472
- description?: string;
473
- file?: {
474
- url: string;
475
- fileName: string;
476
- contentType: string;
477
- details?: {
478
- size?: number;
479
- image?: {
480
- width: number;
481
- height: number;
482
- };
483
- };
484
- };
485
- }
486
- interface ContentfulAssetResponse {
487
- sys: {
488
- id: string;
489
- type: 'Asset';
490
- createdAt: string;
491
- updatedAt: string;
492
- };
493
- fields: ContentfulAssetFields;
494
- }
495
- interface ContentfulQuery {
496
- content_type?: string;
497
- locale?: string;
498
- include?: number;
499
- limit?: number;
500
- skip?: number;
501
- [key: string]: any;
502
- }
503
- declare class ContentfulFetchClient {
504
- private readonly baseUrl;
505
- private readonly accessToken;
506
- private readonly rateLimiter;
507
- private readonly isPreview;
508
- constructor(config: ContentfulConfig, preview?: boolean);
509
- getEntries<T = any>(query: ContentfulQuery, options?: FetchOptions): Promise<ContentfulResponse<T>>;
510
- getAsset(assetId: string, options?: FetchOptions): Promise<ContentfulAssetResponse | null>;
511
- }
512
- declare function createContentfulClient(config: ContentfulConfig): ContentfulFetchClient;
513
- declare function createContentfulPreviewClient(config: ContentfulConfig): ContentfulFetchClient;
514
- declare function getContentfulClient(config: ContentfulConfig, preview: boolean): ContentfulFetchClient;
515
-
516
- declare function isBrowserViewable(contentType: string): boolean;
517
- declare function contentfulAssetRest(config: ContentfulConfig, assetId: string, options: FetchOptions): Promise<ContentfulAssetResponse | null>;
518
- interface DownloadHandlerConfig {
519
- getConfig: (preview?: boolean) => ContentfulConfig;
520
- revalidate?: number;
521
- preview?: boolean;
522
- }
523
- interface DownloadRouteParams {
524
- params: Promise<{
525
- assetId: string;
526
- filename: string;
527
- }>;
528
- }
529
- declare function createDownloadHandler(config: DownloadHandlerConfig): (_request: NextRequest, { params }: DownloadRouteParams) => Promise<Response>;
530
-
531
- declare function createBaseConverterContext(urlCalculators: UrlCalculators): BaseConverterContext;
532
-
533
- declare function contentfulCustomTypeRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: FetchOptions): Promise<CmsResponse<IBaseCustomType | null>>;
534
-
535
- type DefaultChainModifier = 'WITHOUT_LINK_RESOLUTION';
536
- interface IContentfulRichText {
537
- json: Document;
538
- customStyles?: ReadonlyArray<string> | null;
539
- }
540
- type SitemapChangeFrequency = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
541
- interface ISitemapEntry {
542
- url: string;
543
- lastModified?: Date;
544
- changeFrequency?: SitemapChangeFrequency;
545
- priority?: number;
546
- }
547
- interface SitemapContentTypeConfig {
548
- priority?: number;
549
- changeFrequency?: SitemapChangeFrequency;
550
- }
551
- type SitemapEntryProvider = (context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions) => Promise<CmsResponse<ISitemapEntry[]>>;
552
- interface SitemapConfig {
553
- providers: SitemapEntryProvider[];
554
- }
555
- interface RelatedArticlesOptions {
556
- excludeArticleIds?: string[];
557
- articleTypeIds?: string[];
558
- tagIds?: string[];
559
- authorIds?: string[];
560
- before?: Date;
561
- after?: Date;
562
- count?: number;
563
- }
564
- type ResolvedEntry = IBasePage | IBaseArticle | IBaseArticleType | IBaseTag | INavigation | INavigationItem | IInternalLink | unknown | IContentfulPerson;
565
- type PossibleResolvedEntry = {
566
- id: string;
567
- type: string;
568
- entry: Entry<EntrySkeletonType, DefaultChainModifier, string>;
569
- resolved?: ResolvedEntry;
570
- };
571
-
572
- declare function buildFetchOptions(options: FetchOptions | undefined, defaultDraftOnly?: boolean): FetchOptions;
573
- declare function getContentfulConfig(preview: boolean): ContentfulConfig;
574
-
575
- declare function contentfulAllPageLinks(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IInternalLink[]>>;
576
- declare function contentfulAllArticleLinks(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IArticleLink[]>>;
577
- declare function contentfulAllTagLinks(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IInternalLink[]>>;
578
- declare function contentfulAllPersonLinks(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IInternalLink[]>>;
579
- declare function contentfulAllArticleTypeLinks(context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions): Promise<CmsResponse<IArticleTypeLink[]>>;
580
-
581
- declare function contentfulPageRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: FetchOptions): Promise<CmsResponse<IBasePage | null>>;
582
-
583
- interface PersonFetchOptions extends FetchOptions {
584
- customType?: string;
585
- }
586
- declare function contentfulPersonRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: PersonFetchOptions): Promise<CmsResponse<IContentfulPerson | null>>;
587
-
588
- type PreviewContentType = 'page' | 'pageVariant' | 'article' | 'articleType' | 'tag' | 'person' | 'customType';
589
- interface PreviewEntryInfo {
590
- contentType: PreviewContentType;
591
- entryId: string;
592
- slug: string;
593
- articleTypeSlug?: string;
594
- href: string;
595
- }
596
- declare function getPreviewEntryInfo(context: BaseConverterContext, config: ContentfulConfig, entryId: string, options?: Omit<FetchOptions, 'preview'>): Promise<PreviewEntryInfo | null>;
597
-
598
- declare function filterRelatedArticles(articles: IArticleLink[], options: RelatedArticlesOptions): IArticleLink[];
599
-
600
- declare function contentfulPageSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
601
- declare function contentfulArticleSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
602
- declare function contentfulArticleTypeSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
603
- declare function contentfulTagSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
604
- declare function contentfulPersonSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
605
- declare function getAllSitemapEntries(context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapConfig, options: FetchOptions): Promise<CmsResponse<ISitemapEntry[]>>;
606
- declare function createSitemapProvider(fetcher: (context: BaseConverterContext, config: ContentfulConfig, sitemapConfig: SitemapContentTypeConfig, options: FetchOptions) => Promise<CmsResponse<ISitemapEntry[]>>, sitemapConfig: SitemapContentTypeConfig): SitemapEntryProvider;
607
-
608
- interface TagFetchOptions extends FetchOptions {
609
- customType?: string;
610
- }
611
- declare function contentfulTagRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: TagFetchOptions): Promise<CmsResponse<IBaseTag | null>>;
612
-
613
- interface IFetchedTemplate {
614
- id: string;
615
- cmsLabel: string;
616
- preContent: ReadonlyArray<ITyped>;
617
- postContent: ReadonlyArray<ITyped>;
618
- menu?: INavigation;
619
- footer?: INavigation;
620
- backgroundColour?: string;
621
- textColour?: string;
622
- stickyNav: boolean;
623
- icons?: ReadonlyArray<ISvgImage>;
624
- }
625
- declare function contentfulTemplateRest(context: BaseConverterContext, config: ContentfulConfig, cmsLabel: string, options: FetchOptions): Promise<CmsResponse<IFetchedTemplate | null>>;
626
-
627
- declare function createResponsiveVisual(visual: IVisual | undefined, mobileVisual: IVisual | undefined, customSize?: number | null): IResponsiveVisual | undefined;
628
-
629
- declare function resolveLink(context: ConverterContext, fromId: string, entry: UnresolvedLink<'Entry'>): IInternalLink;
630
- declare function resolveLinks(context: ConverterContext, fromId: string, entries: UnresolvedLink<'Entry'>[] | undefined): readonly IInternalLink[] | undefined;
631
- declare function resolveRichTextDocument(context: ConverterContext, fromId: string, richText: Document | undefined): {
632
- json: Document;
633
- } | undefined;
634
-
635
- interface RevalidationConfig {
636
- secret?: string;
637
- validateSecret?: boolean;
638
- preview?: boolean;
639
- }
640
- declare function createRevalidationHandler(config?: RevalidationConfig): (request: NextRequest) => Promise<NextResponse>;
641
-
642
- declare const PageTag = "page";
643
- declare const ArticleTag = "article";
644
- declare const ArticleTypeTag = "articleType";
645
- declare const CustomTypeTag = "customType";
646
- declare const TagTag = "tag";
647
- declare const PersonTag = "person";
648
- declare const AssetTag = "asset";
649
- declare const TemplateTag = "template";
650
- declare const NavigationTag = "navigation";
651
- declare const BannerTag = "banner";
652
- declare const LocationTag = "location";
653
- declare const GlobalTag = "global";
654
- declare function pageTag(slug: string): string;
655
- declare function articleTag(slug: string): string;
656
- declare function articleTypeTag(slug: string): string;
657
- declare function articleTypeIndexTag(slug: string): string;
658
- declare function customTypeTag(slug: string): string;
659
- declare function tagTag(slug: string): string;
660
- declare function personTag(slug: string): string;
661
- declare function assetTag(assetId: string): string;
662
- declare function templateTag(label: string): string;
663
- declare function locationTag(slug: string): string;
664
- declare const AllTags: string[];
665
-
666
- declare function getCacheTagsForPreview(): string[];
667
- declare function getCacheTagsForProduction(contentType: string, slug?: string): string[];
668
- declare function getCacheTags(contentType: string, slug?: string, preview?: boolean): string[];
669
- declare function revalidateTags(tags: string[], reason: string): Promise<void>;
670
- declare function revalidateSingleTag(tag: string, reason: string): Promise<void>;
671
-
672
- declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;
673
- declare function arrayOrUndefined<T>(array?: ReadonlyArray<T>): readonly T[] | undefined;
674
-
675
- declare function isValidDate(date: unknown): boolean;
676
- declare function safeDate(date: unknown): Date | null;
677
-
678
- declare class ContentfulError extends Error {
679
- readonly statusCode?: number | undefined;
680
- readonly details?: unknown | undefined;
681
- constructor(message: string, statusCode?: number | undefined, details?: unknown | undefined);
682
- }
683
- declare class RateLimitError extends ContentfulError {
684
- readonly retryAfter?: number | undefined;
685
- constructor(message: string, retryAfter?: number | undefined, details?: unknown);
686
- }
687
- declare class EntryNotFoundError extends ContentfulError {
688
- readonly entryId: string;
689
- readonly contentType?: string | undefined;
690
- constructor(entryId: string, contentType?: string | undefined);
691
- }
692
- declare class AuthenticationError extends ContentfulError {
693
- constructor(message?: string);
694
- }
695
- declare class ValidationError extends ContentfulError {
696
- readonly validationErrors?: unknown | undefined;
697
- constructor(message: string, validationErrors?: unknown | undefined);
698
- }
699
- declare function isContentfulError(error: unknown): error is ContentfulError;
700
- declare function isRateLimitError(error: unknown): error is RateLimitError;
701
- declare function isRetryableError(error: unknown): boolean;
702
- declare function getRetryAfter(error: unknown): number | undefined;
703
-
704
- declare function calculateBackoffDelay(attempt: number, config: Required<RetryConfig>, retryAfter?: number): number;
705
- declare function withRetry<T>(fn: () => Promise<T>, config?: RetryConfig): Promise<T>;
706
- declare class RateLimiter {
707
- private readonly intervalMs;
708
- private nextAvailableTime;
709
- private readonly queue;
710
- private processing;
711
- private pauseUntil;
712
- constructor(requestsPerSecond: number, _refillRate?: number);
713
- private getWaitTime;
714
- private processQueue;
715
- acquire(): Promise<void>;
716
- getQueueLength(): number;
717
- pause(seconds: number): void;
718
- getIntervalMs(): number;
719
- }
720
-
721
- export { AllTags, ArticleTag, type ArticleTypeFetchOptions, ArticleTypeTag, AssetTag, AuthenticationError, BannerTag, type BaseConverterContext, type CmsError, type CmsResponse, type ContentResolverFunction, ContentfulFetchClient as ContentfulClient, type ContentfulConfig, ContentfulError, ContentfulFetchClient, type ConverterContext, CustomTypeTag, type DefaultChainModifier, type DownloadHandlerConfig, type DownloadRouteParams, EntryNotFoundError, type FetchOptions, GlobalTag, type IContentfulCollection, type IContentfulComponent, type IContentfulPerson, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, LocationTag, NavigationTag, PageTag, type PersonFetchOptions, PersonTag, type PreviewContentType, type PreviewEntryInfo, RateLimitError, RateLimiter, type RelatedArticlesOptions, type RetryConfig, type RevalidationConfig, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, type TagFetchOptions, TagTag, TemplateTag, type UrlCalculators, ValidationError, arrayOrUndefined, articleTag, articleTypeIndexTag, articleTypeTag, assetTag, basePageConverter, buildFetchOptions, calculateBackoffDelay, calculatePageHref, calculatePageVariantHref, contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulTagRest, contentfulTagSitemapEntries, contentfulTemplateRest, createBaseConverterContext, createContentfulClient, createContentfulPreviewClient, createDownloadHandler, createResponsiveVisual, createRevalidationHandler, createSitemapProvider, customTypeTag, filterRelatedArticles, getAllSitemapEntries, getCacheTags, getCacheTagsForPreview, getCacheTagsForProduction, getContentfulClient, getContentfulConfig, getPreviewEntryInfo, getRetryAfter, isBrowserViewable, isContentfulError, isRateLimitError, isRetryableError, isValidDate, locationTag, lookupAsset, notEmpty, pageTag, personTag, resolveLink, resolveLinks, resolveRichTextDocument, revalidateSingleTag, revalidateTags, safeDate, tagTag, templateTag, withRetry };
1
+ /**
2
+ * @se-studio/contentful-rest-api
3
+ *
4
+ * Type-safe Contentful REST API client with caching and rate limiting
5
+ * for Next.js applications.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { contentfulPageRest, createContentfulClient } from '@se-studio/contentful-rest-api';
10
+ *
11
+ * const page = await contentfulPageRest(
12
+ * {
13
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
14
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
15
+ * },
16
+ * 'home'
17
+ * );
18
+ * ```
19
+ */
20
+ export { type ArticleTypeFetchOptions, buildFetchOptions, contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulArticleRest, contentfulArticleSitemapEntries, contentfulArticleTypeRest, contentfulArticleTypeSitemapEntries, contentfulAssetRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPageSitemapEntries, contentfulPersonRest, contentfulPersonSitemapEntries, contentfulTagRest, contentfulTagSitemapEntries, contentfulTemplateRest, createBaseConverterContext, createSitemapProvider, type DefaultChainModifier, filterRelatedArticles, getAllSitemapEntries, getContentfulConfig, getPreviewEntryInfo, type IContentfulRichText, type IFetchedTemplate, type ISitemapEntry, isBrowserViewable, type PersonFetchOptions, type PreviewContentType, type PreviewEntryInfo, type RelatedArticlesOptions, type SitemapChangeFrequency, type SitemapConfig, type SitemapContentTypeConfig, type SitemapEntryProvider, type TagFetchOptions, } from './api';
21
+ export type { ContentfulFetchClient as ContentfulClient } from './client';
22
+ export { type ContentfulFetchClient, createContentfulClient, createContentfulPreviewClient, getContentfulClient, } from './client';
23
+ export type { ContentResolverFunction } from './converters';
24
+ export { type BaseConverterContext, basePageConverter, type ConverterContext, calculatePageHref, calculatePageVariantHref, createResponsiveVisual, type IContentfulCollection, type IContentfulComponent, type IContentfulPerson, lookupAsset, resolveLink, resolveLinks, 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, PersonTag, pageTag, personTag, TagTag, TemplateTag, tagTag, templateTag, } from './revalidation';
26
+ export type { CmsError, CmsResponse, ContentfulConfig, FetchOptions, RetryConfig, } from './types';
27
+ export { AuthenticationError, arrayOrUndefined, ContentfulError, calculateBackoffDelay, EntryNotFoundError, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, isValidDate, notEmpty, RateLimitError, RateLimiter, safeDate, ValidationError, withRetry, } from './utils';
28
+ //# sourceMappingURL=index.d.ts.map