@prezly/theme-kit-nextjs 3.2.3-0 → 3.2.3

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 (46) hide show
  1. package/build/components-nextjs/PageSeo/PageSeo.js +15 -4
  2. package/build/components-nextjs/PageSeo/PageSeo.js.map +1 -1
  3. package/build/components-nextjs/document.js.map +1 -1
  4. package/build/intl/index.d.ts +1 -2
  5. package/build/intl/index.js +1 -2
  6. package/build/intl/index.js.map +1 -1
  7. package/build/intl/locale.d.ts +0 -9
  8. package/build/intl/locale.js.map +1 -1
  9. package/build/intl/localeObject.d.ts +0 -5
  10. package/build/intl/localeObject.js +0 -7
  11. package/build/intl/localeObject.js.map +1 -1
  12. package/build/sentry/common.js +26 -0
  13. package/build/sentry/common.js.map +1 -1
  14. package/build/tsconfig.tsbuildinfo +1 -1
  15. package/package.json +8 -8
  16. package/src/components-nextjs/PageSeo/PageSeo.tsx +25 -14
  17. package/src/components-nextjs/document.tsx +1 -0
  18. package/src/intl/index.ts +1 -2
  19. package/src/intl/locale.ts +1 -5
  20. package/src/intl/localeObject.ts +0 -8
  21. package/src/sentry/common.ts +42 -0
  22. package/build/intl/getFallbackLocale.d.ts +0 -8
  23. package/build/intl/getFallbackLocale.js +0 -21
  24. package/build/intl/getFallbackLocale.js.map +0 -1
  25. package/build/seo/getAlternateLanguageLinks.d.ts +0 -4
  26. package/build/seo/getAlternateLanguageLinks.js +0 -49
  27. package/build/seo/getAlternateLanguageLinks.js.map +0 -1
  28. package/build/seo/index.d.ts +0 -1
  29. package/build/seo/index.js +0 -18
  30. package/build/seo/index.js.map +0 -1
  31. package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
  32. package/build/seo/utils/createAlternateLanguageLink.js +0 -15
  33. package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
  34. package/build/seo/utils/getDefaultHrefLang.d.ts +0 -11
  35. package/build/seo/utils/getDefaultHrefLang.js +0 -28
  36. package/build/seo/utils/getDefaultHrefLang.js.map +0 -1
  37. package/build/seo/utils/mapLanguagesToLocales.d.ts +0 -4
  38. package/build/seo/utils/mapLanguagesToLocales.js +0 -24
  39. package/build/seo/utils/mapLanguagesToLocales.js.map +0 -1
  40. package/src/intl/getFallbackLocale.ts +0 -26
  41. package/src/seo/getAlternateLanguageLinks.test.ts +0 -150
  42. package/src/seo/getAlternateLanguageLinks.ts +0 -72
  43. package/src/seo/index.ts +0 -1
  44. package/src/seo/utils/createAlternateLanguageLink.ts +0 -18
  45. package/src/seo/utils/getDefaultHrefLang.ts +0 -57
  46. package/src/seo/utils/mapLanguagesToLocales.ts +0 -28
