@anywayseo/tools 5.11.0 → 6.1.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 (100) hide show
  1. package/dist/components/game-demo/index.d.ts +2 -6
  2. package/dist/components/index.cjs +3 -3
  3. package/dist/components/index.mjs +3 -3
  4. package/dist/components/seo/href-langs/index.d.ts +8 -0
  5. package/dist/components/seo/index.d.ts +3 -2
  6. package/dist/components/seo/json-ld/index.d.ts +7 -0
  7. package/dist/components/seo/types.d.ts +4 -3
  8. package/dist/components/seo/utils.d.ts +1 -0
  9. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/external-image/index.d.ts +1 -1
  10. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/index.d.ts +1 -1
  11. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/rich-text/index.d.ts +2 -1
  12. package/dist/components/{strapi-component → strapi-content-renderer/strapi-component}/utils.d.ts +1 -1
  13. package/dist/hooks/index.cjs +1 -1
  14. package/dist/hooks/index.mjs +1 -1
  15. package/dist/i18n/index.cjs +24 -12
  16. package/dist/i18n/index.mjs +24 -12
  17. package/dist/i18n/resources/bn/index.d.ts +331 -0
  18. package/dist/i18n/resources/cs/index.d.ts +331 -0
  19. package/dist/i18n/resources/el/index.d.ts +331 -0
  20. package/dist/i18n/resources/hu/index.d.ts +331 -0
  21. package/dist/i18n/resources/nb/index.d.ts +331 -0
  22. package/dist/i18n/resources/nl/index.d.ts +331 -0
  23. package/dist/i18n/resources/pl/index.d.ts +331 -0
  24. package/dist/i18n/resources/ro/index.d.ts +331 -0
  25. package/dist/i18n/resources/sr/index.d.ts +331 -0
  26. package/dist/i18n/resources/sv/index.d.ts +331 -0
  27. package/dist/i18n/resources/tr/index.d.ts +331 -0
  28. package/dist/i18n/resources/uz/index.d.ts +331 -0
  29. package/dist/{index-DqMBmwe5.mjs → index-2sU4ya6z.mjs} +5 -6
  30. package/dist/{index-B6wLLS6t.mjs → index-B5WurBlm.mjs} +2 -2
  31. package/dist/{index-Ca9tsjT8.js → index-BAxlqkw0.js} +2 -2
  32. package/dist/{index-CG7F6SYt.mjs → index-BBU_vIrY.mjs} +68 -30
  33. package/dist/{index-C1kr7Vd-.mjs → index-BS5T9Il4.mjs} +1 -1
  34. package/dist/{index-RzByAgHO.mjs → index-C6A-3gBz.mjs} +4577 -432
  35. package/dist/{index-hGzNO4AL.js → index-C93pA9Jv.js} +69 -31
  36. package/dist/{index-C3n63_nP.js → index-CAjUjAgI.js} +1 -1
  37. package/dist/{index-CBRFCYhV.js → index-CMLDQbgR.js} +4577 -432
  38. package/dist/{index-DSP348cK.mjs → index-CQC6DRGf.mjs} +1 -1
  39. package/dist/index-CnVcCa5O.js +151 -0
  40. package/dist/index-CoNbTY7l.mjs +152 -0
  41. package/dist/{index-CVv755RW.js → index-CuIVcnIS.js} +1 -1
  42. package/dist/{index-DhhGhwm2.js → index-CxuOu0E2.js} +5 -6
  43. package/dist/{index-D-jM-cHx.js → index-DAPaiozu.js} +2 -2
  44. package/dist/index-MnQnVvsM.mjs +198 -0
  45. package/dist/index-P_fDAJVz.js +197 -0
  46. package/dist/{index-CPbWQKoT.mjs → index-TcBorTSf.mjs} +2 -2
  47. package/dist/index.cjs +20 -9
  48. package/dist/index.mjs +31 -20
  49. package/dist/layout/header/locale-switcher/icons/bangladesh/index.d.ts +2 -0
  50. package/dist/layout/header/locale-switcher/icons/belgium/index.d.ts +2 -0
  51. package/dist/layout/header/locale-switcher/icons/canada/index.d.ts +2 -0
  52. package/dist/layout/header/locale-switcher/icons/czechia/index.d.ts +2 -0
  53. package/dist/layout/header/locale-switcher/icons/greece/index.d.ts +2 -0
  54. package/dist/layout/header/locale-switcher/icons/hungary/index.d.ts +2 -0
  55. package/dist/layout/header/locale-switcher/icons/index.d.ts +20 -1
  56. package/dist/layout/header/locale-switcher/icons/india/index.d.ts +2 -0
  57. package/dist/layout/header/locale-switcher/icons/morocco/index.d.ts +2 -0
  58. package/dist/layout/header/locale-switcher/icons/netherlands/index.d.ts +2 -0
  59. package/dist/layout/header/locale-switcher/icons/nigeria/index.d.ts +2 -0
  60. package/dist/layout/header/locale-switcher/icons/norway/index.d.ts +2 -0
  61. package/dist/layout/header/locale-switcher/icons/poland/index.d.ts +2 -0
  62. package/dist/layout/header/locale-switcher/icons/romania/index.d.ts +2 -0
  63. package/dist/layout/header/locale-switcher/icons/serbia/index.d.ts +2 -0
  64. package/dist/layout/header/locale-switcher/icons/south-africa/index.d.ts +2 -0
  65. package/dist/layout/header/locale-switcher/icons/sweden/index.d.ts +2 -0
  66. package/dist/layout/header/locale-switcher/icons/switzerland/index.d.ts +2 -0
  67. package/dist/layout/header/locale-switcher/icons/turkey/index.d.ts +2 -0
  68. package/dist/layout/header/locale-switcher/icons/uzbekistan/index.d.ts +2 -0
  69. package/dist/layout/index.cjs +396 -52
  70. package/dist/layout/index.mjs +396 -52
  71. package/dist/providers/index.cjs +2 -2
  72. package/dist/providers/index.mjs +2 -2
  73. package/dist/providers/site-provider/index.d.ts +2 -1
  74. package/dist/types/api/index.d.ts +2 -16
  75. package/dist/types/api/strapi-navigation.d.ts +16 -0
  76. package/dist/types/api/strapi-page.d.ts +46 -0
  77. package/dist/types/components/game-demo/index.d.ts +5 -0
  78. package/dist/types/components/index.d.ts +1 -1
  79. package/dist/types/content/seo/index.d.ts +38 -1
  80. package/dist/types/i18n/index.d.ts +1 -1
  81. package/dist/types/index.d.ts +1 -1
  82. package/dist/types/json-ld/index.d.ts +162 -0
  83. package/dist/types/site/index.d.ts +9 -4
  84. package/dist/utils/api/index.d.ts +4 -2
  85. package/dist/utils/api/strapi-guards.d.ts +5 -0
  86. package/dist/utils/api/strapi-navigation.d.ts +2 -0
  87. package/dist/utils/api/strapi-seo.d.ts +13 -0
  88. package/dist/utils/index.cjs +14 -3
  89. package/dist/utils/index.d.ts +1 -0
  90. package/dist/utils/index.mjs +25 -14
  91. package/dist/utils/json-ld/index.d.ts +70 -0
  92. package/dist/utils/navigation/index.d.ts +1 -1
  93. package/package.json +1 -1
  94. package/dist/components/strapi-content-renderer/utils.d.ts +0 -2
  95. package/dist/index-Ba_pXx_e.js +0 -97
  96. package/dist/index-BeJTy4iY.mjs +0 -26
  97. package/dist/index-BfITsKAr.js +0 -25
  98. package/dist/index-CJANSiM5.mjs +0 -98
  99. package/dist/types/components/strapi-component/index.d.ts +0 -5
  100. package/dist/types/page/index.d.ts +0 -7
