@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,199 @@
1
+ import { contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, } from './links';
2
+ // ============================================================================
3
+ // Sitemap Entry Helpers
4
+ // ============================================================================
5
+ /**
6
+ * Helper function to convert internal links to sitemap entries.
7
+ * Filters to only include indexed and non-hidden entries.
8
+ *
9
+ * @param links - Array of internal links with metadata
10
+ * @param sitemapConfig - Configuration for priority and change frequency
11
+ * @returns Array of sitemap entries
12
+ */
13
+ function linksToSitemapEntries(links, sitemapConfig) {
14
+ return links
15
+ .filter((link) => link.indexed !== false && link.hidden !== true && link.href)
16
+ .map((link) => ({
17
+ url: link.href,
18
+ lastModified: link.lastModified,
19
+ changeFrequency: sitemapConfig?.changeFrequency,
20
+ priority: sitemapConfig?.priority,
21
+ }));
22
+ }
23
+ // ============================================================================
24
+ // Sitemap Entry Fetchers
25
+ // ============================================================================
26
+ /**
27
+ * Fetches all page sitemap entries from Contentful.
28
+ * Only includes pages that are indexed and not hidden.
29
+ *
30
+ * @param context - Converter context
31
+ * @param config - Contentful configuration
32
+ * @param sitemapConfig - Optional sitemap configuration (priority, changeFrequency)
33
+ * @param options - Fetch options (locale, preview, caching, etc.)
34
+ * @returns Promise resolving to CmsResponse with array of sitemap entries
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const { data: entries } = await contentfulPageSitemapEntries(
39
+ * context,
40
+ * config,
41
+ * { priority: 0.8, changeFrequency: 'weekly' },
42
+ * { next: { revalidate: 3600 } }
43
+ * );
44
+ * ```
45
+ */
46
+ export async function contentfulPageSitemapEntries(context, config, sitemapConfig, options) {
47
+ const response = await contentfulAllPageLinks(context, config, options);
48
+ return {
49
+ data: linksToSitemapEntries(response.data, sitemapConfig),
50
+ errors: response.errors,
51
+ };
52
+ }
53
+ /**
54
+ * Fetches all article sitemap entries from Contentful.
55
+ * Only includes articles that are indexed and not hidden.
56
+ *
57
+ * @param context - Converter context
58
+ * @param config - Contentful configuration
59
+ * @param sitemapConfig - Optional sitemap configuration (priority, changeFrequency)
60
+ * @param options - Fetch options (locale, preview, caching, etc.)
61
+ * @returns Promise resolving to CmsResponse with array of sitemap entries
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const { data: entries } = await contentfulArticleSitemapEntries(
66
+ * context,
67
+ * config,
68
+ * { priority: 0.6, changeFrequency: 'monthly' },
69
+ * { next: { revalidate: 3600 } }
70
+ * );
71
+ * ```
72
+ */
73
+ export async function contentfulArticleSitemapEntries(context, config, sitemapConfig, options) {
74
+ const response = await contentfulAllArticleLinks(context, config, options);
75
+ return {
76
+ data: linksToSitemapEntries(response.data, sitemapConfig),
77
+ errors: response.errors,
78
+ };
79
+ }
80
+ /**
81
+ * Fetches all article type sitemap entries from Contentful.
82
+ * Only includes article types that are indexed and not hidden.
83
+ *
84
+ * @param context - Converter context
85
+ * @param config - Contentful configuration
86
+ * @param sitemapConfig - Optional sitemap configuration (priority, changeFrequency)
87
+ * @param options - Fetch options (locale, preview, caching, etc.)
88
+ * @returns Promise resolving to CmsResponse with array of sitemap entries
89
+ */
90
+ export async function contentfulArticleTypeSitemapEntries(context, config, sitemapConfig, options) {
91
+ const response = await contentfulAllArticleTypeLinks(context, config, options);
92
+ return {
93
+ data: linksToSitemapEntries(response.data, sitemapConfig),
94
+ errors: response.errors,
95
+ };
96
+ }
97
+ /**
98
+ * Fetches all tag sitemap entries from Contentful.
99
+ * Only includes tags that are indexed and not hidden.
100
+ *
101
+ * @param context - Converter context
102
+ * @param config - Contentful configuration
103
+ * @param sitemapConfig - Optional sitemap configuration (priority, changeFrequency)
104
+ * @param options - Fetch options (locale, preview, caching, etc.)
105
+ * @returns Promise resolving to CmsResponse with array of sitemap entries
106
+ */
107
+ export async function contentfulTagSitemapEntries(context, config, sitemapConfig, options) {
108
+ const response = await contentfulAllTagLinks(context, config, options);
109
+ return {
110
+ data: linksToSitemapEntries(response.data, sitemapConfig),
111
+ errors: response.errors,
112
+ };
113
+ }
114
+ /**
115
+ * Fetches all person sitemap entries from Contentful.
116
+ * Only includes people that are indexed and not hidden.
117
+ *
118
+ * @param context - Converter context
119
+ * @param config - Contentful configuration
120
+ * @param sitemapConfig - Optional sitemap configuration (priority, changeFrequency)
121
+ * @param options - Fetch options (locale, preview, caching, etc.)
122
+ * @returns Promise resolving to CmsResponse with array of sitemap entries
123
+ */
124
+ export async function contentfulPersonSitemapEntries(context, config, sitemapConfig, options) {
125
+ const response = await contentfulAllPersonLinks(context, config, options);
126
+ return {
127
+ data: linksToSitemapEntries(response.data, sitemapConfig),
128
+ errors: response.errors,
129
+ };
130
+ }
131
+ // ============================================================================
132
+ // Sitemap Registry Functions
133
+ // ============================================================================
134
+ /**
135
+ * Collects sitemap entries from multiple providers.
136
+ * This allows projects to register custom content types for sitemap generation.
137
+ *
138
+ * @param context - Converter context
139
+ * @param config - Contentful configuration
140
+ * @param sitemapConfig - Configuration with array of provider functions
141
+ * @param options - Fetch options (locale, preview, caching, etc.)
142
+ * @returns Promise resolving to CmsResponse with all sitemap entries combined
143
+ *
144
+ * @example
145
+ * ```ts
146
+ * const { data: entries, errors } = await getAllSitemapEntries(
147
+ * context,
148
+ * config,
149
+ * {
150
+ * providers: [
151
+ * (ctx, cfg, opts) => contentfulPageSitemapEntries(ctx, cfg, { priority: 0.8 }, opts),
152
+ * (ctx, cfg, opts) => contentfulArticleSitemapEntries(ctx, cfg, { priority: 0.6 }, opts),
153
+ * // Custom content type provider
154
+ * async (ctx, cfg, opts) => {
155
+ * const links = await fetchCustomContentLinks(ctx, cfg, opts);
156
+ * return { data: links.map(l => ({ url: l.href, lastModified: l.lastModified })), errors: [] };
157
+ * },
158
+ * ],
159
+ * },
160
+ * { next: { revalidate: 3600 } }
161
+ * );
162
+ * ```
163
+ */
164
+ export async function getAllSitemapEntries(context, config, sitemapConfig, options) {
165
+ const allEntries = [];
166
+ const allErrors = [];
167
+ // Fetch from all providers in parallel for better performance
168
+ const results = await Promise.all(sitemapConfig.providers.map((provider) => provider(context, config, options)));
169
+ // Combine all results
170
+ for (const result of results) {
171
+ allEntries.push(...result.data);
172
+ allErrors.push(...result.errors);
173
+ }
174
+ return { data: allEntries, errors: allErrors };
175
+ }
176
+ /**
177
+ * Creates a sitemap entry provider with pre-configured options.
178
+ * Useful for creating providers with specific priority and changeFrequency settings.
179
+ *
180
+ * @param fetcher - The sitemap entry fetcher function to wrap
181
+ * @param sitemapConfig - Configuration for priority and change frequency
182
+ * @returns A sitemap entry provider function
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const pageProvider = createSitemapProvider(
187
+ * contentfulPageSitemapEntries,
188
+ * { priority: 0.8, changeFrequency: 'weekly' }
189
+ * );
190
+ *
191
+ * const { data: entries } = await getAllSitemapEntries(context, config, {
192
+ * providers: [pageProvider, articleProvider],
193
+ * });
194
+ * ```
195
+ */
196
+ export function createSitemapProvider(fetcher, sitemapConfig) {
197
+ return (context, config, options) => fetcher(context, config, sitemapConfig, options);
198
+ }
199
+ //# sourceMappingURL=sitemap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/api/sitemap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { IBaseTag } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ export interface TagFetchOptions extends FetchOptions {
5
+ customType?: string;
6
+ }
7
+ /**
8
+ * Fetches a tag from Contentful by slug
9
+ *
10
+ * @param context - Converter context
11
+ * @param config - Contentful configuration
12
+ * @param slug - Tag slug to fetch
13
+ * @param options - Fetch options (locale, preview, caching, etc.)
14
+ * @returns Promise resolving to IBaseTag or null if not found
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const tag = await contentfulTagRest(
19
+ * context,
20
+ * {
21
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
22
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
23
+ * },
24
+ * 'my-tag',
25
+ * {
26
+ * locale: 'en-US',
27
+ * cache: {
28
+ * tags: ['my-tag'],
29
+ * revalidate: 3600
30
+ * },
31
+ * customType: 'topics' // Optional custom type
32
+ * }
33
+ * );
34
+ * ```
35
+ */
36
+ export declare function contentfulTagRest(context: BaseConverterContext, config: ContentfulConfig, slug: string, options: TagFetchOptions): Promise<CmsResponse<IBaseTag | null>>;
37
+ //# sourceMappingURL=tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/api/tag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAK3D,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,uBAAuB,CAAC;AAGpF,OAAO,KAAK,EAAY,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKtF,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CA2HvC"}
@@ -0,0 +1,131 @@
1
+ import { getContentfulClient } from '../client';
2
+ import { processIconsForSprite } from '../converters/iconCollector';
3
+ import { getCacheTags } from '../revalidation/utils';
4
+ import { withRetry } from '../utils';
5
+ import { convertAllAssets, convertAllIncludes, convertAllRawAssets } from './helpers';
6
+ /**
7
+ * Fetches a tag from Contentful by slug
8
+ *
9
+ * @param context - Converter context
10
+ * @param config - Contentful configuration
11
+ * @param slug - Tag slug to fetch
12
+ * @param options - Fetch options (locale, preview, caching, etc.)
13
+ * @returns Promise resolving to IBaseTag or null if not found
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const tag = await contentfulTagRest(
18
+ * context,
19
+ * {
20
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
21
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
22
+ * },
23
+ * 'my-tag',
24
+ * {
25
+ * locale: 'en-US',
26
+ * cache: {
27
+ * tags: ['my-tag'],
28
+ * revalidate: 3600
29
+ * },
30
+ * customType: 'topics' // Optional custom type
31
+ * }
32
+ * );
33
+ * ```
34
+ */
35
+ export async function contentfulTagRest(context, config, slug, options) {
36
+ const client = getContentfulClient(config, options.preview);
37
+ // Set cache tags for this request
38
+ const tagCacheTags = getCacheTags('tag', slug, options?.preview);
39
+ const customTypeCacheTags = options?.customType
40
+ ? getCacheTags('customType', options.customType, options?.preview)
41
+ : [];
42
+ const requestOptions = {
43
+ ...options,
44
+ next: {
45
+ ...options?.next,
46
+ tags: [...tagCacheTags, ...customTypeCacheTags],
47
+ },
48
+ };
49
+ const fetchFn = async () => {
50
+ const tagPromise = client.getEntries({
51
+ content_type: 'tag',
52
+ 'fields.slug': slug,
53
+ include: 10,
54
+ locale: options?.locale,
55
+ limit: 1,
56
+ }, requestOptions);
57
+ const customTypePromise = options?.customType
58
+ ? client.getEntries({
59
+ content_type: 'customType',
60
+ 'fields.slug': options.customType,
61
+ include: 10,
62
+ locale: options?.locale,
63
+ limit: 1,
64
+ }, requestOptions)
65
+ : Promise.resolve(null);
66
+ const [tagResponse, customTypeResponse] = await Promise.all([tagPromise, customTypePromise]);
67
+ const tagEntry = tagResponse.items[0];
68
+ if (!tagEntry || !tagEntry.fields) {
69
+ return { data: null, errors: [] };
70
+ }
71
+ const customTypeEntry = customTypeResponse?.items[0];
72
+ try {
73
+ const assets = convertAllAssets(tagResponse, context);
74
+ const rawAssets = convertAllRawAssets(tagResponse);
75
+ const includes = convertAllIncludes(tagResponse);
76
+ if (customTypeResponse) {
77
+ const customAssets = convertAllAssets(customTypeResponse, context);
78
+ const customRawAssets = convertAllRawAssets(customTypeResponse);
79
+ const customIncludes = convertAllIncludes(customTypeResponse);
80
+ for (const [key, value] of customAssets)
81
+ assets.set(key, value);
82
+ for (const [key, value] of customRawAssets)
83
+ rawAssets.set(key, value);
84
+ for (const [key, value] of customIncludes)
85
+ includes.set(key, value);
86
+ }
87
+ const fullContext = {
88
+ ...context,
89
+ includes,
90
+ assets,
91
+ rawAssets,
92
+ errors: [],
93
+ };
94
+ const converted = context.tagResolver(fullContext, tagEntry, customTypeEntry);
95
+ // Process icons if the result has an icons field
96
+ if (converted?.icons && converted.icons.length > 0) {
97
+ const processedIcons = await processIconsForSprite(converted.icons);
98
+ converted.icons = processedIcons.length > 0 ? processedIcons : undefined;
99
+ }
100
+ // Log errors in production
101
+ if (fullContext.errors.length > 0 &&
102
+ typeof process !== 'undefined' &&
103
+ process.env?.NODE_ENV === 'production') {
104
+ console.error(`CMS conversion errors for tag:`, {
105
+ entryId: tagEntry.sys.id,
106
+ slug,
107
+ errors: fullContext.errors,
108
+ });
109
+ }
110
+ return { data: converted, errors: fullContext.errors };
111
+ }
112
+ catch (error) {
113
+ const entryId = tagEntry?.sys.id || 'unknown';
114
+ const entryType = tagEntry?.sys.contentType?.sys?.id;
115
+ const errorMessage = error instanceof Error ? error.message : 'Unknown conversion error';
116
+ const cmsError = {
117
+ entryId,
118
+ entryType,
119
+ message: errorMessage,
120
+ error,
121
+ };
122
+ return { data: null, errors: [cmsError] };
123
+ }
124
+ };
125
+ // Apply retry logic if configured
126
+ if (options?.retry) {
127
+ return await withRetry(fetchFn, options.retry);
128
+ }
129
+ return await fetchFn();
130
+ }
131
+ //# sourceMappingURL=tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/api/tag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { INavigation, ISvgImage, ITyped } from '@se-studio/core-data-types';
2
+ import type { BaseConverterContext } from '../converters/helpers';
3
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
4
+ /**
5
+ * Fetched template data structure
6
+ * Extends the resolved template with id and label for direct fetching
7
+ */
8
+ export interface IFetchedTemplate {
9
+ id: string;
10
+ cmsLabel: string;
11
+ preContent: ReadonlyArray<ITyped>;
12
+ postContent: ReadonlyArray<ITyped>;
13
+ menu?: INavigation;
14
+ footer?: INavigation;
15
+ backgroundColour?: string;
16
+ textColour?: string;
17
+ stickyNav: boolean;
18
+ icons?: ReadonlyArray<ISvgImage>;
19
+ }
20
+ /**
21
+ * Fetches a template from Contentful by cmsLabel
22
+ *
23
+ * @param context - Converter context
24
+ * @param config - Contentful configuration
25
+ * @param cmsLabel - Template cmsLabel to fetch (e.g., '404')
26
+ * @param options - Fetch options (locale, preview, caching, etc.)
27
+ * @returns Promise resolving to IFetchedTemplate or null if not found
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const template = await contentfulTemplateRest(
32
+ * context,
33
+ * {
34
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
35
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
36
+ * },
37
+ * '404',
38
+ * {
39
+ * locale: 'en-US',
40
+ * cache: {
41
+ * tags: ['template#404'],
42
+ * revalidate: 3600
43
+ * }
44
+ * }
45
+ * );
46
+ * ```
47
+ */
48
+ export declare function contentfulTemplateRest(context: BaseConverterContext, config: ContentfulConfig, cmsLabel: string, options: FetchOptions): Promise<CmsResponse<IFetchedTemplate | null>>;
49
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGjF,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,uBAAuB,CAAC;AAIpF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI5E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAClC;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAc/C"}
@@ -0,0 +1,88 @@
1
+ import { collectIconsFromContent, collectIconsFromNavigation } from '../converters/iconCollector';
2
+ import { resolveNavigation } from '../converters/navigationItem';
3
+ import { resolvePageContent } from '../converters/resolver';
4
+ import { fetchSingleEntity } from './helpers';
5
+ /**
6
+ * Converts a template entry to IFetchedTemplate
7
+ */
8
+ function templateConverter(context, entry) {
9
+ const { fields, sys } = entry;
10
+ const id = sys.id;
11
+ // Resolve content arrays
12
+ const preContent = fields.preContent
13
+ ?.map((content) => resolvePageContent(context, id, content))
14
+ .filter((item) => item !== null) ?? [];
15
+ const postContent = fields.postContent
16
+ ?.map((content) => resolvePageContent(context, id, content))
17
+ .filter((item) => item !== null) ?? [];
18
+ // Resolve navigation entries
19
+ const menu = fields.menu ? resolveNavigation(context, fields.menu) : undefined;
20
+ const footer = fields.footer ? resolveNavigation(context, fields.footer) : undefined;
21
+ // Check for sticky nav flag
22
+ const stickyNav = fields.flags?.includes('Sticky nav') ?? false;
23
+ // Collect all SVG icons from template content and navigation
24
+ const contentIcons = collectIconsFromContent([...preContent, ...postContent]);
25
+ const menuIcons = collectIconsFromNavigation(menu);
26
+ const footerIcons = collectIconsFromNavigation(footer);
27
+ // Merge and deduplicate icons by ID
28
+ const allIcons = [...contentIcons, ...menuIcons, ...footerIcons];
29
+ const seenIconIds = new Set();
30
+ const icons = allIcons.filter((icon) => {
31
+ if (seenIconIds.has(icon.id)) {
32
+ return false;
33
+ }
34
+ seenIconIds.add(icon.id);
35
+ return true;
36
+ });
37
+ return {
38
+ id,
39
+ cmsLabel: fields.cmsLabel,
40
+ preContent,
41
+ postContent,
42
+ menu,
43
+ footer,
44
+ backgroundColour: fields.backgroundColour,
45
+ textColour: fields.textColour,
46
+ stickyNav,
47
+ icons: icons.length > 0 ? icons : undefined,
48
+ };
49
+ }
50
+ /**
51
+ * Fetches a template from Contentful by cmsLabel
52
+ *
53
+ * @param context - Converter context
54
+ * @param config - Contentful configuration
55
+ * @param cmsLabel - Template cmsLabel to fetch (e.g., '404')
56
+ * @param options - Fetch options (locale, preview, caching, etc.)
57
+ * @returns Promise resolving to IFetchedTemplate or null if not found
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const template = await contentfulTemplateRest(
62
+ * context,
63
+ * {
64
+ * spaceId: process.env.CONTENTFUL_SPACE_ID!,
65
+ * accessToken: process.env.CONTENTFUL_ACCESS_TOKEN!,
66
+ * },
67
+ * '404',
68
+ * {
69
+ * locale: 'en-US',
70
+ * cache: {
71
+ * tags: ['template#404'],
72
+ * revalidate: 3600
73
+ * }
74
+ * }
75
+ * );
76
+ * ```
77
+ */
78
+ export async function contentfulTemplateRest(context, config, cmsLabel, options) {
79
+ return fetchSingleEntity(context, config, {
80
+ contentType: 'template',
81
+ cacheTagType: 'template',
82
+ cacheTagIdentifier: cmsLabel,
83
+ query: { 'fields.cmsLabel': cmsLabel },
84
+ resolver: (ctx, entry) => templateConverter(ctx, entry),
85
+ errorLogContext: { cmsLabel },
86
+ }, options);
87
+ }
88
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/api/template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import type { Document } from '@contentful/rich-text-types';
2
+ import type { IBaseArticle, IBaseArticleType, IBasePage, IBaseTag, IInternalLink, INavigation, INavigationItem, IVisual } from '@se-studio/core-data-types';
3
+ import type { Entry, EntrySkeletonType } from 'contentful';
4
+ import type { BaseConverterContext, ConverterContext } from '../converters/helpers';
5
+ import type { IContentfulPerson } from '../converters/person';
6
+ import type { CmsResponse, ContentfulConfig, FetchOptions } from '../types';
7
+ export type DefaultChainModifier = 'WITHOUT_LINK_RESOLUTION';
8
+ export interface IContentfulRichText {
9
+ json: Document;
10
+ customStyles?: ReadonlyArray<string> | null;
11
+ }
12
+ /**
13
+ * Change frequency hints for sitemap entries.
14
+ * These are hints to search engine crawlers about how often content changes.
15
+ */
16
+ export type SitemapChangeFrequency = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
17
+ /**
18
+ * A single sitemap entry representing a URL to be indexed.
19
+ * Compatible with Next.js MetadataRoute.Sitemap format.
20
+ */
21
+ export interface ISitemapEntry {
22
+ /** Full URL path (from href) */
23
+ url: string;
24
+ /** Last modified date from Contentful sys.updatedAt */
25
+ lastModified?: Date;
26
+ /** Change frequency hint for crawlers */
27
+ changeFrequency?: SitemapChangeFrequency;
28
+ /** Priority hint (0.0-1.0) */
29
+ priority?: number;
30
+ }
31
+ /**
32
+ * Configuration for sitemap entries of a specific content type.
33
+ * Allows setting default priority and change frequency for all entries of that type.
34
+ */
35
+ export interface SitemapContentTypeConfig {
36
+ /** Default priority for this content type (0.0-1.0) */
37
+ priority?: number;
38
+ /** Default change frequency for this content type */
39
+ changeFrequency?: SitemapChangeFrequency;
40
+ }
41
+ /**
42
+ * Provider function type for fetching sitemap entries.
43
+ * Projects can implement custom providers for additional content types.
44
+ */
45
+ export type SitemapEntryProvider = (context: BaseConverterContext, config: ContentfulConfig, options: FetchOptions) => Promise<CmsResponse<ISitemapEntry[]>>;
46
+ /**
47
+ * Configuration for collecting sitemap entries from multiple sources.
48
+ */
49
+ export interface SitemapConfig {
50
+ /** Array of provider functions that fetch sitemap entries */
51
+ providers: SitemapEntryProvider[];
52
+ }
53
+ /**
54
+ * Options for filtering related articles
55
+ */
56
+ export interface RelatedArticlesOptions {
57
+ /** Articles to exclude from results */
58
+ excludeArticleIds?: string[];
59
+ /** Filter to articles matching any of these article types */
60
+ articleTypeIds?: string[];
61
+ /** Filter/rank by tags - articles with matching tags are ranked higher */
62
+ tagIds?: string[];
63
+ /** Filter/rank by authors - articles with matching authors are ranked higher */
64
+ authorIds?: string[];
65
+ /** Only include articles published before this date */
66
+ before?: Date;
67
+ /** Only include articles published after this date */
68
+ after?: Date;
69
+ /** Maximum number of results to return (undefined = return all matches) */
70
+ count?: number;
71
+ }
72
+ export type ResolvedEntry = IBasePage | IBaseArticle | IBaseArticleType | IBaseTag | INavigation | INavigationItem | IInternalLink | unknown | IContentfulPerson;
73
+ export type PossibleResolvedEntry = {
74
+ id: string;
75
+ type: string;
76
+ entry: Entry<EntrySkeletonType, DefaultChainModifier, string>;
77
+ resolved?: ResolvedEntry;
78
+ };
79
+ export type Converter<TEntry extends EntrySkeletonType, TResult> = (entry: Entry<TEntry, DefaultChainModifier, string>, includes: Map<string, PossibleResolvedEntry>, assets: Map<string, IVisual>) => TResult;
80
+ /**
81
+ * Configuration for fetching a single entity from Contentful.
82
+ * Used by the generic fetchSingleEntity helper.
83
+ */
84
+ export interface SingleEntityFetchConfig<TEntry extends EntrySkeletonType, TResult> {
85
+ /** Contentful content type ID */
86
+ contentType: string;
87
+ /** Cache tag type for revalidation */
88
+ cacheTagType: string;
89
+ /** Cache tag identifier (usually slug) */
90
+ cacheTagIdentifier: string;
91
+ /** Query parameters for getEntries */
92
+ query: Record<string, unknown>;
93
+ /** Resolver function to convert the entry */
94
+ resolver: (context: ConverterContext, entry: Entry<TEntry, DefaultChainModifier, string>) => TResult;
95
+ /** Context for error logging */
96
+ errorLogContext: Record<string, unknown>;
97
+ }
98
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}