@prezly/theme-kit-nextjs 3.2.2 → 3.2.3-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.
- package/build/components-nextjs/PageSeo/PageSeo.js +4 -15
- package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
- package/build/components-nextjs/document.js.map +1 -1
- package/build/intl/getFallbackLocale.d.ts +8 -0
- package/build/intl/getFallbackLocale.js +21 -0
- package/build/intl/getFallbackLocale.js.map +1 -0
- package/build/intl/index.d.ts +2 -1
- package/build/intl/index.js +2 -1
- package/build/intl/index.js.map +1 -1
- package/build/intl/locale.d.ts +9 -0
- package/build/intl/locale.js.map +1 -1
- package/build/intl/localeObject.d.ts +5 -0
- package/build/intl/localeObject.js +7 -0
- package/build/intl/localeObject.js.map +1 -1
- package/build/seo/getAlternateLanguageLinks.d.ts +4 -0
- package/build/seo/getAlternateLanguageLinks.js +49 -0
- package/build/seo/getAlternateLanguageLinks.js.map +1 -0
- package/build/seo/index.d.ts +1 -0
- package/build/seo/index.js +18 -0
- package/build/seo/index.js.map +1 -0
- package/build/seo/utils/createAlternateLanguageLink.d.ts +5 -0
- package/build/seo/utils/createAlternateLanguageLink.js +15 -0
- package/build/seo/utils/createAlternateLanguageLink.js.map +1 -0
- package/build/seo/utils/getDefaultHrefLang.d.ts +11 -0
- package/build/seo/utils/getDefaultHrefLang.js +28 -0
- package/build/seo/utils/getDefaultHrefLang.js.map +1 -0
- package/build/seo/utils/mapLanguagesToLocales.d.ts +4 -0
- package/build/seo/utils/mapLanguagesToLocales.js +24 -0
- package/build/seo/utils/mapLanguagesToLocales.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/components-nextjs/PageSeo/PageSeo.tsx +14 -25
- package/src/components-nextjs/document.tsx +0 -1
- package/src/intl/getFallbackLocale.ts +26 -0
- package/src/intl/index.ts +2 -1
- package/src/intl/locale.ts +5 -1
- package/src/intl/localeObject.ts +8 -0
- package/src/seo/getAlternateLanguageLinks.test.ts +150 -0
- package/src/seo/getAlternateLanguageLinks.ts +72 -0
- package/src/seo/index.ts +1 -0
- package/src/seo/utils/createAlternateLanguageLink.ts +18 -0
- package/src/seo/utils/getDefaultHrefLang.ts +57 -0
- package/src/seo/utils/mapLanguagesToLocales.ts +28 -0
|
@@ -7,6 +7,7 @@ const router_1 = require("next/router");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const intl_1 = require("../../intl");
|
|
9
9
|
const newsroom_context_1 = require("../../newsroom-context");
|
|
10
|
+
const seo_1 = require("../../seo");
|
|
10
11
|
const utils_1 = require("../../utils");
|
|
11
12
|
const getAbsoluteUrl_1 = require("./lib/getAbsoluteUrl");
|
|
12
13
|
/**
|
|
@@ -38,21 +39,9 @@ function PageSeo({ title, description, imageUrl, canonical, openGraph, twitter,
|
|
|
38
39
|
if (!languages.length) {
|
|
39
40
|
return [];
|
|
40
41
|
}
|
|
41
|
-
const
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
const locale = intl_1.LocaleObject.fromAnyCode(language.code);
|
|
45
|
-
const translationLink = getTranslationUrl(locale, true);
|
|
46
|
-
if (!translationLink) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
hrefLang: locale.toHyphenCode(),
|
|
51
|
-
href: (0, getAbsoluteUrl_1.getAbsoluteUrl)(translationLink, site.url, currentStory && translationLink !== '/' ? false : getLinkLocaleSlug(locale)),
|
|
52
|
-
};
|
|
53
|
-
})
|
|
54
|
-
.filter(Boolean);
|
|
55
|
-
}, [currentLocale, getLinkLocaleSlug, getTranslationUrl, languages, site.url, currentStory]);
|
|
42
|
+
const usedLanguages = (0, intl_1.getUsedLanguages)(languages);
|
|
43
|
+
return (0, seo_1.getAlternateLanguageLinks)(usedLanguages, getTranslationUrl, (locale, translationUrl) => (0, getAbsoluteUrl_1.getAbsoluteUrl)(translationUrl, site.url, currentStory && translationUrl !== '/' ? false : getLinkLocaleSlug(locale)));
|
|
44
|
+
}, [currentStory, getLinkLocaleSlug, getTranslationUrl, languages, site.url]);
|
|
56
45
|
return ((0, jsx_runtime_1.jsx)(next_seo_1.NextSeo, { title: pageTitle, description: pageDescription, canonical: canonicalUrl, noindex: nextSeoProps.noindex ?? !site.is_indexable, nofollow: nextSeoProps.nofollow ?? !site.is_indexable, openGraph: {
|
|
57
46
|
url: canonicalUrl,
|
|
58
47
|
title: pageTitle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageSeo.js","sourceRoot":"","sources":["../../../src/components-nextjs/PageSeo/PageSeo.tsx"],"names":[],"mappings":";;;;AAAA,uCAAmC;AAEnC,wCAAwC;AACxC,iCAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"PageSeo.js","sourceRoot":"","sources":["../../../src/components-nextjs/PageSeo/PageSeo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/components-nextjs/document.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAuE;AAEvE,kCAA2E;AAG3E,MAAa,mBAAoB,SAAQ,kBAAQ;IAC7C,aAAa;QACT,MAAM,EACF,oBAAoB;QACpB,gDAAgD;UACnD,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAsB,CAAC;QAE1D,oFAAoF;QACpF,kEAAkE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,IAAI,EAAE,UAAU,EAAE,qBAAc,EAAE,CAAC;QAE9E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,mBAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CACH,wBAAC,eAAI,IAAC,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,aAC7C,uBAAC,eAAI,cACD,iCAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,GAAI,
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/components-nextjs/document.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAuE;AAEvE,kCAA2E;AAG3E,MAAa,mBAAoB,SAAQ,kBAAQ;IAC7C,aAAa;QACT,MAAM,EACF,oBAAoB;QACpB,gDAAgD;UACnD,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAsB,CAAC;QAE1D,oFAAoF;QACpF,kEAAkE;QAClE,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,IAAI,EAAE,UAAU,EAAE,qBAAc,EAAE,CAAC;QAE9E,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,mBAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9D,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAA,yBAAkB,EAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,CACH,wBAAC,eAAI,IAAC,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,aAC7C,uBAAC,eAAI,cACD,iCAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,GAAI,GACtD,EACP,6CACI,uBAAC,eAAI,KAAG,EACR,uBAAC,qBAAU,KAAG,IACX,IACJ,CACV,CAAC;IACN,CAAC;CACJ;AA/BD,kDA+BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LangCode } from './locale';
|
|
2
|
+
import { LocaleObject } from './localeObject';
|
|
3
|
+
/**
|
|
4
|
+
* Fallback locales for each language.
|
|
5
|
+
* For example, a story has no en(global) locale, then we can take some fallback locale from here.
|
|
6
|
+
*/
|
|
7
|
+
export declare const localeFallback: Record<LangCode, LocaleObject[]>;
|
|
8
|
+
export declare function getFallbackLocale(langCode: LangCode, availableLocales: LocaleObject[]): LocaleObject | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFallbackLocale = exports.localeFallback = void 0;
|
|
4
|
+
const localeObject_1 = require("./localeObject");
|
|
5
|
+
/**
|
|
6
|
+
* Fallback locales for each language.
|
|
7
|
+
* For example, a story has no en(global) locale, then we can take some fallback locale from here.
|
|
8
|
+
*/
|
|
9
|
+
exports.localeFallback = {
|
|
10
|
+
en: [localeObject_1.LocaleObject.fromAnyCode('en-US'), localeObject_1.LocaleObject.fromAnyCode('en-GB')],
|
|
11
|
+
fr: [localeObject_1.LocaleObject.fromAnyCode('fr-FR'), localeObject_1.LocaleObject.fromAnyCode('fr-CA')],
|
|
12
|
+
};
|
|
13
|
+
function getFallbackLocale(langCode, availableLocales) {
|
|
14
|
+
const fallbacks = exports.localeFallback[langCode];
|
|
15
|
+
if (!fallbacks) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return fallbacks.find((fallback) => Boolean(availableLocales.find((available) => available.isEqual(fallback))));
|
|
19
|
+
}
|
|
20
|
+
exports.getFallbackLocale = getFallbackLocale;
|
|
21
|
+
//# sourceMappingURL=getFallbackLocale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFallbackLocale.js","sourceRoot":"","sources":["../../src/intl/getFallbackLocale.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAE9C;;;GAGG;AACU,QAAA,cAAc,GAAqC;IAC5D,EAAE,EAAE,CAAC,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1E,EAAE,EAAE,CAAC,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,2BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7E,CAAC;AAEF,SAAgB,iBAAiB,CAC7B,QAAkB,EAClB,gBAAgC;IAEhC,MAAM,SAAS,GAAG,sBAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC7E,CAAC;AACN,CAAC;AAbD,8CAaC"}
|
package/build/intl/index.d.ts
CHANGED
package/build/intl/index.js
CHANGED
|
@@ -18,9 +18,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.localeConfig = void 0;
|
|
21
|
+
__exportStar(require("./getFallbackLocale"), exports);
|
|
21
22
|
__exportStar(require("./languages"), exports);
|
|
22
|
-
__exportStar(require("./locale"), exports);
|
|
23
23
|
var localeConfig_1 = require("./localeConfig");
|
|
24
24
|
Object.defineProperty(exports, "localeConfig", { enumerable: true, get: function () { return __importDefault(localeConfig_1).default; } });
|
|
25
|
+
__exportStar(require("./locale"), exports);
|
|
25
26
|
__exportStar(require("./localeObject"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/build/intl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,8CAA4B;AAC5B,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,2CAAyB;AACzB,iDAA+B"}
|
package/build/intl/locale.d.ts
CHANGED
|
@@ -4,6 +4,15 @@ import type { ParsedUrlQuery } from 'querystring';
|
|
|
4
4
|
import { LocaleObject } from './localeObject';
|
|
5
5
|
export declare const DEFAULT_LOCALE = "en";
|
|
6
6
|
export declare const DUMMY_DEFAULT_LOCALE = "qps-ploc";
|
|
7
|
+
export type LangCode = string & {
|
|
8
|
+
__BRAND__?: 'langCode';
|
|
9
|
+
};
|
|
10
|
+
export type RegionCode = string & {
|
|
11
|
+
__BRAND__?: 'regionCode';
|
|
12
|
+
};
|
|
13
|
+
export type LocaleCode = string & {
|
|
14
|
+
__BRAND__?: 'localeCode';
|
|
15
|
+
};
|
|
7
16
|
/**
|
|
8
17
|
* Use this function to determine which translations file you should load from `@prezly/themes-intl-mesages` package.
|
|
9
18
|
* See https://github.com/prezly/theme-nextjs-bea/blob/main/utils/lang.ts for a usage example.
|
package/build/intl/locale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":";;;AAEA,6CAAwC;AAExC,iDAA8C;AAEjC,QAAA,cAAc,GAAG,IAAI,CAAC;AACnC,oIAAoI;AACvH,QAAA,oBAAoB,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/intl/locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export declare class LocaleObject {
|
|
|
9
9
|
* Examples: `nl-BE`, `en-US`, `fr`, `fil`
|
|
10
10
|
*/
|
|
11
11
|
private localeCode;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the locale is global (without region/culture part).
|
|
14
|
+
* I.E. `en` is global, while `en-US` is not.
|
|
15
|
+
*/
|
|
16
|
+
isGlobal: boolean;
|
|
12
17
|
private constructor();
|
|
13
18
|
/**
|
|
14
19
|
* @param localeCode Locale code in any of the formats below.
|
|
@@ -16,17 +16,24 @@ class LocaleObject {
|
|
|
16
16
|
* Examples: `nl-BE`, `en-US`, `fr`, `fil`
|
|
17
17
|
*/
|
|
18
18
|
localeCode;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the locale is global (without region/culture part).
|
|
21
|
+
* I.E. `en` is global, while `en-US` is not.
|
|
22
|
+
*/
|
|
23
|
+
isGlobal;
|
|
19
24
|
constructor(localeCode) {
|
|
20
25
|
if (!/^([a-z]{2,3})(-[a-z\d]{1,4})?$/i.test(localeCode)) {
|
|
21
26
|
throw new Error('Invalid locale code provided!');
|
|
22
27
|
}
|
|
23
28
|
const [language, region] = localeCode.split('-');
|
|
24
29
|
if (region) {
|
|
30
|
+
this.isGlobal = false;
|
|
25
31
|
// Workaround for `zh-Hant` locale, which is the only locale with non-uppercase region part
|
|
26
32
|
const regionSuffix = region === 'hant' ? 'Hant' : region.toUpperCase();
|
|
27
33
|
this.localeCode = [language, regionSuffix].join('-');
|
|
28
34
|
}
|
|
29
35
|
else {
|
|
36
|
+
this.isGlobal = true;
|
|
30
37
|
this.localeCode = language;
|
|
31
38
|
}
|
|
32
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAE1C;;;;GAIG;AACH,MAAa,YAAY;IACrB;;;OAGG;IACK,UAAU,CAAS;IAE3B,YAAoB,UAAkB;QAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,2FAA2F;YAC3F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,UAAkB;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,aAA2B;QACtC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC5D,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"localeObject.js","sourceRoot":"","sources":["../../src/intl/localeObject.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAE1C;;;;GAIG;AACH,MAAa,YAAY;IACrB;;;OAGG;IACK,UAAU,CAAS;IAE3B;;;OAGG;IACI,QAAQ,CAAU;IAEzB,YAAoB,UAAkB;QAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,2FAA2F;YAC3F,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAEvE,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;SAC9B;IACL,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,UAAkB;QACxC,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,sBAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,YAAY;QACf,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,aAA2B;QACtC,OAAO,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC;IAC5D,CAAC;CACJ;AAnGD,oCAmGC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NewsroomLanguageSettings } from '@prezly/sdk';
|
|
2
|
+
import type { AlternateLanguageLink } from '../components-nextjs/PageSeo';
|
|
3
|
+
import type { LocaleObject } from '../intl';
|
|
4
|
+
export declare function getAlternateLanguageLinks(languages: NewsroomLanguageSettings[], getTranslationUrl: (locale: LocaleObject) => string | undefined, createHref: (locale: LocaleObject, translationUrl: string) => string): AlternateLanguageLink[];
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAlternateLanguageLinks = void 0;
|
|
4
|
+
const intl_1 = require("../intl");
|
|
5
|
+
const createAlternateLanguageLink_1 = require("./utils/createAlternateLanguageLink");
|
|
6
|
+
const getDefaultHrefLang_1 = require("./utils/getDefaultHrefLang");
|
|
7
|
+
const mapLanguagesToLocales_1 = require("./utils/mapLanguagesToLocales");
|
|
8
|
+
function getAlternateLanguageLinks(languages, getTranslationUrl, createHref) {
|
|
9
|
+
const alternateLanguageFallbackGlobalLinks = [];
|
|
10
|
+
const alternateLanguageLocales = [];
|
|
11
|
+
const [localesByLangCode, defaultLangLocale] = (0, mapLanguagesToLocales_1.mapLanguagesToLocales)(languages);
|
|
12
|
+
localesByLangCode.forEach((locales, globalLocaleCode) => {
|
|
13
|
+
let hasGlobalLocale = false;
|
|
14
|
+
locales.forEach((locale) => {
|
|
15
|
+
alternateLanguageLocales.push(locale);
|
|
16
|
+
if (!hasGlobalLocale && locale.isGlobal) {
|
|
17
|
+
hasGlobalLocale = true;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
if (!hasGlobalLocale) {
|
|
21
|
+
const localesArray = Array.from(locales.values());
|
|
22
|
+
const fallback = (0, intl_1.getFallbackLocale)(globalLocaleCode, localesArray) ?? localesArray.at(0);
|
|
23
|
+
if (fallback) {
|
|
24
|
+
const fallbackLink = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(fallback, getTranslationUrl, createHref);
|
|
25
|
+
if (fallbackLink) {
|
|
26
|
+
alternateLanguageFallbackGlobalLinks.push({
|
|
27
|
+
...fallbackLink,
|
|
28
|
+
hrefLang: globalLocaleCode,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
let languageAlternates = alternateLanguageLocales.map((locale) => (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(locale, getTranslationUrl, createHref));
|
|
35
|
+
languageAlternates = languageAlternates.concat(alternateLanguageFallbackGlobalLinks);
|
|
36
|
+
const xDefault = (0, getDefaultHrefLang_1.getDefaultHrefLang)({
|
|
37
|
+
alternateLanguageLocales,
|
|
38
|
+
alternateLanguageFallbackGlobalLinks,
|
|
39
|
+
defaultLangLocale,
|
|
40
|
+
getTranslationUrl,
|
|
41
|
+
createHref,
|
|
42
|
+
});
|
|
43
|
+
languageAlternates.push(xDefault);
|
|
44
|
+
return languageAlternates
|
|
45
|
+
.filter((link) => Boolean(link))
|
|
46
|
+
.sort((a, b) => a.hrefLang.localeCompare(b.hrefLang));
|
|
47
|
+
}
|
|
48
|
+
exports.getAlternateLanguageLinks = getAlternateLanguageLinks;
|
|
49
|
+
//# sourceMappingURL=getAlternateLanguageLinks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAlternateLanguageLinks.js","sourceRoot":"","sources":["../../src/seo/getAlternateLanguageLinks.ts"],"names":[],"mappings":";;;AAIA,kCAA4C;AAE5C,qFAAkF;AAClF,mEAAgE;AAChE,yEAAsE;AAEtE,SAAgB,yBAAyB,CACrC,SAAqC,EACrC,iBAA+D,EAC/D,UAAoE;IAEpE,MAAM,oCAAoC,GAA4B,EAAE,CAAC;IACzE,MAAM,wBAAwB,GAAmB,EAAE,CAAC;IACpD,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,IAAA,6CAAqB,EAAC,SAAS,CAAC,CAAC;IAEhF,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE;QACpD,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEtC,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACrC,eAAe,GAAG,IAAI,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE;YAClB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,GACV,IAAA,wBAAiB,EAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5E,IAAI,QAAQ,EAAE;gBACV,MAAM,YAAY,GAAG,IAAA,yDAA2B,EAC5C,QAAQ,EACR,iBAAiB,EACjB,UAAU,CACb,CAAC;gBAEF,IAAI,YAAY,EAAE;oBACd,oCAAoC,CAAC,IAAI,CAAC;wBACtC,GAAG,YAAY;wBACf,QAAQ,EAAE,gBAAgB;qBAC7B,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAA6C,wBAAwB,CAAC,GAAG,CAC3F,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,yDAA2B,EAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,CACjF,CAAC;IAEF,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,IAAA,uCAAkB,EAAC;QAChC,wBAAwB;QACxB,oCAAoC;QACpC,iBAAiB;QACjB,iBAAiB;QACjB,UAAU;KACb,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElC,OAAO,kBAAkB;SACpB,MAAM,CAAC,CAAC,IAAI,EAA2C,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC;AA7DD,8DA6DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './getAlternateLanguageLinks';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getAlternateLanguageLinks"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LocaleObject } from '../../intl';
|
|
2
|
+
export declare function createAlternateLanguageLink(locale: LocaleObject, getTranslationUrl: (locale: LocaleObject) => string | undefined, createHref: (locale: LocaleObject, translationUrl: string) => string): {
|
|
3
|
+
hrefLang: string;
|
|
4
|
+
href: string;
|
|
5
|
+
} | undefined;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAlternateLanguageLink = void 0;
|
|
4
|
+
function createAlternateLanguageLink(locale, getTranslationUrl, createHref) {
|
|
5
|
+
const translationUrl = getTranslationUrl(locale);
|
|
6
|
+
if (!translationUrl) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
hrefLang: locale.toHyphenCode(),
|
|
11
|
+
href: createHref(locale, translationUrl),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.createAlternateLanguageLink = createAlternateLanguageLink;
|
|
15
|
+
//# sourceMappingURL=createAlternateLanguageLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createAlternateLanguageLink.js","sourceRoot":"","sources":["../../../src/seo/utils/createAlternateLanguageLink.ts"],"names":[],"mappings":";;;AAEA,SAAgB,2BAA2B,CACvC,MAAoB,EACpB,iBAA+D,EAC/D,UAAoE;IAEpE,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEjD,IAAI,CAAC,cAAc,EAAE;QACjB,OAAO,SAAS,CAAC;KACpB;IAED,OAAO;QACH,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE;QAC/B,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC;KAC3C,CAAC;AACN,CAAC;AAfD,kEAeC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AlternateLanguageLink } from '../../components-nextjs/PageSeo';
|
|
2
|
+
import type { LocaleObject } from '../../intl';
|
|
3
|
+
interface Options {
|
|
4
|
+
alternateLanguageLocales: LocaleObject[];
|
|
5
|
+
alternateLanguageFallbackGlobalLinks: AlternateLanguageLink[];
|
|
6
|
+
defaultLangLocale: LocaleObject | undefined;
|
|
7
|
+
getTranslationUrl: (locale: LocaleObject) => string | undefined;
|
|
8
|
+
createHref: (locale: LocaleObject, translationUrl: string) => string;
|
|
9
|
+
}
|
|
10
|
+
export declare function getDefaultHrefLang({ createHref, defaultLangLocale, getTranslationUrl, alternateLanguageFallbackGlobalLinks, alternateLanguageLocales, }: Options): AlternateLanguageLink | undefined;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultHrefLang = void 0;
|
|
4
|
+
const createAlternateLanguageLink_1 = require("./createAlternateLanguageLink");
|
|
5
|
+
function getDefaultHrefLang({ createHref, defaultLangLocale, getTranslationUrl, alternateLanguageFallbackGlobalLinks, alternateLanguageLocales, }) {
|
|
6
|
+
const engFallback = 'en';
|
|
7
|
+
const hrefLang = 'x-default';
|
|
8
|
+
const fallbackFromLocales = alternateLanguageLocales.find((alternate) => alternate.isGlobal && alternate.toNeutralLanguageCode() === engFallback);
|
|
9
|
+
if (fallbackFromLocales) {
|
|
10
|
+
const link = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(fallbackFromLocales, getTranslationUrl, createHref);
|
|
11
|
+
if (link) {
|
|
12
|
+
return { ...link, hrefLang };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const fallbackFromGlobalLocales = alternateLanguageFallbackGlobalLinks.find((alternate) => alternate.hrefLang === engFallback);
|
|
16
|
+
if (fallbackFromGlobalLocales) {
|
|
17
|
+
return { ...fallbackFromGlobalLocales, hrefLang };
|
|
18
|
+
}
|
|
19
|
+
if (defaultLangLocale) {
|
|
20
|
+
const link = (0, createAlternateLanguageLink_1.createAlternateLanguageLink)(defaultLangLocale, getTranslationUrl, createHref);
|
|
21
|
+
if (link) {
|
|
22
|
+
return { ...link, hrefLang };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
exports.getDefaultHrefLang = getDefaultHrefLang;
|
|
28
|
+
//# sourceMappingURL=getDefaultHrefLang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultHrefLang.js","sourceRoot":"","sources":["../../../src/seo/utils/getDefaultHrefLang.ts"],"names":[],"mappings":";;;AAGA,+EAA4E;AAU5E,SAAgB,kBAAkB,CAAC,EAC/B,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oCAAoC,EACpC,wBAAwB,GAClB;IACN,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,WAAW,CAAC;IAE7B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,IAAI,CACrD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,qBAAqB,EAAE,KAAK,WAAW,CACzF,CAAC;IAEF,IAAI,mBAAmB,EAAE;QACrB,MAAM,IAAI,GAAG,IAAA,yDAA2B,EACpC,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,CACb,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;SAChC;KACJ;IAED,MAAM,yBAAyB,GAAG,oCAAoC,CAAC,IAAI,CACvE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,CACpD,CAAC;IAEF,IAAI,yBAAyB,EAAE;QAC3B,OAAO,EAAE,GAAG,yBAAyB,EAAE,QAAQ,EAAE,CAAC;KACrD;IAED,IAAI,iBAAiB,EAAE;QACnB,MAAM,IAAI,GAAG,IAAA,yDAA2B,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAE3F,IAAI,IAAI,EAAE;YACN,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;SAChC;KACJ;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AA3CD,gDA2CC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NewsroomLanguageSettings } from '@prezly/sdk';
|
|
2
|
+
import type { LangCode, LocaleCode } from '../../intl';
|
|
3
|
+
import { LocaleObject } from '../../intl';
|
|
4
|
+
export declare function mapLanguagesToLocales(languages: NewsroomLanguageSettings[]): readonly [Map<LangCode, Map<LocaleCode, LocaleObject>>, LocaleObject | undefined];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapLanguagesToLocales = void 0;
|
|
4
|
+
const intl_1 = require("../../intl");
|
|
5
|
+
function mapLanguagesToLocales(languages) {
|
|
6
|
+
let defaultLangLocale;
|
|
7
|
+
const localesByLangCode = new Map();
|
|
8
|
+
languages.forEach((language) => {
|
|
9
|
+
const languageLocale = intl_1.LocaleObject.fromAnyCode(language.code);
|
|
10
|
+
const globalLanguageCode = languageLocale.toNeutralLanguageCode();
|
|
11
|
+
let currentLocale = localesByLangCode.get(globalLanguageCode);
|
|
12
|
+
if (!currentLocale) {
|
|
13
|
+
currentLocale = new Map([[languageLocale.toHyphenCode(), languageLocale]]);
|
|
14
|
+
localesByLangCode.set(globalLanguageCode, currentLocale);
|
|
15
|
+
}
|
|
16
|
+
currentLocale.set(languageLocale.toHyphenCode(), languageLocale);
|
|
17
|
+
if (language.is_default) {
|
|
18
|
+
defaultLangLocale = languageLocale;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return [localesByLangCode, defaultLangLocale];
|
|
22
|
+
}
|
|
23
|
+
exports.mapLanguagesToLocales = mapLanguagesToLocales;
|
|
24
|
+
//# sourceMappingURL=mapLanguagesToLocales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapLanguagesToLocales.js","sourceRoot":"","sources":["../../../src/seo/utils/mapLanguagesToLocales.ts"],"names":[],"mappings":";;;AAGA,qCAA0C;AAE1C,SAAgB,qBAAqB,CAAC,SAAqC;IACvE,IAAI,iBAA2C,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA2C,CAAC;IAE7E,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC3B,MAAM,cAAc,GAAG,mBAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAClE,IAAI,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE9D,IAAI,CAAC,aAAa,EAAE;YAChB,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YAC3E,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;SAC5D;QAED,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,iBAAiB,GAAG,cAAc,CAAC;SACtC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAU,CAAC;AAC3D,CAAC;AAtBD,sDAsBC"}
|