sanity-plugin-seofields 1.6.2 → 1.6.4
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/README.md +15 -3
- package/dist/SeoHealthDashboard-BEZVLLFG.js +4 -0
- package/dist/{SeoHealthDashboard-PY5MKJCZ.js.map → SeoHealthDashboard-BEZVLLFG.js.map} +1 -1
- package/dist/SeoHealthDashboard-D3XU3CUB.cjs +10 -0
- package/dist/{SeoHealthDashboard-FZTP4GS7.cjs.map → SeoHealthDashboard-D3XU3CUB.cjs.map} +1 -1
- package/dist/{SeoHealthTool-Z3O6NEKF.cjs → SeoHealthTool-4VZMD4TR.cjs} +4 -4
- package/dist/{SeoHealthTool-Z3O6NEKF.cjs.map → SeoHealthTool-4VZMD4TR.cjs.map} +1 -1
- package/dist/{SeoHealthTool-SKY7FAKK.js → SeoHealthTool-BSTYAKQS.js} +3 -3
- package/dist/{SeoHealthTool-SKY7FAKK.js.map → SeoHealthTool-BSTYAKQS.js.map} +1 -1
- package/dist/{chunk-XXQURVNE.cjs → chunk-BCTPOWXA.cjs} +111 -111
- package/dist/{chunk-XXQURVNE.cjs.map → chunk-BCTPOWXA.cjs.map} +1 -1
- package/dist/{chunk-77U7CMJP.cjs → chunk-BHIZQLY7.cjs} +135 -16
- package/dist/chunk-BHIZQLY7.cjs.map +1 -0
- package/dist/{chunk-KFFDQX22.js → chunk-HQTYQMP5.js} +135 -16
- package/dist/chunk-HQTYQMP5.js.map +1 -0
- package/dist/{chunk-IQG5JWVT.js → chunk-KTL6NYNG.js} +4 -2
- package/dist/chunk-KTL6NYNG.js.map +1 -0
- package/dist/{chunk-ULFY5STC.js → chunk-XXA6WCWS.js} +3 -3
- package/dist/{chunk-ULFY5STC.js.map → chunk-XXA6WCWS.js.map} +1 -1
- package/dist/{chunk-YM3ZZ2HU.cjs → chunk-YHXUWGNA.cjs} +4 -2
- package/dist/chunk-YHXUWGNA.cjs.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/{component-DS-Ve_nw.d.cts → component-CIE6Sy4F.d.cts} +1 -1
- package/dist/{component-CWZ0tlsq.d.ts → component-H52blyfc.d.ts} +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/next.cjs +77 -77
- package/dist/next.d.cts +2 -2
- package/dist/next.d.ts +2 -2
- package/dist/next.js +2 -2
- package/dist/schema/next.cjs +80 -80
- package/dist/schema/next.d.cts +3 -3
- package/dist/schema/next.d.ts +3 -3
- package/dist/schema/next.js +3 -3
- package/dist/schema.cjs +153 -153
- package/dist/schema.d.cts +4 -4
- package/dist/schema.d.ts +4 -4
- package/dist/schema.js +2 -2
- package/dist/{types-BdaGoGQE.d.cts → types-BxcJinOf.d.cts} +8 -8
- package/dist/{types-Dy7r5det.d.ts → types-CbYb4MsN.d.ts} +1 -1
- package/dist/{types-BjVpmBAX.d.cts → types-CyRdIF-3.d.cts} +1 -1
- package/dist/{types-BwmZmt9I.d.ts → types-Dp9Pfnt9.d.ts} +8 -8
- package/package.json +19 -4
- package/dist/SeoHealthDashboard-FZTP4GS7.cjs +0 -10
- package/dist/SeoHealthDashboard-PY5MKJCZ.js +0 -4
- package/dist/chunk-77U7CMJP.cjs.map +0 -1
- package/dist/chunk-IQG5JWVT.js.map +0 -1
- package/dist/chunk-KFFDQX22.js.map +0 -1
- package/dist/chunk-YM3ZZ2HU.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema/utils.ts","../src/schema/SchemaOrgScript.tsx","../src/schema/organization/component.tsx","../src/schema/website/component.tsx","../src/schema/SchemaOrgScripts.tsx","../src/schema/aggregateRating/component.tsx","../src/schema/article/component.tsx","../src/schema/blogPosting/component.tsx","../src/schema/book/component.tsx","../src/schema/brand/component.tsx","../src/schema/breadcrumbList/component.tsx","../src/schema/contactPoint/component.tsx","../src/schema/country/component.tsx","../src/schema/course/component.tsx","../src/schema/event/component.tsx","../src/schema/faqPage/component.tsx","../src/schema/howTo/component.tsx","../src/schema/imageObject/component.tsx","../src/schema/itemList/component.tsx","../src/schema/jobPosting/component.tsx","../src/schema/legalService/component.tsx","../src/schema/localBusiness/component.tsx","../src/schema/movie/component.tsx","../src/schema/musicAlbum/component.tsx","../src/schema/musicRecording/component.tsx","../src/schema/newsArticle/component.tsx","../src/schema/offer/component.tsx","../src/schema/person/component.tsx","../src/schema/place/component.tsx","../src/schema/postalAddress/component.tsx","../src/schema/product/component.tsx","../src/schema/profilePage/component.tsx","../src/schema/recipe/component.tsx","../src/schema/restaurant/component.tsx","../src/schema/review/component.tsx","../src/schema/service/component.tsx","../src/schema/softwareApplication/component.tsx","../src/schema/videoObject/component.tsx","../src/schema/webApplication/component.tsx","../src/schema/webPage/component.tsx"],"names":["jsx","resolvePolymorphicPersonOrOrg","webPageFields","personFields","breadcrumbListFields","imageObjectFields","articleFields","blogPostingFields","faqPageFields","howToFields","productFields","offerFields","aggregateRatingFields","reviewFields","brandFields","localBusinessFields","postalAddressFields","contactPointFields","softwareApplicationFields","webApplicationFields","eventFields","placeFields","videoObjectFields","courseFields","legalServiceFields","countryFields","bookFields","itemListFields","jobPostingFields","movieFields","musicAlbumFields","musicRecordingFields","newsArticleFields","profilePageFields","recipeFields","restaurantFields","serviceFields","socialMediaPostingFields","buildGenericJsonLd","Fragment"],"mappings":"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","file":"chunk-XXQURVNE.cjs","sourcesContent":["/**\n * Escapes characters in a JSON string that could enable XSS when embedded\n * inside a `<script>` tag. Prevents `</script>` breakout, HTML comment\n * injection, and Unicode line terminators that can break JS parsing.\n */\nexport function escapeJsonForScript(json: string): string {\n return json\n .replace(/</g, '\\\\u003C')\n .replace(/>/g, '\\\\u003E')\n .replace(/&/g, '\\\\u0026')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n","/**\n * Shared component that renders a `<script type=\"application/ld+json\">` tag.\n * Used by all Schema.org type components.\n */\nimport {JSX} from 'react'\n\nimport {escapeJsonForScript} from './utils'\n\nexport function SchemaOrgScript({\n jsonLd,\n}: {\n jsonLd: Record<string, unknown> | null\n}): JSX.Element | null {\n if (!jsonLd) return null\n\n return (\n <script\n type=\"application/ld+json\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: escapeJsonForScript(JSON.stringify(jsonLd))}}\n />\n )\n}\n","/**\n * <OrganizationSchema> — Renders Schema.org Organization JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { OrganizationSchema } from 'sanity-plugin-seofields/next/organization'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ organization }` })\n *\n * <OrganizationSchema data={data.organization} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport type {SanityImage} from '../../types'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport type {SchemaOrgOrganizationData} from './types'\n\nexport interface OrganizationSchemaProps {\n /** The Schema.org Organization data from your Sanity GROQ query. */\n data?: SchemaOrgOrganizationData | null\n /**\n * Resolve a Sanity image asset to a URL string (for the logo field).\n * Only needed if you use the Sanity image upload field instead of logoUrl.\n *\n * @example\n * imageUrlResolver={(img) => urlFor(img).width(600).url()}\n */\n imageUrlResolver?: (image: SanityImage) => string | null | undefined\n}\n\n/**\n * Builds a Schema.org Organization JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildOrganizationJsonLd(\n data?: SchemaOrgOrganizationData | null,\n imageUrlResolver?: (image: SanityImage) => string | null | undefined,\n): Record<string, unknown> | null {\n if (!data?.name || !data?.url) return null\n\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'Organization',\n name: data.name,\n url: data.url,\n }\n\n // Resolve logo — prefer explicit URL, fall back to Sanity image\n const logoUrl =\n data.logoUrl || (data.logo && imageUrlResolver ? imageUrlResolver(data.logo) : undefined)\n if (logoUrl) jsonLd.logo = logoUrl\n\n if (data.description) jsonLd.description = data.description\n\n if (data.sameAs) jsonLd.sameAs = data.sameAs\n\n if (data.contactPoint?.contactType) {\n const cp: Record<string, unknown> = {\n '@type': 'ContactPoint',\n contactType: data.contactPoint.contactType,\n }\n if (data.contactPoint.email) cp.email = data.contactPoint.email\n if (data.contactPoint.availableLanguage?.length) {\n cp.availableLanguage = data.contactPoint.availableLanguage\n }\n jsonLd.contactPoint = cp\n }\n\n return jsonLd\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Organization data.\n * Renders nothing if required fields are missing.\n */\nexport function OrganizationSchema({\n data,\n imageUrlResolver,\n}: OrganizationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildOrganizationJsonLd(data, imageUrlResolver)} />\n}\n\nexport default OrganizationSchema\n","/**\n * <WebsiteSchema> — Renders Schema.org WebSite JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebsiteSchema } from 'sanity-plugin-seofields/next/website'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ website }` })\n *\n * <WebsiteSchema data={data.website} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {resolvePolymorphicPersonOrOrg} from '../_shared'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport type {SchemaOrgWebsiteData} from './types'\n\nexport interface WebsiteSchemaProps {\n /** The Schema.org Website data from your Sanity GROQ query. */\n data?: SchemaOrgWebsiteData | null\n}\n\n/**\n * Builds a Schema.org WebSite JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebsiteJsonLd(\n data?: SchemaOrgWebsiteData | null,\n): Record<string, unknown> | null {\n if (!data?.name || !data?.url) return null\n\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'WebSite',\n name: data.name,\n url: data.url,\n }\n\n if (data.description) jsonLd.description = data.description\n if (data.inLanguage) jsonLd.inLanguage = data.inLanguage\n\n const publisher = resolvePolymorphicPersonOrOrg(data.publisher)\n if (publisher) jsonLd.publisher = publisher\n\n return jsonLd\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebSite data.\n * Renders nothing if required fields are missing.\n */\nexport function WebsiteSchema({data}: WebsiteSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebsiteJsonLd(data)} />\n}\n\nexport default WebsiteSchema\n","/**\n * <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags\n * from a combined `schemaOrg` array field.\n *\n * @example\n * ```tsx\n * import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ structuredData }` })\n *\n * <SchemaOrgScripts data={data.structuredData} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {aggregateRatingFields} from './aggregateRating/schema'\nimport {articleFields} from './article/schema'\nimport {blogPostingFields} from './blogPosting/schema'\nimport {bookFields} from './book/schema'\nimport {brandFields} from './brand/schema'\nimport {breadcrumbListFields} from './breadcrumbList/schema'\nimport {contactPointFields} from './contactPoint/schema'\nimport {countryFields} from './country/schema'\nimport {courseFields} from './course/schema'\nimport {eventFields} from './event/schema'\nimport {faqPageFields} from './faqPage/schema'\nimport {buildGenericJsonLd, SchemaFieldDef} from './generator'\nimport {howToFields} from './howTo/schema'\nimport {imageObjectFields} from './imageObject/schema'\nimport {itemListFields} from './itemList/schema'\nimport {jobPostingFields} from './jobPosting/schema'\nimport {legalServiceFields} from './legalService/schema'\nimport {localBusinessFields} from './localBusiness/schema'\nimport {movieFields} from './movie/schema'\nimport {musicAlbumFields} from './musicAlbum/schema'\nimport {musicRecordingFields} from './musicRecording/schema'\nimport {newsArticleFields} from './newsArticle/schema'\nimport {offerFields} from './offer/schema'\nimport {buildOrganizationJsonLd} from './organization/component'\nimport {personFields} from './person/schema'\nimport {placeFields} from './place/schema'\nimport {postalAddressFields} from './postalAddress/schema'\nimport {productFields} from './product/schema'\nimport {profilePageFields} from './profilePage/schema'\nimport {recipeFields} from './recipe/schema'\nimport {restaurantFields} from './restaurant/schema'\nimport {reviewFields} from './review/schema'\nimport {SchemaOrgScript} from './SchemaOrgScript'\nimport {serviceFields} from './service/schema'\nimport {socialMediaPostingFields} from './socialMediaPosting/schema'\nimport {softwareApplicationFields} from './softwareApplication/schema'\nimport {videoObjectFields} from './videoObject/schema'\nimport {webApplicationFields} from './webApplication/schema'\nimport {webPageFields} from './webPage/schema'\nimport {buildWebsiteJsonLd} from './website/component'\n\n// ─── Type → Builder Registry ──────────────────────────────────────────────────\n\ninterface GenericEntry {\n schemaType: string\n fields: SchemaFieldDef[]\n requiredFields: string[]\n}\n\nconst GENERIC_TYPES: Record<string, GenericEntry> = {\n schemaOrgWebPage: {schemaType: 'WebPage', fields: webPageFields, requiredFields: ['name']},\n schemaOrgPerson: {schemaType: 'Person', fields: personFields, requiredFields: ['name']},\n schemaOrgBreadcrumbList: {\n schemaType: 'BreadcrumbList',\n fields: breadcrumbListFields,\n requiredFields: [],\n },\n schemaOrgImageObject: {\n schemaType: 'ImageObject',\n fields: imageObjectFields,\n requiredFields: ['url'],\n },\n schemaOrgArticle: {schemaType: 'Article', fields: articleFields, requiredFields: ['headline']},\n schemaOrgBlogPosting: {\n schemaType: 'BlogPosting',\n fields: blogPostingFields,\n requiredFields: ['headline'],\n },\n schemaOrgFAQPage: {schemaType: 'FAQPage', fields: faqPageFields, requiredFields: []},\n schemaOrgHowTo: {schemaType: 'HowTo', fields: howToFields, requiredFields: ['name']},\n schemaOrgProduct: {schemaType: 'Product', fields: productFields, requiredFields: ['name']},\n schemaOrgOffer: {schemaType: 'Offer', fields: offerFields, requiredFields: ['price']},\n schemaOrgAggregateRating: {\n schemaType: 'AggregateRating',\n fields: aggregateRatingFields,\n requiredFields: ['ratingValue'],\n },\n schemaOrgReview: {schemaType: 'Review', fields: reviewFields, requiredFields: []},\n schemaOrgBrand: {schemaType: 'Brand', fields: brandFields, requiredFields: ['name']},\n schemaOrgLocalBusiness: {\n schemaType: 'LocalBusiness',\n fields: localBusinessFields,\n requiredFields: ['name'],\n },\n schemaOrgPostalAddress: {\n schemaType: 'PostalAddress',\n fields: postalAddressFields,\n requiredFields: [],\n },\n schemaOrgContactPoint: {\n schemaType: 'ContactPoint',\n fields: contactPointFields,\n requiredFields: [],\n },\n schemaOrgSoftwareApplication: {\n schemaType: 'SoftwareApplication',\n fields: softwareApplicationFields,\n requiredFields: ['name'],\n },\n schemaOrgWebApplication: {\n schemaType: 'WebApplication',\n fields: webApplicationFields,\n requiredFields: ['name'],\n },\n schemaOrgEvent: {schemaType: 'Event', fields: eventFields, requiredFields: ['name']},\n schemaOrgPlace: {schemaType: 'Place', fields: placeFields, requiredFields: ['name']},\n schemaOrgVideoObject: {\n schemaType: 'VideoObject',\n fields: videoObjectFields,\n requiredFields: ['name'],\n },\n schemaOrgCourse: {schemaType: 'Course', fields: courseFields, requiredFields: ['name']},\n schemaOrgLegalService: {\n schemaType: 'LegalService',\n fields: legalServiceFields,\n requiredFields: ['name'],\n },\n schemaOrgCountry: {schemaType: 'Country', fields: countryFields, requiredFields: ['name']},\n schemaOrgBook: {schemaType: 'Book', fields: bookFields, requiredFields: ['name']},\n schemaOrgItemList: {\n schemaType: 'ItemList',\n fields: itemListFields,\n requiredFields: ['name'],\n },\n schemaOrgJobPosting: {\n schemaType: 'JobPosting',\n fields: jobPostingFields,\n requiredFields: ['title'],\n },\n schemaOrgMovie: {schemaType: 'Movie', fields: movieFields, requiredFields: ['name']},\n schemaOrgMusicAlbum: {\n schemaType: 'MusicAlbum',\n fields: musicAlbumFields,\n requiredFields: ['name'],\n },\n schemaOrgMusicRecording: {\n schemaType: 'MusicRecording',\n fields: musicRecordingFields,\n requiredFields: ['name'],\n },\n schemaOrgNewsArticle: {\n schemaType: 'NewsArticle',\n fields: newsArticleFields,\n requiredFields: ['headline'],\n },\n schemaOrgProfilePage: {\n schemaType: 'ProfilePage',\n fields: profilePageFields,\n requiredFields: ['name'],\n },\n schemaOrgRecipe: {schemaType: 'Recipe', fields: recipeFields, requiredFields: ['name']},\n schemaOrgRestaurant: {\n schemaType: 'Restaurant',\n fields: restaurantFields,\n requiredFields: ['name'],\n },\n schemaOrgService: {schemaType: 'Service', fields: serviceFields, requiredFields: ['name']},\n schemaOrgSocialMediaPosting: {\n schemaType: 'SocialMediaPosting',\n fields: socialMediaPostingFields,\n requiredFields: ['headline'],\n },\n}\n\nfunction buildJsonLdForItem(item: Record<string, unknown>): Record<string, unknown> | null {\n const type = item._type as string | undefined\n if (!type) return null\n\n // Website and Organization use custom builders\n if (type === 'schemaOrgWebsite') {\n return buildWebsiteJsonLd(item as Parameters<typeof buildWebsiteJsonLd>[0])\n }\n if (type === 'schemaOrgOrganization') {\n return buildOrganizationJsonLd(item as Parameters<typeof buildOrganizationJsonLd>[0])\n }\n\n // All other types use the generic builder\n const entry = GENERIC_TYPES[type]\n if (!entry) return null\n return buildGenericJsonLd(entry.schemaType, item, entry.fields, entry.requiredFields)\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface SchemaOrgScriptsProps {\n /** Array of Schema.org items from the combined `schemaOrg` field. */\n data?: Array<Record<string, unknown>> | null\n}\n\n/**\n * Renders one `<script type=\"application/ld+json\">` tag per Schema.org item.\n * Skips items that fail validation (missing required fields).\n */\nexport function SchemaOrgScripts({data}: SchemaOrgScriptsProps): JSX.Element | null {\n if (!data?.length) return null\n\n const scripts = data\n .map((item) => buildJsonLdForItem(item))\n .filter((jsonLd): jsonLd is Record<string, unknown> => jsonLd !== null)\n\n if (!scripts.length) return null\n\n return (\n <>\n {scripts.map((jsonLd) => (\n <SchemaOrgScript key={JSON.stringify(jsonLd)} jsonLd={jsonLd} />\n ))}\n </>\n )\n}\n\nexport default SchemaOrgScripts\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {aggregateRatingFields} from './schema'\nimport type {SchemaOrgAggregateRatingData} from './types'\n\nexport interface AggregateRatingSchemaProps {\n data?: SchemaOrgAggregateRatingData | null\n}\n\nexport function buildAggregateRatingJsonLd(\n data?: SchemaOrgAggregateRatingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'AggregateRating',\n data as Record<string, unknown> | null | undefined,\n aggregateRatingFields,\n ['ratingValue'],\n )\n}\n\nexport function AggregateRatingSchema({data}: AggregateRatingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildAggregateRatingJsonLd(data)} />\n}\n\nexport default AggregateRatingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {articleFields} from './schema'\nimport type {SchemaOrgArticleData} from './types'\n\nexport interface ArticleSchemaProps {\n /** The Schema.org Article data from your Sanity GROQ query. */\n data?: SchemaOrgArticleData | null\n}\n\n/**\n * Builds a Schema.org Article JSON-LD object from Sanity data.\n * Returns `null` if required fields (headline) are missing.\n */\nexport function buildArticleJsonLd(\n data?: SchemaOrgArticleData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Article',\n data as Record<string, unknown> | null | undefined,\n articleFields,\n ['headline'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Article data.\n * Renders nothing if required fields are missing.\n */\nexport function ArticleSchema({data}: ArticleSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildArticleJsonLd(data)} />\n}\n\nexport default ArticleSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {blogPostingFields} from './schema'\nimport type {SchemaOrgBlogPostingData} from './types'\n\nexport interface BlogPostingSchemaProps {\n /** The Schema.org BlogPosting data from your Sanity GROQ query. */\n data?: SchemaOrgBlogPostingData | null\n}\n\n/**\n * Builds a Schema.org BlogPosting JSON-LD object from Sanity data.\n * Returns `null` if required fields (headline) are missing.\n */\nexport function buildBlogPostingJsonLd(\n data?: SchemaOrgBlogPostingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'BlogPosting',\n data as Record<string, unknown> | null | undefined,\n blogPostingFields,\n ['headline'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org BlogPosting data.\n * Renders nothing if required fields are missing.\n */\nexport function BlogPostingSchema({data}: BlogPostingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBlogPostingJsonLd(data)} />\n}\n\nexport default BlogPostingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {bookFields} from './schema'\nimport type {SchemaOrgBookData} from './types'\n\nexport interface BookSchemaProps {\n data?: SchemaOrgBookData | null\n}\n\nexport function buildBookJsonLd(data?: SchemaOrgBookData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Book',\n data as Record<string, unknown> | null | undefined,\n bookFields,\n ['name'],\n )\n}\n\nexport function BookSchema({data}: BookSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBookJsonLd(data)} />\n}\n\nexport default BookSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {brandFields} from './schema'\nimport type {SchemaOrgBrandData} from './types'\n\nexport interface BrandSchemaProps {\n data?: SchemaOrgBrandData | null\n}\n\nexport function buildBrandJsonLd(data?: SchemaOrgBrandData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Brand',\n data as Record<string, unknown> | null | undefined,\n brandFields,\n ['name'],\n )\n}\n\nexport function BrandSchema({data}: BrandSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBrandJsonLd(data)} />\n}\n\nexport default BrandSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {breadcrumbListFields} from './schema'\nimport type {SchemaOrgBreadcrumbListData} from './types'\n\nexport interface BreadcrumbListSchemaProps {\n /** The Schema.org BreadcrumbList data from your Sanity GROQ query. */\n data?: SchemaOrgBreadcrumbListData | null\n}\n\n/**\n * Builds a Schema.org BreadcrumbList JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildBreadcrumbListJsonLd(\n data?: SchemaOrgBreadcrumbListData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'BreadcrumbList',\n data as Record<string, unknown> | null | undefined,\n breadcrumbListFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org BreadcrumbList data.\n * Renders nothing if data is missing.\n */\nexport function BreadcrumbListSchema({data}: BreadcrumbListSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBreadcrumbListJsonLd(data)} />\n}\n\nexport default BreadcrumbListSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {contactPointFields} from './schema'\nimport type {SchemaOrgContactPointData} from './types'\n\nexport interface ContactPointSchemaProps {\n data?: SchemaOrgContactPointData | null\n}\n\nexport function buildContactPointJsonLd(\n data?: SchemaOrgContactPointData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ContactPoint',\n data as Record<string, unknown> | null | undefined,\n contactPointFields,\n ['contactType'],\n )\n}\n\nexport function ContactPointSchema({data}: ContactPointSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildContactPointJsonLd(data)} />\n}\n\nexport default ContactPointSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {countryFields} from './schema'\nimport type {SchemaOrgCountryData} from './types'\n\nexport interface CountrySchemaProps {\n /** The Schema.org Country data from your Sanity GROQ query. */\n data?: SchemaOrgCountryData | null\n}\n\n/**\n * Builds a Schema.org Country JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildCountryJsonLd(\n data?: SchemaOrgCountryData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Country',\n data as Record<string, unknown> | null | undefined,\n countryFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Country data.\n * Renders nothing if required fields are missing.\n */\nexport function CountrySchema({data}: CountrySchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildCountryJsonLd(data)} />\n}\n\nexport default CountrySchema\n","/**\n * <CourseSchema> — Renders Schema.org Course JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { CourseSchema } from 'sanity-plugin-seofields/next/course'\n *\n * const data = await sanityFetch({ query: `*[_type == \"course\"][0]{ seo }` })\n *\n * <CourseSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {courseFields} from './schema'\nimport type {SchemaOrgCourseData} from './types'\n\nexport interface CourseSchemaProps {\n /** The Schema.org Course data from your Sanity GROQ query. */\n data?: SchemaOrgCourseData | null\n}\n\n/**\n * Builds a Schema.org Course JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildCourseJsonLd(\n data?: SchemaOrgCourseData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Course',\n data as Record<string, unknown> | null | undefined,\n courseFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Course data.\n * Renders nothing if required fields are missing.\n */\nexport function CourseSchema({data}: CourseSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildCourseJsonLd(data)} />\n}\n\nexport default CourseSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {eventFields} from './schema'\nimport type {SchemaOrgEventData} from './types'\n\nexport interface EventSchemaProps {\n /** The Schema.org Event data from your Sanity GROQ query. */\n data?: SchemaOrgEventData | null\n}\n\n/**\n * Builds a Schema.org Event JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildEventJsonLd(data?: SchemaOrgEventData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Event',\n data as Record<string, unknown> | null | undefined,\n eventFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Event data.\n * Renders nothing if required fields are missing.\n */\nexport function EventSchema({data}: EventSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildEventJsonLd(data)} />\n}\n\nexport default EventSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {faqPageFields} from './schema'\nimport type {SchemaOrgFAQPageData} from './types'\n\nexport interface FAQPageSchemaProps {\n /** The Schema.org FAQPage data from your Sanity GROQ query. */\n data?: SchemaOrgFAQPageData | null\n}\n\n/**\n * Builds a Schema.org FAQPage JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildFAQPageJsonLd(\n data?: SchemaOrgFAQPageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'FAQPage',\n data as Record<string, unknown> | null | undefined,\n faqPageFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org FAQPage data.\n * Renders nothing if data is missing.\n */\nexport function FAQPageSchema({data}: FAQPageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildFAQPageJsonLd(data)} />\n}\n\nexport default FAQPageSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {howToFields} from './schema'\nimport type {SchemaOrgHowToData} from './types'\n\nexport interface HowToSchemaProps {\n /** The Schema.org HowTo data from your Sanity GROQ query. */\n data?: SchemaOrgHowToData | null\n}\n\n/**\n * Builds a Schema.org HowTo JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildHowToJsonLd(data?: SchemaOrgHowToData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'HowTo',\n data as Record<string, unknown> | null | undefined,\n howToFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org HowTo data.\n * Renders nothing if required fields are missing.\n */\nexport function HowToSchema({data}: HowToSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildHowToJsonLd(data)} />\n}\n\nexport default HowToSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {imageObjectFields} from './schema'\nimport type {SchemaOrgImageObjectData} from './types'\n\nexport interface ImageObjectSchemaProps {\n data?: SchemaOrgImageObjectData | null\n}\n\nexport function buildImageObjectJsonLd(\n data?: SchemaOrgImageObjectData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ImageObject',\n data as Record<string, unknown> | null | undefined,\n imageObjectFields,\n ['url'],\n )\n}\n\nexport function ImageObjectSchema({data}: ImageObjectSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildImageObjectJsonLd(data)} />\n}\n\nexport default ImageObjectSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {itemListFields} from './schema'\nimport type {SchemaOrgItemListData} from './types'\n\nexport interface ItemListSchemaProps {\n data?: SchemaOrgItemListData | null\n}\n\nexport function buildItemListJsonLd(\n data?: SchemaOrgItemListData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ItemList',\n data as Record<string, unknown> | null | undefined,\n itemListFields,\n [],\n )\n}\n\nexport function ItemListSchema({data}: ItemListSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildItemListJsonLd(data)} />\n}\n\nexport default ItemListSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {jobPostingFields} from './schema'\nimport type {SchemaOrgJobPostingData} from './types'\n\nexport interface JobPostingSchemaProps {\n data?: SchemaOrgJobPostingData | null\n}\n\nexport function buildJobPostingJsonLd(\n data?: SchemaOrgJobPostingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'JobPosting',\n data as Record<string, unknown> | null | undefined,\n jobPostingFields,\n ['title', 'description', 'datePosted'],\n )\n}\n\nexport function JobPostingSchema({data}: JobPostingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildJobPostingJsonLd(data)} />\n}\n\nexport default JobPostingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {legalServiceFields} from './schema'\nimport type {SchemaOrgLegalServiceData} from './types'\n\nexport interface LegalServiceSchemaProps {\n /** The Schema.org LegalService data from your Sanity GROQ query. */\n data?: SchemaOrgLegalServiceData | null\n}\n\n/**\n * Builds a Schema.org LegalService JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildLegalServiceJsonLd(\n data?: SchemaOrgLegalServiceData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'LegalService',\n data as Record<string, unknown> | null | undefined,\n legalServiceFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org LegalService data.\n * Renders nothing if required fields are missing.\n */\nexport function LegalServiceSchema({data}: LegalServiceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildLegalServiceJsonLd(data)} />\n}\n\nexport default LegalServiceSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {localBusinessFields} from './schema'\nimport type {SchemaOrgLocalBusinessData} from './types'\n\nexport interface LocalBusinessSchemaProps {\n /** The Schema.org LocalBusiness data from your Sanity GROQ query. */\n data?: SchemaOrgLocalBusinessData | null\n}\n\n/**\n * Builds a Schema.org LocalBusiness JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildLocalBusinessJsonLd(\n data?: SchemaOrgLocalBusinessData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'LocalBusiness',\n data as Record<string, unknown> | null | undefined,\n localBusinessFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org LocalBusiness data.\n * Renders nothing if required fields are missing.\n */\nexport function LocalBusinessSchema({data}: LocalBusinessSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildLocalBusinessJsonLd(data)} />\n}\n\nexport default LocalBusinessSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {movieFields} from './schema'\nimport type {SchemaOrgMovieData} from './types'\n\nexport interface MovieSchemaProps {\n data?: SchemaOrgMovieData | null\n}\n\nexport function buildMovieJsonLd(data?: SchemaOrgMovieData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Movie',\n data as Record<string, unknown> | null | undefined,\n movieFields,\n ['name'],\n )\n}\n\nexport function MovieSchema({data}: MovieSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMovieJsonLd(data)} />\n}\n\nexport default MovieSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {musicAlbumFields} from './schema'\nimport type {SchemaOrgMusicAlbumData} from './types'\n\nexport interface MusicAlbumSchemaProps {\n data?: SchemaOrgMusicAlbumData | null\n}\n\nexport function buildMusicAlbumJsonLd(\n data?: SchemaOrgMusicAlbumData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'MusicAlbum',\n data as Record<string, unknown> | null | undefined,\n musicAlbumFields,\n ['name'],\n )\n}\n\nexport function MusicAlbumSchema({data}: MusicAlbumSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMusicAlbumJsonLd(data)} />\n}\n\nexport default MusicAlbumSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {musicRecordingFields} from './schema'\nimport type {SchemaOrgMusicRecordingData} from './types'\n\nexport interface MusicRecordingSchemaProps {\n data?: SchemaOrgMusicRecordingData | null\n}\n\nexport function buildMusicRecordingJsonLd(\n data?: SchemaOrgMusicRecordingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'MusicRecording',\n data as Record<string, unknown> | null | undefined,\n musicRecordingFields,\n ['name'],\n )\n}\n\nexport function MusicRecordingSchema({data}: MusicRecordingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMusicRecordingJsonLd(data)} />\n}\n\nexport default MusicRecordingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {newsArticleFields} from './schema'\nimport type {SchemaOrgNewsArticleData} from './types'\n\nexport interface NewsArticleSchemaProps {\n data?: SchemaOrgNewsArticleData | null\n}\n\nexport function buildNewsArticleJsonLd(\n data?: SchemaOrgNewsArticleData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'NewsArticle',\n data as Record<string, unknown> | null | undefined,\n newsArticleFields,\n ['headline', 'datePublished'],\n )\n}\n\nexport function NewsArticleSchema({data}: NewsArticleSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildNewsArticleJsonLd(data)} />\n}\n\nexport default NewsArticleSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {offerFields} from './schema'\nimport type {SchemaOrgOfferData} from './types'\n\nexport interface OfferSchemaProps {\n data?: SchemaOrgOfferData | null\n}\n\nexport function buildOfferJsonLd(data?: SchemaOrgOfferData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Offer',\n data as Record<string, unknown> | null | undefined,\n offerFields,\n ['price'],\n )\n}\n\nexport function OfferSchema({data}: OfferSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildOfferJsonLd(data)} />\n}\n\nexport default OfferSchema\n","/**\n * <PersonSchema> — Renders Schema.org Person JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { PersonSchema } from 'sanity-plugin-seofields/next/person'\n *\n * const data = await sanityFetch({ query: `*[_type == \"teamMember\"][0]{ person }` })\n *\n * <PersonSchema data={data.person} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {personFields} from './schema'\nimport type {SchemaOrgPersonData} from './types'\n\nexport interface PersonSchemaProps {\n /** The Schema.org Person data from your Sanity GROQ query. */\n data?: SchemaOrgPersonData | null\n}\n\n/**\n * Builds a Schema.org Person JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildPersonJsonLd(\n data?: SchemaOrgPersonData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Person',\n data as Record<string, unknown> | null | undefined,\n personFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Person data.\n * Renders nothing if required fields are missing.\n */\nexport function PersonSchema({data}: PersonSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPersonJsonLd(data)} />\n}\n\nexport default PersonSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {placeFields} from './schema'\nimport type {SchemaOrgPlaceData} from './types'\n\nexport interface PlaceSchemaProps {\n /** The Schema.org Place data from your Sanity GROQ query. */\n data?: SchemaOrgPlaceData | null\n}\n\n/**\n * Builds a Schema.org Place JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildPlaceJsonLd(data?: SchemaOrgPlaceData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Place',\n data as Record<string, unknown> | null | undefined,\n placeFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Place data.\n * Renders nothing if required fields are missing.\n */\nexport function PlaceSchema({data}: PlaceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPlaceJsonLd(data)} />\n}\n\nexport default PlaceSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {postalAddressFields} from './schema'\nimport type {SchemaOrgPostalAddressData} from './types'\n\nexport interface PostalAddressSchemaProps {\n data?: SchemaOrgPostalAddressData | null\n}\n\nexport function buildPostalAddressJsonLd(\n data?: SchemaOrgPostalAddressData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'PostalAddress',\n data as Record<string, unknown> | null | undefined,\n postalAddressFields,\n [],\n )\n}\n\nexport function PostalAddressSchema({data}: PostalAddressSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPostalAddressJsonLd(data)} />\n}\n\nexport default PostalAddressSchema\n","/**\n * <ProductSchema> — Renders Schema.org Product JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { ProductSchema } from 'sanity-plugin-seofields/next/product'\n *\n * const data = await sanityFetch({ query: `*[_type == \"product\"][0]{ seo }` })\n *\n * <ProductSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {productFields} from './schema'\nimport type {SchemaOrgProductData} from './types'\n\nexport interface ProductSchemaProps {\n /** The Schema.org Product data from your Sanity GROQ query. */\n data?: SchemaOrgProductData | null\n}\n\n/**\n * Builds a Schema.org Product JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildProductJsonLd(\n data?: SchemaOrgProductData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Product',\n data as Record<string, unknown> | null | undefined,\n productFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Product data.\n * Renders nothing if required fields are missing.\n */\nexport function ProductSchema({data}: ProductSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildProductJsonLd(data)} />\n}\n\nexport default ProductSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {profilePageFields} from './schema'\nimport type {SchemaOrgProfilePageData} from './types'\n\nexport interface ProfilePageSchemaProps {\n data?: SchemaOrgProfilePageData | null\n}\n\nexport function buildProfilePageJsonLd(\n data?: SchemaOrgProfilePageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ProfilePage',\n data as Record<string, unknown> | null | undefined,\n profilePageFields,\n [],\n )\n}\n\nexport function ProfilePageSchema({data}: ProfilePageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildProfilePageJsonLd(data)} />\n}\n\nexport default ProfilePageSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {recipeFields} from './schema'\nimport type {SchemaOrgRecipeData} from './types'\n\nexport interface RecipeSchemaProps {\n data?: SchemaOrgRecipeData | null\n}\n\nexport function buildRecipeJsonLd(\n data?: SchemaOrgRecipeData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Recipe',\n data as Record<string, unknown> | null | undefined,\n recipeFields,\n ['name'],\n )\n}\n\nexport function RecipeSchema({data}: RecipeSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildRecipeJsonLd(data)} />\n}\n\nexport default RecipeSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {restaurantFields} from './schema'\nimport type {SchemaOrgRestaurantData} from './types'\n\nexport interface RestaurantSchemaProps {\n data?: SchemaOrgRestaurantData | null\n}\n\nexport function buildRestaurantJsonLd(\n data?: SchemaOrgRestaurantData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Restaurant',\n data as Record<string, unknown> | null | undefined,\n restaurantFields,\n ['name'],\n )\n}\n\nexport function RestaurantSchema({data}: RestaurantSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildRestaurantJsonLd(data)} />\n}\n\nexport default RestaurantSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {reviewFields} from './schema'\nimport type {SchemaOrgReviewData} from './types'\n\nexport interface ReviewSchemaProps {\n /** The Schema.org Review data from your Sanity GROQ query. */\n data?: SchemaOrgReviewData | null\n}\n\n/**\n * Builds a Schema.org Review JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildReviewJsonLd(\n data?: SchemaOrgReviewData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Review',\n data as Record<string, unknown> | null | undefined,\n reviewFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Review data.\n * Renders nothing if data is missing.\n */\nexport function ReviewSchema({data}: ReviewSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildReviewJsonLd(data)} />\n}\n\nexport default ReviewSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {serviceFields} from './schema'\nimport type {SchemaOrgServiceData} from './types'\n\nexport interface ServiceSchemaProps {\n data?: SchemaOrgServiceData | null\n}\n\nexport function buildServiceJsonLd(\n data?: SchemaOrgServiceData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Service',\n data as Record<string, unknown> | null | undefined,\n serviceFields,\n ['name'],\n )\n}\n\nexport function ServiceSchema({data}: ServiceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildServiceJsonLd(data)} />\n}\n\nexport default ServiceSchema\n","/**\n * <SoftwareApplicationSchema> — Renders Schema.org SoftwareApplication JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { SoftwareApplicationSchema } from 'sanity-plugin-seofields/next/softwareApplication'\n *\n * const data = await sanityFetch({ query: `*[_type == \"app\"][0]{ seo }` })\n *\n * <SoftwareApplicationSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {softwareApplicationFields} from './schema'\nimport type {SchemaOrgSoftwareApplicationData} from './types'\n\nexport interface SoftwareApplicationSchemaProps {\n /** The Schema.org SoftwareApplication data from your Sanity GROQ query. */\n data?: SchemaOrgSoftwareApplicationData | null\n}\n\n/**\n * Builds a Schema.org SoftwareApplication JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildSoftwareApplicationJsonLd(\n data?: SchemaOrgSoftwareApplicationData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'SoftwareApplication',\n data as Record<string, unknown> | null | undefined,\n softwareApplicationFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org SoftwareApplication data.\n * Renders nothing if required fields are missing.\n */\nexport function SoftwareApplicationSchema({\n data,\n}: SoftwareApplicationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildSoftwareApplicationJsonLd(data)} />\n}\n\nexport default SoftwareApplicationSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {videoObjectFields} from './schema'\nimport type {SchemaOrgVideoObjectData} from './types'\n\nexport interface VideoObjectSchemaProps {\n data?: SchemaOrgVideoObjectData | null\n}\n\nexport function buildVideoObjectJsonLd(\n data?: SchemaOrgVideoObjectData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'VideoObject',\n data as Record<string, unknown> | null | undefined,\n videoObjectFields,\n ['name'],\n )\n}\n\nexport function VideoObjectSchema({data}: VideoObjectSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildVideoObjectJsonLd(data)} />\n}\n\nexport default VideoObjectSchema\n","/**\n * <WebApplicationSchema> — Renders Schema.org WebApplication JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebApplicationSchema } from 'sanity-plugin-seofields/next/webApplication'\n *\n * const data = await sanityFetch({ query: `*[_type == \"app\"][0]{ seo }` })\n *\n * <WebApplicationSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {webApplicationFields} from './schema'\nimport type {SchemaOrgWebApplicationData} from './types'\n\nexport interface WebApplicationSchemaProps {\n /** The Schema.org WebApplication data from your Sanity GROQ query. */\n data?: SchemaOrgWebApplicationData | null\n}\n\n/**\n * Builds a Schema.org WebApplication JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebApplicationJsonLd(\n data?: SchemaOrgWebApplicationData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'WebApplication',\n data as Record<string, unknown> | null | undefined,\n webApplicationFields,\n ['name', 'url'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebApplication data.\n * Renders nothing if required fields are missing.\n */\nexport function WebApplicationSchema({data}: WebApplicationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebApplicationJsonLd(data)} />\n}\n\nexport default WebApplicationSchema\n","/**\n * <WebPageSchema> — Renders Schema.org WebPage JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebPageSchema } from 'sanity-plugin-seofields/next/webPage'\n *\n * const data = await sanityFetch({ query: `*[_type == \"page\"][0]{ seo }` })\n *\n * <WebPageSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {webPageFields} from './schema'\nimport type {SchemaOrgWebPageData} from './types'\n\nexport interface WebPageSchemaProps {\n /** The Schema.org WebPage data from your Sanity GROQ query. */\n data?: SchemaOrgWebPageData | null\n}\n\n/**\n * Builds a Schema.org WebPage JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebPageJsonLd(\n data?: SchemaOrgWebPageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'WebPage',\n data as Record<string, unknown> | null | undefined,\n webPageFields,\n ['name', 'url'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebPage data.\n * Renders nothing if required fields are missing.\n */\nexport function WebPageSchema({data}: WebPageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebPageJsonLd(data)} />\n}\n\nexport default WebPageSchema\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/schema/utils.ts","../src/schema/SchemaOrgScript.tsx","../src/schema/organization/component.tsx","../src/schema/website/component.tsx","../src/schema/SchemaOrgScripts.tsx","../src/schema/aggregateRating/component.tsx","../src/schema/article/component.tsx","../src/schema/blogPosting/component.tsx","../src/schema/book/component.tsx","../src/schema/brand/component.tsx","../src/schema/breadcrumbList/component.tsx","../src/schema/contactPoint/component.tsx","../src/schema/country/component.tsx","../src/schema/course/component.tsx","../src/schema/event/component.tsx","../src/schema/faqPage/component.tsx","../src/schema/howTo/component.tsx","../src/schema/imageObject/component.tsx","../src/schema/itemList/component.tsx","../src/schema/jobPosting/component.tsx","../src/schema/legalService/component.tsx","../src/schema/localBusiness/component.tsx","../src/schema/movie/component.tsx","../src/schema/musicAlbum/component.tsx","../src/schema/musicRecording/component.tsx","../src/schema/newsArticle/component.tsx","../src/schema/offer/component.tsx","../src/schema/person/component.tsx","../src/schema/place/component.tsx","../src/schema/postalAddress/component.tsx","../src/schema/product/component.tsx","../src/schema/profilePage/component.tsx","../src/schema/recipe/component.tsx","../src/schema/restaurant/component.tsx","../src/schema/review/component.tsx","../src/schema/service/component.tsx","../src/schema/softwareApplication/component.tsx","../src/schema/videoObject/component.tsx","../src/schema/webApplication/component.tsx","../src/schema/webPage/component.tsx"],"names":["jsx","resolvePolymorphicPersonOrOrg","webPageFields","personFields","breadcrumbListFields","imageObjectFields","articleFields","blogPostingFields","faqPageFields","howToFields","productFields","offerFields","aggregateRatingFields","reviewFields","brandFields","localBusinessFields","postalAddressFields","contactPointFields","softwareApplicationFields","webApplicationFields","eventFields","placeFields","videoObjectFields","courseFields","legalServiceFields","countryFields","bookFields","itemListFields","jobPostingFields","movieFields","musicAlbumFields","musicRecordingFields","newsArticleFields","profilePageFields","recipeFields","restaurantFields","serviceFields","socialMediaPostingFields","buildGenericJsonLd","Fragment"],"mappings":"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","file":"chunk-BCTPOWXA.cjs","sourcesContent":["/**\n * Escapes characters in a JSON string that could enable XSS when embedded\n * inside a `<script>` tag. Prevents `</script>` breakout, HTML comment\n * injection, and Unicode line terminators that can break JS parsing.\n */\nexport function escapeJsonForScript(json: string): string {\n return json\n .replace(/</g, '\\\\u003C')\n .replace(/>/g, '\\\\u003E')\n .replace(/&/g, '\\\\u0026')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n","/**\n * Shared component that renders a `<script type=\"application/ld+json\">` tag.\n * Used by all Schema.org type components.\n */\nimport {JSX} from 'react'\n\nimport {escapeJsonForScript} from './utils'\n\nexport function SchemaOrgScript({\n jsonLd,\n}: {\n jsonLd: Record<string, unknown> | null\n}): JSX.Element | null {\n if (!jsonLd) return null\n\n return (\n <script\n type=\"application/ld+json\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: escapeJsonForScript(JSON.stringify(jsonLd))}}\n />\n )\n}\n","/**\n * <OrganizationSchema> — Renders Schema.org Organization JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { OrganizationSchema } from 'sanity-plugin-seofields/next/organization'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ organization }` })\n *\n * <OrganizationSchema data={data.organization} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport type {SanityImage} from '../../types'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport type {SchemaOrgOrganizationData} from './types'\n\nexport interface OrganizationSchemaProps {\n /** The Schema.org Organization data from your Sanity GROQ query. */\n data?: SchemaOrgOrganizationData | null\n /**\n * Resolve a Sanity image asset to a URL string (for the logo field).\n * Only needed if you use the Sanity image upload field instead of logoUrl.\n *\n * @example\n * imageUrlResolver={(img) => urlFor(img).width(600).url()}\n */\n imageUrlResolver?: (image: SanityImage) => string | null | undefined\n}\n\n/**\n * Builds a Schema.org Organization JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildOrganizationJsonLd(\n data?: SchemaOrgOrganizationData | null,\n imageUrlResolver?: (image: SanityImage) => string | null | undefined,\n): Record<string, unknown> | null {\n if (!data?.name || !data?.url) return null\n\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'Organization',\n name: data.name,\n url: data.url,\n }\n\n // Resolve logo — prefer explicit URL, fall back to Sanity image\n const logoUrl =\n data.logoUrl || (data.logo && imageUrlResolver ? imageUrlResolver(data.logo) : undefined)\n if (logoUrl) jsonLd.logo = logoUrl\n\n if (data.description) jsonLd.description = data.description\n\n if (data.sameAs) jsonLd.sameAs = data.sameAs\n\n if (data.contactPoint?.contactType) {\n const cp: Record<string, unknown> = {\n '@type': 'ContactPoint',\n contactType: data.contactPoint.contactType,\n }\n if (data.contactPoint.email) cp.email = data.contactPoint.email\n if (data.contactPoint.availableLanguage?.length) {\n cp.availableLanguage = data.contactPoint.availableLanguage\n }\n jsonLd.contactPoint = cp\n }\n\n return jsonLd\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Organization data.\n * Renders nothing if required fields are missing.\n */\nexport function OrganizationSchema({\n data,\n imageUrlResolver,\n}: OrganizationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildOrganizationJsonLd(data, imageUrlResolver)} />\n}\n\nexport default OrganizationSchema\n","/**\n * <WebsiteSchema> — Renders Schema.org WebSite JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebsiteSchema } from 'sanity-plugin-seofields/next/website'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ website }` })\n *\n * <WebsiteSchema data={data.website} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {resolvePolymorphicPersonOrOrg} from '../_shared'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport type {SchemaOrgWebsiteData} from './types'\n\nexport interface WebsiteSchemaProps {\n /** The Schema.org Website data from your Sanity GROQ query. */\n data?: SchemaOrgWebsiteData | null\n}\n\n/**\n * Builds a Schema.org WebSite JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebsiteJsonLd(\n data?: SchemaOrgWebsiteData | null,\n): Record<string, unknown> | null {\n if (!data?.name || !data?.url) return null\n\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'WebSite',\n name: data.name,\n url: data.url,\n }\n\n if (data.description) jsonLd.description = data.description\n if (data.inLanguage) jsonLd.inLanguage = data.inLanguage\n\n const publisher = resolvePolymorphicPersonOrOrg(data.publisher)\n if (publisher) jsonLd.publisher = publisher\n\n return jsonLd\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebSite data.\n * Renders nothing if required fields are missing.\n */\nexport function WebsiteSchema({data}: WebsiteSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebsiteJsonLd(data)} />\n}\n\nexport default WebsiteSchema\n","/**\n * <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags\n * from a combined `schemaOrg` array field.\n *\n * @example\n * ```tsx\n * import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'\n *\n * const data = await sanityFetch({ query: `*[_type == \"settings\"][0]{ structuredData }` })\n *\n * <SchemaOrgScripts data={data.structuredData} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {aggregateRatingFields} from './aggregateRating/schema'\nimport {articleFields} from './article/schema'\nimport {blogPostingFields} from './blogPosting/schema'\nimport {bookFields} from './book/schema'\nimport {brandFields} from './brand/schema'\nimport {breadcrumbListFields} from './breadcrumbList/schema'\nimport {contactPointFields} from './contactPoint/schema'\nimport {countryFields} from './country/schema'\nimport {courseFields} from './course/schema'\nimport {eventFields} from './event/schema'\nimport {faqPageFields} from './faqPage/schema'\nimport {buildGenericJsonLd, SchemaFieldDef} from './generator'\nimport {howToFields} from './howTo/schema'\nimport {imageObjectFields} from './imageObject/schema'\nimport {itemListFields} from './itemList/schema'\nimport {jobPostingFields} from './jobPosting/schema'\nimport {legalServiceFields} from './legalService/schema'\nimport {localBusinessFields} from './localBusiness/schema'\nimport {movieFields} from './movie/schema'\nimport {musicAlbumFields} from './musicAlbum/schema'\nimport {musicRecordingFields} from './musicRecording/schema'\nimport {newsArticleFields} from './newsArticle/schema'\nimport {offerFields} from './offer/schema'\nimport {buildOrganizationJsonLd} from './organization/component'\nimport {personFields} from './person/schema'\nimport {placeFields} from './place/schema'\nimport {postalAddressFields} from './postalAddress/schema'\nimport {productFields} from './product/schema'\nimport {profilePageFields} from './profilePage/schema'\nimport {recipeFields} from './recipe/schema'\nimport {restaurantFields} from './restaurant/schema'\nimport {reviewFields} from './review/schema'\nimport {SchemaOrgScript} from './SchemaOrgScript'\nimport {serviceFields} from './service/schema'\nimport {socialMediaPostingFields} from './socialMediaPosting/schema'\nimport {softwareApplicationFields} from './softwareApplication/schema'\nimport {videoObjectFields} from './videoObject/schema'\nimport {webApplicationFields} from './webApplication/schema'\nimport {webPageFields} from './webPage/schema'\nimport {buildWebsiteJsonLd} from './website/component'\n\n// ─── Type → Builder Registry ──────────────────────────────────────────────────\n\ninterface GenericEntry {\n schemaType: string\n fields: SchemaFieldDef[]\n requiredFields: string[]\n}\n\nconst GENERIC_TYPES: Record<string, GenericEntry> = {\n schemaOrgWebPage: {schemaType: 'WebPage', fields: webPageFields, requiredFields: ['name']},\n schemaOrgPerson: {schemaType: 'Person', fields: personFields, requiredFields: ['name']},\n schemaOrgBreadcrumbList: {\n schemaType: 'BreadcrumbList',\n fields: breadcrumbListFields,\n requiredFields: [],\n },\n schemaOrgImageObject: {\n schemaType: 'ImageObject',\n fields: imageObjectFields,\n requiredFields: ['url'],\n },\n schemaOrgArticle: {schemaType: 'Article', fields: articleFields, requiredFields: ['headline']},\n schemaOrgBlogPosting: {\n schemaType: 'BlogPosting',\n fields: blogPostingFields,\n requiredFields: ['headline'],\n },\n schemaOrgFAQPage: {schemaType: 'FAQPage', fields: faqPageFields, requiredFields: []},\n schemaOrgHowTo: {schemaType: 'HowTo', fields: howToFields, requiredFields: ['name']},\n schemaOrgProduct: {schemaType: 'Product', fields: productFields, requiredFields: ['name']},\n schemaOrgOffer: {schemaType: 'Offer', fields: offerFields, requiredFields: ['price']},\n schemaOrgAggregateRating: {\n schemaType: 'AggregateRating',\n fields: aggregateRatingFields,\n requiredFields: ['ratingValue'],\n },\n schemaOrgReview: {schemaType: 'Review', fields: reviewFields, requiredFields: []},\n schemaOrgBrand: {schemaType: 'Brand', fields: brandFields, requiredFields: ['name']},\n schemaOrgLocalBusiness: {\n schemaType: 'LocalBusiness',\n fields: localBusinessFields,\n requiredFields: ['name'],\n },\n schemaOrgPostalAddress: {\n schemaType: 'PostalAddress',\n fields: postalAddressFields,\n requiredFields: [],\n },\n schemaOrgContactPoint: {\n schemaType: 'ContactPoint',\n fields: contactPointFields,\n requiredFields: [],\n },\n schemaOrgSoftwareApplication: {\n schemaType: 'SoftwareApplication',\n fields: softwareApplicationFields,\n requiredFields: ['name'],\n },\n schemaOrgWebApplication: {\n schemaType: 'WebApplication',\n fields: webApplicationFields,\n requiredFields: ['name'],\n },\n schemaOrgEvent: {schemaType: 'Event', fields: eventFields, requiredFields: ['name']},\n schemaOrgPlace: {schemaType: 'Place', fields: placeFields, requiredFields: ['name']},\n schemaOrgVideoObject: {\n schemaType: 'VideoObject',\n fields: videoObjectFields,\n requiredFields: ['name'],\n },\n schemaOrgCourse: {schemaType: 'Course', fields: courseFields, requiredFields: ['name']},\n schemaOrgLegalService: {\n schemaType: 'LegalService',\n fields: legalServiceFields,\n requiredFields: ['name'],\n },\n schemaOrgCountry: {schemaType: 'Country', fields: countryFields, requiredFields: ['name']},\n schemaOrgBook: {schemaType: 'Book', fields: bookFields, requiredFields: ['name']},\n schemaOrgItemList: {\n schemaType: 'ItemList',\n fields: itemListFields,\n requiredFields: ['name'],\n },\n schemaOrgJobPosting: {\n schemaType: 'JobPosting',\n fields: jobPostingFields,\n requiredFields: ['title'],\n },\n schemaOrgMovie: {schemaType: 'Movie', fields: movieFields, requiredFields: ['name']},\n schemaOrgMusicAlbum: {\n schemaType: 'MusicAlbum',\n fields: musicAlbumFields,\n requiredFields: ['name'],\n },\n schemaOrgMusicRecording: {\n schemaType: 'MusicRecording',\n fields: musicRecordingFields,\n requiredFields: ['name'],\n },\n schemaOrgNewsArticle: {\n schemaType: 'NewsArticle',\n fields: newsArticleFields,\n requiredFields: ['headline'],\n },\n schemaOrgProfilePage: {\n schemaType: 'ProfilePage',\n fields: profilePageFields,\n requiredFields: ['name'],\n },\n schemaOrgRecipe: {schemaType: 'Recipe', fields: recipeFields, requiredFields: ['name']},\n schemaOrgRestaurant: {\n schemaType: 'Restaurant',\n fields: restaurantFields,\n requiredFields: ['name'],\n },\n schemaOrgService: {schemaType: 'Service', fields: serviceFields, requiredFields: ['name']},\n schemaOrgSocialMediaPosting: {\n schemaType: 'SocialMediaPosting',\n fields: socialMediaPostingFields,\n requiredFields: ['headline'],\n },\n}\n\nfunction buildJsonLdForItem(item: Record<string, unknown>): Record<string, unknown> | null {\n const type = item._type as string | undefined\n if (!type) return null\n\n // Website and Organization use custom builders\n if (type === 'schemaOrgWebsite') {\n return buildWebsiteJsonLd(item as Parameters<typeof buildWebsiteJsonLd>[0])\n }\n if (type === 'schemaOrgOrganization') {\n return buildOrganizationJsonLd(item as Parameters<typeof buildOrganizationJsonLd>[0])\n }\n\n // All other types use the generic builder\n const entry = GENERIC_TYPES[type]\n if (!entry) return null\n return buildGenericJsonLd(entry.schemaType, item, entry.fields, entry.requiredFields)\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface SchemaOrgScriptsProps {\n /** Array of Schema.org items from the combined `schemaOrg` field. */\n data?: Array<Record<string, unknown>> | null\n}\n\n/**\n * Renders one `<script type=\"application/ld+json\">` tag per Schema.org item.\n * Skips items that fail validation (missing required fields).\n */\nexport function SchemaOrgScripts({data}: SchemaOrgScriptsProps): JSX.Element | null {\n if (!data?.length) return null\n\n const scripts = data\n .map((item) => buildJsonLdForItem(item))\n .filter((jsonLd): jsonLd is Record<string, unknown> => jsonLd !== null)\n\n if (!scripts.length) return null\n\n return (\n <>\n {scripts.map((jsonLd) => (\n <SchemaOrgScript key={JSON.stringify(jsonLd)} jsonLd={jsonLd} />\n ))}\n </>\n )\n}\n\nexport default SchemaOrgScripts\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {aggregateRatingFields} from './schema'\nimport type {SchemaOrgAggregateRatingData} from './types'\n\nexport interface AggregateRatingSchemaProps {\n data?: SchemaOrgAggregateRatingData | null\n}\n\nexport function buildAggregateRatingJsonLd(\n data?: SchemaOrgAggregateRatingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'AggregateRating',\n data as Record<string, unknown> | null | undefined,\n aggregateRatingFields,\n ['ratingValue'],\n )\n}\n\nexport function AggregateRatingSchema({data}: AggregateRatingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildAggregateRatingJsonLd(data)} />\n}\n\nexport default AggregateRatingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {articleFields} from './schema'\nimport type {SchemaOrgArticleData} from './types'\n\nexport interface ArticleSchemaProps {\n /** The Schema.org Article data from your Sanity GROQ query. */\n data?: SchemaOrgArticleData | null\n}\n\n/**\n * Builds a Schema.org Article JSON-LD object from Sanity data.\n * Returns `null` if required fields (headline) are missing.\n */\nexport function buildArticleJsonLd(\n data?: SchemaOrgArticleData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Article',\n data as Record<string, unknown> | null | undefined,\n articleFields,\n ['headline'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Article data.\n * Renders nothing if required fields are missing.\n */\nexport function ArticleSchema({data}: ArticleSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildArticleJsonLd(data)} />\n}\n\nexport default ArticleSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {blogPostingFields} from './schema'\nimport type {SchemaOrgBlogPostingData} from './types'\n\nexport interface BlogPostingSchemaProps {\n /** The Schema.org BlogPosting data from your Sanity GROQ query. */\n data?: SchemaOrgBlogPostingData | null\n}\n\n/**\n * Builds a Schema.org BlogPosting JSON-LD object from Sanity data.\n * Returns `null` if required fields (headline) are missing.\n */\nexport function buildBlogPostingJsonLd(\n data?: SchemaOrgBlogPostingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'BlogPosting',\n data as Record<string, unknown> | null | undefined,\n blogPostingFields,\n ['headline'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org BlogPosting data.\n * Renders nothing if required fields are missing.\n */\nexport function BlogPostingSchema({data}: BlogPostingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBlogPostingJsonLd(data)} />\n}\n\nexport default BlogPostingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {bookFields} from './schema'\nimport type {SchemaOrgBookData} from './types'\n\nexport interface BookSchemaProps {\n data?: SchemaOrgBookData | null\n}\n\nexport function buildBookJsonLd(data?: SchemaOrgBookData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Book',\n data as Record<string, unknown> | null | undefined,\n bookFields,\n ['name'],\n )\n}\n\nexport function BookSchema({data}: BookSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBookJsonLd(data)} />\n}\n\nexport default BookSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {brandFields} from './schema'\nimport type {SchemaOrgBrandData} from './types'\n\nexport interface BrandSchemaProps {\n data?: SchemaOrgBrandData | null\n}\n\nexport function buildBrandJsonLd(data?: SchemaOrgBrandData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Brand',\n data as Record<string, unknown> | null | undefined,\n brandFields,\n ['name'],\n )\n}\n\nexport function BrandSchema({data}: BrandSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBrandJsonLd(data)} />\n}\n\nexport default BrandSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {breadcrumbListFields} from './schema'\nimport type {SchemaOrgBreadcrumbListData} from './types'\n\nexport interface BreadcrumbListSchemaProps {\n /** The Schema.org BreadcrumbList data from your Sanity GROQ query. */\n data?: SchemaOrgBreadcrumbListData | null\n}\n\n/**\n * Builds a Schema.org BreadcrumbList JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildBreadcrumbListJsonLd(\n data?: SchemaOrgBreadcrumbListData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'BreadcrumbList',\n data as Record<string, unknown> | null | undefined,\n breadcrumbListFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org BreadcrumbList data.\n * Renders nothing if data is missing.\n */\nexport function BreadcrumbListSchema({data}: BreadcrumbListSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildBreadcrumbListJsonLd(data)} />\n}\n\nexport default BreadcrumbListSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {contactPointFields} from './schema'\nimport type {SchemaOrgContactPointData} from './types'\n\nexport interface ContactPointSchemaProps {\n data?: SchemaOrgContactPointData | null\n}\n\nexport function buildContactPointJsonLd(\n data?: SchemaOrgContactPointData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ContactPoint',\n data as Record<string, unknown> | null | undefined,\n contactPointFields,\n ['contactType'],\n )\n}\n\nexport function ContactPointSchema({data}: ContactPointSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildContactPointJsonLd(data)} />\n}\n\nexport default ContactPointSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {countryFields} from './schema'\nimport type {SchemaOrgCountryData} from './types'\n\nexport interface CountrySchemaProps {\n /** The Schema.org Country data from your Sanity GROQ query. */\n data?: SchemaOrgCountryData | null\n}\n\n/**\n * Builds a Schema.org Country JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildCountryJsonLd(\n data?: SchemaOrgCountryData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Country',\n data as Record<string, unknown> | null | undefined,\n countryFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Country data.\n * Renders nothing if required fields are missing.\n */\nexport function CountrySchema({data}: CountrySchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildCountryJsonLd(data)} />\n}\n\nexport default CountrySchema\n","/**\n * <CourseSchema> — Renders Schema.org Course JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { CourseSchema } from 'sanity-plugin-seofields/next/course'\n *\n * const data = await sanityFetch({ query: `*[_type == \"course\"][0]{ seo }` })\n *\n * <CourseSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {courseFields} from './schema'\nimport type {SchemaOrgCourseData} from './types'\n\nexport interface CourseSchemaProps {\n /** The Schema.org Course data from your Sanity GROQ query. */\n data?: SchemaOrgCourseData | null\n}\n\n/**\n * Builds a Schema.org Course JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildCourseJsonLd(\n data?: SchemaOrgCourseData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Course',\n data as Record<string, unknown> | null | undefined,\n courseFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Course data.\n * Renders nothing if required fields are missing.\n */\nexport function CourseSchema({data}: CourseSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildCourseJsonLd(data)} />\n}\n\nexport default CourseSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {eventFields} from './schema'\nimport type {SchemaOrgEventData} from './types'\n\nexport interface EventSchemaProps {\n /** The Schema.org Event data from your Sanity GROQ query. */\n data?: SchemaOrgEventData | null\n}\n\n/**\n * Builds a Schema.org Event JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildEventJsonLd(data?: SchemaOrgEventData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Event',\n data as Record<string, unknown> | null | undefined,\n eventFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Event data.\n * Renders nothing if required fields are missing.\n */\nexport function EventSchema({data}: EventSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildEventJsonLd(data)} />\n}\n\nexport default EventSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {faqPageFields} from './schema'\nimport type {SchemaOrgFAQPageData} from './types'\n\nexport interface FAQPageSchemaProps {\n /** The Schema.org FAQPage data from your Sanity GROQ query. */\n data?: SchemaOrgFAQPageData | null\n}\n\n/**\n * Builds a Schema.org FAQPage JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildFAQPageJsonLd(\n data?: SchemaOrgFAQPageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'FAQPage',\n data as Record<string, unknown> | null | undefined,\n faqPageFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org FAQPage data.\n * Renders nothing if data is missing.\n */\nexport function FAQPageSchema({data}: FAQPageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildFAQPageJsonLd(data)} />\n}\n\nexport default FAQPageSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {howToFields} from './schema'\nimport type {SchemaOrgHowToData} from './types'\n\nexport interface HowToSchemaProps {\n /** The Schema.org HowTo data from your Sanity GROQ query. */\n data?: SchemaOrgHowToData | null\n}\n\n/**\n * Builds a Schema.org HowTo JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildHowToJsonLd(data?: SchemaOrgHowToData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'HowTo',\n data as Record<string, unknown> | null | undefined,\n howToFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org HowTo data.\n * Renders nothing if required fields are missing.\n */\nexport function HowToSchema({data}: HowToSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildHowToJsonLd(data)} />\n}\n\nexport default HowToSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {imageObjectFields} from './schema'\nimport type {SchemaOrgImageObjectData} from './types'\n\nexport interface ImageObjectSchemaProps {\n data?: SchemaOrgImageObjectData | null\n}\n\nexport function buildImageObjectJsonLd(\n data?: SchemaOrgImageObjectData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ImageObject',\n data as Record<string, unknown> | null | undefined,\n imageObjectFields,\n ['url'],\n )\n}\n\nexport function ImageObjectSchema({data}: ImageObjectSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildImageObjectJsonLd(data)} />\n}\n\nexport default ImageObjectSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {itemListFields} from './schema'\nimport type {SchemaOrgItemListData} from './types'\n\nexport interface ItemListSchemaProps {\n data?: SchemaOrgItemListData | null\n}\n\nexport function buildItemListJsonLd(\n data?: SchemaOrgItemListData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ItemList',\n data as Record<string, unknown> | null | undefined,\n itemListFields,\n [],\n )\n}\n\nexport function ItemListSchema({data}: ItemListSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildItemListJsonLd(data)} />\n}\n\nexport default ItemListSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {jobPostingFields} from './schema'\nimport type {SchemaOrgJobPostingData} from './types'\n\nexport interface JobPostingSchemaProps {\n data?: SchemaOrgJobPostingData | null\n}\n\nexport function buildJobPostingJsonLd(\n data?: SchemaOrgJobPostingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'JobPosting',\n data as Record<string, unknown> | null | undefined,\n jobPostingFields,\n ['title', 'description', 'datePosted'],\n )\n}\n\nexport function JobPostingSchema({data}: JobPostingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildJobPostingJsonLd(data)} />\n}\n\nexport default JobPostingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {legalServiceFields} from './schema'\nimport type {SchemaOrgLegalServiceData} from './types'\n\nexport interface LegalServiceSchemaProps {\n /** The Schema.org LegalService data from your Sanity GROQ query. */\n data?: SchemaOrgLegalServiceData | null\n}\n\n/**\n * Builds a Schema.org LegalService JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildLegalServiceJsonLd(\n data?: SchemaOrgLegalServiceData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'LegalService',\n data as Record<string, unknown> | null | undefined,\n legalServiceFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org LegalService data.\n * Renders nothing if required fields are missing.\n */\nexport function LegalServiceSchema({data}: LegalServiceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildLegalServiceJsonLd(data)} />\n}\n\nexport default LegalServiceSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {localBusinessFields} from './schema'\nimport type {SchemaOrgLocalBusinessData} from './types'\n\nexport interface LocalBusinessSchemaProps {\n /** The Schema.org LocalBusiness data from your Sanity GROQ query. */\n data?: SchemaOrgLocalBusinessData | null\n}\n\n/**\n * Builds a Schema.org LocalBusiness JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildLocalBusinessJsonLd(\n data?: SchemaOrgLocalBusinessData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'LocalBusiness',\n data as Record<string, unknown> | null | undefined,\n localBusinessFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org LocalBusiness data.\n * Renders nothing if required fields are missing.\n */\nexport function LocalBusinessSchema({data}: LocalBusinessSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildLocalBusinessJsonLd(data)} />\n}\n\nexport default LocalBusinessSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {movieFields} from './schema'\nimport type {SchemaOrgMovieData} from './types'\n\nexport interface MovieSchemaProps {\n data?: SchemaOrgMovieData | null\n}\n\nexport function buildMovieJsonLd(data?: SchemaOrgMovieData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Movie',\n data as Record<string, unknown> | null | undefined,\n movieFields,\n ['name'],\n )\n}\n\nexport function MovieSchema({data}: MovieSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMovieJsonLd(data)} />\n}\n\nexport default MovieSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {musicAlbumFields} from './schema'\nimport type {SchemaOrgMusicAlbumData} from './types'\n\nexport interface MusicAlbumSchemaProps {\n data?: SchemaOrgMusicAlbumData | null\n}\n\nexport function buildMusicAlbumJsonLd(\n data?: SchemaOrgMusicAlbumData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'MusicAlbum',\n data as Record<string, unknown> | null | undefined,\n musicAlbumFields,\n ['name'],\n )\n}\n\nexport function MusicAlbumSchema({data}: MusicAlbumSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMusicAlbumJsonLd(data)} />\n}\n\nexport default MusicAlbumSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {musicRecordingFields} from './schema'\nimport type {SchemaOrgMusicRecordingData} from './types'\n\nexport interface MusicRecordingSchemaProps {\n data?: SchemaOrgMusicRecordingData | null\n}\n\nexport function buildMusicRecordingJsonLd(\n data?: SchemaOrgMusicRecordingData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'MusicRecording',\n data as Record<string, unknown> | null | undefined,\n musicRecordingFields,\n ['name'],\n )\n}\n\nexport function MusicRecordingSchema({data}: MusicRecordingSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildMusicRecordingJsonLd(data)} />\n}\n\nexport default MusicRecordingSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {newsArticleFields} from './schema'\nimport type {SchemaOrgNewsArticleData} from './types'\n\nexport interface NewsArticleSchemaProps {\n data?: SchemaOrgNewsArticleData | null\n}\n\nexport function buildNewsArticleJsonLd(\n data?: SchemaOrgNewsArticleData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'NewsArticle',\n data as Record<string, unknown> | null | undefined,\n newsArticleFields,\n ['headline', 'datePublished'],\n )\n}\n\nexport function NewsArticleSchema({data}: NewsArticleSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildNewsArticleJsonLd(data)} />\n}\n\nexport default NewsArticleSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {offerFields} from './schema'\nimport type {SchemaOrgOfferData} from './types'\n\nexport interface OfferSchemaProps {\n data?: SchemaOrgOfferData | null\n}\n\nexport function buildOfferJsonLd(data?: SchemaOrgOfferData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Offer',\n data as Record<string, unknown> | null | undefined,\n offerFields,\n ['price'],\n )\n}\n\nexport function OfferSchema({data}: OfferSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildOfferJsonLd(data)} />\n}\n\nexport default OfferSchema\n","/**\n * <PersonSchema> — Renders Schema.org Person JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { PersonSchema } from 'sanity-plugin-seofields/next/person'\n *\n * const data = await sanityFetch({ query: `*[_type == \"teamMember\"][0]{ person }` })\n *\n * <PersonSchema data={data.person} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {personFields} from './schema'\nimport type {SchemaOrgPersonData} from './types'\n\nexport interface PersonSchemaProps {\n /** The Schema.org Person data from your Sanity GROQ query. */\n data?: SchemaOrgPersonData | null\n}\n\n/**\n * Builds a Schema.org Person JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildPersonJsonLd(\n data?: SchemaOrgPersonData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Person',\n data as Record<string, unknown> | null | undefined,\n personFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Person data.\n * Renders nothing if required fields are missing.\n */\nexport function PersonSchema({data}: PersonSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPersonJsonLd(data)} />\n}\n\nexport default PersonSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {placeFields} from './schema'\nimport type {SchemaOrgPlaceData} from './types'\n\nexport interface PlaceSchemaProps {\n /** The Schema.org Place data from your Sanity GROQ query. */\n data?: SchemaOrgPlaceData | null\n}\n\n/**\n * Builds a Schema.org Place JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildPlaceJsonLd(data?: SchemaOrgPlaceData | null): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Place',\n data as Record<string, unknown> | null | undefined,\n placeFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Place data.\n * Renders nothing if required fields are missing.\n */\nexport function PlaceSchema({data}: PlaceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPlaceJsonLd(data)} />\n}\n\nexport default PlaceSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {postalAddressFields} from './schema'\nimport type {SchemaOrgPostalAddressData} from './types'\n\nexport interface PostalAddressSchemaProps {\n data?: SchemaOrgPostalAddressData | null\n}\n\nexport function buildPostalAddressJsonLd(\n data?: SchemaOrgPostalAddressData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'PostalAddress',\n data as Record<string, unknown> | null | undefined,\n postalAddressFields,\n [],\n )\n}\n\nexport function PostalAddressSchema({data}: PostalAddressSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildPostalAddressJsonLd(data)} />\n}\n\nexport default PostalAddressSchema\n","/**\n * <ProductSchema> — Renders Schema.org Product JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { ProductSchema } from 'sanity-plugin-seofields/next/product'\n *\n * const data = await sanityFetch({ query: `*[_type == \"product\"][0]{ seo }` })\n *\n * <ProductSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {productFields} from './schema'\nimport type {SchemaOrgProductData} from './types'\n\nexport interface ProductSchemaProps {\n /** The Schema.org Product data from your Sanity GROQ query. */\n data?: SchemaOrgProductData | null\n}\n\n/**\n * Builds a Schema.org Product JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildProductJsonLd(\n data?: SchemaOrgProductData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Product',\n data as Record<string, unknown> | null | undefined,\n productFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Product data.\n * Renders nothing if required fields are missing.\n */\nexport function ProductSchema({data}: ProductSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildProductJsonLd(data)} />\n}\n\nexport default ProductSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {profilePageFields} from './schema'\nimport type {SchemaOrgProfilePageData} from './types'\n\nexport interface ProfilePageSchemaProps {\n data?: SchemaOrgProfilePageData | null\n}\n\nexport function buildProfilePageJsonLd(\n data?: SchemaOrgProfilePageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'ProfilePage',\n data as Record<string, unknown> | null | undefined,\n profilePageFields,\n [],\n )\n}\n\nexport function ProfilePageSchema({data}: ProfilePageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildProfilePageJsonLd(data)} />\n}\n\nexport default ProfilePageSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {recipeFields} from './schema'\nimport type {SchemaOrgRecipeData} from './types'\n\nexport interface RecipeSchemaProps {\n data?: SchemaOrgRecipeData | null\n}\n\nexport function buildRecipeJsonLd(\n data?: SchemaOrgRecipeData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Recipe',\n data as Record<string, unknown> | null | undefined,\n recipeFields,\n ['name'],\n )\n}\n\nexport function RecipeSchema({data}: RecipeSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildRecipeJsonLd(data)} />\n}\n\nexport default RecipeSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {restaurantFields} from './schema'\nimport type {SchemaOrgRestaurantData} from './types'\n\nexport interface RestaurantSchemaProps {\n data?: SchemaOrgRestaurantData | null\n}\n\nexport function buildRestaurantJsonLd(\n data?: SchemaOrgRestaurantData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Restaurant',\n data as Record<string, unknown> | null | undefined,\n restaurantFields,\n ['name'],\n )\n}\n\nexport function RestaurantSchema({data}: RestaurantSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildRestaurantJsonLd(data)} />\n}\n\nexport default RestaurantSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {reviewFields} from './schema'\nimport type {SchemaOrgReviewData} from './types'\n\nexport interface ReviewSchemaProps {\n /** The Schema.org Review data from your Sanity GROQ query. */\n data?: SchemaOrgReviewData | null\n}\n\n/**\n * Builds a Schema.org Review JSON-LD object from Sanity data.\n * Returns `null` if data is missing.\n */\nexport function buildReviewJsonLd(\n data?: SchemaOrgReviewData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Review',\n data as Record<string, unknown> | null | undefined,\n reviewFields,\n [],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org Review data.\n * Renders nothing if data is missing.\n */\nexport function ReviewSchema({data}: ReviewSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildReviewJsonLd(data)} />\n}\n\nexport default ReviewSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {serviceFields} from './schema'\nimport type {SchemaOrgServiceData} from './types'\n\nexport interface ServiceSchemaProps {\n data?: SchemaOrgServiceData | null\n}\n\nexport function buildServiceJsonLd(\n data?: SchemaOrgServiceData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'Service',\n data as Record<string, unknown> | null | undefined,\n serviceFields,\n ['name'],\n )\n}\n\nexport function ServiceSchema({data}: ServiceSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildServiceJsonLd(data)} />\n}\n\nexport default ServiceSchema\n","/**\n * <SoftwareApplicationSchema> — Renders Schema.org SoftwareApplication JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { SoftwareApplicationSchema } from 'sanity-plugin-seofields/next/softwareApplication'\n *\n * const data = await sanityFetch({ query: `*[_type == \"app\"][0]{ seo }` })\n *\n * <SoftwareApplicationSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {softwareApplicationFields} from './schema'\nimport type {SchemaOrgSoftwareApplicationData} from './types'\n\nexport interface SoftwareApplicationSchemaProps {\n /** The Schema.org SoftwareApplication data from your Sanity GROQ query. */\n data?: SchemaOrgSoftwareApplicationData | null\n}\n\n/**\n * Builds a Schema.org SoftwareApplication JSON-LD object from Sanity data.\n * Returns `null` if required fields (name) are missing.\n */\nexport function buildSoftwareApplicationJsonLd(\n data?: SchemaOrgSoftwareApplicationData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'SoftwareApplication',\n data as Record<string, unknown> | null | undefined,\n softwareApplicationFields,\n ['name'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org SoftwareApplication data.\n * Renders nothing if required fields are missing.\n */\nexport function SoftwareApplicationSchema({\n data,\n}: SoftwareApplicationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildSoftwareApplicationJsonLd(data)} />\n}\n\nexport default SoftwareApplicationSchema\n","import {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {videoObjectFields} from './schema'\nimport type {SchemaOrgVideoObjectData} from './types'\n\nexport interface VideoObjectSchemaProps {\n data?: SchemaOrgVideoObjectData | null\n}\n\nexport function buildVideoObjectJsonLd(\n data?: SchemaOrgVideoObjectData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'VideoObject',\n data as Record<string, unknown> | null | undefined,\n videoObjectFields,\n ['name'],\n )\n}\n\nexport function VideoObjectSchema({data}: VideoObjectSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildVideoObjectJsonLd(data)} />\n}\n\nexport default VideoObjectSchema\n","/**\n * <WebApplicationSchema> — Renders Schema.org WebApplication JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebApplicationSchema } from 'sanity-plugin-seofields/next/webApplication'\n *\n * const data = await sanityFetch({ query: `*[_type == \"app\"][0]{ seo }` })\n *\n * <WebApplicationSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {webApplicationFields} from './schema'\nimport type {SchemaOrgWebApplicationData} from './types'\n\nexport interface WebApplicationSchemaProps {\n /** The Schema.org WebApplication data from your Sanity GROQ query. */\n data?: SchemaOrgWebApplicationData | null\n}\n\n/**\n * Builds a Schema.org WebApplication JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebApplicationJsonLd(\n data?: SchemaOrgWebApplicationData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'WebApplication',\n data as Record<string, unknown> | null | undefined,\n webApplicationFields,\n ['name', 'url'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebApplication data.\n * Renders nothing if required fields are missing.\n */\nexport function WebApplicationSchema({data}: WebApplicationSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebApplicationJsonLd(data)} />\n}\n\nexport default WebApplicationSchema\n","/**\n * <WebPageSchema> — Renders Schema.org WebPage JSON-LD structured data.\n *\n * @example\n * ```tsx\n * import { WebPageSchema } from 'sanity-plugin-seofields/next/webPage'\n *\n * const data = await sanityFetch({ query: `*[_type == \"page\"][0]{ seo }` })\n *\n * <WebPageSchema data={data.seo} />\n * ```\n */\nimport {JSX} from 'react'\n\nimport {buildGenericJsonLd} from '../generator'\nimport {SchemaOrgScript} from '../SchemaOrgScript'\nimport {webPageFields} from './schema'\nimport type {SchemaOrgWebPageData} from './types'\n\nexport interface WebPageSchemaProps {\n /** The Schema.org WebPage data from your Sanity GROQ query. */\n data?: SchemaOrgWebPageData | null\n}\n\n/**\n * Builds a Schema.org WebPage JSON-LD object from Sanity data.\n * Returns `null` if required fields (name, url) are missing.\n */\nexport function buildWebPageJsonLd(\n data?: SchemaOrgWebPageData | null,\n): Record<string, unknown> | null {\n return buildGenericJsonLd(\n 'WebPage',\n data as Record<string, unknown> | null | undefined,\n webPageFields,\n ['name', 'url'],\n )\n}\n\n/**\n * Renders a `<script type=\"application/ld+json\">` tag with Schema.org WebPage data.\n * Renders nothing if required fields are missing.\n */\nexport function WebPageSchema({data}: WebPageSchemaProps): JSX.Element | null {\n return <SchemaOrgScript jsonLd={buildWebPageJsonLd(data)} />\n}\n\nexport default WebPageSchema\n"]}
|
|
@@ -1046,6 +1046,81 @@ var RenderLicenseInvalid = ({ licenseKey, validateLicense }) => /* @__PURE__ */
|
|
|
1046
1046
|
}
|
|
1047
1047
|
)
|
|
1048
1048
|
] }) }) });
|
|
1049
|
+
var LegacyBannerWrap = styled__default.default.div`
|
|
1050
|
+
display: flex;
|
|
1051
|
+
align-items: flex-start;
|
|
1052
|
+
gap: 12px;
|
|
1053
|
+
padding: 14px 20px;
|
|
1054
|
+
margin-bottom: 20px;
|
|
1055
|
+
background: #fffbeb;
|
|
1056
|
+
border-bottom: 1px solid #fde68a;
|
|
1057
|
+
color: #92400e;
|
|
1058
|
+
font-size: 13px;
|
|
1059
|
+
line-height: 1.5;
|
|
1060
|
+
`;
|
|
1061
|
+
var LegacyBannerLink = styled__default.default.a`
|
|
1062
|
+
display: inline-block;
|
|
1063
|
+
padding: 5px 14px;
|
|
1064
|
+
background: #f59e0b;
|
|
1065
|
+
color: #fff;
|
|
1066
|
+
border-radius: 6px;
|
|
1067
|
+
font-size: 12px;
|
|
1068
|
+
font-weight: 600;
|
|
1069
|
+
text-decoration: none;
|
|
1070
|
+
&:hover {
|
|
1071
|
+
background: #d97706;
|
|
1072
|
+
}
|
|
1073
|
+
`;
|
|
1074
|
+
var ButtonWrapper = styled__default.default.div`
|
|
1075
|
+
display: flex;
|
|
1076
|
+
gap: 12px;
|
|
1077
|
+
flex-wrap: wrap;
|
|
1078
|
+
align-items: center;
|
|
1079
|
+
margin-top: 6px;
|
|
1080
|
+
`;
|
|
1081
|
+
var VerifyButton = styled__default.default.button`
|
|
1082
|
+
display: inline-block;
|
|
1083
|
+
padding: 5px 14px;
|
|
1084
|
+
background: #10b981;
|
|
1085
|
+
color: #fff;
|
|
1086
|
+
border-radius: 6px;
|
|
1087
|
+
font-size: 12px;
|
|
1088
|
+
font-weight: 600;
|
|
1089
|
+
border: none;
|
|
1090
|
+
cursor: pointer;
|
|
1091
|
+
text-decoration: none;
|
|
1092
|
+
&:hover {
|
|
1093
|
+
background: #059669;
|
|
1094
|
+
}
|
|
1095
|
+
`;
|
|
1096
|
+
var RenderLegacyBanner = ({ upgradeUrl, cutoffDate, onVerifyUpgrade }) => {
|
|
1097
|
+
const deadline = cutoffDate ? new Date(cutoffDate).toLocaleDateString("en-US", {
|
|
1098
|
+
month: "long",
|
|
1099
|
+
day: "numeric",
|
|
1100
|
+
year: "numeric"
|
|
1101
|
+
}) : null;
|
|
1102
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(LegacyBannerWrap, { children: [
|
|
1103
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "18px", lineHeight: 1 }, children: "\u26A0\uFE0F" }),
|
|
1104
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1105
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Legacy free access \u2014 upgrade required" }),
|
|
1106
|
+
/* @__PURE__ */ jsxRuntime.jsx("br", {}),
|
|
1107
|
+
deadline ? `Your free beta access expires on ${deadline}. After that date, a paid license is required.` : "Your free beta access will be transitioning to paid. Upgrade now to keep access.",
|
|
1108
|
+
/* @__PURE__ */ jsxRuntime.jsx("br", {}),
|
|
1109
|
+
/* @__PURE__ */ jsxRuntime.jsxs(ButtonWrapper, { children: [
|
|
1110
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1111
|
+
LegacyBannerLink,
|
|
1112
|
+
{
|
|
1113
|
+
href: upgradeUrl != null ? upgradeUrl : "https://sanity-plugin-seofields.thehardik.in/get-license",
|
|
1114
|
+
target: "_blank",
|
|
1115
|
+
rel: "noopener noreferrer",
|
|
1116
|
+
children: "Upgrade for $10/project \u2192"
|
|
1117
|
+
}
|
|
1118
|
+
),
|
|
1119
|
+
onVerifyUpgrade && /* @__PURE__ */ jsxRuntime.jsx(VerifyButton, { onClick: onVerifyUpgrade, children: "Already paid? Click here to verify your license \u2192" })
|
|
1120
|
+
] })
|
|
1121
|
+
] })
|
|
1122
|
+
] });
|
|
1123
|
+
};
|
|
1049
1124
|
var scoreMetaTitle = (title) => {
|
|
1050
1125
|
const issues = [];
|
|
1051
1126
|
let score = 0;
|
|
@@ -1330,7 +1405,10 @@ var SeoHealthDashboard = ({
|
|
|
1330
1405
|
return Array.from(groups.values());
|
|
1331
1406
|
}, [allDeprecationWarnings]);
|
|
1332
1407
|
const client = sanity.useClient({ apiVersion });
|
|
1333
|
-
const [licenseStatus, setLicenseStatus] = react.useState(
|
|
1408
|
+
const [licenseStatus, setLicenseStatus] = react.useState(
|
|
1409
|
+
"loading"
|
|
1410
|
+
);
|
|
1411
|
+
const [legacyInfo, setLegacyInfo] = react.useState({});
|
|
1334
1412
|
const [documents, setDocuments] = react.useState([]);
|
|
1335
1413
|
const [loading, setLoading] = react.useState(true);
|
|
1336
1414
|
const [isRefreshing, setIsRefreshing] = react.useState(false);
|
|
@@ -1419,6 +1497,28 @@ var SeoHealthDashboard = ({
|
|
|
1419
1497
|
}
|
|
1420
1498
|
setCurrentPage(1);
|
|
1421
1499
|
}, []);
|
|
1500
|
+
const applyLicenseState = react.useCallback(
|
|
1501
|
+
({ valid, legacy = false, upgradeUrl, cutoffDate }) => {
|
|
1502
|
+
if (valid && legacy) {
|
|
1503
|
+
setLegacyInfo({ upgradeUrl, cutoffDate });
|
|
1504
|
+
setLicenseStatus("legacy");
|
|
1505
|
+
return;
|
|
1506
|
+
}
|
|
1507
|
+
setLegacyInfo({});
|
|
1508
|
+
setLicenseStatus(valid ? "valid" : "invalid");
|
|
1509
|
+
},
|
|
1510
|
+
[]
|
|
1511
|
+
);
|
|
1512
|
+
const readCachedLicenseState = react.useCallback((cacheKey) => {
|
|
1513
|
+
try {
|
|
1514
|
+
const cached = sessionStorage.getItem(cacheKey);
|
|
1515
|
+
if (!cached) return null;
|
|
1516
|
+
const parsed = JSON.parse(cached);
|
|
1517
|
+
return Date.now() - parsed.ts < CACHE_TTL_MS ? parsed : null;
|
|
1518
|
+
} catch (e) {
|
|
1519
|
+
return null;
|
|
1520
|
+
}
|
|
1521
|
+
}, []);
|
|
1422
1522
|
const validateLicense = react.useCallback(
|
|
1423
1523
|
async (forceRefresh = false) => {
|
|
1424
1524
|
var _a;
|
|
@@ -1439,16 +1539,10 @@ var SeoHealthDashboard = ({
|
|
|
1439
1539
|
}
|
|
1440
1540
|
}
|
|
1441
1541
|
if (!forceRefresh) {
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
if (Date.now() - ts < CACHE_TTL_MS) {
|
|
1447
|
-
setLicenseStatus(valid ? "valid" : "invalid");
|
|
1448
|
-
return;
|
|
1449
|
-
}
|
|
1450
|
-
}
|
|
1451
|
-
} catch (e) {
|
|
1542
|
+
const cachedLicenseState = readCachedLicenseState(cacheKey);
|
|
1543
|
+
if (cachedLicenseState) {
|
|
1544
|
+
applyLicenseState(cachedLicenseState);
|
|
1545
|
+
return;
|
|
1452
1546
|
}
|
|
1453
1547
|
}
|
|
1454
1548
|
setLicenseStatus("loading");
|
|
@@ -1458,10 +1552,21 @@ var SeoHealthDashboard = ({
|
|
|
1458
1552
|
headers: { "Content-Type": "application/json" },
|
|
1459
1553
|
body: JSON.stringify({ licenseKey, projectId })
|
|
1460
1554
|
});
|
|
1555
|
+
const data = await res.json().catch(() => ({}));
|
|
1461
1556
|
const valid = res.ok;
|
|
1462
|
-
|
|
1557
|
+
const legacy = valid && data.legacy === true;
|
|
1558
|
+
applyLicenseState({ valid, legacy, upgradeUrl: data.upgradeUrl, cutoffDate: data.cutoffDate });
|
|
1463
1559
|
try {
|
|
1464
|
-
sessionStorage.setItem(
|
|
1560
|
+
sessionStorage.setItem(
|
|
1561
|
+
cacheKey,
|
|
1562
|
+
JSON.stringify({
|
|
1563
|
+
valid,
|
|
1564
|
+
legacy,
|
|
1565
|
+
upgradeUrl: data.upgradeUrl,
|
|
1566
|
+
cutoffDate: data.cutoffDate,
|
|
1567
|
+
ts: Date.now()
|
|
1568
|
+
})
|
|
1569
|
+
);
|
|
1465
1570
|
} catch (e) {
|
|
1466
1571
|
}
|
|
1467
1572
|
} catch (e) {
|
|
@@ -1469,8 +1574,11 @@ var SeoHealthDashboard = ({
|
|
|
1469
1574
|
}
|
|
1470
1575
|
},
|
|
1471
1576
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1472
|
-
[licenseKey, previewMode]
|
|
1577
|
+
[applyLicenseState, licenseKey, previewMode, readCachedLicenseState]
|
|
1473
1578
|
);
|
|
1579
|
+
const handleVerifyUpgrade = react.useCallback(() => {
|
|
1580
|
+
validateLicense(true);
|
|
1581
|
+
}, [validateLicense]);
|
|
1474
1582
|
react.useEffect(() => {
|
|
1475
1583
|
validateLicense();
|
|
1476
1584
|
}, [licenseKey, previewMode]);
|
|
@@ -2041,11 +2149,22 @@ var SeoHealthDashboard = ({
|
|
|
2041
2149
|
return /* @__PURE__ */ jsxRuntime.jsxs(DashboardContainer, { style: currentVars, children: [
|
|
2042
2150
|
licenseStatus === "loading" && /* @__PURE__ */ jsxRuntime.jsx(RenderLicenseLoading, { text: loadingLicense }),
|
|
2043
2151
|
licenseStatus === "invalid" && /* @__PURE__ */ jsxRuntime.jsx(RenderLicenseInvalid, { licenseKey, validateLicense }),
|
|
2152
|
+
licenseStatus === "legacy" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2153
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2154
|
+
RenderLegacyBanner,
|
|
2155
|
+
{
|
|
2156
|
+
upgradeUrl: legacyInfo.upgradeUrl,
|
|
2157
|
+
cutoffDate: legacyInfo.cutoffDate,
|
|
2158
|
+
onVerifyUpgrade: handleVerifyUpgrade
|
|
2159
|
+
}
|
|
2160
|
+
),
|
|
2161
|
+
renderDashboardContent()
|
|
2162
|
+
] }),
|
|
2044
2163
|
licenseStatus === "valid" && renderDashboardContent()
|
|
2045
2164
|
] });
|
|
2046
2165
|
};
|
|
2047
2166
|
var SeoHealthDashboard_default = SeoHealthDashboard;
|
|
2048
2167
|
|
|
2049
2168
|
exports.SeoHealthDashboard_default = SeoHealthDashboard_default;
|
|
2050
|
-
//# sourceMappingURL=chunk-
|
|
2051
|
-
//# sourceMappingURL=chunk-
|
|
2169
|
+
//# sourceMappingURL=chunk-BHIZQLY7.cjs.map
|
|
2170
|
+
//# sourceMappingURL=chunk-BHIZQLY7.cjs.map
|