@@ -3,18 +3,18 @@ const jsxRuntime = require("react/jsx-runtime");
3
3
  const react = require("@chakra-ui/react");
4
4
  const reactI18next = require("react-i18next");
5
5
  const react$2 = require("@mdx-js/react");
6
- const index = require("./index-D-jM-cHx.js");
6
+ const index = require("./index-DAPaiozu.js");
7
7
  require("./index-C6MG_f24.js");
8
- const index$6 = require("./index-CBRFCYhV.js");
8
+ const index$6 = require("./index-CMLDQbgR.js");
9
9
  const icons = require("@chakra-ui/icons");
10
10
  require("react-medium-image-zoom");
11
11
  const react$1 = require("react");
12
- const index$2 = require("./index-DhhGhwm2.js");
12
+ const index$2 = require("./index-CxuOu0E2.js");
13
13
  const index$3 = require("./index-DDg_PkD2.js");
14
- const index$7 = require("./index-C3n63_nP.js");
14
+ const index$7 = require("./index-CAjUjAgI.js");
15
+ const index$5 = require("./index-CnVcCa5O.js");
15
16
  const index$1 = require("./index-ov4J7p3D.js");
16
- const index$4 = require("./index-CVv755RW.js");
17
- const index$5 = require("./index-BfITsKAr.js");
17
+ const index$4 = require("./index-CuIVcnIS.js");
18
18
  const i18next = require("i18next");
