{"version":3,"sources":["../src/pages/core/buildTags.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n  BuildTagsParams,\n  OpenGraphMedia,\n  NextSeoProps,\n  DefaultSeoProps,\n} from \"../types\";\nconst defaults = {\n  templateTitle: \"\",\n  noindex: false,\n  nofollow: false,\n  norobots: false,\n  defaultOpenGraphImageWidth: 0,\n  defaultOpenGraphImageHeight: 0,\n  defaultOpenGraphVideoWidth: 0,\n  defaultOpenGraphVideoHeight: 0,\n};\n\nconst buildOpenGraphMediaTags = (\n  mediaType: \"image\" | \"video\" | \"audio\",\n  media: ReadonlyArray<OpenGraphMedia> = [],\n  {\n    defaultWidth,\n    defaultHeight,\n  }: { defaultWidth?: number; defaultHeight?: number } = {},\n) => {\n  return media.reduce((tags, medium, index) => {\n    tags.push(\n      <meta\n        key={`og:${mediaType}:0${index}`}\n        property={`og:${mediaType}`}\n        content={medium.url}\n      />,\n    );\n\n    if (medium.alt) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:alt0${index}`}\n          property={`og:${mediaType}:alt`}\n          content={medium.alt}\n        />,\n      );\n    }\n\n    if (medium.secureUrl) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:secure_url0${index}`}\n          property={`og:${mediaType}:secure_url`}\n          content={medium.secureUrl.toString()}\n        />,\n      );\n    }\n\n    if (medium.type) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:type0${index}`}\n          property={`og:${mediaType}:type`}\n          content={medium.type.toString()}\n        />,\n      );\n    }\n\n    if (medium.width) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:width0${index}`}\n          property={`og:${mediaType}:width`}\n          content={medium.width.toString()}\n        />,\n      );\n    } else if (defaultWidth) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:width0${index}`}\n          property={`og:${mediaType}:width`}\n          content={defaultWidth.toString()}\n        />,\n      );\n    }\n\n    if (medium.height) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:height${index}`}\n          property={`og:${mediaType}:height`}\n          content={medium.height.toString()}\n        />,\n      );\n    } else if (defaultHeight) {\n      tags.push(\n        <meta\n          key={`og:${mediaType}:height${index}`}\n          property={`og:${mediaType}:height`}\n          content={defaultHeight.toString()}\n        />,\n      );\n    }\n\n    return tags;\n  }, [] as ReactNode[]);\n};\n\nconst generateSeoTags = (config: BuildTagsParams) => {\n  const tagsToRender: ReactNode[] = [];\n\n  if (config.titleTemplate) {\n    defaults.templateTitle = config.titleTemplate;\n  }\n\n  let updatedTitle = \"\";\n  if (config.title) {\n    updatedTitle = config.title;\n    if (defaults.templateTitle) {\n      updatedTitle = defaults.templateTitle.replace(/%s/g, () => updatedTitle);\n    }\n  } else if (config.defaultTitle) {\n    updatedTitle = config.defaultTitle;\n  }\n\n  if (updatedTitle) {\n    tagsToRender.push(<title key=\"title\">{updatedTitle}</title>);\n  }\n\n  const noindex =\n    config.noindex === undefined\n      ? defaults.noindex || config.dangerouslySetAllPagesToNoIndex\n      : config.noindex;\n\n  const nofollow =\n    config.nofollow === undefined\n      ? defaults.nofollow || config.dangerouslySetAllPagesToNoFollow\n      : config.nofollow;\n\n  const norobots = config.norobots || defaults.norobots;\n\n  let robotsParams = \"\";\n\n  if (config.robotsProps) {\n    const {\n      nosnippet,\n      maxSnippet,\n      maxImagePreview,\n      maxVideoPreview,\n      noarchive,\n      noimageindex,\n      notranslate,\n      unavailableAfter,\n    } = config.robotsProps;\n\n    robotsParams = `${nosnippet ? \",nosnippet\" : \"\"}${\n      maxSnippet ? `,max-snippet:${maxSnippet}` : \"\"\n    }${maxImagePreview ? `,max-image-preview:${maxImagePreview}` : \"\"}${\n      noarchive ? \",noarchive\" : \"\"\n    }${unavailableAfter ? `,unavailable_after:${unavailableAfter}` : \"\"}${\n      noimageindex ? \",noimageindex\" : \"\"\n    }${maxVideoPreview ? `,max-video-preview:${maxVideoPreview}` : \"\"}${\n      notranslate ? \",notranslate\" : \"\"\n    }`;\n  }\n\n  if (config.norobots) {\n    defaults.norobots = true;\n  }\n\n  if (noindex || nofollow) {\n    if (config.dangerouslySetAllPagesToNoIndex) {\n      defaults.noindex = true;\n    }\n    if (config.dangerouslySetAllPagesToNoFollow) {\n      defaults.nofollow = true;\n    }\n\n    tagsToRender.push(\n      <meta\n        key=\"robots\"\n        name=\"robots\"\n        content={`${noindex ? \"noindex\" : \"index\"},${\n          nofollow ? \"nofollow\" : \"follow\"\n        }${robotsParams}`}\n      />,\n    );\n  } else if (!norobots || robotsParams) {\n    tagsToRender.push(\n      <meta\n        key=\"robots\"\n        name=\"robots\"\n        content={`index,follow${robotsParams}`}\n      />,\n    );\n  }\n\n  if (config.description) {\n    tagsToRender.push(\n      <meta\n        key=\"description\"\n        name=\"description\"\n        content={config.description}\n      />,\n    );\n  }\n\n  if (config.themeColor) {\n    tagsToRender.push(\n      <meta key=\"theme-color\" name=\"theme-color\" content={config.themeColor} />,\n    );\n  }\n\n  if (config.mobileAlternate) {\n    tagsToRender.push(\n      <link\n        rel=\"alternate\"\n        key=\"mobileAlternate\"\n        media={config.mobileAlternate.media}\n        href={config.mobileAlternate.href}\n      />,\n    );\n  }\n\n  if (config.languageAlternates && config.languageAlternates.length > 0) {\n    config.languageAlternates.forEach((languageAlternate) => {\n      tagsToRender.push(\n        <link\n          rel=\"alternate\"\n          key={`languageAlternate-${languageAlternate.hrefLang}`}\n          hrefLang={languageAlternate.hrefLang}\n          href={languageAlternate.href}\n        />,\n      );\n    });\n  }\n\n  if (config.twitter) {\n    if (config.twitter.cardType) {\n      tagsToRender.push(\n        <meta\n          key=\"twitter:card\"\n          name=\"twitter:card\"\n          content={config.twitter.cardType}\n        />,\n      );\n    }\n\n    if (config.twitter.site) {\n      tagsToRender.push(\n        <meta\n          key=\"twitter:site\"\n          name=\"twitter:site\"\n          content={config.twitter.site}\n        />,\n      );\n    }\n\n    if (config.twitter.handle) {\n      tagsToRender.push(\n        <meta\n          key=\"twitter:creator\"\n          name=\"twitter:creator\"\n          content={config.twitter.handle}\n        />,\n      );\n    }\n  }\n\n  if (config.facebook) {\n    if (config.facebook.appId) {\n      tagsToRender.push(\n        <meta\n          key=\"fb:app_id\"\n          property=\"fb:app_id\"\n          content={config.facebook.appId}\n        />,\n      );\n    }\n  }\n\n  if (config.openGraph?.title || updatedTitle) {\n    tagsToRender.push(\n      <meta\n        key=\"og:title\"\n        property=\"og:title\"\n        content={config.openGraph?.title || updatedTitle}\n      />,\n    );\n  }\n\n  if (config.openGraph?.description || config.description) {\n    tagsToRender.push(\n      <meta\n        key=\"og:description\"\n        property=\"og:description\"\n        content={config.openGraph?.description || config.description}\n      />,\n    );\n  }\n\n  if (config.openGraph) {\n    if (config.openGraph.url || config.canonical) {\n      tagsToRender.push(\n        <meta\n          key=\"og:url\"\n          property=\"og:url\"\n          content={config.openGraph.url || config.canonical}\n        />,\n      );\n    }\n\n    if (config.openGraph.type) {\n      const type = config.openGraph.type.toLowerCase();\n\n      tagsToRender.push(\n        <meta key=\"og:type\" property=\"og:type\" content={type} />,\n      );\n\n      if (type === \"profile\" && config.openGraph.profile) {\n        if (config.openGraph.profile.firstName) {\n          tagsToRender.push(\n            <meta\n              key=\"profile:first_name\"\n              property=\"profile:first_name\"\n              content={config.openGraph.profile.firstName}\n            />,\n          );\n        }\n\n        if (config.openGraph.profile.lastName) {\n          tagsToRender.push(\n            <meta\n              key=\"profile:last_name\"\n              property=\"profile:last_name\"\n              content={config.openGraph.profile.lastName}\n            />,\n          );\n        }\n\n        if (config.openGraph.profile.username) {\n          tagsToRender.push(\n            <meta\n              key=\"profile:username\"\n              property=\"profile:username\"\n              content={config.openGraph.profile.username}\n            />,\n          );\n        }\n\n        if (config.openGraph.profile.gender) {\n          tagsToRender.push(\n            <meta\n              key=\"profile:gender\"\n              property=\"profile:gender\"\n              content={config.openGraph.profile.gender}\n            />,\n          );\n        }\n      } else if (type === \"book\" && config.openGraph.book) {\n        if (\n          config.openGraph.book.authors &&\n          config.openGraph.book.authors.length\n        ) {\n          config.openGraph.book.authors.forEach((author, index) => {\n            tagsToRender.push(\n              <meta\n                key={`book:author:0${index}`}\n                property=\"book:author\"\n                content={author}\n              />,\n            );\n          });\n        }\n\n        if (config.openGraph.book.isbn) {\n          tagsToRender.push(\n            <meta\n              key=\"book:isbn\"\n              property=\"book:isbn\"\n              content={config.openGraph.book.isbn}\n            />,\n          );\n        }\n\n        if (config.openGraph.book.releaseDate) {\n          tagsToRender.push(\n            <meta\n              key=\"book:release_date\"\n              property=\"book:release_date\"\n              content={config.openGraph.book.releaseDate}\n            />,\n          );\n        }\n\n        if (config.openGraph.book.tags && config.openGraph.book.tags.length) {\n          config.openGraph.book.tags.forEach((tag, index) => {\n            tagsToRender.push(\n              <meta\n                key={`book:tag:0${index}`}\n                property=\"book:tag\"\n                content={tag}\n              />,\n            );\n          });\n        }\n      } else if (type === \"article\" && config.openGraph.article) {\n        if (config.openGraph.article.publishedTime) {\n          tagsToRender.push(\n            <meta\n              key=\"article:published_time\"\n              property=\"article:published_time\"\n              content={config.openGraph.article.publishedTime}\n            />,\n          );\n        }\n\n        if (config.openGraph.article.modifiedTime) {\n          tagsToRender.push(\n            <meta\n              key=\"article:modified_time\"\n              property=\"article:modified_time\"\n              content={config.openGraph.article.modifiedTime}\n            />,\n          );\n        }\n\n        if (config.openGraph.article.expirationTime) {\n          tagsToRender.push(\n            <meta\n              key=\"article:expiration_time\"\n              property=\"article:expiration_time\"\n              content={config.openGraph.article.expirationTime}\n            />,\n          );\n        }\n\n        if (\n          config.openGraph.article.authors &&\n          config.openGraph.article.authors.length\n        ) {\n          config.openGraph.article.authors.forEach((author, index) => {\n            tagsToRender.push(\n              <meta\n                key={`article:author:0${index}`}\n                property=\"article:author\"\n                content={author}\n              />,\n            );\n          });\n        }\n\n        if (config.openGraph.article.section) {\n          tagsToRender.push(\n            <meta\n              key=\"article:section\"\n              property=\"article:section\"\n              content={config.openGraph.article.section}\n            />,\n          );\n        }\n\n        if (\n          config.openGraph.article.tags &&\n          config.openGraph.article.tags.length\n        ) {\n          config.openGraph.article.tags.forEach((tag, index) => {\n            tagsToRender.push(\n              <meta\n                key={`article:tag:0${index}`}\n                property=\"article:tag\"\n                content={tag}\n              />,\n            );\n          });\n        }\n      } else if (\n        (type === \"video.movie\" ||\n          type === \"video.episode\" ||\n          type === \"video.tv_show\" ||\n          type === \"video.other\") &&\n        config.openGraph.video\n      ) {\n        if (\n          config.openGraph.video.actors &&\n          config.openGraph.video.actors.length\n        ) {\n          config.openGraph.video.actors.forEach((actor, index) => {\n            if (actor.profile) {\n              tagsToRender.push(\n                <meta\n                  key={`video:actor:0${index}`}\n                  property=\"video:actor\"\n                  content={actor.profile}\n                />,\n              );\n            }\n\n            if (actor.role) {\n              tagsToRender.push(\n                <meta\n                  key={`video:actor:role:0${index}`}\n                  property=\"video:actor:role\"\n                  content={actor.role}\n                />,\n              );\n            }\n          });\n        }\n\n        if (\n          config.openGraph.video.directors &&\n          config.openGraph.video.directors.length\n        ) {\n          config.openGraph.video.directors.forEach((director, index) => {\n            tagsToRender.push(\n              <meta\n                key={`video:director:0${index}`}\n                property=\"video:director\"\n                content={director}\n              />,\n            );\n          });\n        }\n\n        if (\n          config.openGraph.video.writers &&\n          config.openGraph.video.writers.length\n        ) {\n          config.openGraph.video.writers.forEach((writer, index) => {\n            tagsToRender.push(\n              <meta\n                key={`video:writer:0${index}`}\n                property=\"video:writer\"\n                content={writer}\n              />,\n            );\n          });\n        }\n\n        if (config.openGraph.video.duration) {\n          tagsToRender.push(\n            <meta\n              key=\"video:duration\"\n              property=\"video:duration\"\n              content={config.openGraph.video.duration.toString()}\n            />,\n          );\n        }\n\n        if (config.openGraph.video.releaseDate) {\n          tagsToRender.push(\n            <meta\n              key=\"video:release_date\"\n              property=\"video:release_date\"\n              content={config.openGraph.video.releaseDate}\n            />,\n          );\n        }\n\n        if (config.openGraph.video.tags && config.openGraph.video.tags.length) {\n          config.openGraph.video.tags.forEach((tag, index) => {\n            tagsToRender.push(\n              <meta\n                key={`video:tag:0${index}`}\n                property=\"video:tag\"\n                content={tag}\n              />,\n            );\n          });\n        }\n\n        if (config.openGraph.video.series) {\n          tagsToRender.push(\n            <meta\n              key=\"video:series\"\n              property=\"video:series\"\n              content={config.openGraph.video.series}\n            />,\n          );\n        }\n      }\n    }\n\n    // images\n    if (config.defaultOpenGraphImageWidth) {\n      defaults.defaultOpenGraphImageWidth = config.defaultOpenGraphImageWidth;\n    }\n\n    if (config.defaultOpenGraphImageHeight) {\n      defaults.defaultOpenGraphImageHeight = config.defaultOpenGraphImageHeight;\n    }\n\n    if (config.openGraph.images && config.openGraph.images.length) {\n      tagsToRender.push(\n        ...buildOpenGraphMediaTags(\"image\", config.openGraph.images, {\n          defaultWidth: defaults.defaultOpenGraphImageWidth,\n          defaultHeight: defaults.defaultOpenGraphImageHeight,\n        }),\n      );\n    }\n\n    // videos\n    if (config.defaultOpenGraphVideoWidth) {\n      defaults.defaultOpenGraphVideoWidth = config.defaultOpenGraphVideoWidth;\n    }\n\n    if (config.defaultOpenGraphVideoHeight) {\n      defaults.defaultOpenGraphVideoHeight = config.defaultOpenGraphVideoHeight;\n    }\n\n    if (config.openGraph.videos && config.openGraph.videos.length) {\n      tagsToRender.push(\n        ...buildOpenGraphMediaTags(\"video\", config.openGraph.videos, {\n          defaultWidth: defaults.defaultOpenGraphVideoWidth,\n          defaultHeight: defaults.defaultOpenGraphVideoHeight,\n        }),\n      );\n    }\n\n    // audio\n    if (config.openGraph.audio) {\n      tagsToRender.push(\n        ...buildOpenGraphMediaTags(\"audio\", config.openGraph.audio),\n      );\n    }\n\n    if (config.openGraph.locale) {\n      tagsToRender.push(\n        <meta\n          key=\"og:locale\"\n          property=\"og:locale\"\n          content={config.openGraph.locale}\n        />,\n      );\n    }\n\n    if (config.openGraph.siteName || config.openGraph.site_name) {\n      tagsToRender.push(\n        <meta\n          key=\"og:site_name\"\n          property=\"og:site_name\"\n          content={config.openGraph.siteName || config.openGraph.site_name}\n        />,\n      );\n    }\n  }\n\n  if (config.canonical) {\n    tagsToRender.push(\n      <link rel=\"canonical\" href={config.canonical} key=\"canonical\" />,\n    );\n  }\n\n  if (config.additionalMetaTags && config.additionalMetaTags.length > 0) {\n    config.additionalMetaTags.forEach(({ keyOverride, ...tag }) => {\n      tagsToRender.push(\n        <meta\n          key={`meta:${\n            keyOverride ?? tag.name ?? tag.property ?? tag.httpEquiv\n          }`}\n          {...tag}\n        />,\n      );\n    });\n  }\n\n  if (config.additionalLinkTags?.length) {\n    config.additionalLinkTags.forEach((tag) => {\n      const { crossOrigin: tagCrossOrigin, ...rest } = tag;\n      const crossOrigin: \"anonymous\" | \"use-credentials\" | \"\" | undefined =\n        tagCrossOrigin === \"anonymous\" ||\n        tagCrossOrigin === \"use-credentials\" ||\n        tagCrossOrigin === \"\"\n          ? tagCrossOrigin\n          : undefined;\n\n      tagsToRender.push(\n        <link\n          key={`link${rest.keyOverride ?? rest.href}${rest.rel}`}\n          {...rest}\n          crossOrigin={crossOrigin}\n        />,\n      );\n    });\n  }\n\n  return tagsToRender;\n};\n\n/**\n * Generate SEO meta tags for Next.js\n * This is the core function that creates all SEO-related tags\n * @internal\n */\nexport { generateSeoTags };\n\n/**\n * Generate SEO meta tags for NextSeo component\n * Use this when you want to add SEO tags directly in Next.js <Head>\n * without using the NextSeo component wrapper\n *\n * @example\n * ```tsx\n * import Head from 'next/head';\n * import { generateNextSeo } from 'next-seo/pages';\n *\n * export default function Page() {\n *   return (\n *     <>\n *       <Head>\n *         {generateNextSeo({\n *           title: \"My Page Title\",\n *           description: \"My page description\"\n *         })}\n *       </Head>\n *       <h1>Page Content</h1>\n *     </>\n *   );\n * }\n * ```\n */\nexport function generateNextSeo(props: NextSeoProps): ReactNode[] {\n  return generateSeoTags(props);\n}\n\n/**\n * Generate default SEO meta tags for DefaultSeo component\n * Use this when you want to set global SEO defaults directly in Next.js <Head>\n * without using the DefaultSeo component wrapper\n *\n * @example\n * ```tsx\n * // pages/_app.tsx\n * import Head from 'next/head';\n * import { generateDefaultSeo } from 'next-seo/pages';\n *\n * export default function MyApp({ Component, pageProps }) {\n *   return (\n *     <>\n *       <Head>\n *         {generateDefaultSeo({\n *           titleTemplate: \"MySite | %s\",\n *           defaultTitle: \"MySite\",\n *           description: \"Default site description\"\n *         })}\n *       </Head>\n *       <Component {...pageProps} />\n *     </>\n *   );\n * }\n * ```\n */\nexport function generateDefaultSeo(props: DefaultSeoProps): ReactNode[] {\n  const {\n    title,\n    titleTemplate,\n    defaultTitle,\n    themeColor,\n    dangerouslySetAllPagesToNoIndex = false,\n    dangerouslySetAllPagesToNoFollow = false,\n    description,\n    canonical,\n    facebook,\n    openGraph,\n    additionalMetaTags,\n    twitter,\n    defaultOpenGraphImageWidth,\n    defaultOpenGraphImageHeight,\n    defaultOpenGraphVideoWidth,\n    defaultOpenGraphVideoHeight,\n    mobileAlternate,\n    languageAlternates,\n    additionalLinkTags,\n    robotsProps,\n    norobots,\n  } = props;\n  return generateSeoTags({\n    title,\n    titleTemplate,\n    defaultTitle,\n    themeColor,\n    dangerouslySetAllPagesToNoIndex,\n    dangerouslySetAllPagesToNoFollow,\n    description,\n    canonical,\n    facebook,\n    openGraph,\n    additionalMetaTags,\n    twitter,\n    defaultOpenGraphImageWidth,\n    defaultOpenGraphImageHeight,\n    defaultOpenGraphVideoWidth,\n    defaultOpenGraphVideoHeight,\n    mobileAlternate,\n    languageAlternates,\n    additionalLinkTags,\n    robotsProps,\n    norobots,\n  });\n}\n"],"mappings":"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","names":[]}