@@ -1,72 +0,0 @@
1
- import type { NewsroomLanguageSettings } from '@prezly/sdk';
2
-
3
- import type { AlternateLanguageLink } from '../components-nextjs/PageSeo';
4
- import type { LocaleObject } from '../intl';
5
- import { getFallbackLocale } from '../intl';
6
-
7
- import { createAlternateLanguageLink } from './utils/createAlternateLanguageLink';
8
- import { getDefaultHrefLang } from './utils/getDefaultHrefLang';
9
- import { mapLanguagesToLocales } from './utils/mapLanguagesToLocales';
10
-
11
- export function getAlternateLanguageLinks(
12
- languages: NewsroomLanguageSettings[],
13
- getTranslationUrl: (locale: LocaleObject) => string | undefined,
14
- createHref: (locale: LocaleObject, translationUrl: string) => string,
15
- ): AlternateLanguageLink[] {
16
- const alternateLanguageFallbackGlobalLinks: AlternateLanguageLink[] = [];
17
- const alternateLanguageLocales: LocaleObject[] = [];
18
- const [localesByLangCode, defaultLangLocale] = mapLanguagesToLocales(languages);
19
-
20
- localesByLangCode.forEach((locales, globalLocaleCode) => {
21
- let hasGlobalLocale = false;
22
-
23
- locales.forEach((locale) => {
24
- alternateLanguageLocales.push(locale);
25
-
26
- if (!hasGlobalLocale && locale.isGlobal) {
27
- hasGlobalLocale = true;
28
- }
29
- });
30
-
31
- if (!hasGlobalLocale) {
32
- const localesArray = Array.from(locales.values());
33
- const fallback =
34
- getFallbackLocale(globalLocaleCode, localesArray) ?? localesArray.at(0);
35
-
36
- if (fallback) {
37
- const fallbackLink = createAlternateLanguageLink(
38
- fallback,
39
- getTranslationUrl,
40
- createHref,
41
- );
42
-
43
- if (fallbackLink) {
44
- alternateLanguageFallbackGlobalLinks.push({
45
- ...fallbackLink,
46
- hrefLang: globalLocaleCode,
47
- });
48
- }
49
- }
50
- }
51
- });
52
-
53
- let languageAlternates: Array<AlternateLanguageLink | undefined> = alternateLanguageLocales.map(
54
- (locale) => createAlternateLanguageLink(locale, getTranslationUrl, createHref),
55
- );
56
-
57
- languageAlternates = languageAlternates.concat(alternateLanguageFallbackGlobalLinks);
58
-
59
- const xDefault = getDefaultHrefLang({
60
- alternateLanguageLocales,
61
- alternateLanguageFallbackGlobalLinks,
62
- defaultLangLocale,
63
- getTranslationUrl,
64
- createHref,
65
- });
66
-
67
- languageAlternates.push(xDefault);
68
-
69
- return languageAlternates
70
- .filter((link): link is Exclude<typeof link, undefined> => Boolean(link))
71
- .sort((a, b) => a.hrefLang.localeCompare(b.hrefLang));
72
- }
package/src/seo/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './getAlternateLanguageLinks';
@@ -1,18 +0,0 @@
1
- import type { LocaleObject } from '../../intl';
2
-
3
- export function createAlternateLanguageLink(
4
- locale: LocaleObject,
5
- getTranslationUrl: (locale: LocaleObject) => string | undefined,
6
- createHref: (locale: LocaleObject, translationUrl: string) => string,
7
- ) {
8
- const translationUrl = getTranslationUrl(locale);
9
-
10
- if (!translationUrl) {
11
- return undefined;
12
- }
13
-
14
- return {
15
- hrefLang: locale.toHyphenCode(),
16
- href: createHref(locale, translationUrl),
17
- };
18
- }
@@ -1,57 +0,0 @@
1
- import type { AlternateLanguageLink } from '../../components-nextjs/PageSeo';
2
- import type { LocaleObject } from '../../intl';
3
-
4
- import { createAlternateLanguageLink } from './createAlternateLanguageLink';
5
-
6
- interface Options {
7
- alternateLanguageLocales: LocaleObject[];
8
- alternateLanguageFallbackGlobalLinks: AlternateLanguageLink[];
9
- defaultLangLocale: LocaleObject | undefined;
10
- getTranslationUrl: (locale: LocaleObject) => string | undefined;
11
- createHref: (locale: LocaleObject, translationUrl: string) => string;
12
- }
13
-
14
- export function getDefaultHrefLang({
15
- createHref,
16
- defaultLangLocale,
17
- getTranslationUrl,
18
- alternateLanguageFallbackGlobalLinks,
19
- alternateLanguageLocales,
20
- }: Options): AlternateLanguageLink | undefined {
21
- const engFallback = 'en';
22
- const hrefLang = 'x-default';
23
-
24
- const fallbackFromLocales = alternateLanguageLocales.find(
25
- (alternate) => alternate.isGlobal && alternate.toNeutralLanguageCode() === engFallback,
26
- );
27
-
28
- if (fallbackFromLocales) {
29
- const link = createAlternateLanguageLink(
30
- fallbackFromLocales,
31
- getTranslationUrl,
32
- createHref,
33
- );
34
-
35
- if (link) {
36
- return { ...link, hrefLang };
37
- }
38
- }
39
-
40
- const fallbackFromGlobalLocales = alternateLanguageFallbackGlobalLinks.find(
41
- (alternate) => alternate.hrefLang === engFallback,
42
- );
43
-
44
- if (fallbackFromGlobalLocales) {
45
- return { ...fallbackFromGlobalLocales, hrefLang };
46
- }
47
-
48
- if (defaultLangLocale) {
49
- const link = createAlternateLanguageLink(defaultLangLocale, getTranslationUrl, createHref);
50
-
51
- if (link) {
52
- return { ...link, hrefLang };
53
- }
54
- }
55
-
56
- return undefined;
57
- }
@@ -1,28 +0,0 @@
1
- import type { NewsroomLanguageSettings } from '@prezly/sdk';
2
-
3
- import type { LangCode, LocaleCode } from '../../intl';
4
- import { LocaleObject } from '../../intl';
5
-
6
- export function mapLanguagesToLocales(languages: NewsroomLanguageSettings[]) {
7
- let defaultLangLocale: LocaleObject | undefined;
8
- const localesByLangCode = new Map<LangCode, Map<LocaleCode, LocaleObject>>();
9
-
10
- languages.forEach((language) => {
11
- const languageLocale = LocaleObject.fromAnyCode(language.code);
12
- const globalLanguageCode = languageLocale.toNeutralLanguageCode();
13
- let currentLocale = localesByLangCode.get(globalLanguageCode);
14
-
15
- if (!currentLocale) {
16
- currentLocale = new Map([[languageLocale.toHyphenCode(), languageLocale]]);
17
- localesByLangCode.set(globalLanguageCode, currentLocale);
18
- }
19
-
20
- currentLocale.set(languageLocale.toHyphenCode(), languageLocale);
21
-
22
- if (language.is_default) {
23
- defaultLangLocale = languageLocale;
24
- }
25
- });
26
-
27
- return [localesByLangCode, defaultLangLocale] as const;
28
- }