19
19
  const Markdown = require("react-markdown");
20
20
  const ArticleMetaIconMap = {
@@ -693,7 +693,7 @@ const NotFound = () => {
693
693
  const CookiePolicy = () => {
694
694
  const { t } = reactI18next.useTranslation("pageCookiePolicy");
695
695
  const { metadata } = index.useSiteContext();
696
- const { name: siteName } = metadata;
696
+ const siteName = metadata.name;
697
697
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
698
698
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Heading1, { children: t("title") }),
699
699
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Paragraph, { children: t("text", { siteName }) }),
@@ -799,7 +799,7 @@ const Contacts = () => {
799
799
  const PrivacyPolicy = ({ contactsSlug }) => {
800
800
  const { t } = reactI18next.useTranslation("pagePrivacyPolicy");
801
801
  const { metadata } = index.useSiteContext();
802
- const { name: siteName } = metadata;
802
+ const siteName = metadata.name;
803
803
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
804
804
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Heading1, { children: t("title") }),
805
805
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Paragraph, { children: t("text") }),
@@ -829,7 +829,7 @@ const PrivacyPolicy = ({ contactsSlug }) => {
829
829
  const TermsAndConditions = ({ privacyPolicySlug }) => {
830
830
  const { t } = reactI18next.useTranslation("pageTermsAndConditions");
831
831
  const { metadata } = index.useSiteContext();
832
- const { name: siteName } = metadata;
832
+ const siteName = metadata.name;
833
833
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
834
834
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Heading1, { children: t("title") }),
835
835
  /* @__PURE__ */ jsxRuntime.jsx(index$3.Paragraph, { children: t("text", { siteName }) }),
@@ -951,6 +951,13 @@ const ProsCons = ({ items, ...boxProps }) => {
951
951
  /* @__PURE__ */ jsxRuntime.jsx(ProsConsCard, { itemType: "cons", items: cons })
952
952
  ] });
953
953
  };
