@prezly/theme-kit-core 7.1.0 → 8.0.1
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.
- package/build/boilerplate.cjs +17 -0
- package/build/boilerplate.d.ts +8 -0
- package/build/boilerplate.mjs +9 -0
- package/build/constants.cjs +11 -0
- package/build/{utils/constants.d.ts → constants.d.ts} +2 -1
- package/build/constants.mjs +5 -0
- package/build/content-delivery/ContentDelivery.cjs +348 -0
- package/build/content-delivery/ContentDelivery.d.ts +8 -4
- package/build/content-delivery/ContentDelivery.mjs +342 -0
- package/build/content-delivery/cache/index.cjs +35 -0
- package/build/content-delivery/cache/index.d.ts +3 -0
- package/build/content-delivery/cache/index.mjs +3 -0
- package/build/content-delivery/cache/memory.cjs +65 -0
- package/build/content-delivery/cache/memory.d.ts +3 -0
- package/build/content-delivery/cache/memory.mjs +58 -0
- package/build/content-delivery/cache/memory.test.cjs +54 -0
- package/build/content-delivery/cache/memory.test.mjs +52 -0
- package/build/content-delivery/cache/stacked.cjs +32 -0
- package/build/content-delivery/cache/stacked.d.ts +2 -0
- package/build/content-delivery/cache/stacked.mjs +26 -0
- package/build/content-delivery/cache/type.cjs +1 -0
- package/build/content-delivery/cache/type.d.ts +8 -0
- package/build/content-delivery/cache/type.mjs +1 -0
- package/build/content-delivery/index.cjs +27 -0
- package/build/content-delivery/index.d.ts +2 -1
- package/build/content-delivery/index.mjs +2 -0
- package/build/environment.cjs +42 -0
- package/build/environment.d.ts +2 -0
- package/build/environment.mjs +36 -0
- package/build/galleries.cjs +38 -0
- package/build/galleries.d.ts +11 -0
- package/build/galleries.mjs +30 -0
- package/build/http/HttpClient.cjs +66 -0
- package/build/http/HttpClient.d.ts +20 -0
- package/build/http/HttpClient.mjs +59 -0
- package/build/http/index.cjs +10 -0
- package/build/http/index.d.ts +1 -0
- package/build/http/index.mjs +2 -0
- package/build/index.cjs +88 -0
- package/build/index.d.ts +15 -4
- package/build/index.mjs +26 -0
- package/build/intl/getLanguageDisplayName.cjs +37 -0
- package/build/intl/getLanguageDisplayName.d.ts +20 -0
- package/build/intl/getLanguageDisplayName.mjs +32 -0
- package/build/intl/getLanguageDisplayName.test.cjs +46 -0
- package/build/intl/getLanguageDisplayName.test.mjs +44 -0
- package/build/intl/index.cjs +12 -0
- package/build/intl/index.d.ts +1 -5
- package/build/intl/index.mjs +1 -0
- package/build/metadata/getAlternateLanguageLinks.cjs +76 -0
- package/build/{seo → metadata}/getAlternateLanguageLinks.d.ts +2 -2
- package/build/metadata/getAlternateLanguageLinks.mjs +72 -0
- package/build/metadata/getAlternateLanguageLinks.test.cjs +198 -0
- package/build/metadata/getAlternateLanguageLinks.test.mjs +196 -0
- package/build/metadata/index.cjs +12 -0
- package/build/metadata/index.d.ts +2 -0
- package/build/metadata/index.mjs +1 -0
- package/build/metadata/types.cjs +1 -0
- package/build/metadata/types.d.ts +6 -0
- package/build/metadata/types.mjs +1 -0
- package/build/newsrooms.cjs +36 -0
- package/build/newsrooms.d.ts +5 -0
- package/build/newsrooms.mjs +28 -0
- package/build/privacy-portal.cjs +28 -0
- package/build/privacy-portal.d.ts +9 -0
- package/build/privacy-portal.mjs +21 -0
- package/build/resolvable.cjs +38 -0
- package/build/resolvable.d.ts +71 -0
- package/build/resolvable.mjs +32 -0
- package/build/routing/Route.cjs +46 -0
- package/build/routing/Route.d.ts +37 -0
- package/build/routing/Route.mjs +40 -0
- package/build/routing/Router.cjs +51 -0
- package/build/routing/Router.d.ts +23 -0
- package/build/routing/Router.mjs +45 -0
- package/build/routing/Routing.cjs +24 -0
- package/build/routing/Routing.d.ts +1 -0
- package/build/routing/Routing.mjs +2 -0
- package/build/routing/UrlGenerator.cjs +13 -0
- package/build/routing/UrlGenerator.d.ts +39 -0
- package/build/routing/UrlGenerator.mjs +7 -0
- package/build/routing/index.cjs +24 -0
- package/build/routing/index.d.ts +4 -0
- package/build/routing/index.mjs +4 -0
- package/build/routing/types.cjs +1 -0
- package/build/routing/types.d.ts +14 -0
- package/build/routing/types.mjs +1 -0
- package/build/routing/utils/generateUrlFromPattern.cjs +52 -0
- package/build/routing/utils/generateUrlFromPattern.d.ts +12 -0
- package/build/routing/utils/generateUrlFromPattern.mjs +47 -0
- package/build/routing/utils/generateUrlFromPattern.test.cjs +44 -0
- package/build/routing/utils/generateUrlFromPattern.test.mjs +42 -0
- package/build/routing/utils/getShortestLocaleSlug.cjs +60 -0
- package/build/routing/utils/getShortestLocaleSlug.d.ts +11 -0
- package/build/routing/utils/getShortestLocaleSlug.mjs +53 -0
- package/build/routing/utils/getShortestLocaleSlug.test.cjs +37 -0
- package/build/routing/utils/getShortestLocaleSlug.test.mjs +35 -0
- package/build/routing/utils/index.cjs +40 -0
- package/build/routing/utils/index.d.ts +5 -0
- package/build/routing/utils/index.mjs +5 -0
- package/build/routing/utils/isNumberCode.cjs +12 -0
- package/build/routing/utils/isNumberCode.d.ts +4 -0
- package/build/routing/utils/isNumberCode.mjs +6 -0
- package/build/routing/utils/matchLocaleSlug.cjs +41 -0
- package/build/routing/utils/matchLocaleSlug.d.ts +15 -0
- package/build/routing/utils/matchLocaleSlug.mjs +34 -0
- package/build/routing/utils/matchLocaleSlug.test.cjs +43 -0
- package/build/routing/utils/matchLocaleSlug.test.mjs +40 -0
- package/build/routing/utils/normalizeUrl.cjs +9 -0
- package/build/routing/utils/normalizeUrl.d.ts +1 -0
- package/build/routing/utils/normalizeUrl.mjs +3 -0
- package/build/search.cjs +1 -0
- package/build/{types.d.ts → search.d.ts} +3 -3
- package/build/search.mjs +1 -0
- package/build/sitemap/build.cjs +33 -0
- package/build/sitemap/build.d.ts +6 -0
- package/build/sitemap/build.mjs +27 -0
- package/build/sitemap/generate.cjs +192 -0
- package/build/sitemap/generate.d.ts +37 -0
- package/build/sitemap/generate.mjs +183 -0
- package/build/sitemap/index.cjs +38 -0
- package/build/sitemap/index.d.ts +4 -0
- package/build/sitemap/index.mjs +3 -0
- package/build/sitemap/stringify.cjs +24 -0
- package/build/sitemap/stringify.d.ts +2 -0
- package/build/sitemap/stringify.mjs +18 -0
- package/build/sitemap/types.cjs +1 -0
- package/build/sitemap/types.d.ts +67 -0
- package/build/sitemap/types.mjs +1 -0
- package/build/uploads.cjs +14 -0
- package/build/{utils/getAssetsUrl.d.ts → uploads.d.ts} +1 -1
- package/build/uploads.mjs +8 -0
- package/build/uploads.test.cjs +10 -0
- package/build/uploads.test.mjs +8 -0
- package/package.json +23 -26
- package/build/content-delivery/ContentDelivery.js +0 -238
- package/build/content-delivery/ContentDelivery.js.map +0 -1
- package/build/content-delivery/index.js +0 -28
- package/build/content-delivery/index.js.map +0 -1
- package/build/data-fetching/api/index.d.ts +0 -1
- package/build/data-fetching/api/index.js +0 -6
- package/build/data-fetching/api/index.js.map +0 -1
- package/build/data-fetching/api/initContentDeliveryClient.d.ts +0 -4
- package/build/data-fetching/api/initContentDeliveryClient.js +0 -25
- package/build/data-fetching/api/initContentDeliveryClient.js.map +0 -1
- package/build/data-fetching/index.d.ts +0 -3
- package/build/data-fetching/index.js +0 -20
- package/build/data-fetching/index.js.map +0 -1
- package/build/data-fetching/lib/getAlgoliaSettings.d.ts +0 -4
- package/build/data-fetching/lib/getAlgoliaSettings.js +0 -21
- package/build/data-fetching/lib/getAlgoliaSettings.js.map +0 -1
- package/build/data-fetching/lib/getEnvVariables.d.ts +0 -4
- package/build/data-fetching/lib/getEnvVariables.js +0 -43
- package/build/data-fetching/lib/getEnvVariables.js.map +0 -1
- package/build/data-fetching/lib/index.d.ts +0 -3
- package/build/data-fetching/lib/index.js +0 -10
- package/build/data-fetching/lib/index.js.map +0 -1
- package/build/data-fetching/lib/isUuid.d.ts +0 -1
- package/build/data-fetching/lib/isUuid.js +0 -9
- package/build/data-fetching/lib/isUuid.js.map +0 -1
- package/build/data-fetching/types.d.ts +0 -13
- package/build/data-fetching/types.js +0 -3
- package/build/data-fetching/types.js.map +0 -1
- package/build/index.js +0 -21
- package/build/index.js.map +0 -1
- package/build/intl/getFallbackLocale.d.ts +0 -10
- package/build/intl/getFallbackLocale.js +0 -24
- package/build/intl/getFallbackLocale.js.map +0 -1
- package/build/intl/index.js +0 -27
- package/build/intl/index.js.map +0 -1
- package/build/intl/languages.d.ts +0 -57
- package/build/intl/languages.js +0 -191
- package/build/intl/languages.js.map +0 -1
- package/build/intl/locale.d.ts +0 -11
- package/build/intl/locale.js +0 -41
- package/build/intl/locale.js.map +0 -1
- package/build/intl/localeConfig.d.ts +0 -2
- package/build/intl/localeConfig.js +0 -22
- package/build/intl/localeConfig.js.map +0 -1
- package/build/intl/localeList.d.ts +0 -2
- package/build/intl/localeList.js +0 -114
- package/build/intl/localeList.js.map +0 -1
- package/build/intl/localeObject.d.ts +0 -51
- package/build/intl/localeObject.js +0 -98
- package/build/intl/localeObject.js.map +0 -1
- package/build/seo/getAlternateLanguageLinks.js +0 -85
- package/build/seo/getAlternateLanguageLinks.js.map +0 -1
- package/build/seo/index.d.ts +0 -2
- package/build/seo/index.js +0 -19
- package/build/seo/index.js.map +0 -1
- package/build/seo/types.d.ts +0 -4
- package/build/seo/types.js +0 -3
- package/build/seo/types.js.map +0 -1
- package/build/seo/utils/bindLanguagesWithLocales.d.ts +0 -11
- package/build/seo/utils/bindLanguagesWithLocales.js +0 -23
- package/build/seo/utils/bindLanguagesWithLocales.js.map +0 -1
- package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
- package/build/seo/utils/createAlternateLanguageLink.js +0 -15
- package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
- package/build/seo/utils/index.d.ts +0 -2
- package/build/seo/utils/index.js +0 -8
- package/build/seo/utils/index.js.map +0 -1
- package/build/server.d.ts +0 -2
- package/build/server.js +0 -21
- package/build/server.js.map +0 -1
- package/build/types.js +0 -3
- package/build/types.js.map +0 -1
- package/build/utils/assertServerEnv.d.ts +0 -1
- package/build/utils/assertServerEnv.js +0 -10
- package/build/utils/assertServerEnv.js.map +0 -1
- package/build/utils/boilerplate.d.ts +0 -8
- package/build/utils/boilerplate.js +0 -27
- package/build/utils/boilerplate.js.map +0 -1
- package/build/utils/constants.js +0 -8
- package/build/utils/constants.js.map +0 -1
- package/build/utils/getAssetsUrl.js +0 -13
- package/build/utils/getAssetsUrl.js.map +0 -1
- package/build/utils/getDataRequestLink.d.ts +0 -3
- package/build/utils/getDataRequestLink.js +0 -12
- package/build/utils/getDataRequestLink.js.map +0 -1
- package/build/utils/getGalleryThumbnail.d.ts +0 -2
- package/build/utils/getGalleryThumbnail.js +0 -15
- package/build/utils/getGalleryThumbnail.js.map +0 -1
- package/build/utils/getLocalizedCategoryData.d.ts +0 -12
- package/build/utils/getLocalizedCategoryData.js +0 -34
- package/build/utils/getLocalizedCategoryData.js.map +0 -1
- package/build/utils/getNewsroomLogoUrl.d.ts +0 -5
- package/build/utils/getNewsroomLogoUrl.js +0 -30
- package/build/utils/getNewsroomLogoUrl.js.map +0 -1
- package/build/utils/getPrivacyPortalUrl.d.ts +0 -8
- package/build/utils/getPrivacyPortalUrl.js +0 -13
- package/build/utils/getPrivacyPortalUrl.js.map +0 -1
- package/build/utils/getStoryPublicationDate.d.ts +0 -3
- package/build/utils/getStoryPublicationDate.js +0 -14
- package/build/utils/getStoryPublicationDate.js.map +0 -1
- package/build/utils/getUploadcareGroupUrl.d.ts +0 -8
- package/build/utils/getUploadcareGroupUrl.js +0 -17
- package/build/utils/getUploadcareGroupUrl.js.map +0 -1
- package/build/utils/index.d.ts +0 -14
- package/build/utils/index.js +0 -31
- package/build/utils/index.js.map +0 -1
- package/build/utils/isEmbargoStory.d.ts +0 -6
- package/build/utils/isEmbargoStory.js +0 -9
- package/build/utils/isEmbargoStory.js.map +0 -1
- package/build/utils/isGalleryEmpty.d.ts +0 -2
- package/build/utils/isGalleryEmpty.js +0 -8
- package/build/utils/isGalleryEmpty.js.map +0 -1
- package/build/utils/sdkHelpers.d.ts +0 -32
- package/build/utils/sdkHelpers.js +0 -42
- package/build/utils/sdkHelpers.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _matchLocaleSlug = require("./matchLocaleSlug.cjs");
|
|
4
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
+
|
|
6
|
+
describe('matchLocaleSlug', () => {
|
|
7
|
+
it('should match enabled locales by full locale slug', () => {
|
|
8
|
+
var locales = ['nl_BE', 'nl_NL', 'en'];
|
|
9
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('nl-be', locales)).toBe('nl_BE');
|
|
10
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('nl-nl', locales)).toBe('nl_NL');
|
|
11
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('en', locales)).toBe('en');
|
|
12
|
+
});
|
|
13
|
+
it('should return undefined if no active locale matches locale slug', () => {
|
|
14
|
+
var locales = ['nl_BE', 'nl_NL', 'en'];
|
|
15
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('fr-be', locales)).toBeUndefined();
|
|
16
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('en-us', locales)).toBeUndefined();
|
|
17
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('de-de', locales)).toBeUndefined();
|
|
18
|
+
});
|
|
19
|
+
it('should match locale by lang code slug', () => {
|
|
20
|
+
var locales = ['nl_BE', 'en_US', 'fr_BE'];
|
|
21
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('nl', locales)).toBe('nl_BE');
|
|
22
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('fr', locales)).toBe('fr_BE');
|
|
23
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('en', locales)).toBe('en_US');
|
|
24
|
+
});
|
|
25
|
+
it('should match locale by region code slug', () => {
|
|
26
|
+
var locales = ['nl_BE', 'en_GB', 'en_US'];
|
|
27
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('be', locales)).toBe('nl_BE');
|
|
28
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('gb', locales)).toBe('en_GB');
|
|
29
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('us', locales)).toBe('en_US');
|
|
30
|
+
});
|
|
31
|
+
it('should never match locale by number-only region code slug', () => {
|
|
32
|
+
var locales = ['es_ES', 'es_419'];
|
|
33
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('419', locales)).toBeUndefined();
|
|
34
|
+
});
|
|
35
|
+
it('should pick locale in the given order of preference if multiple match against th shortened lang code', () => {
|
|
36
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('en', ['en_GB', 'en_US', 'nl_BE'])).toBe('en_GB');
|
|
37
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('en', ['nl_BE', 'en_US', 'en_GB'])).toBe('en_US');
|
|
38
|
+
});
|
|
39
|
+
it('should pick locale in the given order of preference if multiple match against th shortened region code', () => {
|
|
40
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('be', ['nl_BE', 'fr_BE', 'en_GB'])).toBe('nl_BE');
|
|
41
|
+
expect((0, _matchLocaleSlug.matchLocaleSlug)('be', ['en_GB', 'fr_BE', 'nl_BE'])).toBe('fr_BE');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { matchLocaleSlug } from "./matchLocaleSlug.mjs";
|
|
3
|
+
describe('matchLocaleSlug', () => {
|
|
4
|
+
it('should match enabled locales by full locale slug', () => {
|
|
5
|
+
var locales = ['nl_BE', 'nl_NL', 'en'];
|
|
6
|
+
expect(matchLocaleSlug('nl-be', locales)).toBe('nl_BE');
|
|
7
|
+
expect(matchLocaleSlug('nl-nl', locales)).toBe('nl_NL');
|
|
8
|
+
expect(matchLocaleSlug('en', locales)).toBe('en');
|
|
9
|
+
});
|
|
10
|
+
it('should return undefined if no active locale matches locale slug', () => {
|
|
11
|
+
var locales = ['nl_BE', 'nl_NL', 'en'];
|
|
12
|
+
expect(matchLocaleSlug('fr-be', locales)).toBeUndefined();
|
|
13
|
+
expect(matchLocaleSlug('en-us', locales)).toBeUndefined();
|
|
14
|
+
expect(matchLocaleSlug('de-de', locales)).toBeUndefined();
|
|
15
|
+
});
|
|
16
|
+
it('should match locale by lang code slug', () => {
|
|
17
|
+
var locales = ['nl_BE', 'en_US', 'fr_BE'];
|
|
18
|
+
expect(matchLocaleSlug('nl', locales)).toBe('nl_BE');
|
|
19
|
+
expect(matchLocaleSlug('fr', locales)).toBe('fr_BE');
|
|
20
|
+
expect(matchLocaleSlug('en', locales)).toBe('en_US');
|
|
21
|
+
});
|
|
22
|
+
it('should match locale by region code slug', () => {
|
|
23
|
+
var locales = ['nl_BE', 'en_GB', 'en_US'];
|
|
24
|
+
expect(matchLocaleSlug('be', locales)).toBe('nl_BE');
|
|
25
|
+
expect(matchLocaleSlug('gb', locales)).toBe('en_GB');
|
|
26
|
+
expect(matchLocaleSlug('us', locales)).toBe('en_US');
|
|
27
|
+
});
|
|
28
|
+
it('should never match locale by number-only region code slug', () => {
|
|
29
|
+
var locales = ['es_ES', 'es_419'];
|
|
30
|
+
expect(matchLocaleSlug('419', locales)).toBeUndefined();
|
|
31
|
+
});
|
|
32
|
+
it('should pick locale in the given order of preference if multiple match against th shortened lang code', () => {
|
|
33
|
+
expect(matchLocaleSlug('en', ['en_GB', 'en_US', 'nl_BE'])).toBe('en_GB');
|
|
34
|
+
expect(matchLocaleSlug('en', ['nl_BE', 'en_US', 'en_GB'])).toBe('en_US');
|
|
35
|
+
});
|
|
36
|
+
it('should pick locale in the given order of preference if multiple match against th shortened region code', () => {
|
|
37
|
+
expect(matchLocaleSlug('be', ['nl_BE', 'fr_BE', 'en_GB'])).toBe('nl_BE');
|
|
38
|
+
expect(matchLocaleSlug('be', ['en_GB', 'fr_BE', 'nl_BE'])).toBe('fr_BE');
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function normalizeUrl(url: `/${string}`): `/${string}`;
|
package/build/search.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -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
|
|
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
|
|
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:
|
|
18
|
+
categories: IndexedCategoryRef[];
|
|
19
19
|
};
|
package/build/search.mjs
ADDED
|
@@ -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");
|