@prezly/theme-kit-nextjs 3.3.1 → 4.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/README.md +5 -4
  2. package/build/adapter-nextjs/api-handlers/fetchGalleries.js +1 -1
  3. package/build/adapter-nextjs/api-handlers/fetchGalleries.js.map +1 -1
  4. package/build/adapter-nextjs/api-handlers/fetchStories.js +1 -1
  5. package/build/adapter-nextjs/api-handlers/fetchStories.js.map +1 -1
  6. package/build/adapter-nextjs/getNewsroomServerSideProps.d.ts +1 -1
  7. package/build/adapter-nextjs/getNewsroomServerSideProps.js +1 -1
  8. package/build/adapter-nextjs/getNewsroomServerSideProps.js.map +1 -1
  9. package/build/adapter-nextjs/getNewsroomStaticProps.d.ts +1 -1
  10. package/build/adapter-nextjs/getNewsroomStaticProps.js +1 -1
  11. package/build/adapter-nextjs/getNewsroomStaticProps.js.map +1 -1
  12. package/build/adapter-nextjs/page-props/category.js +6 -7
  13. package/build/adapter-nextjs/page-props/category.js.map +1 -1
  14. package/build/adapter-nextjs/page-props/gallery.js +3 -3
  15. package/build/adapter-nextjs/page-props/gallery.js.map +1 -1
  16. package/build/adapter-nextjs/page-props/galleryAlbum.js +1 -1
  17. package/build/adapter-nextjs/page-props/galleryAlbum.js.map +1 -1
  18. package/build/adapter-nextjs/page-props/home.js +3 -3
  19. package/build/adapter-nextjs/page-props/home.js.map +1 -1
  20. package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js +1 -1
  21. package/build/adapter-nextjs/page-props/sitemap/getServerSideProps.js.map +1 -1
  22. package/build/adapter-nextjs/page-props/story.js +3 -3
  23. package/build/adapter-nextjs/page-props/story.js.map +1 -1
  24. package/build/adapter-nextjs/page-props/storyPreview.js +1 -1
  25. package/build/adapter-nextjs/page-props/storyPreview.js.map +1 -1
  26. package/build/adapter-nextjs/processRequest.js +3 -2
  27. package/build/adapter-nextjs/processRequest.js.map +1 -1
  28. package/build/components-nextjs/PageSeo/PageSeo.js +8 -10
  29. package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
  30. package/build/components-nextjs/PageSeo/index.d.ts +0 -1
  31. package/build/components-nextjs/PageSeo/index.js +0 -15
  32. package/build/components-nextjs/PageSeo/index.js.map +1 -1
  33. package/build/components-nextjs/PageSeo/lib/index.d.ts +1 -0
  34. package/build/components-nextjs/PageSeo/lib/index.js +6 -0
  35. package/build/components-nextjs/PageSeo/lib/index.js.map +1 -0
  36. package/build/components-nextjs/document.js +4 -4
  37. package/build/components-nextjs/document.js.map +1 -1
  38. package/build/data-fetching/NextPrezlyApi.d.ts +8 -0
  39. package/build/data-fetching/NextPrezlyApi.js +40 -0
  40. package/build/data-fetching/NextPrezlyApi.js.map +1 -0
  41. package/build/data-fetching/getNextPrezlyApi.d.ts +4 -0
  42. package/build/data-fetching/getNextPrezlyApi.js +21 -0
  43. package/build/data-fetching/getNextPrezlyApi.js.map +1 -0
  44. package/build/data-fetching/index.d.ts +1 -3
  45. package/build/data-fetching/index.js +3 -17
  46. package/build/data-fetching/index.js.map +1 -1
  47. package/build/index.d.ts +0 -2
  48. package/build/index.js +0 -2
  49. package/build/index.js.map +1 -1
  50. package/build/infinite-loading/useInfiniteStoriesLoading.js.map +1 -1
  51. package/build/intl/index.d.ts +0 -3
  52. package/build/intl/index.js +0 -8
  53. package/build/intl/index.js.map +1 -1
  54. package/build/intl/languages.d.ts +1 -44
  55. package/build/intl/languages.js +8 -151
  56. package/build/intl/languages.js.map +1 -1
  57. package/build/intl/locale.d.ts +0 -11
  58. package/build/intl/locale.js +3 -93
  59. package/build/intl/locale.js.map +1 -1
  60. package/build/newsroom-context/context.d.ts +2 -2
  61. package/build/newsroom-context/context.js +2 -2
  62. package/build/newsroom-context/context.js.map +1 -1
  63. package/build/newsroom-context/hooks/useAlgoliaSettings.d.ts +1 -1
  64. package/build/newsroom-context/hooks/useCurrentLocale.d.ts +1 -1
  65. package/build/newsroom-context/hooks/useGetLinkLocaleSlug.d.ts +1 -1
  66. package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js +3 -3
  67. package/build/newsroom-context/hooks/useGetLinkLocaleSlug.js.map +1 -1
  68. package/build/newsroom-context/hooks/useGetTranslationUrl.d.ts +1 -1
  69. package/build/newsroom-context/hooks/useGetTranslationUrl.js +3 -3
  70. package/build/newsroom-context/hooks/useGetTranslationUrl.js.map +1 -1
  71. package/build/newsroom-context/index.d.ts +1 -1
  72. package/build/newsroom-context/index.js.map +1 -1
  73. package/build/types.d.ts +0 -29
  74. package/package.json +18 -33
  75. package/src/__mocks__/languages.ts +1 -1
  76. package/src/adapter-nextjs/api-handlers/fetchGalleries.ts +2 -2
  77. package/src/adapter-nextjs/api-handlers/fetchStories.ts +2 -2
  78. package/src/adapter-nextjs/getNewsroomServerSideProps.ts +2 -2
  79. package/src/adapter-nextjs/getNewsroomStaticProps.ts +2 -2
  80. package/src/adapter-nextjs/page-props/category.ts +3 -4
  81. package/src/adapter-nextjs/page-props/gallery.ts +1 -1
  82. package/src/adapter-nextjs/page-props/galleryAlbum.ts +2 -2
  83. package/src/adapter-nextjs/page-props/home.ts +1 -1
  84. package/src/adapter-nextjs/page-props/sitemap/getServerSideProps.ts +2 -2
  85. package/src/adapter-nextjs/page-props/story.ts +4 -4
  86. package/src/adapter-nextjs/page-props/storyPreview.ts +2 -2
  87. package/src/adapter-nextjs/processRequest.ts +2 -1
  88. package/src/components-nextjs/PageSeo/PageSeo.tsx +7 -5
  89. package/src/components-nextjs/PageSeo/index.ts +0 -1
  90. package/src/components-nextjs/PageSeo/lib/index.ts +1 -0
  91. package/src/components-nextjs/document.tsx +1 -1
  92. package/src/data-fetching/NextPrezlyApi.ts +57 -0
  93. package/src/data-fetching/{api/getPrezlyApi.ts → getNextPrezlyApi.ts} +5 -6
  94. package/src/data-fetching/index.ts +1 -3
  95. package/src/index.ts +0 -2
  96. package/src/infinite-loading/useInfiniteStoriesLoading.ts +1 -1
  97. package/src/intl/index.ts +0 -3
  98. package/src/intl/languages.test.ts +1 -196
  99. package/src/intl/languages.ts +8 -201
  100. package/src/intl/locale.test.ts +1 -54
  101. package/src/intl/locale.ts +1 -106
  102. package/src/newsroom-context/context.tsx +2 -3
  103. package/src/newsroom-context/hooks/useGetLinkLocaleSlug.ts +1 -2
  104. package/src/newsroom-context/hooks/useGetTranslationUrl.ts +2 -3
  105. package/src/newsroom-context/index.ts +1 -1
  106. package/src/types.ts +0 -35
  107. package/build/components-nextjs/PageSeo/lib/types.d.ts +0 -4
  108. package/build/components-nextjs/PageSeo/lib/types.js +0 -3
  109. package/build/components-nextjs/PageSeo/lib/types.js.map +0 -1
  110. package/build/data-fetching/api/PrezlyApi.d.ts +0 -57
  111. package/build/data-fetching/api/PrezlyApi.js +0 -200
  112. package/build/data-fetching/api/PrezlyApi.js.map +0 -1
  113. package/build/data-fetching/api/getPrezlyApi.d.ts +0 -4
  114. package/build/data-fetching/api/getPrezlyApi.js +0 -21
  115. package/build/data-fetching/api/getPrezlyApi.js.map +0 -1
  116. package/build/data-fetching/api/index.d.ts +0 -1
  117. package/build/data-fetching/api/index.js +0 -18
  118. package/build/data-fetching/api/index.js.map +0 -1
  119. package/build/data-fetching/api/lib.d.ts +0 -11
  120. package/build/data-fetching/api/lib.js +0 -20
  121. package/build/data-fetching/api/lib.js.map +0 -1
  122. package/build/data-fetching/api/queries.d.ts +0 -46
  123. package/build/data-fetching/api/queries.js +0 -56
  124. package/build/data-fetching/api/queries.js.map +0 -1
  125. package/build/data-fetching/lib/getAlgoliaSettings.d.ts +0 -4
  126. package/build/data-fetching/lib/getAlgoliaSettings.js +0 -22
  127. package/build/data-fetching/lib/getAlgoliaSettings.js.map +0 -1
  128. package/build/data-fetching/lib/getEnvVariables.d.ts +0 -4
  129. package/build/data-fetching/lib/getEnvVariables.js +0 -44
  130. package/build/data-fetching/lib/getEnvVariables.js.map +0 -1
  131. package/build/data-fetching/lib/index.d.ts +0 -4
  132. package/build/data-fetching/lib/index.js +0 -12
  133. package/build/data-fetching/lib/index.js.map +0 -1
  134. package/build/data-fetching/lib/isSdkError.d.ts +0 -2
  135. package/build/data-fetching/lib/isSdkError.js +0 -8
  136. package/build/data-fetching/lib/isSdkError.js.map +0 -1
  137. package/build/data-fetching/lib/isUuid.d.ts +0 -1
  138. package/build/data-fetching/lib/isUuid.js +0 -9
  139. package/build/data-fetching/lib/isUuid.js.map +0 -1
  140. package/build/data-fetching/types.d.ts +0 -13
  141. package/build/data-fetching/types.js +0 -3
  142. package/build/data-fetching/types.js.map +0 -1
  143. package/build/intl/getFallbackLocale.d.ts +0 -10
  144. package/build/intl/getFallbackLocale.js +0 -24
  145. package/build/intl/getFallbackLocale.js.map +0 -1
  146. package/build/intl/localeConfig.d.ts +0 -2
  147. package/build/intl/localeConfig.js +0 -20
  148. package/build/intl/localeConfig.js.map +0 -1
  149. package/build/intl/localeList.d.ts +0 -2
  150. package/build/intl/localeList.js +0 -112
  151. package/build/intl/localeList.js.map +0 -1
  152. package/build/intl/localeObject.d.ts +0 -50
  153. package/build/intl/localeObject.js +0 -98
  154. package/build/intl/localeObject.js.map +0 -1
  155. package/build/seo/getAlternateLanguageLinks.d.ts +0 -4
  156. package/build/seo/getAlternateLanguageLinks.js +0 -84
  157. package/build/seo/getAlternateLanguageLinks.js.map +0 -1
  158. package/build/seo/index.d.ts +0 -1
  159. package/build/seo/index.js +0 -18
  160. package/build/seo/index.js.map +0 -1
  161. package/build/seo/utils/bindLanguagesWithLocales.d.ts +0 -11
  162. package/build/seo/utils/bindLanguagesWithLocales.js +0 -23
  163. package/build/seo/utils/bindLanguagesWithLocales.js.map +0 -1
  164. package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
  165. package/build/seo/utils/createAlternateLanguageLink.js +0 -15
  166. package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
  167. package/build/tsconfig.tsbuildinfo +0 -1
  168. package/build/utils/boilerplate.d.ts +0 -4
  169. package/build/utils/boilerplate.js +0 -27
  170. package/build/utils/boilerplate.js.map +0 -1
  171. package/build/utils/constants.d.ts +0 -3
  172. package/build/utils/constants.js +0 -7
  173. package/build/utils/constants.js.map +0 -1
  174. package/build/utils/getAssetsUrl.d.ts +0 -5
  175. package/build/utils/getAssetsUrl.js +0 -13
  176. package/build/utils/getAssetsUrl.js.map +0 -1
  177. package/build/utils/getDataRequestLink.d.ts +0 -3
  178. package/build/utils/getDataRequestLink.js +0 -12
  179. package/build/utils/getDataRequestLink.js.map +0 -1
  180. package/build/utils/getLocalizedCategoryData.d.ts +0 -10
  181. package/build/utils/getLocalizedCategoryData.js +0 -37
  182. package/build/utils/getLocalizedCategoryData.js.map +0 -1
  183. package/build/utils/getNewsroomLogoUrl.d.ts +0 -3
  184. package/build/utils/getNewsroomLogoUrl.js +0 -22
  185. package/build/utils/getNewsroomLogoUrl.js.map +0 -1
  186. package/build/utils/getPrivacyPortalUrl.d.ts +0 -8
  187. package/build/utils/getPrivacyPortalUrl.js +0 -13
  188. package/build/utils/getPrivacyPortalUrl.js.map +0 -1
  189. package/build/utils/getStoryPublicationDate.d.ts +0 -3
  190. package/build/utils/getStoryPublicationDate.js +0 -14
  191. package/build/utils/getStoryPublicationDate.js.map +0 -1
  192. package/build/utils/getUploadcareGroupUrl.d.ts +0 -8
  193. package/build/utils/getUploadcareGroupUrl.js +0 -17
  194. package/build/utils/getUploadcareGroupUrl.js.map +0 -1
  195. package/build/utils/index.d.ts +0 -10
  196. package/build/utils/index.js +0 -27
  197. package/build/utils/index.js.map +0 -1
  198. package/build/utils/isEmbargoStory.d.ts +0 -6
  199. package/build/utils/isEmbargoStory.js +0 -8
  200. package/build/utils/isEmbargoStory.js.map +0 -1
  201. package/src/@types/global.d.ts +0 -7
  202. package/src/__mocks__/story.ts +0 -359
  203. package/src/components-nextjs/PageSeo/lib/types.ts +0 -4
  204. package/src/data-fetching/api/PrezlyApi.ts +0 -312
  205. package/src/data-fetching/api/index.ts +0 -1
  206. package/src/data-fetching/api/lib.ts +0 -24
  207. package/src/data-fetching/api/queries.ts +0 -59
  208. package/src/data-fetching/lib/getAlgoliaSettings.ts +0 -29
  209. package/src/data-fetching/lib/getEnvVariables.ts +0 -46
  210. package/src/data-fetching/lib/index.ts +0 -4
  211. package/src/data-fetching/lib/isSdkError.ts +0 -5
  212. package/src/data-fetching/lib/isUuid.ts +0 -5
  213. package/src/data-fetching/types.ts +0 -14
  214. package/src/intl/getFallbackLocale.ts +0 -29
  215. package/src/intl/localeConfig.js +0 -23
  216. package/src/intl/localeList.js +0 -110
  217. package/src/intl/localeObject.test.ts +0 -81
  218. package/src/intl/localeObject.ts +0 -107
  219. package/src/seo/getAlternateLanguageLinks.test.ts +0 -164
  220. package/src/seo/getAlternateLanguageLinks.ts +0 -115
  221. package/src/seo/index.ts +0 -1
  222. package/src/seo/utils/bindLanguagesWithLocales.ts +0 -31
  223. package/src/seo/utils/createAlternateLanguageLink.ts +0 -17
  224. package/src/utils/boilerplate.ts +0 -30
  225. package/src/utils/constants.ts +0 -3
  226. package/src/utils/getAssetsUrl.test.ts +0 -9
  227. package/src/utils/getAssetsUrl.ts +0 -9
  228. package/src/utils/getDataRequestLink.ts +0 -14
  229. package/src/utils/getLocalizedCategoryData.ts +0 -47
  230. package/src/utils/getNewsroomLogoUrl.ts +0 -22
  231. package/src/utils/getPrivacyPortalUrl.ts +0 -25
  232. package/src/utils/getStoryPublicationDate.tsx +0 -15
  233. package/src/utils/getUploadcareGroupUrl.ts +0 -13
  234. package/src/utils/index.ts +0 -10
  235. package/src/utils/isEmbargoStory.ts +0 -10
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPrivacyPortalUrl = void 0;
4
- function getPrivacyPortalUrl(newsroom, locale, options) {
5
- const { email, action = 'subscribe' } = options || {};
6
- const url = new URL(`/${locale.toUrlSlug()}/newsroom/${newsroom.uuid}/${action}`, 'https://privacy.prezly.com');
7
- if (email) {
8
- url.searchParams.append('email', email);
9
- }
10
- return url.toString();
11
- }
12
- exports.getPrivacyPortalUrl = getPrivacyPortalUrl;
13
- //# sourceMappingURL=getPrivacyPortalUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPrivacyPortalUrl.js","sourceRoot":"","sources":["../../src/utils/getPrivacyPortalUrl.ts"],"names":[],"mappings":";;;AASA,SAAgB,mBAAmB,CAC/B,QAAkB,EAClB,MAAoB,EACpB,OAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEtD,MAAM,GAAG,GAAG,IAAI,GAAG,CACf,IAAI,MAAM,CAAC,SAAS,EAAE,aAAa,QAAQ,CAAC,IAAI,IAAI,MAAM,EAAE,EAC5D,4BAA4B,CAC/B,CAAC;IACF,IAAI,KAAK,EAAE;QACP,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC3C;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAfD,kDAeC"}
@@ -1,3 +0,0 @@
1
- import type { Story } from '@prezly/sdk';
2
- import type { AlgoliaStory } from '../types';
3
- export declare function getStoryPublicationDate(story: Story | AlgoliaStory): Date | null;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStoryPublicationDate = void 0;
4
- function getStoryPublicationDate(story) {
5
- const { published_at } = story;
6
- if (!published_at) {
7
- return null;
8
- }
9
- return typeof published_at === 'string'
10
- ? new Date(published_at)
11
- : new Date(published_at * 1000);
12
- }
13
- exports.getStoryPublicationDate = getStoryPublicationDate;
14
- //# sourceMappingURL=getStoryPublicationDate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getStoryPublicationDate.js","sourceRoot":"","sources":["../../src/utils/getStoryPublicationDate.tsx"],"names":[],"mappings":";;;AAIA,SAAgB,uBAAuB,CAAC,KAA2B;IAC/D,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE/B,IAAI,CAAC,YAAY,EAAE;QACf,OAAO,IAAI,CAAC;KACf;IAED,OAAO,OAAO,YAAY,KAAK,QAAQ;QACnC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACxB,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AACxC,CAAC;AAVD,0DAUC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * This method constructs a URL to download all images in the Gallery as a single archive.
3
- *
4
- * @param uuid Gallery UUID
5
- * @param title Filename for the saved archive. Usually it is the Gallery title.
6
- * @returns URL to an archive containing all of the images in the Gallery.
7
- */
8
- export declare function getUploadcareGroupUrl(uuid: string, title: string): string;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUploadcareGroupUrl = void 0;
4
- const constants_1 = require("./constants");
5
- /**
6
- * This method constructs a URL to download all images in the Gallery as a single archive.
7
- *
8
- * @param uuid Gallery UUID
9
- * @param title Filename for the saved archive. Usually it is the Gallery title.
10
- * @returns URL to an archive containing all of the images in the Gallery.
11
- */
12
- function getUploadcareGroupUrl(uuid, title) {
13
- // UploadCare doesn't like slashes in filenames even in encoded form.
14
- return `${constants_1.ASSETS_URL}/${uuid}/archive/zip/${encodeURIComponent(title.replace(/\//g, '_'))}.zip`;
15
- }
16
- exports.getUploadcareGroupUrl = getUploadcareGroupUrl;
17
- //# sourceMappingURL=getUploadcareGroupUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUploadcareGroupUrl.js","sourceRoot":"","sources":["../../src/utils/getUploadcareGroupUrl.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAY,EAAE,KAAa;IAC7D,qEAAqE;IACrE,OAAO,GAAG,sBAAU,IAAI,IAAI,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AACpG,CAAC;AAHD,sDAGC"}
@@ -1,10 +0,0 @@
1
- export * from './boilerplate';
2
- export * from './constants';
3
- export * from './getAssetsUrl';
4
- export * from './getDataRequestLink';
5
- export * from './getLocalizedCategoryData';
6
- export * from './getNewsroomLogoUrl';
7
- export * from './getPrivacyPortalUrl';
8
- export * from './getStoryPublicationDate';
9
- export * from './getUploadcareGroupUrl';
10
- export * from './isEmbargoStory';
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./boilerplate"), exports);
18
- __exportStar(require("./constants"), exports);
19
- __exportStar(require("./getAssetsUrl"), exports);
20
- __exportStar(require("./getDataRequestLink"), exports);
21
- __exportStar(require("./getLocalizedCategoryData"), exports);
22
- __exportStar(require("./getNewsroomLogoUrl"), exports);
23
- __exportStar(require("./getPrivacyPortalUrl"), exports);
24
- __exportStar(require("./getStoryPublicationDate"), exports);
25
- __exportStar(require("./getUploadcareGroupUrl"), exports);
26
- __exportStar(require("./isEmbargoStory"), exports);
27
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,iDAA+B;AAC/B,uDAAqC;AACrC,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAC1C,0DAAwC;AACxC,mDAAiC"}
@@ -1,6 +0,0 @@
1
- import type { Story } from '@prezly/sdk';
2
- export type EmbargoStory = Omit<Story, 'is_embargo' | 'published_at'> & {
3
- is_embargo: true;
4
- published_at: string;
5
- };
6
- export declare function isEmbargoStory(story: Story): story is EmbargoStory;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEmbargoStory = void 0;
4
- function isEmbargoStory(story) {
5
- return story.is_embargo && Boolean(story.published_at);
6
- }
7
- exports.isEmbargoStory = isEmbargoStory;
8
- //# sourceMappingURL=isEmbargoStory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isEmbargoStory.js","sourceRoot":"","sources":["../../src/utils/isEmbargoStory.ts"],"names":[],"mappings":";;;AAOA,SAAgB,cAAc,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC;AAFD,wCAEC"}
@@ -1,7 +0,0 @@
1
- import type { PrezlyEnv } from '../data-fetching';
2
-
3
- declare global {
4
- export namespace NodeJS {
5
- export interface ProcessEnv extends PrezlyEnv {}
6
- }
7
- }
@@ -1,359 +0,0 @@
1
- import type { ExtendedStory } from '@prezly/sdk';
2
- import { Newsroom, Story, Culture, User } from '@prezly/sdk';
3
-
4
- export const STORY: ExtendedStory = {
5
- id: 380023,
6
- attached_gallery_content: null,
7
- is_pinned: false,
8
- is_shared_to_prpro: false,
9
- pinned_by: null,
10
- seo_settings: {
11
- canonical_url: null,
12
- default_meta_description: null,
13
- default_meta_title: null,
14
- meta_description: null,
15
- meta_title: null,
16
- },
17
- uuid: '65018f5b-b313-453f-b23b-9e739c6a8591',
18
- thumbnail_url:
19
- 'https://avatars-cdn.prezly.com/story/6337/380023/c3a3d56ee09ce808dbb1bc2f06d16b68bdaeefbf731d8a080b7e4d5e68fb3e94?t=1640077510&v=1',
20
- title: 'Take a breath',
21
- subtitle:
22
- "Going through your socials, you'll likely come across some guru preaching that this quarantine is the ideal moment to pause your busy life and just chill. While it's up to you to decide what's best, few can argue that you shouldn't take every opportunity to stick your head out and suck in a lungful of that fresh(er) air.",
23
- intro: '',
24
- summary:
25
- "Air quality has been an important topic this millennium. There were those who didn't believe we had an impact on it, but these past weeks have proved otherwise.",
26
- culture: {
27
- code: 'en',
28
- locale: 'en',
29
- name: 'English (Global)',
30
- native_name: 'English (Global)',
31
- direction: Culture.TextDirection.LTR,
32
- language_code: 'en',
33
- },
34
- slug: 'take-a-breath',
35
- format_version: 3,
36
- language: 'EN',
37
- lifecycle_status: Story.LifecycleStatus.PUBLISHED,
38
- publication_status: Story.PublicationStatus.PUBLISHED,
39
- visibility: Story.Visibility.PUBLIC,
40
- is_archived: false,
41
- is_finalized: true,
42
- is_published: true,
43
- is_draft: false,
44
- is_embargo: false,
45
- is_private: false,
46
- is_scheduled: false,
47
- is_analytics_available: true,
48
- is_sharable: true,
49
- created_at: '2020-04-28T12:03:46+00:00',
50
- updated_at: '2021-12-21T09:05:10+00:00',
51
- published_at: '2020-04-30T12:56:00+00:00',
52
- scheduled_at: null,
53
- author: {
54
- id: 7680,
55
- username: 'marthe@prezly.com',
56
- email: 'marthe@prezly.com',
57
- display_name: 'Marthe Anthonis',
58
- first_name: 'Marthe',
59
- last_name: 'Anthonis',
60
- avatar_url:
61
- 'https://avatars-cdn.prezly.com/user/7680/6260be53465a846a511c44edd8f594f38235d782f3fa515ab968ad2f947a236c?v=1&c=cc6e751bdb46638cd948d0d812149ce391e45b7cd2b5d80a94de575ba0ce65d0',
62
- use_case_answer: User.UseCaseAnswer.UNKNOWN,
63
- sign_in_flow: User.SignInFlow.PASSWORD,
64
- created_at: '2019-02-06T09:54:34+00:00',
65
- is_terms_of_service_accepted: false,
66
- last_seen_at: '2021-12-03T09:15:39+00:00',
67
- locked_until: null,
68
- },
69
- newsroom: {
70
- uuid: '578e78e9-9a5b-44ad-bda2-5214895ee036',
71
- id: 12698,
72
- name: 'The Good News Room',
73
- display_name: 'The Good News Room',
74
- subdomain: 'the-good-news-room',
75
- thumbnail_url:
76
- 'https://avatars-cdn.prezly.com/newsroom/12698/e4939974b7781d4c61e282713116690387e9b7b1f6302478b13b68e18e0d3055?t=1648556918&v=1',
77
- timezone: 'europe/london',
78
- status: Newsroom.Status.ACTIVE,
79
- is_active: true,
80
- is_archived: false,
81
- is_online: true,
82
- is_offline: false,
83
- is_multilingual: true,
84
- is_indexable: true,
85
- url: 'https://the-good-news-room.prezly.com/',
86
- links: {
87
- media_gallery_api: 'https://api.prezly.com/v1/rooms/12698/media',
88
- analytics_and_visibility_settings:
89
- 'https://rock.prezly.com/pressroom/the-good-news-room/ga',
90
- categories_management:
91
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/categories',
92
- company_info_settings:
93
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
94
- contacts_management:
95
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/contacts',
96
- domain_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/domain',
97
- edit: 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
98
- gallery_management: 'https://rock.prezly.com/pressroom/the-good-news-room/gallery',
99
- hub_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/hub',
100
- languages:
101
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/languages',
102
- look_and_feel_settings:
103
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/themes',
104
- manual_subscription_management: '',
105
- privacy_settings:
106
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/privacy',
107
- widget_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/widget',
108
- },
109
- time_format: 'HH:mm',
110
- date_format: 'D/M/YY',
111
- },
112
- oembed: {
113
- type: 'link',
114
- url: 'https://the-good-news-room.prezly.com/take-a-breath',
115
- title: 'Take a breath',
116
- description:
117
- "Going through your socials, you'll likely come across some guru preaching that this quarantine is the ideal moment to pause your busy life and just chill. While it's up to you to decide what's best, few can argue that you shouldn't take every opportunity to stick your head out and suck in a lungful of that fresh(er) air.",
118
- thumbnail_url:
119
- 'https://cdn.uc.assets.prezly.com/e9dc3b29-3d91-46e4-b9a0-695f8517bbf0/-/preview/600x600/',
120
- thumbnail_width: 1024,
121
- thumbnail_height: 482,
122
- version: '1.0',
123
- },
124
- links: {
125
- api: 'https://api.prezly.com/v1/stories/380023',
126
- preview: '',
127
- edit: 'https://rock.prezly.com/stories/380023',
128
- sharing: 'https://rock.prezly.com/stories/380023/sharing',
129
- duplicate: 'https://rock.prezly.com/pressrelease/duplicate/380023',
130
- translate: 'https://rock.prezly.com/pressrelease/translate/380023',
131
- analytics: 'https://rock.prezly.com/stories/380023/report',
132
- publication_api: 'https://api.prezly.com/v1/stories/380023/publication',
133
- create_campaign: '',
134
- reports_api: 'https://api.prezly.com/v1/stories/380023/reports',
135
- short: 'http://prez.ly/zRAb',
136
- newsroom_view: 'https://the-good-news-room.prezly.com/take-a-breath',
137
- newsroom_preview:
138
- 'https://the-good-news-room.prezly.com/s/65018f5b-b313-453f-b23b-9e739c6a8591',
139
- },
140
- categories: [],
141
- translations: [
142
- {
143
- id: 380028,
144
- uuid: 'db07a149-ce6a-4446-a86e-689440fae2ac',
145
- slug: 'adem',
146
- thumbnail_url:
147
- 'https://avatars-cdn.prezly.com/story/6337/380028/6a9248cfbf88bbea5eb9ca1b3907a9bf163e4a41a34598ad38a3d1150c648b79?t=1640077505&v=1',
148
- title: 'Adem!',
149
- culture: {
150
- code: 'nl_BE',
151
- locale: 'nl_BE',
152
- name: 'Dutch (Belgium)',
153
- native_name: 'Nederlands (België)',
154
- direction: Culture.TextDirection.LTR,
155
- language_code: 'nl',
156
- },
157
- lifecycle_status: Story.LifecycleStatus.PUBLISHED,
158
- publication_status: Story.PublicationStatus.PUBLISHED,
159
- visibility: Story.Visibility.PUBLIC,
160
- created_at: '2020-05-05T10:07:11+00:00',
161
- updated_at: '2021-12-21T09:05:05+00:00',
162
- published_at: '2020-05-05T10:21:00+00:00',
163
- scheduled_at: null,
164
- author: {
165
- id: 7680,
166
- username: 'marthe@prezly.com',
167
- email: 'marthe@prezly.com',
168
- display_name: 'Marthe Anthonis',
169
- first_name: 'Marthe',
170
- last_name: 'Anthonis',
171
- avatar_url:
172
- 'https://avatars-cdn.prezly.com/user/7680/6260be53465a846a511c44edd8f594f38235d782f3fa515ab968ad2f947a236c?v=1&c=cc6e751bdb46638cd948d0d812149ce391e45b7cd2b5d80a94de575ba0ce65d0',
173
- use_case_answer: User.UseCaseAnswer.UNKNOWN,
174
- sign_in_flow: User.SignInFlow.PASSWORD,
175
- created_at: '2019-02-06T09:54:34+00:00',
176
- is_terms_of_service_accepted: false,
177
- last_seen_at: '2021-12-03T09:15:39+00:00',
178
- locked_until: null,
179
- },
180
- newsroom: {
181
- uuid: '578e78e9-9a5b-44ad-bda2-5214895ee036',
182
- id: 12698,
183
- name: 'The Good News Room',
184
- display_name: 'The Good News Room',
185
- subdomain: 'the-good-news-room',
186
- thumbnail_url:
187
- 'https://avatars-cdn.prezly.com/newsroom/12698/e4939974b7781d4c61e282713116690387e9b7b1f6302478b13b68e18e0d3055?t=1648556918&v=1',
188
- timezone: 'europe/london',
189
- status: Newsroom.Status.ACTIVE,
190
- is_active: true,
191
- is_archived: false,
192
- is_online: true,
193
- is_offline: false,
194
- is_multilingual: true,
195
- is_indexable: true,
196
- url: 'https://the-good-news-room.prezly.com/',
197
- links: {
198
- media_gallery_api: 'https://api.prezly.com/v1/rooms/12698/media',
199
- analytics_and_visibility_settings:
200
- 'https://rock.prezly.com/pressroom/the-good-news-room/ga',
201
- categories_management:
202
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/categories',
203
- company_info_settings:
204
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
205
- contacts_management:
206
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/contacts',
207
- domain_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/domain',
208
- edit: 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
209
- gallery_management:
210
- 'https://rock.prezly.com/pressroom/the-good-news-room/gallery',
211
- hub_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/hub',
212
- languages:
213
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/languages',
214
- look_and_feel_settings:
215
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/themes',
216
- manual_subscription_management: '',
217
- privacy_settings:
218
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/privacy',
219
- widget_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/widget',
220
- },
221
- time_format: 'HH:mm',
222
- date_format: 'D/M/YY',
223
- },
224
- oembed: {
225
- type: 'link',
226
- url: 'https://the-good-news-room.prezly.com/adem',
227
- title: 'Adem!',
228
- description:
229
- 'Scrollen door je sociale media, levert deze dagen al snel een of andere post van een zelfgenaamde guru op die predikt dat dit een ideale moment is om je drukke leven even op pauze te zetten. Het is helemaal aan jou om te beslissen wat nu het beste is voor jou. Maar weinig mensen kunnen ontkennen dat nu een ideale moment is om je hoofd dor het raam te steken en grote gulpen fris(sere) lucht te nemen.',
230
- thumbnail_url:
231
- 'https://cdn.uc.assets.prezly.com/e9dc3b29-3d91-46e4-b9a0-695f8517bbf0/-/preview/600x600/',
232
- thumbnail_width: 1024,
233
- thumbnail_height: 482,
234
- version: '1.0',
235
- },
236
- links: {
237
- newsroom_view: 'https://the-good-news-room.prezly.com/adem',
238
- edit: 'https://rock.prezly.com/stories/380028',
239
- report: 'https://rock.prezly.com/stories/380028/report',
240
- },
241
- },
242
- {
243
- id: 492826,
244
- uuid: 'f6b9daa7-86fb-44f2-b3c3-7fe264b401d3',
245
- slug: 'translation-adem',
246
- thumbnail_url:
247
- 'https://avatars-cdn.prezly.com/story/6337/492826/65269a918884e706d75759f309085f3552a7a3848f5df74e3a11bed8a5649ac3?t=1656401349&v=1',
248
- title: '[translation] Adem!',
249
- culture: {
250
- code: 'nl_NL',
251
- locale: 'nl_NL',
252
- name: 'Dutch (Netherlands)',
253
- native_name: 'Nederlands (Nederland)',
254
- direction: Culture.TextDirection.LTR,
255
- language_code: 'nl',
256
- },
257
- lifecycle_status: Story.LifecycleStatus.PUBLISHED,
258
- publication_status: Story.PublicationStatus.PUBLISHED,
259
- visibility: Story.Visibility.PUBLIC,
260
- created_at: '2022-06-28T07:29:03+00:00',
261
- updated_at: '2022-06-28T07:29:09+00:00',
262
- published_at: '2022-06-28T07:29:09+00:00',
263
- scheduled_at: null,
264
- author: {
265
- id: 10324,
266
- username: 'oleg@prezly.com',
267
- email: 'oleg@prezly.com',
268
- display_name: 'Oleg Semyonov',
269
- first_name: 'Oleg',
270
- last_name: 'Semyonov',
271
- avatar_url:
272
- 'https://avatars-cdn.prezly.com/user/10324/85fc2201624703503c24a3a97cc7e1776015e9f6ffe2ad96016650add0b9ab5f?v=1&c=add8f27908ec1f74f1a7c0530a74d88027eea08d05cac4300713d1c07fed0e1b',
273
- use_case_answer: User.UseCaseAnswer.UNKNOWN,
274
- sign_in_flow: User.SignInFlow.PASSWORD,
275
- created_at: '2021-02-25T13:30:04+00:00',
276
- is_terms_of_service_accepted: true,
277
- last_seen_at: '2022-06-28T09:06:32+00:00',
278
- locked_until: null,
279
- },
280
- newsroom: {
281
- uuid: '578e78e9-9a5b-44ad-bda2-5214895ee036',
282
- id: 12698,
283
- name: 'The Good News Room',
284
- display_name: 'The Good News Room',
285
- subdomain: 'the-good-news-room',
286
- thumbnail_url:
287
- 'https://avatars-cdn.prezly.com/newsroom/12698/e4939974b7781d4c61e282713116690387e9b7b1f6302478b13b68e18e0d3055?t=1648556918&v=1',
288
- timezone: 'europe/london',
289
- status: Newsroom.Status.ACTIVE,
290
- is_active: true,
291
- is_archived: false,
292
- is_online: true,
293
- is_offline: false,
294
- is_multilingual: true,
295
- is_indexable: true,
296
- url: 'https://the-good-news-room.prezly.com/',
297
- links: {
298
- media_gallery_api: 'https://api.prezly.com/v1/rooms/12698/media',
299
- analytics_and_visibility_settings:
300
- 'https://rock.prezly.com/pressroom/the-good-news-room/ga',
301
- categories_management:
302
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/categories',
303
- company_info_settings:
304
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
305
- contacts_management:
306
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/contacts',
307
- domain_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/domain',
308
- edit: 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/information',
309
- gallery_management:
310
- 'https://rock.prezly.com/pressroom/the-good-news-room/gallery',
311
- hub_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/hub',
312
- languages:
313
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/languages',
314
- look_and_feel_settings:
315
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/themes',
316
- manual_subscription_management: '',
317
- privacy_settings:
318
- 'https://rock.prezly.com/settings/newsrooms/578e78e9-9a5b-44ad-bda2-5214895ee036/privacy',
319
- widget_settings: 'https://rock.prezly.com/pressroom/the-good-news-room/widget',
320
- },
321
- time_format: 'HH:mm',
322
- date_format: 'D/M/YY',
323
- },
324
- oembed: {
325
- type: 'link',
326
- url: 'https://the-good-news-room.prezly.com/translation-adem',
327
- title: '[translation] Adem!',
328
- description:
329
- 'Scrollen door je sociale media, levert deze dagen al snel een of andere post van een zelfgenaamde guru op die predikt dat dit een ideale moment is om je drukke leven even op pauze te zetten. Het is helemaal aan jou om te beslissen wat nu het beste is voor jou. Maar weinig mensen kunnen ontkennen dat nu een ideale moment is om je hoofd dor het raam te steken en grote gulpen fris(sere) lucht te nemen.',
330
- thumbnail_url:
331
- 'https://cdn.uc.assets.prezly.com/e9dc3b29-3d91-46e4-b9a0-695f8517bbf0/-/preview/600x600/',
332
- thumbnail_width: 1024,
333
- thumbnail_height: 482,
334
- version: '1.0',
335
- },
336
- links: {
337
- newsroom_view: 'https://the-good-news-room.prezly.com/translation-adem',
338
- edit: 'https://rock.prezly.com/stories/492826',
339
- report: 'https://rock.prezly.com/stories/492826/report',
340
- },
341
- },
342
- ],
343
- coverage_number: 0,
344
- last_coverage_at: null,
345
- content:
346
- '{"type":"document","children":[{"type":"paragraph","children":[{"text":"Air quality has been an important topic this millennium. There were those who didn\'t believe we had an impact on it, but these past weeks have proved otherwise. "}]},{"type":"block-quote","children":[{"text":"\\"Air quality is an important factor in determining our lifespan.\\""}]},{"type":"paragraph","children":[{"text":"In "},{"text":"India","bold":true},{"text":", the most air polluted country in the world, the difference is immense. Below, you can see a picture – the left side was taken November 3, 2019, the right side March 30, 2020."}]},{"type":"paragraph","children":[{"text":"What a difference."}]},{"type":"image-block","href":"","file":{"version":2,"uuid":"4fd7edc3-0e7b-4de5-8d88-6fc384cdabd4","filename":"200401105309-20200401-indian-gate-air-pollution-split-super-tease.jpg","mime_type":"image/jpeg","size":73660,"original_width":1100,"original_height":619,"effects":[]},"layout":"contained","align":"center","new_tab":true,"width":"100%","children":[{"text":"Source: https://www.theguardian.com/environment/2020/apr/11/positively-alpine-disbelief-air-pollution-falls-lockdown-coronavirus"}]},{"type":"paragraph","children":[{"text":"Also in India, people are sharing incredible pictures of their view of the Himalayas. For the first time in 30 years, people can see the mountains with crystal clarity from a distance of 200km."}]},{"type":"embed","children":[{"text":""}],"uuid":"539e96a5-f721-4629-aa7c-d9f9946ede28","url":"https://twitter.com/parasrishi/status/1246376229902536704","oembed":{"url":"https://twitter.com/parasrishi/status/1246376229902536704","html":"<div class=\\"iframely-embed\\" style=\\"max-width: 550px;\\"><div class=\\"iframely-responsive\\" style=\\"padding-bottom: 56.2493%;\\"><a href=\\"https://twitter.com/parasrishi/status/1246376229902536704\\" data-iframely-url=\\"//cdn.iframe.ly/api/iframe?url=https%3A%2F%2Ftwitter.com%2Fparasrishi%2Fstatus%2F1246376229902536704&amp;key=8fe6cdec03482ac31f27a6ae8ea2fb3f\\"></a></div></div><script async src=\\"//cdn.iframe.ly/embed.js\\" charset=\\"utf-8\\"></script>","type":"rich","title":"Paras पारस ਰਿਸ਼ੀ on Twitter","author":"Paras पारस ਰਿਸ਼ੀ","options":{"_theme":{"value":"","values":{"dark":"Use dark theme"}},"_hide_media":{"label":"Hide photos, videos, and cards","value":false}},"version":"1.0","cache_age":86400,"author_url":"https://twitter.com/parasrishi","description":"The mighty Himalayas are now visible from Pathankot, Punjab. Thanks to super visibility and no pollution. What an incredible sight! 😌 pic.twitter.com/dY4AI9ZvXa— Paras पारस ਰਿਸ਼ੀ (@parasrishi) April 4, 2020\\n\\n","provider_name":"Twitter","thumbnail_url":"https://pbs.twimg.com/media/EUwEkVvUMAAbdmp.jpg:large","screenshot_url":"https://avatars-cdn.prezly.com/embed/aHR0cHM6Ly90d2l0dGVyLmNvbS9wYXJhc3Jpc2hpL3N0YXR1cy8xMjQ2Mzc2MjI5OTAyNTM2NzA0/9b51f0059a1ab9aaa9cf7c096572d112766eab778ba0f603a66a92e86ce892f7?v=1583930760","thumbnail_width":960,"thumbnail_height":540}},{"type":"paragraph","children":[{"text":""}]},{"type":"paragraph","children":[{"text":"And the effect of the quarantine on air pollution isn\'t only visible in India. Across the world, countries are seeing the benefits in air quality:"}]},{"type":"gallery","children":[{"text":""}],"images":[{"caption":"Italy","file":{"version":2,"uuid":"d6b4a0cd-3dfb-4bcf-9488-06d5516875b3","filename":"Italy.jpg","mime_type":"image/jpeg","size":88682,"original_width":1050,"original_height":450,"effects":[]}},{"caption":"China","file":{"version":2,"uuid":"43645b68-e8f6-407e-9981-04c9d7fdd069","filename":"China.webp","mime_type":"image/webp","size":97888,"original_width":1443,"original_height":811,"effects":[]}},{"caption":"Spain","file":{"version":2,"uuid":"88057ea6-4afd-41d3-98db-5eecd82033ed","filename":"Spain.jpg","mime_type":"image/jpeg","size":87588,"original_width":1080,"original_height":405,"effects":[]}},{"caption":"France","file":{"version":2,"uuid":"dfa3b432-a375-4afd-983f-444540845f56","filename":"France.jpg","mime_type":"image/jpeg","size":141548,"original_width":1440,"original_height":810,"effects":[]}}],"uuid":"b3b49cb3-2495-4206-9219-afcf56a049b8","layout":"full-width","padding":"M","thumbnail_size":"XS"},{"type":"paragraph","children":[{"text":""}]},{"type":"heading-one","children":[{"text":"Exact numbers"}]},{"type":"paragraph","children":[{"text":"As everyone can see, air quality has improved. However, experts find it difficult to express the improvement in numbers. You may have seen several headlines which stated \'40% less air pollution\', this isn\'t completely accurate. Overall, the amount of nitrogen dioxide has fallen but the amount of fine dust is still (too) high."}]},{"type":"block-quote","children":[{"text":"\\"Maybe, when the crisis is over, we\'ll work more remotely, which is good news for our air quality.\\""}]}],"version":"0.50"}',
347
- thumbnail_image:
348
- '{"version":2,"uuid":"e9dc3b29-3d91-46e4-b9a0-695f8517bbf0","filename":"air.jpg","mime_type":"image/jpeg","size":50225,"original_width":1024,"original_height":482,"effects":[]}',
349
- header_image:
350
- '{"size":442609,"uuid":"e8605194-da87-45f4-a241-ecacc103f6b2","effects":["\\/crop\\/670x280\\/0,25\\/","\\/preview\\/"],"version":2,"filename":"header.png","mime_type":"image\\/png","original_width":670,"original_height":447}',
351
- preview_image:
352
- '{"size":50225,"uuid":"e9dc3b29-3d91-46e4-b9a0-695f8517bbf0","effects":[],"version":2,"filename":"air.jpg","mime_type":"image\\/jpeg","original_width":1024,"original_height":482}',
353
- tag_names: [],
354
- social_text: 'Take a breath',
355
- social_image: null,
356
- referenced_entities: {
357
- stories: {},
358
- },
359
- };
@@ -1,4 +0,0 @@
1
- export type AlternateLanguageLink = {
2
- href: string;
3
- hrefLang: string;
4
- };