@se-studio/contentful-rest-api 1.0.45 → 1.0.47

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 +416 -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 -718
  235. package/dist/index.d.ts.map +1 -0
  236. package/dist/index.js +37 -3602
  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
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Cache tag constants and utilities for Contentful revalidation
3
+ */
4
+ // Collection-level cache tags (used for sitemaps and lists)
5
+ export const PageTag = 'page';
6
+ export const ArticleTag = 'article';
7
+ export const ArticleTypeTag = 'articleType';
8
+ export const ArticleTypeIndexTag = 'articleTypeIndex';
9
+ export const CustomTypeTag = 'customType';
10
+ export const TagTag = 'tag';
11
+ export const PersonTag = 'person';
12
+ export const AssetTag = 'asset';
13
+ export const TemplateTag = 'template';
14
+ export const NavigationTag = 'navigation';
15
+ export const BannerTag = 'banner';
16
+ export const LocationTag = 'location';
17
+ // Draft mode tag - used when DRAFT_ONLY=true
18
+ export const GlobalTag = 'global';
19
+ /**
20
+ * Individual page cache tag generator
21
+ * @param slug - Page slug
22
+ * @returns Cache tag for the page
23
+ */
24
+ export function pageTag(slug) {
25
+ return `${PageTag}#${slug}`;
26
+ }
27
+ /**
28
+ * Individual article cache tag generator
29
+ * @param slug - Article slug
30
+ * @returns Cache tag for the article
31
+ */
32
+ export function articleTag(slug) {
33
+ return `${ArticleTag}#${slug}`;
34
+ }
35
+ /**
36
+ * Individual article type cache tag generator
37
+ * @param slug - Article type slug
38
+ * @returns Cache tag for the article type
39
+ */
40
+ export function articleTypeTag(slug) {
41
+ return `${ArticleTypeTag}#${slug}`;
42
+ }
43
+ /**
44
+ * Individual article type index page cache tag generator
45
+ * @param slug - Article type index page slug
46
+ * @returns Cache tag for the article type index page
47
+ */
48
+ export function articleTypeIndexTag(slug) {
49
+ return `${ArticleTypeTag}#index#${slug}`;
50
+ }
51
+ /**
52
+ * Individual custom type cache tag generator
53
+ * @param slug - Custom type slug
54
+ * @returns Cache tag for the custom type
55
+ */
56
+ export function customTypeTag(slug) {
57
+ return `${CustomTypeTag}#${slug}`;
58
+ }
59
+ /**
60
+ * Individual tag cache tag generator
61
+ * @param slug - Tag slug
62
+ * @returns Cache tag for the tag
63
+ */
64
+ export function tagTag(slug) {
65
+ return `${TagTag}#${slug}`;
66
+ }
67
+ /**
68
+ * Individual person cache tag generator
69
+ * @param slug - Person slug
70
+ * @returns Cache tag for the person
71
+ */
72
+ export function personTag(slug) {
73
+ return `${PersonTag}#${slug}`;
74
+ }
75
+ /**
76
+ * Individual asset cache tag generator
77
+ * @param assetId - Asset ID
78
+ * @returns Cache tag for the asset
79
+ */
80
+ export function assetTag(assetId) {
81
+ return `${AssetTag}#${assetId}`;
82
+ }
83
+ /**
84
+ * Individual template cache tag generator
85
+ * @param label - Template cmsLabel
86
+ * @returns Cache tag for the template
87
+ */
88
+ export function templateTag(label) {
89
+ return `${TemplateTag}#${label}`;
90
+ }
91
+ /**
92
+ * Individual location cache tag generator
93
+ * @param slug - Location slug
94
+ * @returns Cache tag for the location
95
+ */
96
+ export function locationTag(slug) {
97
+ return `${LocationTag}#${slug}`;
98
+ }
99
+ /**
100
+ * All collection-level cache tags for global revalidation
101
+ */
102
+ export const AllTags = [
103
+ PageTag,
104
+ ArticleTag,
105
+ ArticleTypeTag,
106
+ ArticleTypeIndexTag,
107
+ CustomTypeTag,
108
+ TagTag,
109
+ PersonTag,
110
+ AssetTag,
111
+ TemplateTag,
112
+ NavigationTag,
113
+ BannerTag,
114
+ LocationTag,
115
+ 'hubspot-forms', // Additional tag from the old implementation
116
+ ];
117
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/revalidation/tags.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,GAAG,cAAc,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,GAAG,cAAc,UAAU,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO;IACP,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,aAAa;IACb,MAAM;IACN,SAAS;IACT,QAAQ;IACR,WAAW;IACX,aAAa;IACb,SAAS;IACT,WAAW;IACX,eAAe,EAAE,6CAA6C;CAC/D,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Get cache tags for preview mode
3
+ * @returns Array containing only the global tag
4
+ */
5
+ export declare function getCacheTagsForPreview(): string[];
6
+ /**
7
+ * Get cache tags for production mode based on content type and slug
8
+ * @param contentType - The content type ('page', 'article', 'articleType', etc.)
9
+ * @param slug - The slug/identifier for the content
10
+ * @returns Array of cache tags including individual and collection tags
11
+ */
12
+ export declare function getCacheTagsForProduction(contentType: string, slug?: string): string[];
13
+ /**
14
+ * Get cache tags based on preview mode
15
+ * @param contentType - The content type
16
+ * @param slug - The slug/identifier for the content
17
+ * @param preview - Whether to use preview mode
18
+ * @returns Array of cache tags appropriate for the mode
19
+ */
20
+ export declare function getCacheTags(contentType: string, slug?: string, preview?: boolean): string[];
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/revalidation/utils.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBtF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,OAAe,GACvB,MAAM,EAAE,CAKV"}
@@ -0,0 +1,51 @@
1
+ import { ArticleTag, ArticleTypeTag, AssetTag, articleTag, articleTypeTag, assetTag, CustomTypeTag, customTypeTag, GlobalTag, LocationTag, locationTag, PageTag, PersonTag, pageTag, personTag, TagTag, tagTag, } from './tags';
2
+ /**
3
+ * Get cache tags for preview mode
4
+ * @returns Array containing only the global tag
5
+ */
6
+ export function getCacheTagsForPreview() {
7
+ return [GlobalTag];
8
+ }
9
+ /**
10
+ * Get cache tags for production mode based on content type and slug
11
+ * @param contentType - The content type ('page', 'article', 'articleType', etc.)
12
+ * @param slug - The slug/identifier for the content
13
+ * @returns Array of cache tags including individual and collection tags
14
+ */
15
+ export function getCacheTagsForProduction(contentType, slug) {
16
+ switch (contentType) {
17
+ case 'page':
18
+ return slug ? [pageTag(slug), PageTag] : [PageTag];
19
+ case 'article':
20
+ return slug ? [articleTag(slug), ArticleTag] : [ArticleTag];
21
+ case 'articleType':
22
+ return slug ? [articleTypeTag(slug), ArticleTypeTag] : [ArticleTypeTag];
23
+ case 'customType':
24
+ return slug ? [customTypeTag(slug), CustomTypeTag] : [CustomTypeTag];
25
+ case 'tag':
26
+ return slug ? [tagTag(slug), TagTag] : [TagTag];
27
+ case 'person':
28
+ return slug ? [personTag(slug), PersonTag] : [PersonTag];
29
+ case 'asset':
30
+ return slug ? [assetTag(slug), AssetTag] : [AssetTag];
31
+ case 'location':
32
+ return slug ? [locationTag(slug), LocationTag] : [LocationTag];
33
+ default:
34
+ // For content types without individual tags, just return the collection tag
35
+ return [contentType];
36
+ }
37
+ }
38
+ /**
39
+ * Get cache tags based on preview mode
40
+ * @param contentType - The content type
41
+ * @param slug - The slug/identifier for the content
42
+ * @param preview - Whether to use preview mode
43
+ * @returns Array of cache tags appropriate for the mode
44
+ */
45
+ export function getCacheTags(contentType, slug, preview = false) {
46
+ if (preview) {
47
+ return getCacheTagsForPreview();
48
+ }
49
+ return getCacheTagsForProduction(contentType, slug);
50
+ }
51
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/revalidation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,QAAQ,EACR,UAAU,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,GACP,MAAM,QAAQ,CAAC;AAEhB;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,IAAa;IAC1E,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC9D,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1E,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACvE,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3D,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACjE;YACE,4EAA4E;YAC5E,OAAO,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,IAAa,EACb,UAAmB,KAAK;IAExB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,sBAAsB,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import 'server-only';
2
+ export { createDownloadHandler, type DownloadHandlerConfig, type DownloadRouteParams, } from './api/server-asset';
3
+ export { type AssetData, type BaseData, contentTypeHandlers, type IContentTypeHandler, revalidateAsset, revalidateDeletedAsset, revalidateDeletedEntry, revalidateEntry, } from './revalidation/handlers';
4
+ export { createRevalidationHandler, type RevalidationConfig, } from './revalidation/nextjs-route';
5
+ export { handleRevalidation } from './revalidation/route';
6
+ export { revalidateSingleTag, revalidateTags } from './revalidation/server-utils';
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,KAAK,kBAAkB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,10 @@
1
+ import 'server-only';
2
+ // Download handler
3
+ export { createDownloadHandler, } from './api/server-asset';
4
+ export { contentTypeHandlers, revalidateAsset, revalidateDeletedAsset, revalidateDeletedEntry, revalidateEntry, } from './revalidation/handlers';
5
+ // Revalidation handlers and routes
6
+ export { createRevalidationHandler, } from './revalidation/nextjs-route';
7
+ export { handleRevalidation } from './revalidation/route';
8
+ // Revalidation utilities
9
+ export { revalidateSingleTag, revalidateTags } from './revalidation/server-utils';
10
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,mBAAmB,EAEnB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,mCAAmC;AACnC,OAAO,EACL,yBAAyB,GAE1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,yBAAyB;AACzB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Configuration options for creating a Contentful client
3
+ */
4
+ export interface ContentfulConfig {
5
+ /** Contentful space ID */
6
+ spaceId: string;
7
+ /** Access token for the Contentful API (CDA or CPA token) */
8
+ accessToken: string;
9
+ /** Environment name (defaults to 'master') */
10
+ environment?: string;
11
+ /** Host override (useful for proxies or custom endpoints) */
12
+ host?: string;
13
+ }
14
+ /**
15
+ * Retry configuration for failed requests
16
+ */
17
+ export interface RetryConfig {
18
+ /** Maximum number of retry attempts */
19
+ maxRetries?: number;
20
+ /** Initial delay in milliseconds */
21
+ initialDelay?: number;
22
+ /** Maximum delay in milliseconds */
23
+ maxDelay?: number;
24
+ /** Backoff multiplier */
25
+ backoffMultiplier?: number;
26
+ }
27
+ /**
28
+ * Options for fetching content from Contentful
29
+ */
30
+ export interface FetchOptions {
31
+ /** Locale to fetch content in */
32
+ locale?: string;
33
+ /** Use preview API instead of delivery API */
34
+ preview: boolean;
35
+ /** Include depth for linked entries */
36
+ include?: number;
37
+ cache?: 'force-cache' | 'no-store';
38
+ next?: {
39
+ revalidate?: number | false;
40
+ tags?: string[];
41
+ };
42
+ /** Retry configuration */
43
+ retry?: RetryConfig;
44
+ }
45
+ /**
46
+ * Error information for failed content conversion
47
+ */
48
+ export interface CmsError {
49
+ /** ID of the entry that failed to convert */
50
+ entryId: string;
51
+ /** Content type of the entry that failed */
52
+ entryType?: string;
53
+ /** Human-readable error message */
54
+ message: string;
55
+ /** Original error object for debugging */
56
+ error?: unknown;
57
+ }
58
+ /**
59
+ * Response wrapper for CMS operations that may include partial errors
60
+ */
61
+ export interface CmsResponse<T> {
62
+ /** The successful data */
63
+ data: T;
64
+ /** Any errors that occurred during processing */
65
+ errors: CmsError[];
66
+ }
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,GAAG,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,CAAC,CAAC;IACR,iDAAiD;IACjD,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function notEmpty<TValue>(value: TValue | null | undefined): value is TValue;
2
+ export declare function arrayOrUndefined<T>(array?: ReadonlyArray<T>): readonly T[] | undefined;
3
+ //# sourceMappingURL=arrayUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrayUtils.d.ts","sourceRoot":"","sources":["../../src/utils/arrayUtils.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAGlF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,4BAK3D"}
@@ -0,0 +1,12 @@
1
+ export function notEmpty(value) {
2
+ if (value === null || value === undefined)
3
+ return false;
4
+ return true;
5
+ }
6
+ export function arrayOrUndefined(array) {
7
+ if (array && array.length > 0) {
8
+ return array;
9
+ }
10
+ return undefined;
11
+ }
12
+ //# sourceMappingURL=arrayUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrayUtils.js","sourceRoot":"","sources":["../../src/utils/arrayUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAS,KAAgC;IAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,KAAwB;IAC1D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validates if a value can be converted to a valid Date object
3
+ */
4
+ export declare function isValidDate(date: unknown): boolean;
5
+ /**
6
+ * Safely creates a Date object, returning null if invalid
7
+ */
8
+ export declare function safeDate(date: unknown): Date | null;
9
+ //# sourceMappingURL=dateUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/utils/dateUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAWlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAUnD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Validates if a value can be converted to a valid Date object
3
+ */
4
+ export function isValidDate(date) {
5
+ if (date instanceof Date) {
6
+ return !Number.isNaN(date.getTime());
7
+ }
8
+ if (typeof date === 'string' || typeof date === 'number') {
9
+ const parsed = new Date(date);
10
+ return !Number.isNaN(parsed.getTime()) && parsed.getTime() > 0;
11
+ }
12
+ return false;
13
+ }
14
+ /**
15
+ * Safely creates a Date object, returning null if invalid
16
+ */
17
+ export function safeDate(date) {
18
+ if (!isValidDate(date)) {
19
+ return null;
20
+ }
21
+ if (date instanceof Date) {
22
+ return date;
23
+ }
24
+ return new Date(date);
25
+ }
26
+ //# sourceMappingURL=dateUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateUtils.js","sourceRoot":"","sources":["../../src/utils/dateUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,IAAuB,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Custom error classes for Contentful API errors
3
+ */
4
+ /**
5
+ * Base error class for all Contentful-related errors
6
+ */
7
+ export declare class ContentfulError extends Error {
8
+ readonly statusCode?: number | undefined;
9
+ readonly details?: unknown | undefined;
10
+ constructor(message: string, statusCode?: number | undefined, details?: unknown | undefined);
11
+ }
12
+ /**
13
+ * Error thrown when rate limit is exceeded
14
+ */
15
+ export declare class RateLimitError extends ContentfulError {
16
+ readonly retryAfter?: number | undefined;
17
+ constructor(message: string, retryAfter?: number | undefined, details?: unknown);
18
+ }
19
+ /**
20
+ * Error thrown when entry is not found
21
+ */
22
+ export declare class EntryNotFoundError extends ContentfulError {
23
+ readonly entryId: string;
24
+ readonly contentType?: string | undefined;
25
+ constructor(entryId: string, contentType?: string | undefined);
26
+ }
27
+ /**
28
+ * Error thrown when authentication fails
29
+ */
30
+ export declare class AuthenticationError extends ContentfulError {
31
+ constructor(message?: string);
32
+ }
33
+ /**
34
+ * Error thrown when validation fails
35
+ */
36
+ export declare class ValidationError extends ContentfulError {
37
+ readonly validationErrors?: unknown | undefined;
38
+ constructor(message: string, validationErrors?: unknown | undefined);
39
+ }
40
+ /**
41
+ * Checks if an error is a Contentful error
42
+ */
43
+ export declare function isContentfulError(error: unknown): error is ContentfulError;
44
+ /**
45
+ * Checks if an error is a rate limit error
46
+ */
47
+ export declare function isRateLimitError(error: unknown): error is RateLimitError;
48
+ /**
49
+ * Checks if an error is retryable
50
+ */
51
+ export declare function isRetryableError(error: unknown): boolean;
52
+ /**
53
+ * Extracts retry-after header value from error
54
+ */
55
+ export declare function getRetryAfter(error: unknown): number | undefined;
56
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,UAAU,CAAC,EAAE,MAAM;aACnB,OAAO,CAAC,EAAE,OAAO;gBAFjC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,OAAO,YAAA;CAMpC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;aAG/B,UAAU,CAAC,EAAE,MAAM;gBADnC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnC,OAAO,CAAC,EAAE,OAAO;CAMpB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;aAEnC,OAAO,EAAE,MAAM;aACf,WAAW,CAAC,EAAE,MAAM;gBADpB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,YAAA;CAMvC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,OAAO,SAA0B;CAK9C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;aAGhC,gBAAgB,CAAC,EAAE,OAAO;gBAD1C,OAAO,EAAE,MAAM,EACC,gBAAgB,CAAC,EAAE,OAAO,YAAA;CAM7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKhE"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Custom error classes for Contentful API errors
3
+ */
4
+ /**
5
+ * Base error class for all Contentful-related errors
6
+ */
7
+ export class ContentfulError extends Error {
8
+ statusCode;
9
+ details;
10
+ constructor(message, statusCode, details) {
11
+ super(message);
12
+ this.statusCode = statusCode;
13
+ this.details = details;
14
+ this.name = 'ContentfulError';
15
+ Object.setPrototypeOf(this, ContentfulError.prototype);
16
+ }
17
+ }
18
+ /**
19
+ * Error thrown when rate limit is exceeded
20
+ */
21
+ export class RateLimitError extends ContentfulError {
22
+ retryAfter;
23
+ constructor(message, retryAfter, details) {
24
+ super(message, 429, details);
25
+ this.retryAfter = retryAfter;
26
+ this.name = 'RateLimitError';
27
+ Object.setPrototypeOf(this, RateLimitError.prototype);
28
+ }
29
+ }
30
+ /**
31
+ * Error thrown when entry is not found
32
+ */
33
+ export class EntryNotFoundError extends ContentfulError {
34
+ entryId;
35
+ contentType;
36
+ constructor(entryId, contentType) {
37
+ super(`Entry not found: ${entryId}${contentType ? ` (${contentType})` : ''}`, 404);
38
+ this.entryId = entryId;
39
+ this.contentType = contentType;
40
+ this.name = 'EntryNotFoundError';
41
+ Object.setPrototypeOf(this, EntryNotFoundError.prototype);
42
+ }
43
+ }
44
+ /**
45
+ * Error thrown when authentication fails
46
+ */
47
+ export class AuthenticationError extends ContentfulError {
48
+ constructor(message = 'Authentication failed') {
49
+ super(message, 401);
50
+ this.name = 'AuthenticationError';
51
+ Object.setPrototypeOf(this, AuthenticationError.prototype);
52
+ }
53
+ }
54
+ /**
55
+ * Error thrown when validation fails
56
+ */
57
+ export class ValidationError extends ContentfulError {
58
+ validationErrors;
59
+ constructor(message, validationErrors) {
60
+ super(message, 400, validationErrors);
61
+ this.validationErrors = validationErrors;
62
+ this.name = 'ValidationError';
63
+ Object.setPrototypeOf(this, ValidationError.prototype);
64
+ }
65
+ }
66
+ /**
67
+ * Checks if an error is a Contentful error
68
+ */
69
+ export function isContentfulError(error) {
70
+ return error instanceof ContentfulError;
71
+ }
72
+ /**
73
+ * Checks if an error is a rate limit error
74
+ */
75
+ export function isRateLimitError(error) {
76
+ return error instanceof RateLimitError;
77
+ }
78
+ /**
79
+ * Checks if an error is retryable
80
+ */
81
+ export function isRetryableError(error) {
82
+ if (isRateLimitError(error)) {
83
+ return true;
84
+ }
85
+ if (isContentfulError(error)) {
86
+ // Retry on 5xx errors and rate limits
87
+ return error.statusCode !== undefined && (error.statusCode >= 500 || error.statusCode === 429);
88
+ }
89
+ return false;
90
+ }
91
+ /**
92
+ * Extracts retry-after header value from error
93
+ */
94
+ export function getRetryAfter(error) {
95
+ if (isRateLimitError(error)) {
96
+ return error.retryAfter;
97
+ }
98
+ return undefined;
99
+ }
100
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,OAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAU;QAGjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,eAAe;IAG/B;IAFlB,YACE,OAAe,EACC,UAAmB,EACnC,OAAiB;QAEjB,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAHb,eAAU,GAAV,UAAU,CAAS;QAInC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAEnC;IACA;IAFlB,YACkB,OAAe,EACf,WAAoB;QAEpC,KAAK,CAAC,oBAAoB,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAHnE,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAS;QAGpC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAGhC;IAFlB,YACE,OAAe,EACC,gBAA0B;QAE1C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAFtB,qBAAgB,GAAhB,gBAAgB,CAAU;QAG1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,YAAY,eAAe,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,KAAK,YAAY,cAAc,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,sCAAsC;QACtC,OAAO,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utility functions for error handling, retry logic, and rate limiting
3
+ */
4
+ export { arrayOrUndefined, notEmpty } from './arrayUtils';
5
+ export { isValidDate, safeDate } from './dateUtils';
6
+ export { AuthenticationError, ContentfulError, EntryNotFoundError, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, RateLimitError, ValidationError, } from './errors';
7
+ export { CONTENTFUL_RATE_LIMITS, calculateBackoffDelay, deliveryRateLimiter, getRateLimiter, previewRateLimiter, RateLimiter, withRetry, } from './retry';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utility functions for error handling, retry logic, and rate limiting
3
+ */
4
+ export { arrayOrUndefined, notEmpty } from './arrayUtils';
5
+ export { isValidDate, safeDate } from './dateUtils';
6
+ export { AuthenticationError, ContentfulError, EntryNotFoundError, getRetryAfter, isContentfulError, isRateLimitError, isRetryableError, RateLimitError, ValidationError, } from './errors';
7
+ export { CONTENTFUL_RATE_LIMITS, calculateBackoffDelay, deliveryRateLimiter, getRateLimiter, previewRateLimiter, RateLimiter, withRetry, } from './retry';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Utility functions for JSON serialization with enhanced features
3
+ */
4
+ /**
5
+ * Stringifies an object to JSON with sorted keys and circular reference handling
6
+ *
7
+ * @param obj - The object to stringify
8
+ * @param indent - Number of spaces for indentation (default: 2)
9
+ * @returns JSON string with alphabetically sorted keys
10
+ *
11
+ * Features:
12
+ * - Handles circular references by replacing them with "[Circular Reference]"
13
+ * - Sorts all object keys alphabetically for consistent output
14
+ * - Useful for comparing JSON outputs via string comparison
15
+ */
16
+ export declare function stringifyWithSortedKeys(obj: unknown, indent?: number): string;
17
+ //# sourceMappingURL=json-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-utils.d.ts","sourceRoot":"","sources":["../../src/utils/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,SAAI,GAAG,MAAM,CAkCxE"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Utility functions for JSON serialization with enhanced features
3
+ */
4
+ /**
5
+ * Stringifies an object to JSON with sorted keys and circular reference handling
6
+ *
7
+ * @param obj - The object to stringify
8
+ * @param indent - Number of spaces for indentation (default: 2)
9
+ * @returns JSON string with alphabetically sorted keys
10
+ *
11
+ * Features:
12
+ * - Handles circular references by replacing them with "[Circular Reference]"
13
+ * - Sorts all object keys alphabetically for consistent output
14
+ * - Useful for comparing JSON outputs via string comparison
15
+ */
16
+ export function stringifyWithSortedKeys(obj, indent = 2) {
17
+ const seen = new WeakSet();
18
+ const replacer = (_key, value) => {
19
+ // Handle null and primitives
20
+ if (value === null || typeof value !== 'object') {
21
+ return value;
22
+ }
23
+ // Detect circular references
24
+ if (seen.has(value)) {
25
+ return '[Circular Reference]';
26
+ }
27
+ // Track this object
28
+ seen.add(value);
29
+ // Handle arrays - don't sort, just process elements
30
+ if (Array.isArray(value)) {
31
+ return value;
32
+ }
33
+ // Handle objects - sort keys alphabetically
34
+ const sorted = {};
35
+ const keys = Object.keys(value).sort();
36
+ for (const key of keys) {
37
+ sorted[key] = value[key];
38
+ }
39
+ return sorted;
40
+ };
41
+ return JSON.stringify(obj, replacer, indent);
42
+ }
43
+ //# sourceMappingURL=json-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../src/utils/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY,EAAE,MAAM,GAAG,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;QACzD,6BAA6B;QAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAe,CAAC,EAAE,CAAC;YAC9B,OAAO,sBAAsB,CAAC;QAChC,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC;QAE1B,oDAAoD;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4CAA4C;QAC5C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}