sanity-plugin-seofields 1.6.5 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +355 -79
- package/dist/SchemaOrgJsonLdPreview-DJLkIPq4.d.cts +78 -0
- package/dist/SchemaOrgJsonLdPreview-DJLkIPq4.d.ts +78 -0
- package/dist/SeoHealthDashboard-AEKVVMUR-7NWV3C3Y.js +4 -0
- package/dist/SeoHealthDashboard-AEKVVMUR-7NWV3C3Y.js.map +1 -0
- package/dist/SeoHealthDashboard-AEKVVMUR-XWKJUH24.cjs +10 -0
- package/dist/SeoHealthDashboard-AEKVVMUR-XWKJUH24.cjs.map +1 -0
- package/dist/SeoHealthTool-2KKQJLJL.cjs +11 -0
- package/dist/{SeoHealthDashboard-BEZVLLFG.js.map → SeoHealthTool-2KKQJLJL.cjs.map} +1 -1
- package/dist/SeoHealthTool-3CUKGADZ.js +5 -0
- package/dist/{SeoHealthDashboard-D3XU3CUB.cjs.map → SeoHealthTool-3CUKGADZ.js.map} +1 -1
- package/dist/{SeoPreview-WYH7NYNM.cjs → SeoPreview-3EXR6FD4.cjs} +3 -3
- package/dist/{SeoPreview-WYH7NYNM.cjs.map → SeoPreview-3EXR6FD4.cjs.map} +1 -1
- package/dist/{SeoPreview-KEGGQSPJ.js → SeoPreview-4PPAF4NO.js} +3 -3
- package/dist/{SeoPreview-KEGGQSPJ.js.map → SeoPreview-4PPAF4NO.js.map} +1 -1
- package/dist/{chunk-S367Y35J.cjs → chunk-254YHUN3.cjs} +2 -15
- package/dist/{chunk-S367Y35J.cjs.map → chunk-254YHUN3.cjs.map} +1 -1
- package/dist/{chunk-HQTYQMP5.js → chunk-27XSYENH.js} +80 -29
- package/dist/chunk-27XSYENH.js.map +1 -0
- package/dist/{chunk-YHXUWGNA.cjs → chunk-B5IVI5LP.cjs} +918 -157
- package/dist/chunk-B5IVI5LP.cjs.map +1 -0
- package/dist/chunk-BNXMFD3T.cjs +431 -0
- package/dist/chunk-BNXMFD3T.cjs.map +1 -0
- package/dist/{chunk-2NMEKWO5.js → chunk-DDAAVRWG.js} +3 -15
- package/dist/{chunk-2NMEKWO5.js.map → chunk-DDAAVRWG.js.map} +1 -1
- package/dist/chunk-P6IOWIO2.cjs +480 -0
- package/dist/chunk-P6IOWIO2.cjs.map +1 -0
- package/dist/{chunk-XXA6WCWS.js → chunk-UOCZFYYP.js} +18 -203
- package/dist/chunk-UOCZFYYP.js.map +1 -0
- package/dist/{chunk-KTL6NYNG.js → chunk-VR44E62I.js} +897 -148
- package/dist/chunk-VR44E62I.js.map +1 -0
- package/dist/chunk-WKXHX3GO.js +424 -0
- package/dist/chunk-WKXHX3GO.js.map +1 -0
- package/dist/{chunk-BHIZQLY7.cjs → chunk-XZDLJ2N6.cjs} +84 -30
- package/dist/chunk-XZDLJ2N6.cjs.map +1 -0
- package/dist/cli.js +18 -18
- package/dist/{component-H52blyfc.d.ts → component-BzI-LHPw.d.cts} +9 -27
- package/dist/{component-CIE6Sy4F.d.cts → component-DEXwtemT.d.ts} +9 -27
- package/dist/define-cli.cjs +1 -1
- package/dist/define-cli.js +1 -1
- package/dist/index.cjs +1050 -94
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +75 -202
- package/dist/index.d.ts +75 -202
- package/dist/index.js +1009 -63
- package/dist/index.js.map +1 -1
- package/dist/next.cjs +138 -116
- package/dist/next.cjs.map +1 -1
- package/dist/next.d.cts +9 -3
- package/dist/next.d.ts +9 -3
- package/dist/next.js +38 -32
- package/dist/next.js.map +1 -1
- package/dist/schema/next.cjs +105 -89
- package/dist/schema/next.d.cts +4 -4
- package/dist/schema/next.d.ts +4 -4
- package/dist/schema/next.js +4 -4
- package/dist/schema.cjs +219 -157
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +30 -16
- package/dist/schema.d.ts +30 -16
- package/dist/schema.js +41 -8
- package/dist/schema.js.map +1 -1
- package/dist/{types-Dp9Pfnt9.d.ts → types-BXSCbl6p.d.cts} +47 -2
- package/dist/{types-CyRdIF-3.d.cts → types-B_vjMPtM.d.cts} +1 -1
- package/dist/{types-BxcJinOf.d.cts → types-C19cQx5D.d.ts} +47 -2
- package/dist/{types-CbYb4MsN.d.ts → types-CW8qFdAn.d.ts} +1 -1
- package/dist/{types-BtSRRG6C.d.cts → types-yVmQfby9.d.cts} +8 -16
- package/dist/{types-BtSRRG6C.d.ts → types-yVmQfby9.d.ts} +8 -16
- package/package.json +2 -1
- package/dist/SeoHealthDashboard-BEZVLLFG.js +0 -4
- package/dist/SeoHealthDashboard-D3XU3CUB.cjs +0 -10
- package/dist/SeoHealthTool-4VZMD4TR.cjs +0 -14
- package/dist/SeoHealthTool-4VZMD4TR.cjs.map +0 -1
- package/dist/SeoHealthTool-BSTYAKQS.js +0 -12
- package/dist/SeoHealthTool-BSTYAKQS.js.map +0 -1
- package/dist/chunk-BCTPOWXA.cjs +0 -669
- package/dist/chunk-BCTPOWXA.cjs.map +0 -1
- package/dist/chunk-BHIZQLY7.cjs.map +0 -1
- package/dist/chunk-HQTYQMP5.js.map +0 -1
- package/dist/chunk-KTL6NYNG.js.map +0 -1
- package/dist/chunk-XXA6WCWS.js.map +0 -1
- package/dist/chunk-YHXUWGNA.cjs.map +0 -1
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JSX } from 'react';
|
|
2
|
+
import { b as SanityImage } from './types-yVmQfby9.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
|
|
6
|
+
* from a combined `schemaOrg` array field.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'
|
|
11
|
+
*
|
|
12
|
+
* const data = await sanityFetch({ query: `*[_type == "settings"][0]{ structuredData }` })
|
|
13
|
+
*
|
|
14
|
+
* <SchemaOrgScripts data={data.structuredData} />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
declare function buildSchemaOrgJsonLd(item: Record<string, unknown>): Record<string, unknown> | null;
|
|
19
|
+
declare function buildSchemaOrgJsonLds(data?: Array<Record<string, unknown>> | null): Array<Record<string, unknown>>;
|
|
20
|
+
interface SchemaOrgScriptsProps {
|
|
21
|
+
/** Array of Schema.org items from the combined `schemaOrg` field. */
|
|
22
|
+
data?: Array<Record<string, unknown>> | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Renders one `<script type="application/ld+json">` tag per Schema.org item.
|
|
26
|
+
* Skips items that fail validation (missing required fields).
|
|
27
|
+
*/
|
|
28
|
+
declare function SchemaOrgScripts({ data }: SchemaOrgScriptsProps): JSX.Element | null;
|
|
2
29
|
|
|
3
30
|
/** Copyright year: static number or dynamic (current year) */
|
|
4
31
|
type SchemaOrgCopyrightYear = number | {
|
|
@@ -712,6 +739,24 @@ interface SchemaOrgOfferConfig {
|
|
|
712
739
|
};
|
|
713
740
|
}
|
|
714
741
|
|
|
742
|
+
/** Schema.org OpinionNewsArticle — data shape from GROQ query */
|
|
743
|
+
interface SchemaOrgOpinionNewsArticleData extends SchemaOrgCreativeWorkData {
|
|
744
|
+
_type?: 'schemaOrgOpinionNewsArticle';
|
|
745
|
+
articleSection?: string;
|
|
746
|
+
articleBody?: string;
|
|
747
|
+
backstory?: string;
|
|
748
|
+
wordCount?: number;
|
|
749
|
+
dateline?: string;
|
|
750
|
+
printColumn?: string;
|
|
751
|
+
printEdition?: string;
|
|
752
|
+
printPage?: string;
|
|
753
|
+
printSection?: string;
|
|
754
|
+
}
|
|
755
|
+
/** Configuration for `schemaOrgOpinionNewsArticle()` */
|
|
756
|
+
interface SchemaOrgOpinionNewsArticleConfig {
|
|
757
|
+
validation?: Record<string, string>;
|
|
758
|
+
}
|
|
759
|
+
|
|
715
760
|
/** Contact point nested within the Organization schema */
|
|
716
761
|
interface OrganizationContactPoint {
|
|
717
762
|
/** e.g. "customer support", "sales", "technical support" */
|
|
@@ -1212,4 +1257,4 @@ interface SchemaOrgWebsiteConfig {
|
|
|
1212
1257
|
};
|
|
1213
1258
|
}
|
|
1214
1259
|
|
|
1215
|
-
export type
|
|
1260
|
+
export { type SchemaOrgCopyrightYear as $, type SchemaOrgOrganizationConfig as A, type SchemaOrgPersonConfig as B, type SchemaOrgPlaceConfig as C, type SchemaOrgPostalAddressConfig as D, type SchemaOrgProductConfig as E, type SchemaOrgProfilePageConfig as F, type SchemaOrgRecipeConfig as G, type SchemaOrgRestaurantConfig as H, type SchemaOrgReviewConfig as I, type SchemaOrgServiceConfig as J, type SchemaOrgSoftwareApplicationConfig as K, type SchemaOrgVideoObjectConfig as L, type SchemaOrgWebApplicationConfig as M, type SchemaOrgWebPageConfig as N, type SchemaOrgWebsiteConfig as O, type OrganizationContactPoint as P, type SchemaOrgAggregateRating as Q, type SchemaOrgAggregateRatingData as R, SchemaOrgScripts as S, type SchemaOrgArchivedAt as T, type SchemaOrgArticleData as U, type SchemaOrgBlogPostingData as V, type SchemaOrgBookData as W, type SchemaOrgBrandData as X, type SchemaOrgBreadcrumbListData as Y, type SchemaOrgContactPointData as Z, type SchemaOrgContentRating as _, type SchemaOrgScriptsProps as a, type SchemaOrgCountryData as a0, type SchemaOrgCourseData as a1, type SchemaOrgCreativeWorkData as a2, type SchemaOrgEventData as a3, type SchemaOrgFAQPageData as a4, type SchemaOrgHowToData as a5, type SchemaOrgImageInput as a6, type SchemaOrgImageObjectData as a7, type SchemaOrgItemListData as a8, type SchemaOrgJobPostingData as a9, type SchemaOrgWebsiteData as aA, type SchemaOrgLegalServiceData as aa, type SchemaOrgLocalBusinessData as ab, type SchemaOrgMovieData as ac, type SchemaOrgMusicAlbumData as ad, type SchemaOrgMusicRecordingData as ae, type SchemaOrgNewsArticleData as af, type SchemaOrgOfferData as ag, type SchemaOrgOpinionNewsArticleData as ah, type SchemaOrgOrganizationData as ai, type SchemaOrgOrganizationInput as aj, type SchemaOrgPersonData as ak, type SchemaOrgPersonOrOrganization as al, type SchemaOrgPlaceData as am, type SchemaOrgPostalAddressData as an, type SchemaOrgProductData as ao, type SchemaOrgProfilePageData as ap, type SchemaOrgRecipeData as aq, type SchemaOrgRestaurantData as ar, type SchemaOrgReviewData as as, type SchemaOrgServiceData as at, type SchemaOrgSoftwareApplicationData as au, type SchemaOrgTextOrUrl as av, type SchemaOrgThingData as aw, type SchemaOrgVideoObjectData as ax, type SchemaOrgWebApplicationData as ay, type SchemaOrgWebPageData as az, buildSchemaOrgJsonLd as b, buildSchemaOrgJsonLds as c, type SchemaOrgAggregateRatingConfig as d, type SchemaOrgArticleConfig as e, type SchemaOrgBlogPostingConfig as f, type SchemaOrgBookConfig as g, type SchemaOrgBrandConfig as h, type SchemaOrgBreadcrumbListConfig as i, type SchemaOrgContactPointConfig as j, type SchemaOrgCountryConfig as k, type SchemaOrgCourseConfig as l, type SchemaOrgEventConfig as m, type SchemaOrgFAQPageConfig as n, type SchemaOrgHowToConfig as o, type SchemaOrgImageObjectConfig as p, type SchemaOrgItemListConfig as q, type SchemaOrgJobPostingConfig as r, type SchemaOrgLegalServiceConfig as s, type SchemaOrgLocalBusinessConfig as t, type SchemaOrgMovieConfig as u, type SchemaOrgMusicAlbumConfig as v, type SchemaOrgMusicRecordingConfig as w, type SchemaOrgNewsArticleConfig as x, type SchemaOrgOfferConfig as y, type SchemaOrgOpinionNewsArticleConfig as z };
|
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JSX } from 'react';
|
|
2
|
+
import { b as SanityImage } from './types-yVmQfby9.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
|
|
6
|
+
* from a combined `schemaOrg` array field.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { SchemaOrgScripts } from 'sanity-plugin-seofields/next'
|
|
11
|
+
*
|
|
12
|
+
* const data = await sanityFetch({ query: `*[_type == "settings"][0]{ structuredData }` })
|
|
13
|
+
*
|
|
14
|
+
* <SchemaOrgScripts data={data.structuredData} />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
declare function buildSchemaOrgJsonLd(item: Record<string, unknown>): Record<string, unknown> | null;
|
|
19
|
+
declare function buildSchemaOrgJsonLds(data?: Array<Record<string, unknown>> | null): Array<Record<string, unknown>>;
|
|
20
|
+
interface SchemaOrgScriptsProps {
|
|
21
|
+
/** Array of Schema.org items from the combined `schemaOrg` field. */
|
|
22
|
+
data?: Array<Record<string, unknown>> | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Renders one `<script type="application/ld+json">` tag per Schema.org item.
|
|
26
|
+
* Skips items that fail validation (missing required fields).
|
|
27
|
+
*/
|
|
28
|
+
declare function SchemaOrgScripts({ data }: SchemaOrgScriptsProps): JSX.Element | null;
|
|
2
29
|
|
|
3
30
|
/** Copyright year: static number or dynamic (current year) */
|
|
4
31
|
type SchemaOrgCopyrightYear = number | {
|
|
@@ -712,6 +739,24 @@ interface SchemaOrgOfferConfig {
|
|
|
712
739
|
};
|
|
713
740
|
}
|
|
714
741
|
|
|
742
|
+
/** Schema.org OpinionNewsArticle — data shape from GROQ query */
|
|
743
|
+
interface SchemaOrgOpinionNewsArticleData extends SchemaOrgCreativeWorkData {
|
|
744
|
+
_type?: 'schemaOrgOpinionNewsArticle';
|
|
745
|
+
articleSection?: string;
|
|
746
|
+
articleBody?: string;
|
|
747
|
+
backstory?: string;
|
|
748
|
+
wordCount?: number;
|
|
749
|
+
dateline?: string;
|
|
750
|
+
printColumn?: string;
|
|
751
|
+
printEdition?: string;
|
|
752
|
+
printPage?: string;
|
|
753
|
+
printSection?: string;
|
|
754
|
+
}
|
|
755
|
+
/** Configuration for `schemaOrgOpinionNewsArticle()` */
|
|
756
|
+
interface SchemaOrgOpinionNewsArticleConfig {
|
|
757
|
+
validation?: Record<string, string>;
|
|
758
|
+
}
|
|
759
|
+
|
|
715
760
|
/** Contact point nested within the Organization schema */
|
|
716
761
|
interface OrganizationContactPoint {
|
|
717
762
|
/** e.g. "customer support", "sales", "technical support" */
|
|
@@ -1212,4 +1257,4 @@ interface SchemaOrgWebsiteConfig {
|
|
|
1212
1257
|
};
|
|
1213
1258
|
}
|
|
1214
1259
|
|
|
1215
|
-
export type
|
|
1260
|
+
export { type SchemaOrgCopyrightYear as $, type SchemaOrgOrganizationConfig as A, type SchemaOrgPersonConfig as B, type SchemaOrgPlaceConfig as C, type SchemaOrgPostalAddressConfig as D, type SchemaOrgProductConfig as E, type SchemaOrgProfilePageConfig as F, type SchemaOrgRecipeConfig as G, type SchemaOrgRestaurantConfig as H, type SchemaOrgReviewConfig as I, type SchemaOrgServiceConfig as J, type SchemaOrgSoftwareApplicationConfig as K, type SchemaOrgVideoObjectConfig as L, type SchemaOrgWebApplicationConfig as M, type SchemaOrgWebPageConfig as N, type SchemaOrgWebsiteConfig as O, type OrganizationContactPoint as P, type SchemaOrgAggregateRating as Q, type SchemaOrgAggregateRatingData as R, SchemaOrgScripts as S, type SchemaOrgArchivedAt as T, type SchemaOrgArticleData as U, type SchemaOrgBlogPostingData as V, type SchemaOrgBookData as W, type SchemaOrgBrandData as X, type SchemaOrgBreadcrumbListData as Y, type SchemaOrgContactPointData as Z, type SchemaOrgContentRating as _, type SchemaOrgScriptsProps as a, type SchemaOrgCountryData as a0, type SchemaOrgCourseData as a1, type SchemaOrgCreativeWorkData as a2, type SchemaOrgEventData as a3, type SchemaOrgFAQPageData as a4, type SchemaOrgHowToData as a5, type SchemaOrgImageInput as a6, type SchemaOrgImageObjectData as a7, type SchemaOrgItemListData as a8, type SchemaOrgJobPostingData as a9, type SchemaOrgWebsiteData as aA, type SchemaOrgLegalServiceData as aa, type SchemaOrgLocalBusinessData as ab, type SchemaOrgMovieData as ac, type SchemaOrgMusicAlbumData as ad, type SchemaOrgMusicRecordingData as ae, type SchemaOrgNewsArticleData as af, type SchemaOrgOfferData as ag, type SchemaOrgOpinionNewsArticleData as ah, type SchemaOrgOrganizationData as ai, type SchemaOrgOrganizationInput as aj, type SchemaOrgPersonData as ak, type SchemaOrgPersonOrOrganization as al, type SchemaOrgPlaceData as am, type SchemaOrgPostalAddressData as an, type SchemaOrgProductData as ao, type SchemaOrgProfilePageData as ap, type SchemaOrgRecipeData as aq, type SchemaOrgRestaurantData as ar, type SchemaOrgReviewData as as, type SchemaOrgServiceData as at, type SchemaOrgSoftwareApplicationData as au, type SchemaOrgTextOrUrl as av, type SchemaOrgThingData as aw, type SchemaOrgVideoObjectData as ax, type SchemaOrgWebApplicationData as ay, type SchemaOrgWebPageData as az, buildSchemaOrgJsonLd as b, buildSchemaOrgJsonLds as c, type SchemaOrgAggregateRatingConfig as d, type SchemaOrgArticleConfig as e, type SchemaOrgBlogPostingConfig as f, type SchemaOrgBookConfig as g, type SchemaOrgBrandConfig as h, type SchemaOrgBreadcrumbListConfig as i, type SchemaOrgContactPointConfig as j, type SchemaOrgCountryConfig as k, type SchemaOrgCourseConfig as l, type SchemaOrgEventConfig as m, type SchemaOrgFAQPageConfig as n, type SchemaOrgHowToConfig as o, type SchemaOrgImageObjectConfig as p, type SchemaOrgItemListConfig as q, type SchemaOrgJobPostingConfig as r, type SchemaOrgLegalServiceConfig as s, type SchemaOrgLocalBusinessConfig as t, type SchemaOrgMovieConfig as u, type SchemaOrgMusicAlbumConfig as v, type SchemaOrgMusicRecordingConfig as w, type SchemaOrgNewsArticleConfig as x, type SchemaOrgOfferConfig as y, type SchemaOrgOpinionNewsArticleConfig as z };
|
|
@@ -24,6 +24,8 @@ interface SanityImageWithAlt extends SanityImage {
|
|
|
24
24
|
interface RobotsSettings {
|
|
25
25
|
noIndex?: boolean;
|
|
26
26
|
noFollow?: boolean;
|
|
27
|
+
noTranslate?: boolean;
|
|
28
|
+
noImageIndex?: boolean;
|
|
27
29
|
}
|
|
28
30
|
interface MetaAttribute {
|
|
29
31
|
_type: 'metaAttribute';
|
|
@@ -67,6 +69,11 @@ interface SeoFields {
|
|
|
67
69
|
canonicalUrl?: string;
|
|
68
70
|
openGraph?: OpenGraphSettings;
|
|
69
71
|
twitter?: TwitterCardSettings;
|
|
72
|
+
focusKeyword?: string;
|
|
73
|
+
hreflangs?: Array<{
|
|
74
|
+
locale: string;
|
|
75
|
+
url: string;
|
|
76
|
+
}>;
|
|
70
77
|
}
|
|
71
78
|
type SeoHealthStatus = 'excellent' | 'good' | 'fair' | 'poor' | 'missing';
|
|
72
79
|
interface SeoHealthMetrics {
|
|
@@ -85,20 +92,5 @@ interface DocumentWithSeoHealth {
|
|
|
85
92
|
_updatedAt?: string;
|
|
86
93
|
health: SeoHealthMetrics;
|
|
87
94
|
}
|
|
88
|
-
/**
|
|
89
|
-
* A single deprecation warning entry produced by the plugin when it detects
|
|
90
|
-
* a deprecated config key. Each entry carries the migration hint, the plugin
|
|
91
|
-
* version in which the key was deprecated, and the matching changelog URL so
|
|
92
|
-
* the dashboard banner can render per-version links even when warnings come
|
|
93
|
-
* from multiple release cycles.
|
|
94
|
-
*/
|
|
95
|
-
interface DeprecationWarning {
|
|
96
|
-
/** Migration hint shown in the banner, e.g. "display.typeColumn → showTypeColumn". */
|
|
97
|
-
key: string;
|
|
98
|
-
/** Plugin version that deprecated this key, e.g. "v1.3.2". */
|
|
99
|
-
version: string;
|
|
100
|
-
/** Full changelog URL for this deprecation, e.g. ".../CHANGELOG.md#132--2026-03-23". */
|
|
101
|
-
changelogUrl: string;
|
|
102
|
-
}
|
|
103
95
|
|
|
104
|
-
export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S,
|
|
96
|
+
export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, SeoHealthStatus as a, SanityImage as b, SanityImageWithAlt as c, SeoFields as d };
|
|
@@ -24,6 +24,8 @@ interface SanityImageWithAlt extends SanityImage {
|
|
|
24
24
|
interface RobotsSettings {
|
|
25
25
|
noIndex?: boolean;
|
|
26
26
|
noFollow?: boolean;
|
|
27
|
+
noTranslate?: boolean;
|
|
28
|
+
noImageIndex?: boolean;
|
|
27
29
|
}
|
|
28
30
|
interface MetaAttribute {
|
|
29
31
|
_type: 'metaAttribute';
|
|
@@ -67,6 +69,11 @@ interface SeoFields {
|
|
|
67
69
|
canonicalUrl?: string;
|
|
68
70
|
openGraph?: OpenGraphSettings;
|
|
69
71
|
twitter?: TwitterCardSettings;
|
|
72
|
+
focusKeyword?: string;
|
|
73
|
+
hreflangs?: Array<{
|
|
74
|
+
locale: string;
|
|
75
|
+
url: string;
|
|
76
|
+
}>;
|
|
70
77
|
}
|
|
71
78
|
type SeoHealthStatus = 'excellent' | 'good' | 'fair' | 'poor' | 'missing';
|
|
72
79
|
interface SeoHealthMetrics {
|
|
@@ -85,20 +92,5 @@ interface DocumentWithSeoHealth {
|
|
|
85
92
|
_updatedAt?: string;
|
|
86
93
|
health: SeoHealthMetrics;
|
|
87
94
|
}
|
|
88
|
-
/**
|
|
89
|
-
* A single deprecation warning entry produced by the plugin when it detects
|
|
90
|
-
* a deprecated config key. Each entry carries the migration hint, the plugin
|
|
91
|
-
* version in which the key was deprecated, and the matching changelog URL so
|
|
92
|
-
* the dashboard banner can render per-version links even when warnings come
|
|
93
|
-
* from multiple release cycles.
|
|
94
|
-
*/
|
|
95
|
-
interface DeprecationWarning {
|
|
96
|
-
/** Migration hint shown in the banner, e.g. "display.typeColumn → showTypeColumn". */
|
|
97
|
-
key: string;
|
|
98
|
-
/** Plugin version that deprecated this key, e.g. "v1.3.2". */
|
|
99
|
-
version: string;
|
|
100
|
-
/** Full changelog URL for this deprecation, e.g. ".../CHANGELOG.md#132--2026-03-23". */
|
|
101
|
-
changelogUrl: string;
|
|
102
|
-
}
|
|
103
95
|
|
|
104
|
-
export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S,
|
|
96
|
+
export type { DocumentWithSeoHealth as D, SeoHealthMetrics as S, SeoHealthStatus as a, SanityImage as b, SanityImageWithAlt as c, SeoFields as d };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sanity-plugin-seofields",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "The only Sanity Studio SEO plugin with a built-in audit dashboard. Manage meta tags, Open Graph, Twitter Cards, robots directives, JSON-LD structured data, and 38 Schema.org types.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
"react": "^19.1.1",
|
|
151
151
|
"react-dom": "^19.1.1",
|
|
152
152
|
"sanity": "^5.0.0",
|
|
153
|
+
"seofields-pro": "^1.0.1",
|
|
153
154
|
"styled-components": "^6.1.19",
|
|
154
155
|
"ts-jest": "^29.4.6",
|
|
155
156
|
"ts-json-schema-generator": "^2.4.0",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkBHIZQLY7_cjs = require('./chunk-BHIZQLY7.cjs');
|
|
4
|
-
require('./chunk-S367Y35J.cjs');
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
module.exports = chunkBHIZQLY7_cjs.SeoHealthDashboard_default;
|
|
9
|
-
//# sourceMappingURL=SeoHealthDashboard-D3XU3CUB.cjs.map
|
|
10
|
-
//# sourceMappingURL=SeoHealthDashboard-D3XU3CUB.cjs.map
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkBHIZQLY7_cjs = require('./chunk-BHIZQLY7.cjs');
|
|
4
|
-
var chunkS367Y35J_cjs = require('./chunk-S367Y35J.cjs');
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
|
|
7
|
-
var SeoHealthTool = (props) => {
|
|
8
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkBHIZQLY7_cjs.SeoHealthDashboard_default, chunkS367Y35J_cjs.__spreadValues({}, props));
|
|
9
|
-
};
|
|
10
|
-
var SeoHealthTool_default = SeoHealthTool;
|
|
11
|
-
|
|
12
|
-
module.exports = SeoHealthTool_default;
|
|
13
|
-
//# sourceMappingURL=SeoHealthTool-4VZMD4TR.cjs.map
|
|
14
|
-
//# sourceMappingURL=SeoHealthTool-4VZMD4TR.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SeoHealthTool.tsx"],"names":["jsx","SeoHealthDashboard_default"],"mappings":";;;;;;AAMA,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAmC;AACxD,EAAA,uBAAOA,cAAA,CAACC,mFAAuB,KAAA,CAAO,CAAA;AACxC,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"SeoHealthTool-4VZMD4TR.cjs","sourcesContent":["import SeoHealthDashboard, {SeoHealthDashboardProps} from './SeoHealthDashboard'\n\n/**\n * Sanity Tool component for the SEO Health Dashboard\n * This component wraps the SeoHealthDashboard for use as a custom tool in Sanity Studio\n */\nconst SeoHealthTool = (props: SeoHealthDashboardProps) => {\n return <SeoHealthDashboard {...props} />\n}\n\nexport default SeoHealthTool\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { SeoHealthDashboard_default } from './chunk-HQTYQMP5.js';
|
|
2
|
-
import { __spreadValues } from './chunk-2NMEKWO5.js';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
var SeoHealthTool = (props) => {
|
|
6
|
-
return /* @__PURE__ */ jsx(SeoHealthDashboard_default, __spreadValues({}, props));
|
|
7
|
-
};
|
|
8
|
-
var SeoHealthTool_default = SeoHealthTool;
|
|
9
|
-
|
|
10
|
-
export { SeoHealthTool_default as default };
|
|
11
|
-
//# sourceMappingURL=SeoHealthTool-BSTYAKQS.js.map
|
|
12
|
-
//# sourceMappingURL=SeoHealthTool-BSTYAKQS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SeoHealthTool.tsx"],"names":[],"mappings":";;;;AAMA,IAAM,aAAA,GAAgB,CAAC,KAAA,KAAmC;AACxD,EAAA,uBAAO,GAAA,CAAC,+CAAuB,KAAA,CAAO,CAAA;AACxC,CAAA;AAEA,IAAO,qBAAA,GAAQ","file":"SeoHealthTool-BSTYAKQS.js","sourcesContent":["import SeoHealthDashboard, {SeoHealthDashboardProps} from './SeoHealthDashboard'\n\n/**\n * Sanity Tool component for the SEO Health Dashboard\n * This component wraps the SeoHealthDashboard for use as a custom tool in Sanity Studio\n */\nconst SeoHealthTool = (props: SeoHealthDashboardProps) => {\n return <SeoHealthDashboard {...props} />\n}\n\nexport default SeoHealthTool\n"]}
|