954
+ function buildPlaceholders(siteName, lang) {
955
+ return {
956
+ siteName,
957
+ currentYear: index$1.getCurrentYear(lang),
958
+ currentMonth: index$1.getCurrentMonth(lang)
959
+ };
960
+ }
954
961
  function replacePlaceholders(text, placeholders) {
955
962
  Object.entries(placeholders).forEach(([placeholder, replacement]) => {
956
963
  const regex = new RegExp(`{{${placeholder}}}`, "g");
@@ -964,25 +971,61 @@ function getSeoMetaItem(item, placeholders) {
964
971
  }
965
972
  return item(placeholders);
966
973
  }
967
- const Seo = ({ children, pathname, locale, title, description, canonical, hrefLangs = [] }) => {
968
- const { metadata: siteMetadata } = index.useSiteContext();
969
- const { name: siteName, lang: siteLocale, seo: siteSeo } = siteMetadata;
970
- const { title: siteTitle, description: siteDescription } = siteSeo;
971
- const lang = locale || siteLocale;
972
- const placeholders = react$1.useMemo(
973
- () => ({
974
- siteName,
975
- currentYear: index$1.getCurrentYear(lang),
976
- currentMonth: index$1.getCurrentMonth(lang)
977
- }),
978
- [siteName, lang]
974
+ const JsonLd = ({ schemas }) => {
975
+ const graph = index$5.buildGraph(schemas);
976
+ if (!graph.length) {
977
+ return null;
978
+ }
979
+ const jsonLd = {
980
+ "@context": "https://schema.org",
981
+ "@graph": graph
982
+ };
983
+ return /* @__PURE__ */ jsxRuntime.jsx(
984
+ "script",
985
+ {
986
+ type: "application/ld+json",
987
+ dangerouslySetInnerHTML: {
988
+ __html: JSON.stringify(jsonLd)
989
+ }
990
+ }
979
991
  );
992
+ };
993
+ const HrefLangs = ({ siteName, hrefLangs }) => {
994
+ return hrefLangs.map(({ href, hrefLang }, index2) => /* @__PURE__ */ jsxRuntime.jsx("link", { rel: "alternate", hrefLang, href: index$7.buildCanonicalUrl(siteName, href) }, index2));
995
+ };
996
+ const Seo = ({
997
+ children,
998
+ pathname,
999
+ locale,
1000
+ title,
1001
+ description,
1002
+ canonicalUrl,
1003
+ hrefLangs = [],
1004
+ structuredData
1005
+ }) => {
1006
+ const { metadata: siteMetadata, logo: siteLogo, localization } = index.useSiteContext();
1007
+ const { name: siteName, seo: siteSeo } = siteMetadata;
1008
+ const { title: defaultTitle, description: defaultDescription } = siteSeo;
1009
+ const defaultLocale = localization.defaultLocale.code;
1010
+ const lang = locale || defaultLocale;
1011
+ const placeholders = buildPlaceholders(siteName, lang);
1012
+ const siteUrl = index$7.buildCanonicalUrl(siteName);
1013
+ const pageUrl = index$7.buildCanonicalUrl(siteName, pathname);
1014
+ const pageTitle = getSeoMetaItem(title ?? defaultTitle, placeholders);
1015
+ const pageDescription = getSeoMetaItem(description ?? defaultDescription, placeholders);
1016
+ const siteData = { url: siteUrl, name: siteName, logo: siteLogo };
1017
+ const pageData = { url: pageUrl, title: pageTitle, description: pageDescription };
1018
+ const organizationSchema = index$5.buildOrganizationSchema({ site: siteData, lang });
1019
+ const websiteSchema = index$5.buildWebsiteSchema({ site: siteData, lang });
1020
+ const entitySchema = index$5.getEntitySchema({ site: siteData, page: pageData, structuredData });
1021
+ const webpageSchema = index$5.buildWebpageSchema({ site: siteData, page: pageData, lang }, entitySchema);
980
1022
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
981
1023
  /* @__PURE__ */ jsxRuntime.jsx("html", { lang }),
982
- /* @__PURE__ */ jsxRuntime.jsx("title", { children: getSeoMetaItem(title ?? siteTitle, placeholders) }),
983
- /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "description", content: getSeoMetaItem(description ?? siteDescription, placeholders) }),
984
- /* @__PURE__ */ jsxRuntime.jsx("link", { rel: "canonical", href: canonical ?? index$7.buildCanonicalUrl(siteName, pathname) }),
985
- hrefLangs.map(({ href, hrefLang }, index2) => /* @__PURE__ */ jsxRuntime.jsx("link", { rel: "alternate", hrefLang, href: index$7.buildCanonicalUrl(siteName, href) }, index2)),
1024
+ /* @__PURE__ */ jsxRuntime.jsx("title", { children: pageTitle }),
1025
+ /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "description", content: pageDescription }),
1026
+ /* @__PURE__ */ jsxRuntime.jsx("link", { rel: "canonical", href: canonicalUrl ?? pageUrl }),
1027
+ /* @__PURE__ */ jsxRuntime.jsx(HrefLangs, { siteName, hrefLangs }),
1028
+ /* @__PURE__ */ jsxRuntime.jsx(JsonLd, { schemas: { organization: organizationSchema, website: websiteSchema, webpage: webpageSchema } }),
986
1029
  children
987
1030
  ] });
988
1031
  };
@@ -1264,13 +1307,8 @@ const StrapiComponent = ({ type, props, imageComponent }) => {
1264
1307
  return null;
1265
1308
  }
1266
1309
  };
1267
- function isStrapiContent(array) {
1268
- return Array.isArray(array) && array.every(
1269
- (item) => typeof item === "object" && item !== null && "__typename" in item && typeof item.__typename === "string"
1270
- );
1271
- }
1272
1310
  const StrapiContentRenderer = ({ content, imageComponent }) => {
1273
- if (!isStrapiContent(content)) {
1311
+ if (!index$5.isStrapiContent(content)) {
1274
1312
  return null;
1275
1313
  }
1276
1314
  return content.map(({ __typename: type, ...props }, index2) => /* @__PURE__ */ jsxRuntime.jsx(StrapiComponent, { type, props, imageComponent }, index2));
@@ -2,7 +2,7 @@
2
2
  function buildPath(slug, parentSlug) {
3
3
  return parentSlug === "" ? slug : `${parentSlug}/${slug}`;
4
4
  }
5
- function buildCanonicalUrl(domain, path) {
5
+ function buildCanonicalUrl(domain, path = "") {
6
6
  const cleanPath = path.split(/[?#]/)[0];
7
7
  return `https://${domain}${cleanPath === "/" ? "" : cleanPath}`;
8
8
  }