@prezly/theme-kit-core 7.1.0 → 8.0.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 (248) hide show
  1. package/build/boilerplate.cjs +17 -0
  2. package/build/boilerplate.d.ts +8 -0
  3. package/build/boilerplate.mjs +9 -0
  4. package/build/constants.cjs +11 -0
  5. package/build/{utils/constants.d.ts → constants.d.ts} +2 -1
  6. package/build/constants.mjs +5 -0
  7. package/build/content-delivery/ContentDelivery.cjs +348 -0
  8. package/build/content-delivery/ContentDelivery.d.ts +8 -4
  9. package/build/content-delivery/ContentDelivery.mjs +342 -0
  10. package/build/content-delivery/cache/index.cjs +35 -0
  11. package/build/content-delivery/cache/index.d.ts +3 -0
  12. package/build/content-delivery/cache/index.mjs +3 -0
  13. package/build/content-delivery/cache/memory.cjs +64 -0
  14. package/build/content-delivery/cache/memory.d.ts +2 -0
  15. package/build/content-delivery/cache/memory.mjs +58 -0
  16. package/build/content-delivery/cache/stacked.cjs +32 -0
  17. package/build/content-delivery/cache/stacked.d.ts +2 -0
  18. package/build/content-delivery/cache/stacked.mjs +26 -0
  19. package/build/content-delivery/cache/type.cjs +1 -0
  20. package/build/content-delivery/cache/type.d.ts +8 -0
  21. package/build/content-delivery/cache/type.mjs +1 -0
  22. package/build/content-delivery/index.cjs +27 -0
  23. package/build/content-delivery/index.d.ts +2 -1
  24. package/build/content-delivery/index.mjs +2 -0
  25. package/build/environment.cjs +42 -0
  26. package/build/environment.d.ts +2 -0
  27. package/build/environment.mjs +36 -0
  28. package/build/galleries.cjs +38 -0
  29. package/build/galleries.d.ts +11 -0
  30. package/build/galleries.mjs +30 -0
  31. package/build/http/HttpClient.cjs +66 -0
  32. package/build/http/HttpClient.d.ts +20 -0
  33. package/build/http/HttpClient.mjs +59 -0
  34. package/build/http/index.cjs +10 -0
  35. package/build/http/index.d.ts +1 -0
  36. package/build/http/index.mjs +2 -0
  37. package/build/index.cjs +88 -0
  38. package/build/index.d.ts +15 -4
  39. package/build/index.mjs +26 -0
  40. package/build/intl/getLanguageDisplayName.cjs +37 -0
  41. package/build/intl/getLanguageDisplayName.d.ts +20 -0
  42. package/build/intl/getLanguageDisplayName.mjs +32 -0
  43. package/build/intl/getLanguageDisplayName.test.cjs +46 -0
  44. package/build/intl/getLanguageDisplayName.test.mjs +44 -0
  45. package/build/intl/index.cjs +12 -0
  46. package/build/intl/index.d.ts +1 -5
  47. package/build/intl/index.mjs +1 -0
  48. package/build/metadata/getAlternateLanguageLinks.cjs +76 -0
  49. package/build/{seo → metadata}/getAlternateLanguageLinks.d.ts +2 -2
  50. package/build/metadata/getAlternateLanguageLinks.mjs +72 -0
  51. package/build/metadata/getAlternateLanguageLinks.test.cjs +198 -0
  52. package/build/metadata/getAlternateLanguageLinks.test.mjs +196 -0
  53. package/build/metadata/index.cjs +12 -0
  54. package/build/metadata/index.d.ts +2 -0
  55. package/build/metadata/index.mjs +1 -0
  56. package/build/metadata/types.cjs +1 -0
  57. package/build/metadata/types.d.ts +6 -0
  58. package/build/metadata/types.mjs +1 -0
  59. package/build/newsrooms.cjs +36 -0
  60. package/build/newsrooms.d.ts +5 -0
  61. package/build/newsrooms.mjs +28 -0
  62. package/build/privacy-portal.cjs +28 -0
  63. package/build/privacy-portal.d.ts +9 -0
  64. package/build/privacy-portal.mjs +21 -0
  65. package/build/resolvable.cjs +38 -0
  66. package/build/resolvable.d.ts +71 -0
  67. package/build/resolvable.mjs +32 -0
  68. package/build/routing/Route.cjs +46 -0
  69. package/build/routing/Route.d.ts +37 -0
  70. package/build/routing/Route.mjs +40 -0
  71. package/build/routing/Router.cjs +51 -0
  72. package/build/routing/Router.d.ts +23 -0
  73. package/build/routing/Router.mjs +45 -0
  74. package/build/routing/Routing.cjs +24 -0
  75. package/build/routing/Routing.d.ts +1 -0
  76. package/build/routing/Routing.mjs +2 -0
  77. package/build/routing/UrlGenerator.cjs +13 -0
  78. package/build/routing/UrlGenerator.d.ts +39 -0
  79. package/build/routing/UrlGenerator.mjs +7 -0
  80. package/build/routing/index.cjs +24 -0
  81. package/build/routing/index.d.ts +4 -0
  82. package/build/routing/index.mjs +4 -0
  83. package/build/routing/types.cjs +1 -0
  84. package/build/routing/types.d.ts +14 -0
  85. package/build/routing/types.mjs +1 -0
  86. package/build/routing/utils/generateUrlFromPattern.cjs +52 -0
  87. package/build/routing/utils/generateUrlFromPattern.d.ts +12 -0
  88. package/build/routing/utils/generateUrlFromPattern.mjs +47 -0
  89. package/build/routing/utils/generateUrlFromPattern.test.cjs +44 -0
  90. package/build/routing/utils/generateUrlFromPattern.test.mjs +42 -0
  91. package/build/routing/utils/getShortestLocaleSlug.cjs +60 -0
  92. package/build/routing/utils/getShortestLocaleSlug.d.ts +11 -0
  93. package/build/routing/utils/getShortestLocaleSlug.mjs +53 -0
  94. package/build/routing/utils/getShortestLocaleSlug.test.cjs +37 -0
  95. package/build/routing/utils/getShortestLocaleSlug.test.mjs +35 -0
  96. package/build/routing/utils/index.cjs +40 -0
  97. package/build/routing/utils/index.d.ts +5 -0
  98. package/build/routing/utils/index.mjs +5 -0
  99. package/build/routing/utils/isNumberCode.cjs +12 -0
  100. package/build/routing/utils/isNumberCode.d.ts +4 -0
  101. package/build/routing/utils/isNumberCode.mjs +6 -0
  102. package/build/routing/utils/matchLocaleSlug.cjs +41 -0
  103. package/build/routing/utils/matchLocaleSlug.d.ts +15 -0
  104. package/build/routing/utils/matchLocaleSlug.mjs +34 -0
  105. package/build/routing/utils/matchLocaleSlug.test.cjs +43 -0
  106. package/build/routing/utils/matchLocaleSlug.test.mjs +40 -0
  107. package/build/routing/utils/normalizeUrl.cjs +9 -0
  108. package/build/routing/utils/normalizeUrl.d.ts +1 -0
  109. package/build/routing/utils/normalizeUrl.mjs +3 -0
  110. package/build/search.cjs +1 -0
  111. package/build/{types.d.ts → search.d.ts} +3 -3
  112. package/build/search.mjs +1 -0
  113. package/build/sitemap/build.cjs +33 -0
  114. package/build/sitemap/build.d.ts +6 -0
  115. package/build/sitemap/build.mjs +27 -0
  116. package/build/sitemap/generate.cjs +192 -0
  117. package/build/sitemap/generate.d.ts +37 -0
  118. package/build/sitemap/generate.mjs +183 -0
  119. package/build/sitemap/index.cjs +38 -0
  120. package/build/sitemap/index.d.ts +4 -0
  121. package/build/sitemap/index.mjs +3 -0
  122. package/build/sitemap/stringify.cjs +24 -0
  123. package/build/sitemap/stringify.d.ts +2 -0
  124. package/build/sitemap/stringify.mjs +18 -0
  125. package/build/sitemap/types.cjs +1 -0
  126. package/build/sitemap/types.d.ts +67 -0
  127. package/build/sitemap/types.mjs +1 -0
  128. package/build/uploads.cjs +14 -0
  129. package/build/{utils/getAssetsUrl.d.ts → uploads.d.ts} +1 -1
  130. package/build/uploads.mjs +8 -0
  131. package/build/uploads.test.cjs +10 -0
  132. package/build/uploads.test.mjs +8 -0
  133. package/package.json +23 -26
  134. package/build/content-delivery/ContentDelivery.js +0 -238
  135. package/build/content-delivery/ContentDelivery.js.map +0 -1
  136. package/build/content-delivery/index.js +0 -28
  137. package/build/content-delivery/index.js.map +0 -1
  138. package/build/data-fetching/api/index.d.ts +0 -1
  139. package/build/data-fetching/api/index.js +0 -6
  140. package/build/data-fetching/api/index.js.map +0 -1
  141. package/build/data-fetching/api/initContentDeliveryClient.d.ts +0 -4
  142. package/build/data-fetching/api/initContentDeliveryClient.js +0 -25
  143. package/build/data-fetching/api/initContentDeliveryClient.js.map +0 -1
  144. package/build/data-fetching/index.d.ts +0 -3
  145. package/build/data-fetching/index.js +0 -20
  146. package/build/data-fetching/index.js.map +0 -1
  147. package/build/data-fetching/lib/getAlgoliaSettings.d.ts +0 -4
  148. package/build/data-fetching/lib/getAlgoliaSettings.js +0 -21
  149. package/build/data-fetching/lib/getAlgoliaSettings.js.map +0 -1
  150. package/build/data-fetching/lib/getEnvVariables.d.ts +0 -4
  151. package/build/data-fetching/lib/getEnvVariables.js +0 -43
  152. package/build/data-fetching/lib/getEnvVariables.js.map +0 -1
  153. package/build/data-fetching/lib/index.d.ts +0 -3
  154. package/build/data-fetching/lib/index.js +0 -10
  155. package/build/data-fetching/lib/index.js.map +0 -1
  156. package/build/data-fetching/lib/isUuid.d.ts +0 -1
  157. package/build/data-fetching/lib/isUuid.js +0 -9
  158. package/build/data-fetching/lib/isUuid.js.map +0 -1
  159. package/build/data-fetching/types.d.ts +0 -13
  160. package/build/data-fetching/types.js +0 -3
  161. package/build/data-fetching/types.js.map +0 -1
  162. package/build/index.js +0 -21
  163. package/build/index.js.map +0 -1
  164. package/build/intl/getFallbackLocale.d.ts +0 -10
  165. package/build/intl/getFallbackLocale.js +0 -24
  166. package/build/intl/getFallbackLocale.js.map +0 -1
  167. package/build/intl/index.js +0 -27
  168. package/build/intl/index.js.map +0 -1
  169. package/build/intl/languages.d.ts +0 -57
  170. package/build/intl/languages.js +0 -191
  171. package/build/intl/languages.js.map +0 -1
  172. package/build/intl/locale.d.ts +0 -11
  173. package/build/intl/locale.js +0 -41
  174. package/build/intl/locale.js.map +0 -1
  175. package/build/intl/localeConfig.d.ts +0 -2
  176. package/build/intl/localeConfig.js +0 -22
  177. package/build/intl/localeConfig.js.map +0 -1
  178. package/build/intl/localeList.d.ts +0 -2
  179. package/build/intl/localeList.js +0 -114
  180. package/build/intl/localeList.js.map +0 -1
  181. package/build/intl/localeObject.d.ts +0 -51
  182. package/build/intl/localeObject.js +0 -98
  183. package/build/intl/localeObject.js.map +0 -1
  184. package/build/seo/getAlternateLanguageLinks.js +0 -85
  185. package/build/seo/getAlternateLanguageLinks.js.map +0 -1
  186. package/build/seo/index.d.ts +0 -2
  187. package/build/seo/index.js +0 -19
  188. package/build/seo/index.js.map +0 -1
  189. package/build/seo/types.d.ts +0 -4
  190. package/build/seo/types.js +0 -3
  191. package/build/seo/types.js.map +0 -1
  192. package/build/seo/utils/bindLanguagesWithLocales.d.ts +0 -11
  193. package/build/seo/utils/bindLanguagesWithLocales.js +0 -23
  194. package/build/seo/utils/bindLanguagesWithLocales.js.map +0 -1
  195. package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
  196. package/build/seo/utils/createAlternateLanguageLink.js +0 -15
  197. package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
  198. package/build/seo/utils/index.d.ts +0 -2
  199. package/build/seo/utils/index.js +0 -8
  200. package/build/seo/utils/index.js.map +0 -1
  201. package/build/server.d.ts +0 -2
  202. package/build/server.js +0 -21
  203. package/build/server.js.map +0 -1
  204. package/build/types.js +0 -3
  205. package/build/types.js.map +0 -1
  206. package/build/utils/assertServerEnv.d.ts +0 -1
  207. package/build/utils/assertServerEnv.js +0 -10
  208. package/build/utils/assertServerEnv.js.map +0 -1
  209. package/build/utils/boilerplate.d.ts +0 -8
  210. package/build/utils/boilerplate.js +0 -27
  211. package/build/utils/boilerplate.js.map +0 -1
  212. package/build/utils/constants.js +0 -8
  213. package/build/utils/constants.js.map +0 -1
  214. package/build/utils/getAssetsUrl.js +0 -13
  215. package/build/utils/getAssetsUrl.js.map +0 -1
  216. package/build/utils/getDataRequestLink.d.ts +0 -3
  217. package/build/utils/getDataRequestLink.js +0 -12
  218. package/build/utils/getDataRequestLink.js.map +0 -1
  219. package/build/utils/getGalleryThumbnail.d.ts +0 -2
  220. package/build/utils/getGalleryThumbnail.js +0 -15
  221. package/build/utils/getGalleryThumbnail.js.map +0 -1
  222. package/build/utils/getLocalizedCategoryData.d.ts +0 -12
  223. package/build/utils/getLocalizedCategoryData.js +0 -34
  224. package/build/utils/getLocalizedCategoryData.js.map +0 -1
  225. package/build/utils/getNewsroomLogoUrl.d.ts +0 -5
  226. package/build/utils/getNewsroomLogoUrl.js +0 -30
  227. package/build/utils/getNewsroomLogoUrl.js.map +0 -1
  228. package/build/utils/getPrivacyPortalUrl.d.ts +0 -8
  229. package/build/utils/getPrivacyPortalUrl.js +0 -13
  230. package/build/utils/getPrivacyPortalUrl.js.map +0 -1
  231. package/build/utils/getStoryPublicationDate.d.ts +0 -3
  232. package/build/utils/getStoryPublicationDate.js +0 -14
  233. package/build/utils/getStoryPublicationDate.js.map +0 -1
  234. package/build/utils/getUploadcareGroupUrl.d.ts +0 -8
  235. package/build/utils/getUploadcareGroupUrl.js +0 -17
  236. package/build/utils/getUploadcareGroupUrl.js.map +0 -1
  237. package/build/utils/index.d.ts +0 -14
  238. package/build/utils/index.js +0 -31
  239. package/build/utils/index.js.map +0 -1
  240. package/build/utils/isEmbargoStory.d.ts +0 -6
  241. package/build/utils/isEmbargoStory.js +0 -9
  242. package/build/utils/isEmbargoStory.js.map +0 -1
  243. package/build/utils/isGalleryEmpty.d.ts +0 -2
  244. package/build/utils/isGalleryEmpty.js +0 -8
  245. package/build/utils/isGalleryEmpty.js.map +0 -1
  246. package/build/utils/sdkHelpers.d.ts +0 -32
  247. package/build/utils/sdkHelpers.js +0 -42
  248. package/build/utils/sdkHelpers.js.map +0 -1
@@ -2,7 +2,7 @@ import type { CultureRef, Story } from '@prezly/sdk';
2
2
  /**
3
3
  * Categories in Algolia index are stored in a simplified format, with `slug` and `name` properties already saved in the correct locale for the story search result.
4
4
  */
5
- export interface AlgoliaCategoryRef {
5
+ export interface IndexedCategoryRef {
6
6
  id: number;
7
7
  name: string;
8
8
  slug: string;
@@ -10,10 +10,10 @@ export interface AlgoliaCategoryRef {
10
10
  /**
11
11
  * Stories in Algolia index are stored in a simplified format, with only minimal subset of fields.
12
12
  */
13
- export type AlgoliaStory = Pick<Story, 'uuid' | 'slug' | 'title' | 'subtitle'> & Pick<Story.ExtraFields, 'thumbnail_image'> & {
13
+ export type IndexedStory = Pick<Story, 'uuid' | 'slug' | 'title' | 'subtitle'> & Pick<Story.ExtraFields, 'thumbnail_image'> & {
14
14
  content_text: string;
15
15
  updated_at: number;
16
16
  published_at: number;
17
17
  culture: Pick<CultureRef, 'code' | 'name' | 'native_name' | 'language_code'>;
18
- categories: AlgoliaCategoryRef[];
18
+ categories: IndexedCategoryRef[];
19
19
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.build = build;
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
+ function build(_x, _x2) {
15
+ return _build.apply(this, arguments);
16
+ }
17
+ function _build() {
18
+ _build = _asyncToGenerator(function* (entries, _ref) {
19
+ var {
20
+ baseUrl
21
+ } = _ref;
22
+ var resolved = yield Array.isArray(entries) ? Promise.all(entries) : Promise.resolve(entries);
23
+ return resolved.flat().map(entry => {
24
+ if (entry.url.startsWith('https://') || entry.url.startsWith('http://') || entry.url.startsWith('//')) {
25
+ return entry;
26
+ }
27
+ return _objectSpread(_objectSpread({}, entry), {}, {
28
+ url: "".concat(baseUrl).concat(entry.url)
29
+ });
30
+ });
31
+ });
32
+ return _build.apply(this, arguments);
33
+ }
@@ -0,0 +1,6 @@
1
+ import type { SitemapFile, SitemapFileEntry } from './types';
2
+ interface Options {
3
+ baseUrl: string;
4
+ }
5
+ export declare function build(entries: SitemapFileEntry[] | Promise<SitemapFileEntry[]> | Promise<SitemapFileEntry[]>[], { baseUrl }: Options): Promise<SitemapFile>;
6
+ export {};
@@ -0,0 +1,27 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
7
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8
+ export function build(_x, _x2) {
9
+ return _build.apply(this, arguments);
10
+ }
11
+ function _build() {
12
+ _build = _asyncToGenerator(function* (entries, _ref) {
13
+ var {
14
+ baseUrl
15
+ } = _ref;
16
+ var resolved = yield Array.isArray(entries) ? Promise.all(entries) : Promise.resolve(entries);
17
+ return resolved.flat().map(entry => {
18
+ if (entry.url.startsWith('https://') || entry.url.startsWith('http://') || entry.url.startsWith('//')) {
19
+ return entry;
20
+ }
21
+ return _objectSpread(_objectSpread({}, entry), {}, {
22
+ url: "".concat(baseUrl).concat(entry.url)
23
+ });
24
+ });
25
+ });
26
+ return _build.apply(this, arguments);
27
+ }
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generate = generate;
7
+ exports.guessChangeFrequency = guessChangeFrequency;
8
+ exports.guessPriority = guessPriority;
9
+ exports.isNonEmptyUrl = isNonEmptyUrl;
10
+ exports.withAlternateLinks = withAlternateLinks;
11
+ var _sdk = require("@prezly/sdk");
12
+ var _themeKitIntl = require("@prezly/theme-kit-intl");
13
+ var _resolvable = require("../resolvable.cjs");
14
+ var _build = require("./build.cjs");
15
+ var _excluded = ["locale"];
16
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
20
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
24
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } /* eslint-disable @typescript-eslint/no-use-before-define */
25
+ function generate(_x, _x2) {
26
+ return _generate.apply(this, arguments);
27
+ }
28
+ function _generate() {
29
+ _generate = _asyncToGenerator(function* (context, options) {
30
+ var [newsroom, locales, categories, stories] = yield _resolvable.AsyncResolvable.resolve(context.newsroom, context.locales, context.categories, context.stories);
31
+ var resolvedContext = {
32
+ newsroom,
33
+ locales,
34
+ categories,
35
+ stories,
36
+ generateUrl: context.generateUrl
37
+ };
38
+ return (0, _build.build)([generateHomepageEntries(resolvedContext, options), generateStoriesEntries(resolvedContext, options), generateCategoriesEntries(resolvedContext, options), generateMediaEntries(resolvedContext, options)], {
39
+ baseUrl: options.baseUrl
40
+ });
41
+ });
42
+ return _generate.apply(this, arguments);
43
+ }
44
+ function generateHomepageEntries(_x3, _x4) {
45
+ return _generateHomepageEntries.apply(this, arguments);
46
+ }
47
+ function _generateHomepageEntries() {
48
+ _generateHomepageEntries = _asyncToGenerator(function* (context, _ref) {
49
+ var {
50
+ priority = guessPriority,
51
+ changeFrequency = guessChangeFrequency
52
+ } = _ref;
53
+ var {
54
+ locales,
55
+ generateUrl
56
+ } = context;
57
+ var entries = locales.map(localeCode => ({
58
+ locale: localeCode,
59
+ url: generateUrl('index', {
60
+ localeCode
61
+ }),
62
+ priority: priority('index', {
63
+ localeCode
64
+ }),
65
+ changeFrequency: changeFrequency('index', {
66
+ localeCode
67
+ })
68
+ })).filter(isNonEmptyUrl);
69
+ return withAlternateLinks(entries);
70
+ });
71
+ return _generateHomepageEntries.apply(this, arguments);
72
+ }
73
+ function generateStoriesEntries(_x5, _x6) {
74
+ return _generateStoriesEntries.apply(this, arguments);
75
+ }
76
+ function _generateStoriesEntries() {
77
+ _generateStoriesEntries = _asyncToGenerator(function* (context, _ref2) {
78
+ var {
79
+ priority = guessPriority,
80
+ changeFrequency = guessChangeFrequency
81
+ } = _ref2;
82
+ var {
83
+ locales,
84
+ stories,
85
+ generateUrl
86
+ } = context;
87
+ var entries = stories.filter(story => locales.includes(story.culture.code)).map(story => {
88
+ var params = _objectSpread(_objectSpread({}, story), {}, {
89
+ localeCode: story.culture.code
90
+ });
91
+ return {
92
+ locale: story.culture.code,
93
+ url: generateUrl('story', params),
94
+ priority: priority('story', params),
95
+ changeFrequency: changeFrequency('story', params)
96
+ };
97
+ }).filter(isNonEmptyUrl);
98
+ return withAlternateLinks(entries);
99
+ });
100
+ return _generateStoriesEntries.apply(this, arguments);
101
+ }
102
+ function generateCategoriesEntries(_x7, _x8) {
103
+ return _generateCategoriesEntries.apply(this, arguments);
104
+ }
105
+ function _generateCategoriesEntries() {
106
+ _generateCategoriesEntries = _asyncToGenerator(function* (context, _ref3) {
107
+ var {
108
+ priority = guessPriority,
109
+ changeFrequency = guessChangeFrequency
110
+ } = _ref3;
111
+ var {
112
+ locales,
113
+ categories,
114
+ generateUrl
115
+ } = context;
116
+ var entries = categories.flatMap(category => _sdk.Category.translations(category).filter(_ref6 => {
117
+ var {
118
+ locale
119
+ } = _ref6;
120
+ return locales.includes(locale);
121
+ }).map(translation => {
122
+ var params = _objectSpread(_objectSpread({}, translation), {}, {
123
+ localeCode: translation.locale
124
+ });
125
+ return {
126
+ locale: translation.locale,
127
+ url: generateUrl('category', params),
128
+ priority: priority('category', params),
129
+ changeFrequency: changeFrequency('category', params)
130
+ };
131
+ })).filter(isNonEmptyUrl);
132
+ return withAlternateLinks(entries);
133
+ });
134
+ return _generateCategoriesEntries.apply(this, arguments);
135
+ }
136
+ function generateMediaEntries(_x9, _x10) {
137
+ return _generateMediaEntries.apply(this, arguments);
138
+ }
139
+ function _generateMediaEntries() {
140
+ _generateMediaEntries = _asyncToGenerator(function* (context, _ref4) {
141
+ var {
142
+ priority = guessPriority,
143
+ changeFrequency = guessChangeFrequency
144
+ } = _ref4;
145
+ var {
146
+ newsroom,
147
+ locales,
148
+ generateUrl
149
+ } = context;
150
+ if (newsroom.public_galleries_number === 0) return [];
151
+ var entries = locales.map(localeCode => ({
152
+ locale: localeCode,
153
+ url: generateUrl('media', {
154
+ localeCode
155
+ }),
156
+ priority: priority('media', {
157
+ localeCode
158
+ }),
159
+ changeFrequency: changeFrequency('media', {
160
+ localeCode
161
+ })
162
+ })).filter(isNonEmptyUrl);
163
+ return withAlternateLinks(entries);
164
+ });
165
+ return _generateMediaEntries.apply(this, arguments);
166
+ }
167
+ function guessChangeFrequency(routeName) {
168
+ if (routeName === 'index') return 'daily';
169
+ return 'weekly';
170
+ }
171
+ function guessPriority(routeName) {
172
+ if (routeName === 'index') return 0.9;
173
+ if (routeName === 'category') return 0.8;
174
+ return 0.7;
175
+ }
176
+ function withAlternateLinks(entries) {
177
+ return entries.map(_ref5 => {
178
+ var {
179
+ locale
180
+ } = _ref5,
181
+ entry = _objectWithoutProperties(_ref5, _excluded);
182
+ return _objectSpread(_objectSpread({}, entry), {}, {
183
+ alternate: entries.filter(alt => alt.locale !== locale).map(alt => ({
184
+ url: alt.url,
185
+ lang: _themeKitIntl.Locale.from(alt.locale).isoCode
186
+ }))
187
+ });
188
+ });
189
+ }
190
+ function isNonEmptyUrl(value) {
191
+ return typeof value.url === 'string';
192
+ }
@@ -0,0 +1,37 @@
1
+ import { Category } from '@prezly/sdk';
2
+ import type { Newsroom, Story } from '@prezly/sdk';
3
+ import { Locale } from '@prezly/theme-kit-intl';
4
+ import { AsyncResolvable } from '../resolvable';
5
+ import type { AppUrlGenerator, ChangeFrequency, ChangeFrequencyFn, Priority, PriorityFn, SitemapFile, SitemapFileEntry } from './types';
6
+ type SitemapFileEntryWithLocale = SitemapFileEntry & {
7
+ locale: Locale.Code;
8
+ };
9
+ export interface Options {
10
+ baseUrl: string;
11
+ changeFrequency?: ChangeFrequencyFn;
12
+ priority?: PriorityFn;
13
+ }
14
+ type Context = {
15
+ locales: Locale.Code[];
16
+ newsroom: Newsroom;
17
+ stories: Story[];
18
+ categories: Category[];
19
+ generateUrl: AppUrlGenerator;
20
+ };
21
+ export type AsyncResolvableContext = {
22
+ locales: AsyncResolvable<Context['locales']>;
23
+ newsroom: AsyncResolvable<Context['newsroom']>;
24
+ stories: AsyncResolvable<Context['stories']>;
25
+ categories: AsyncResolvable<Context['categories']>;
26
+ generateUrl: AppUrlGenerator;
27
+ };
28
+ export declare function generate(context: AsyncResolvableContext, options: Options): Promise<SitemapFile>;
29
+ export declare function guessChangeFrequency(routeName: 'index' | 'category' | 'story' | 'media'): ChangeFrequency;
30
+ export declare function guessPriority(routeName: 'index' | 'category' | 'story' | 'media'): Priority;
31
+ export declare function withAlternateLinks(entries: SitemapFileEntryWithLocale[]): SitemapFileEntry[];
32
+ export declare function isNonEmptyUrl<T extends {
33
+ url?: string | undefined;
34
+ }>(value: T): value is T & {
35
+ url: string;
36
+ };
37
+ export {};
@@ -0,0 +1,183 @@
1
+ var _excluded = ["locale"];
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
11
+ /* eslint-disable @typescript-eslint/no-use-before-define */
12
+ import { Category } from '@prezly/sdk';
13
+ import { Locale } from '@prezly/theme-kit-intl';
14
+ import { AsyncResolvable } from "../resolvable.mjs";
15
+ import { build } from "./build.mjs";
16
+ export function generate(_x, _x2) {
17
+ return _generate.apply(this, arguments);
18
+ }
19
+ function _generate() {
20
+ _generate = _asyncToGenerator(function* (context, options) {
21
+ var [newsroom, locales, categories, stories] = yield AsyncResolvable.resolve(context.newsroom, context.locales, context.categories, context.stories);
22
+ var resolvedContext = {
23
+ newsroom,
24
+ locales,
25
+ categories,
26
+ stories,
27
+ generateUrl: context.generateUrl
28
+ };
29
+ return build([generateHomepageEntries(resolvedContext, options), generateStoriesEntries(resolvedContext, options), generateCategoriesEntries(resolvedContext, options), generateMediaEntries(resolvedContext, options)], {
30
+ baseUrl: options.baseUrl
31
+ });
32
+ });
33
+ return _generate.apply(this, arguments);
34
+ }
35
+ function generateHomepageEntries(_x3, _x4) {
36
+ return _generateHomepageEntries.apply(this, arguments);
37
+ }
38
+ function _generateHomepageEntries() {
39
+ _generateHomepageEntries = _asyncToGenerator(function* (context, _ref) {
40
+ var {
41
+ priority = guessPriority,
42
+ changeFrequency = guessChangeFrequency
43
+ } = _ref;
44
+ var {
45
+ locales,
46
+ generateUrl
47
+ } = context;
48
+ var entries = locales.map(localeCode => ({
49
+ locale: localeCode,
50
+ url: generateUrl('index', {
51
+ localeCode
52
+ }),
53
+ priority: priority('index', {
54
+ localeCode
55
+ }),
56
+ changeFrequency: changeFrequency('index', {
57
+ localeCode
58
+ })
59
+ })).filter(isNonEmptyUrl);
60
+ return withAlternateLinks(entries);
61
+ });
62
+ return _generateHomepageEntries.apply(this, arguments);
63
+ }
64
+ function generateStoriesEntries(_x5, _x6) {
65
+ return _generateStoriesEntries.apply(this, arguments);
66
+ }
67
+ function _generateStoriesEntries() {
68
+ _generateStoriesEntries = _asyncToGenerator(function* (context, _ref2) {
69
+ var {
70
+ priority = guessPriority,
71
+ changeFrequency = guessChangeFrequency
72
+ } = _ref2;
73
+ var {
74
+ locales,
75
+ stories,
76
+ generateUrl
77
+ } = context;
78
+ var entries = stories.filter(story => locales.includes(story.culture.code)).map(story => {
79
+ var params = _objectSpread(_objectSpread({}, story), {}, {
80
+ localeCode: story.culture.code
81
+ });
82
+ return {
83
+ locale: story.culture.code,
84
+ url: generateUrl('story', params),
85
+ priority: priority('story', params),
86
+ changeFrequency: changeFrequency('story', params)
87
+ };
88
+ }).filter(isNonEmptyUrl);
89
+ return withAlternateLinks(entries);
90
+ });
91
+ return _generateStoriesEntries.apply(this, arguments);
92
+ }
93
+ function generateCategoriesEntries(_x7, _x8) {
94
+ return _generateCategoriesEntries.apply(this, arguments);
95
+ }
96
+ function _generateCategoriesEntries() {
97
+ _generateCategoriesEntries = _asyncToGenerator(function* (context, _ref3) {
98
+ var {
99
+ priority = guessPriority,
100
+ changeFrequency = guessChangeFrequency
101
+ } = _ref3;
102
+ var {
103
+ locales,
104
+ categories,
105
+ generateUrl
106
+ } = context;
107
+ var entries = categories.flatMap(category => Category.translations(category).filter(_ref6 => {
108
+ var {
109
+ locale
110
+ } = _ref6;
111
+ return locales.includes(locale);
112
+ }).map(translation => {
113
+ var params = _objectSpread(_objectSpread({}, translation), {}, {
114
+ localeCode: translation.locale
115
+ });
116
+ return {
117
+ locale: translation.locale,
118
+ url: generateUrl('category', params),
119
+ priority: priority('category', params),
120
+ changeFrequency: changeFrequency('category', params)
121
+ };
122
+ })).filter(isNonEmptyUrl);
123
+ return withAlternateLinks(entries);
124
+ });
125
+ return _generateCategoriesEntries.apply(this, arguments);
126
+ }
127
+ function generateMediaEntries(_x9, _x10) {
128
+ return _generateMediaEntries.apply(this, arguments);
129
+ }
130
+ function _generateMediaEntries() {
131
+ _generateMediaEntries = _asyncToGenerator(function* (context, _ref4) {
132
+ var {
133
+ priority = guessPriority,
134
+ changeFrequency = guessChangeFrequency
135
+ } = _ref4;
136
+ var {
137
+ newsroom,
138
+ locales,
139
+ generateUrl
140
+ } = context;
141
+ if (newsroom.public_galleries_number === 0) return [];
142
+ var entries = locales.map(localeCode => ({
143
+ locale: localeCode,
144
+ url: generateUrl('media', {
145
+ localeCode
146
+ }),
147
+ priority: priority('media', {
148
+ localeCode
149
+ }),
150
+ changeFrequency: changeFrequency('media', {
151
+ localeCode
152
+ })
153
+ })).filter(isNonEmptyUrl);
154
+ return withAlternateLinks(entries);
155
+ });
156
+ return _generateMediaEntries.apply(this, arguments);
157
+ }
158
+ export function guessChangeFrequency(routeName) {
159
+ if (routeName === 'index') return 'daily';
160
+ return 'weekly';
161
+ }
162
+ export function guessPriority(routeName) {
163
+ if (routeName === 'index') return 0.9;
164
+ if (routeName === 'category') return 0.8;
165
+ return 0.7;
166
+ }
167
+ export function withAlternateLinks(entries) {
168
+ return entries.map(_ref5 => {
169
+ var {
170
+ locale
171
+ } = _ref5,
172
+ entry = _objectWithoutProperties(_ref5, _excluded);
173
+ return _objectSpread(_objectSpread({}, entry), {}, {
174
+ alternate: entries.filter(alt => alt.locale !== locale).map(alt => ({
175
+ url: alt.url,
176
+ lang: Locale.from(alt.locale).isoCode
177
+ }))
178
+ });
179
+ });
180
+ }
181
+ export function isNonEmptyUrl(value) {
182
+ return typeof value.url === 'string';
183
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "build", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _build.build;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "generate", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _generate.generate;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "guessChangeFrequency", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _generate.guessChangeFrequency;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "guessPriority", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _generate.guessPriority;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "stringify", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _stringify.stringify;
34
+ }
35
+ });
36
+ var _build = require("./build.cjs");
37
+ var _generate = require("./generate.cjs");
38
+ var _stringify = require("./stringify.cjs");
@@ -0,0 +1,4 @@
1
+ export type * from './types';
2
+ export { build } from './build';
3
+ export { type AsyncResolvableContext, type Options, generate, guessChangeFrequency, guessPriority, } from './generate';
4
+ export { stringify } from './stringify';
@@ -0,0 +1,3 @@
1
+ export { build } from "./build.mjs";
2
+ export { generate, guessChangeFrequency, guessPriority } from "./generate.mjs";
3
+ export { stringify } from "./stringify.mjs";
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stringify = stringify;
7
+ /* eslint-disable @typescript-eslint/no-use-before-define */
8
+
9
+ function stringify(sitemap) {
10
+ return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.w3.org/TR/xhtml11/xhtml11_schema.html http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd\" \n xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" \n xmlns:xhtml=\"http://www.w3.org/TR/xhtml11/xhtml11_schema.html\">\n ".concat(sitemap.map(stringifyEntry).join('\n'), "\n </urlset>\n ");
11
+ }
12
+ function stringifyEntry(entry) {
13
+ var _entry$alternate;
14
+ return "<url>\n <loc>".concat(entry.url, "</loc>\n ").concat(entry.lastModified ? "<lastmod>".concat(stringifyDate(entry.lastModified), "</lastmod>") : '', "\n ").concat(entry.changeFrequency ? "<changefreq>".concat(entry.changeFrequency, "</changefreq>") : '', "\n ").concat(entry.priority ? "<priority>".concat(entry.priority, "</priority>") : '', "\n ").concat(((_entry$alternate = entry.alternate) !== null && _entry$alternate !== void 0 ? _entry$alternate : []).map(stringifyAlternateLink).join(''), "\n </url>");
15
+ }
16
+ function stringifyAlternateLink(alt) {
17
+ return "<xhtml:link rel=\"alternate\" hreflang=\"".concat(alt.lang, "\" href=\"").concat(alt.url, "\" />");
18
+ }
19
+ function stringifyDate(date) {
20
+ if (date instanceof Date) {
21
+ return date.toISOString();
22
+ }
23
+ return date;
24
+ }
@@ -0,0 +1,2 @@
1
+ import type { SitemapFile } from './types';
2
+ export declare function stringify(sitemap: SitemapFile): string;
@@ -0,0 +1,18 @@
1
+ /* eslint-disable @typescript-eslint/no-use-before-define */
2
+
3
+ export function stringify(sitemap) {
4
+ return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <urlset xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.w3.org/TR/xhtml11/xhtml11_schema.html http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd\" \n xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" \n xmlns:xhtml=\"http://www.w3.org/TR/xhtml11/xhtml11_schema.html\">\n ".concat(sitemap.map(stringifyEntry).join('\n'), "\n </urlset>\n ");
5
+ }
6
+ function stringifyEntry(entry) {
7
+ var _entry$alternate;
8
+ return "<url>\n <loc>".concat(entry.url, "</loc>\n ").concat(entry.lastModified ? "<lastmod>".concat(stringifyDate(entry.lastModified), "</lastmod>") : '', "\n ").concat(entry.changeFrequency ? "<changefreq>".concat(entry.changeFrequency, "</changefreq>") : '', "\n ").concat(entry.priority ? "<priority>".concat(entry.priority, "</priority>") : '', "\n ").concat(((_entry$alternate = entry.alternate) !== null && _entry$alternate !== void 0 ? _entry$alternate : []).map(stringifyAlternateLink).join(''), "\n </url>");
9
+ }
10
+ function stringifyAlternateLink(alt) {
11
+ return "<xhtml:link rel=\"alternate\" hreflang=\"".concat(alt.lang, "\" href=\"").concat(alt.url, "\" />");
12
+ }
13
+ function stringifyDate(date) {
14
+ if (date instanceof Date) {
15
+ return date.toISOString();
16
+ }
17
+ return date;
18
+ }
@@ -0,0 +1 @@
1
+ "use strict";