sanity-plugin-seofields 1.6.5 → 1.7.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/SeoHealthDashboard-IP5BJ322.cjs +10 -0
- package/dist/{SeoHealthDashboard-D3XU3CUB.cjs.map → SeoHealthDashboard-IP5BJ322.cjs.map} +1 -1
- package/dist/SeoHealthDashboard-PTUEVYZL.js +4 -0
- package/dist/{SeoHealthDashboard-BEZVLLFG.js.map → SeoHealthDashboard-PTUEVYZL.js.map} +1 -1
- package/dist/{SeoHealthTool-4VZMD4TR.cjs → SeoHealthTool-CZZRMWQK.cjs} +4 -4
- package/dist/SeoHealthTool-CZZRMWQK.cjs.map +1 -0
- package/dist/{SeoHealthTool-BSTYAKQS.js → SeoHealthTool-IULT4G25.js} +3 -3
- package/dist/SeoHealthTool-IULT4G25.js.map +1 -0
- package/dist/{chunk-BHIZQLY7.cjs → chunk-5YRH47VQ.cjs} +23 -26
- package/dist/chunk-5YRH47VQ.cjs.map +1 -0
- package/dist/{chunk-BCTPOWXA.cjs → chunk-ARELX3GK.cjs} +131 -111
- package/dist/chunk-ARELX3GK.cjs.map +1 -0
- package/dist/{chunk-HQTYQMP5.js → chunk-AW7OKBQQ.js} +23 -26
- package/dist/chunk-AW7OKBQQ.js.map +1 -0
- package/dist/{chunk-XXA6WCWS.js → chunk-FONJYVF2.js} +22 -4
- package/dist/chunk-FONJYVF2.js.map +1 -0
- package/dist/{chunk-YHXUWGNA.cjs → chunk-GWPOJSGW.cjs} +99 -3
- package/dist/chunk-GWPOJSGW.cjs.map +1 -0
- package/dist/{chunk-KTL6NYNG.js → chunk-HRKRV2X7.js} +98 -4
- package/dist/chunk-HRKRV2X7.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/{component-H52blyfc.d.ts → component-D1sBm6ts.d.cts} +9 -3
- package/dist/{component-CIE6Sy4F.d.cts → component-DQ4KuQQD.d.ts} +9 -3
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +96 -4
- package/dist/index.d.ts +96 -4
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/next.cjs +85 -77
- package/dist/next.d.cts +3 -3
- package/dist/next.d.ts +3 -3
- package/dist/next.js +2 -2
- package/dist/schema/next.cjs +88 -80
- package/dist/schema/next.d.cts +4 -4
- package/dist/schema/next.d.ts +4 -4
- package/dist/schema/next.js +3 -3
- package/dist/schema.cjs +173 -153
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +10 -6
- package/dist/schema.d.ts +10 -6
- package/dist/schema.js +18 -3
- package/dist/schema.js.map +1 -1
- package/dist/{types-BxcJinOf.d.cts → types-9_wbCIi9.d.ts} +20 -2
- package/dist/{types-BtSRRG6C.d.cts → types-B91ena4g.d.cts} +1 -16
- package/dist/{types-BtSRRG6C.d.ts → types-B91ena4g.d.ts} +1 -16
- package/dist/{types-Dp9Pfnt9.d.ts → types-Bb49oRBV.d.cts} +20 -2
- package/dist/{types-CbYb4MsN.d.ts → types-CeBULNFF.d.ts} +1 -1
- package/dist/{types-CyRdIF-3.d.cts → types-_wBLg6RV.d.cts} +1 -1
- package/package.json +1 -1
- package/dist/SeoHealthDashboard-BEZVLLFG.js +0 -4
- package/dist/SeoHealthDashboard-D3XU3CUB.cjs +0 -10
- package/dist/SeoHealthTool-4VZMD4TR.cjs.map +0 -1
- package/dist/SeoHealthTool-BSTYAKQS.js.map +0 -1
- 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
package/dist/cli.js
CHANGED
|
@@ -61,7 +61,7 @@ ${e}`}function ft(e,t,n,o){a.success(`Updated ${e}`),a.dim(""),a.dim(" What was
|
|
|
61
61
|
title,
|
|
62
62
|
slug,
|
|
63
63
|
seo
|
|
64
|
-
} | order(_updatedAt desc)`;o.text="Fetching documents...";let c;try{c=await s.fetch(d);}catch(g){o.fail(`Failed to fetch: ${g.message}`),process.exit(1);}if(o.succeed(`Analysed ${c.length} document(s)`),c.length===0){a.warn("No documents with SEO fields found."),n&&Se(i);return}let u=c.map(g=>({doc:g,health:K(g)}));await gt(u,c,e),n&&Se(i);}async function gt(e,t,n){let o={excellent:0,good:0,fair:0,poor:0,missing:0},s=0;for(let{health:c}of e)o[c.status]=(o[c.status]||0)+1,s+=c.score;let i=Math.round(s/e.length);if(pt(t,i,o),n.format==="summary")return;n.format!=="table"&&(a.info(""),a.warn(`Unknown format "${n.format}", defaulting to table output.`)),St(e);let r={};for(let{health:c}of e)for(let u of c.issues)r[u]=(r[u]||0)+1;let d=Object.entries(r).sort(([,c],[,u])=>u-c).slice(0,10);d.length>0&&$t(d,t.length),a.info("");}function pt(e,t,n){a.heading("\u{1F4CA} Summary"),a.info(""),a.info(` Total documents: ${l.bold(String(e.length))}`),a.info(` Average score: ${l.bold(we(t))}%`),a.info(""),a.info(` ${A.excellent} Excellent (80+): ${n.excellent}`),a.info(` ${A.good} Good (60-79): ${n.good}`),a.info(` ${A.fair} Fair (40-59): ${n.fair}`),a.info(` ${A.poor} Poor (1-39): ${n.poor}`),a.info(` ${A.missing} Missing (0): ${n.missing}`);}var mt={excellent:"Excellent",good:"Good",fair:"Fair",poor:"Poor",missing:"Missing"},ht={excellent:l.green,good:l.blue,fair:l.yellow,poor:l.red,missing:l.dim};function yt(e,t=11){var s,i;let n=((s=mt[e])!=null?s:e).padEnd(t);return ((i=ht[e])!=null?i:(r=>r))(n)}function St(e){a.heading("\u{1F4CB} Documents"),a.info("");let t=Math.min(44,Math.max(5,...e.map(({doc:r})=>(r.title||r._id).length))),n=11,o=14,s=5,i=l.dim("\u2500".repeat(s+2+n+2+o+2+t));a.info(` ${l.dim("Score".padEnd(s))} ${l.dim("Status".padEnd(n))} ${l.dim("Type".padEnd(o))} ${l.dim("Title")}`),a.info(` ${i}`);for(let{doc:r,health:d}of e){let c=$e(r.title||r._id,t),u=String(d.score).padStart(s),f=yt(d.status,n),g=l.dim($e(r._type,o).padEnd(o));a.info(` ${we(d.score,u)} ${f} ${g} ${c}`);}}function $t(e,t){a.heading("\u{1F50D} Top Issues"),a.info("");for(let[n,o]of e){let s=Math.round(o/t*100);a.info(` ${l.red(String(o).padStart(4))} docs (${s}%) ${n}`);}}function Se(e){a.info(""),a.info(` ${l.dim("\u2500".repeat(52))}`),a.info(` ${l.dim("Connection info")}`),a.info(` ${l.dim("Project ID:")} ${l.white(e.projectId)} ${l.dim(`\u2190 ${e.sources.projectId}`)}`),a.info(` ${l.dim("Dataset: ")} ${l.white(e.dataset)} ${l.dim(`\u2190 ${e.sources.dataset}`)}`),a.info(` ${l.dim("Token: ")} ${l.dim(e.sources.token)}`),a.info("");}function we(e,t){let n=t!=null?t:String(e);return e>=80?l.green(n):e>=60?l.blue(n):e>=40?l.yellow(n):e>0?l.red(n):l.dim(n)}function $e(e,t){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}H();var Z="1.
|
|
64
|
+
} | order(_updatedAt desc)`;o.text="Fetching documents...";let c;try{c=await s.fetch(d);}catch(g){o.fail(`Failed to fetch: ${g.message}`),process.exit(1);}if(o.succeed(`Analysed ${c.length} document(s)`),c.length===0){a.warn("No documents with SEO fields found."),n&&Se(i);return}let u=c.map(g=>({doc:g,health:K(g)}));await gt(u,c,e),n&&Se(i);}async function gt(e,t,n){let o={excellent:0,good:0,fair:0,poor:0,missing:0},s=0;for(let{health:c}of e)o[c.status]=(o[c.status]||0)+1,s+=c.score;let i=Math.round(s/e.length);if(pt(t,i,o),n.format==="summary")return;n.format!=="table"&&(a.info(""),a.warn(`Unknown format "${n.format}", defaulting to table output.`)),St(e);let r={};for(let{health:c}of e)for(let u of c.issues)r[u]=(r[u]||0)+1;let d=Object.entries(r).sort(([,c],[,u])=>u-c).slice(0,10);d.length>0&&$t(d,t.length),a.info("");}function pt(e,t,n){a.heading("\u{1F4CA} Summary"),a.info(""),a.info(` Total documents: ${l.bold(String(e.length))}`),a.info(` Average score: ${l.bold(we(t))}%`),a.info(""),a.info(` ${A.excellent} Excellent (80+): ${n.excellent}`),a.info(` ${A.good} Good (60-79): ${n.good}`),a.info(` ${A.fair} Fair (40-59): ${n.fair}`),a.info(` ${A.poor} Poor (1-39): ${n.poor}`),a.info(` ${A.missing} Missing (0): ${n.missing}`);}var mt={excellent:"Excellent",good:"Good",fair:"Fair",poor:"Poor",missing:"Missing"},ht={excellent:l.green,good:l.blue,fair:l.yellow,poor:l.red,missing:l.dim};function yt(e,t=11){var s,i;let n=((s=mt[e])!=null?s:e).padEnd(t);return ((i=ht[e])!=null?i:(r=>r))(n)}function St(e){a.heading("\u{1F4CB} Documents"),a.info("");let t=Math.min(44,Math.max(5,...e.map(({doc:r})=>(r.title||r._id).length))),n=11,o=14,s=5,i=l.dim("\u2500".repeat(s+2+n+2+o+2+t));a.info(` ${l.dim("Score".padEnd(s))} ${l.dim("Status".padEnd(n))} ${l.dim("Type".padEnd(o))} ${l.dim("Title")}`),a.info(` ${i}`);for(let{doc:r,health:d}of e){let c=$e(r.title||r._id,t),u=String(d.score).padStart(s),f=yt(d.status,n),g=l.dim($e(r._type,o).padEnd(o));a.info(` ${we(d.score,u)} ${f} ${g} ${c}`);}}function $t(e,t){a.heading("\u{1F50D} Top Issues"),a.info("");for(let[n,o]of e){let s=Math.round(o/t*100);a.info(` ${l.red(String(o).padStart(4))} docs (${s}%) ${n}`);}}function Se(e){a.info(""),a.info(` ${l.dim("\u2500".repeat(52))}`),a.info(` ${l.dim("Connection info")}`),a.info(` ${l.dim("Project ID:")} ${l.white(e.projectId)} ${l.dim(`\u2190 ${e.sources.projectId}`)}`),a.info(` ${l.dim("Dataset: ")} ${l.white(e.dataset)} ${l.dim(`\u2190 ${e.sources.dataset}`)}`),a.info(` ${l.dim("Token: ")} ${l.dim(e.sources.token)}`),a.info("");}function we(e,t){let n=t!=null?t:String(e);return e>=80?l.green(n):e>=60?l.blue(n):e>=40?l.yellow(n):e>0?l.red(n):l.dim(n)}function $e(e,t){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}H();var Z="1.7.0",ve=[l.cyan,e=>l.bold(l.blue(e)),l.blue,l.magenta,l.red,l.yellow],w=ve[Math.floor(Math.random()*ve.length)],Ce=["Run `seofields doctor` first to verify your setup is correct.","Use `seofields report --format summary` for a quick overview.","Export your SEO data before making bulk changes: `seofields export -o backup.json`.","Add `seoFields` type to every document schema to track SEO health.","A meta title between 50\u201360 characters gets the best click-through rate.","Meta descriptions should be 140\u2013160 characters for optimal display.","Open Graph images should be 1200\xD7630px for best social sharing.","Use `seofields config --baseUrl=https://yoursite.com` to enable canonical URLs.","Twitter Card images require a separate `twitterImage` field for best results.","Schema.org markup helps search engines understand your content structure.","Use `seofields report --types post,page` to filter by document type.","The `healthDashboard` tool gives a live view of SEO scores inside Sanity Studio.","Keywords should appear naturally \u2014 avoid keyword stuffing.","Every page needs a unique meta title. Duplicates hurt rankings.","Use `seofields export --format csv` to open SEO data in a spreadsheet.","Set `noIndex: true` on internal or draft pages to prevent indexing.","OG title and meta title can differ \u2014 OG is optimised for social, meta for search.","Run `seofields report` after content migrations to catch regressions.","Use `seofields init --schema-org` to add structured data support.","Structured data (Schema.org) can unlock rich results in Google Search.","A score of 80+ is excellent. Aim to get all key pages there.","The `seoPreview` option shows a live Google-style preview inside the editor.","Use `seofields report` in CI to catch SEO regressions before they ship.","Use `--dataset staging` to run reports against your staging dataset.","Keep your license key private \u2014 never commit it to version control.","Use `seofields config --healthDashboard.showDocumentId=true` for easier debugging.","Use `seofields export --format json --output report.json` to save SEO data to a file.","Alt text on images improves both accessibility and image search ranking.","Canonical URLs prevent duplicate content penalties from search engines.","A missing OG image means social shares show a blank card \u2014 always add one.","Use descriptive slugs: `/blog/seo-tips` ranks better than `/blog/post-123`.","Re-run `seofields report` monthly to track your SEO health over time.","The `types` filter helps you focus reports on high-priority content.","Use `seofields export` to back up SEO data before schema migrations.","Short meta titles (under 30 chars) waste valuable search result space.","Long meta descriptions get truncated \u2014 stay under 160 characters.","Twitter Cards need `twitter:card`, `twitter:title`, and `twitter:image` at minimum.","Use `seofields doctor` after upgrading the plugin to catch breaking changes.","JSON export includes health scores \u2014 pipe it into your analytics pipeline.","Set a `defaultHiddenFields` list to keep the SEO panel focused.","Internal links pass authority \u2014 make sure important pages are well-linked.","Page speed is a ranking factor \u2014 optimise images referenced in SEO fields.","Use consistent brand phrasing in meta titles across your site.","Structured data errors can be tested at schema.org/validator.","Focus first on pages with the most traffic, not just the lowest scores.","Add SEO review to your content publishing checklist.","Use `seofields config --healthDashboard.licenseKey=KEY` to unlock premium features.","The CSV export makes it easy to share SEO audits with non-technical stakeholders.","Every image on your page should have descriptive alt text.","Avoid duplicate meta descriptions \u2014 each page needs its own."];function bt(){return Ce[Math.floor(Math.random()*Ce.length)]}var wt=62,V=wt-2;function vt(e,t){let n=e.split(" "),o=[],s="";for(let i of n)s.length+(s?1:0)+i.length>t?(s&&o.push(s),s=i):s=s?`${s} ${i}`:i;return s&&o.push(s),o}function F(e,t){let n=V-3,o=" ".repeat(Math.max(0,n-t));return ` ${w("\u2502")} ${e}${o} ${w("\u2502")}`}function M(){return F("",0)}function xe(){let e="\u2500".repeat(V),t=bt(),n=V-3-5,o=vt(t,n);console.log(),console.log(` ${w(`\u256D${e}\u256E`)}`),console.log(M()),console.log(F(`${l.bold(l.green("seofields"))}${l.dim(` v${Z}`)}`,`seofields v${Z}`.length)),console.log(F(l.dim("SEO tooling for Sanity CMS \u2014 manage from your terminal"),54)),console.log(M());for(let i=0;i<o.length;i++){let r=i===0?`${l.dim("Tip: ")}${l.white(o[i])}`:` ${l.white(o[i])}`,d=5+o[i].length;console.log(F(r,d));}console.log(M()),console.log(` ${w(`\u2570${e}\u256F`)}`),console.log(),console.log(` ${l.bold("Commands")}`),console.log();let s=[["init ","Add seofields() to sanity.config"],["config ","Update plugin configuration options"],["create-config ","Create seofields.cli.ts / .js interactively"],["report ","SEO health report across all documents"],["export ","Export SEO fields as JSON or CSV"],["doctor ","Check setup, deps & config"]];for(let[i,r]of s)console.log(` ${w(i)} ${l.dim(r)}`);console.log(),console.log(` ${l.dim("Run ")}${l.white("seofields <command> --help")}${l.dim(" for details")}`),console.log();}function P(e,t){let n="\u2500".repeat(V),o=`seofields \u203A ${e}`;return ["",` ${w(`\u256D${n}\u256E`)}`,M(),F(`${l.bold(l.green("seofields"))}${w(" \u203A ")}${l.bold(w(e))}`,o.length),F(l.dim(t),t.length),M(),` ${w(`\u2570${n}\u256F`)}`].join(`
|
|
65
65
|
`)}program.name("seofields").description("CLI for sanity-plugin-seofields \u2014 manage SEO from your terminal").version(Z).action(xe);program.command("config",{isDefault:false}).description("Update seofields() configuration in your sanity.config file").addHelpText("before",P("config","Update seofields() configuration in your sanity.config file")).allowUnknownOption().allowExcessArguments().helpOption("-h, --help","Show help and all available options").addHelpText("after",["",` ${l.bold("Usage")}`,` ${l.dim("Pass any option as")} ${l.white("--key=value")}${l.dim(". Nested keys use dot notation.")}`,"",` ${l.bold("Top-level options")}`,` ${w("--baseUrl")}${l.dim("=<url>").padEnd(38)} ${l.dim("Canonical base URL")}`,` ${w("--seoPreview")}${l.dim("=<bool>").padEnd(36)} ${l.dim("Enable live Google-style preview")}`,` ${w("--defaultHiddenFields")}${l.dim("=<f1,f2>").padEnd(28)} ${l.dim("Comma-separated fields to hide")}`,` ${w("--types")}${l.dim("=<t1,t2>").padEnd(40)} ${l.dim("Document types that have SEO fields")}`,"",` ${l.bold("healthDashboard options")} ${l.dim("(prefix: --healthDashboard.<key>)")}`,` ${w("--healthDashboard.licenseKey")}${l.dim("=<key>").padEnd(22)} ${l.dim("License key for premium features")}`,` ${w("--healthDashboard.toolTitle")}${l.dim("=<str>").padEnd(23)} ${l.dim("Custom title shown in Studio")}`,` ${w("--healthDashboard.showDocumentId")}${l.dim("=<bool>").padEnd(17)} ${l.dim("Show document _id in dashboard")}`,` ${w("--healthDashboard.showHealthScore")}${l.dim("=<bool>").padEnd(16)} ${l.dim("Show score badge per document")}`,` ${w("--healthDashboard.query.types")}${l.dim("=<t1,t2>").padEnd(21)} ${l.dim("Filter dashboard by document types")}`,"",` ${l.bold("Examples")}`,` ${l.white("seofields config --baseUrl=https://mysite.com")}`,` ${l.white("seofields config --healthDashboard.licenseKey=SEOF-1234")}`,` ${l.white("seofields config --healthDashboard.showDocumentId=true --seoPreview=true")}`,` ${l.white("seofields config --healthDashboard.query.types=post,page")}`,` ${l.white("seofields config --defaultHiddenFields=metaImage,openGraphUrl")}`,""].join(`
|
|
66
66
|
`)).action(()=>{let e=process.argv.indexOf("config"),t=e>=0?process.argv.slice(e+1):[];de(t);});program.command("create-config").description("Interactively create a seofields.cli.ts / .js config file").addHelpText("before",P("create-config","Interactively create a seofields.cli.ts / .js config file")).action(ue);program.command("init").description("Add seofields() plugin to your sanity.config file").addHelpText("before",P("init","Add seofields() plugin to your sanity.config file")).option("--preview","Enable SEO preview in the plugin config").option("--dashboard","Explicitly enable the SEO Health Dashboard").option("--no-dashboard","Disable the SEO Health Dashboard").option("--schema-org","Also add schemaOrg() plugin registration").addHelpText("after",["",` ${l.dim("Note: ")}${l.yellow("--preview")}${l.dim(", ")}${l.yellow("--dashboard")}${l.dim(", and ")}${l.yellow("--no-dashboard")}${l.dim(" only apply during initial setup.")}`,` ${l.dim(" If seofields() is already in your config, use:")}`,"",` ${l.dim(" ")}${l.white("seofields config --healthDashboard=true --seoPreview=true")}`,""].join(`
|
|
67
67
|
`)).action(ye);program.command("export").description("Export all documents with SEO fields as JSON or CSV").addHelpText("before",P("export","Export all documents with SEO fields as JSON or CSV")).option("-p, --project-id <id>","Sanity project ID").option("-d, --dataset <name>","Sanity dataset name").option("-t, --token <token>","Sanity API token").option("--types <types>","Comma-separated document types to export (e.g. post,page)").option("-f, --format <format>","Output format: json or csv","json").option("-o, --output <path>","Output file path (defaults to stdout)").action(me);program.command("report").description("Generate an SEO health report for all documents").addHelpText("before",P("report","Generate an SEO health report for all documents")).option("-p, --project-id <id>","Sanity project ID").option("-d, --dataset <name>","Sanity dataset name").option("-t, --token <token>","Sanity API token").option("--types <types>","Comma-separated document types to include").option("--format <format>",'Output format: table or summary (default: "table")',"table").action(be);program.command("doctor").description("Check plugin configuration, dependencies, and setup").addHelpText("before",P("doctor","Check plugin configuration, dependencies, and setup")).option("--cwd <path>","Working directory to check",process.cwd()).action(ge);var _=process.argv.slice(2);_.length===1&&(_[0]==="--help"||_[0]==="-h")&&(xe(),process.exit(0));if(_.length>=2&&_[_.length-1]==="help"){let e=program.commands.find(t=>t.name()===_[0]);e&&(e.help(),process.exit(0));}program.parse();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { M as SchemaOrgAggregateRatingData, P as SchemaOrgArticleData, Q as SchemaOrgBlogPostingData, R as SchemaOrgBookData, T as SchemaOrgBrandData, U as SchemaOrgBreadcrumbListData, V as SchemaOrgContactPointData, Y as SchemaOrgCountryData, Z as SchemaOrgCourseData, $ as SchemaOrgEventData, a0 as SchemaOrgFAQPageData, a1 as SchemaOrgHowToData, a3 as SchemaOrgImageObjectData, a4 as SchemaOrgItemListData, a5 as SchemaOrgJobPostingData, a6 as SchemaOrgLegalServiceData, a7 as SchemaOrgLocalBusinessData, a8 as SchemaOrgMovieData, a9 as SchemaOrgMusicAlbumData, aa as SchemaOrgMusicRecordingData, ab as SchemaOrgNewsArticleData, ac as SchemaOrgOfferData, ad as SchemaOrgOpinionNewsArticleData, ae as SchemaOrgOrganizationData, ag as SchemaOrgPersonData, ai as SchemaOrgPlaceData, aj as SchemaOrgPostalAddressData, ak as SchemaOrgProductData, al as SchemaOrgProfilePageData, am as SchemaOrgRecipeData, an as SchemaOrgRestaurantData, ao as SchemaOrgReviewData, ap as SchemaOrgServiceData, aq as SchemaOrgSoftwareApplicationData, at as SchemaOrgVideoObjectData, au as SchemaOrgWebApplicationData, av as SchemaOrgWebPageData, aw as SchemaOrgWebsiteData } from './types-Bb49oRBV.cjs';
|
|
3
|
+
import { b as SanityImage } from './types-B91ena4g.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
|
|
@@ -261,6 +261,12 @@ interface OfferSchemaProps {
|
|
|
261
261
|
declare function buildOfferJsonLd(data?: SchemaOrgOfferData | null): Record<string, unknown> | null;
|
|
262
262
|
declare function OfferSchema({ data }: OfferSchemaProps): JSX.Element | null;
|
|
263
263
|
|
|
264
|
+
interface OpinionNewsArticleSchemaProps {
|
|
265
|
+
data?: SchemaOrgOpinionNewsArticleData | null;
|
|
266
|
+
}
|
|
267
|
+
declare function buildOpinionNewsArticleJsonLd(data?: SchemaOrgOpinionNewsArticleData | null): Record<string, unknown> | null;
|
|
268
|
+
declare function OpinionNewsArticleSchema({ data, }: OpinionNewsArticleSchemaProps): JSX.Element | null;
|
|
269
|
+
|
|
264
270
|
/**
|
|
265
271
|
* <OrganizationSchema> — Renders Schema.org Organization JSON-LD structured data.
|
|
266
272
|
*
|
|
@@ -531,4 +537,4 @@ declare function buildWebsiteJsonLd(data?: SchemaOrgWebsiteData | null): Record<
|
|
|
531
537
|
*/
|
|
532
538
|
declare function WebsiteSchema({ data }: WebsiteSchemaProps): JSX.Element | null;
|
|
533
539
|
|
|
534
|
-
export { type
|
|
540
|
+
export { type PostalAddressSchemaProps as $, AggregateRatingSchema as A, BlogPostingSchema as B, ContactPointSchema as C, MusicAlbumSchema as D, EventSchema as E, FAQPageSchema as F, type MusicAlbumSchemaProps as G, HowToSchema as H, ImageObjectSchema as I, JobPostingSchema as J, MusicRecordingSchema as K, LegalServiceSchema as L, MovieSchema as M, type MusicRecordingSchemaProps as N, NewsArticleSchema as O, type NewsArticleSchemaProps as P, OfferSchema as Q, type OfferSchemaProps as R, OpinionNewsArticleSchema as S, type OpinionNewsArticleSchemaProps as T, OrganizationSchema as U, type OrganizationSchemaProps as V, PersonSchema as W, type PersonSchemaProps as X, PlaceSchema as Y, type PlaceSchemaProps as Z, PostalAddressSchema as _, type AggregateRatingSchemaProps as a, ProductSchema as a0, type ProductSchemaProps as a1, ProfilePageSchema as a2, type ProfilePageSchemaProps as a3, RecipeSchema as a4, type RecipeSchemaProps as a5, RestaurantSchema as a6, type RestaurantSchemaProps as a7, ReviewSchema as a8, type ReviewSchemaProps as a9, buildImageObjectJsonLd as aA, buildItemListJsonLd as aB, buildJobPostingJsonLd as aC, buildLegalServiceJsonLd as aD, buildLocalBusinessJsonLd as aE, buildMovieJsonLd as aF, buildMusicAlbumJsonLd as aG, buildMusicRecordingJsonLd as aH, buildNewsArticleJsonLd as aI, buildOfferJsonLd as aJ, buildOpinionNewsArticleJsonLd as aK, buildOrganizationJsonLd as aL, buildPersonJsonLd as aM, buildPlaceJsonLd as aN, buildPostalAddressJsonLd as aO, buildProductJsonLd as aP, buildProfilePageJsonLd as aQ, buildRecipeJsonLd as aR, buildRestaurantJsonLd as aS, buildReviewJsonLd as aT, buildServiceJsonLd as aU, buildSoftwareApplicationJsonLd as aV, buildVideoObjectJsonLd as aW, buildWebApplicationJsonLd as aX, buildWebPageJsonLd as aY, buildWebsiteJsonLd as aZ, SchemaOrgScripts as aa, type SchemaOrgScriptsProps as ab, ServiceSchema as ac, type ServiceSchemaProps as ad, SoftwareApplicationSchema as ae, type SoftwareApplicationSchemaProps as af, VideoObjectSchema as ag, type VideoObjectSchemaProps as ah, WebApplicationSchema as ai, type WebApplicationSchemaProps as aj, WebPageSchema as ak, type WebPageSchemaProps as al, WebsiteSchema as am, type WebsiteSchemaProps as an, buildAggregateRatingJsonLd as ao, buildArticleJsonLd as ap, buildBlogPostingJsonLd as aq, buildBookJsonLd as ar, buildBrandJsonLd as as, buildBreadcrumbListJsonLd as at, buildContactPointJsonLd as au, buildCountryJsonLd as av, buildCourseJsonLd as aw, buildEventJsonLd as ax, buildFAQPageJsonLd as ay, buildHowToJsonLd as az, ArticleSchema as b, type ArticleSchemaProps as c, type BlogPostingSchemaProps as d, BookSchema as e, type BookSchemaProps as f, BrandSchema as g, type BrandSchemaProps as h, BreadcrumbListSchema as i, type BreadcrumbListSchemaProps as j, type ContactPointSchemaProps as k, CountrySchema as l, type CountrySchemaProps as m, CourseSchema as n, type CourseSchemaProps as o, type EventSchemaProps as p, type FAQPageSchemaProps as q, type HowToSchemaProps as r, type ImageObjectSchemaProps as s, ItemListSchema as t, type ItemListSchemaProps as u, type JobPostingSchemaProps as v, type LegalServiceSchemaProps as w, LocalBusinessSchema as x, type LocalBusinessSchemaProps as y, type MovieSchemaProps as z };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSX } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { M as SchemaOrgAggregateRatingData, P as SchemaOrgArticleData, Q as SchemaOrgBlogPostingData, R as SchemaOrgBookData, T as SchemaOrgBrandData, U as SchemaOrgBreadcrumbListData, V as SchemaOrgContactPointData, Y as SchemaOrgCountryData, Z as SchemaOrgCourseData, $ as SchemaOrgEventData, a0 as SchemaOrgFAQPageData, a1 as SchemaOrgHowToData, a3 as SchemaOrgImageObjectData, a4 as SchemaOrgItemListData, a5 as SchemaOrgJobPostingData, a6 as SchemaOrgLegalServiceData, a7 as SchemaOrgLocalBusinessData, a8 as SchemaOrgMovieData, a9 as SchemaOrgMusicAlbumData, aa as SchemaOrgMusicRecordingData, ab as SchemaOrgNewsArticleData, ac as SchemaOrgOfferData, ad as SchemaOrgOpinionNewsArticleData, ae as SchemaOrgOrganizationData, ag as SchemaOrgPersonData, ai as SchemaOrgPlaceData, aj as SchemaOrgPostalAddressData, ak as SchemaOrgProductData, al as SchemaOrgProfilePageData, am as SchemaOrgRecipeData, an as SchemaOrgRestaurantData, ao as SchemaOrgReviewData, ap as SchemaOrgServiceData, aq as SchemaOrgSoftwareApplicationData, at as SchemaOrgVideoObjectData, au as SchemaOrgWebApplicationData, av as SchemaOrgWebPageData, aw as SchemaOrgWebsiteData } from './types-9_wbCIi9.js';
|
|
3
|
+
import { b as SanityImage } from './types-B91ena4g.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* <SchemaOrgScripts> — Renders multiple Schema.org JSON-LD script tags
|
|
@@ -261,6 +261,12 @@ interface OfferSchemaProps {
|
|
|
261
261
|
declare function buildOfferJsonLd(data?: SchemaOrgOfferData | null): Record<string, unknown> | null;
|
|
262
262
|
declare function OfferSchema({ data }: OfferSchemaProps): JSX.Element | null;
|
|
263
263
|
|
|
264
|
+
interface OpinionNewsArticleSchemaProps {
|
|
265
|
+
data?: SchemaOrgOpinionNewsArticleData | null;
|
|
266
|
+
}
|
|
267
|
+
declare function buildOpinionNewsArticleJsonLd(data?: SchemaOrgOpinionNewsArticleData | null): Record<string, unknown> | null;
|
|
268
|
+
declare function OpinionNewsArticleSchema({ data, }: OpinionNewsArticleSchemaProps): JSX.Element | null;
|
|
269
|
+
|
|
264
270
|
/**
|
|
265
271
|
* <OrganizationSchema> — Renders Schema.org Organization JSON-LD structured data.
|
|
266
272
|
*
|
|
@@ -531,4 +537,4 @@ declare function buildWebsiteJsonLd(data?: SchemaOrgWebsiteData | null): Record<
|
|
|
531
537
|
*/
|
|
532
538
|
declare function WebsiteSchema({ data }: WebsiteSchemaProps): JSX.Element | null;
|
|
533
539
|
|
|
534
|
-
export { type
|
|
540
|
+
export { type PostalAddressSchemaProps as $, AggregateRatingSchema as A, BlogPostingSchema as B, ContactPointSchema as C, MusicAlbumSchema as D, EventSchema as E, FAQPageSchema as F, type MusicAlbumSchemaProps as G, HowToSchema as H, ImageObjectSchema as I, JobPostingSchema as J, MusicRecordingSchema as K, LegalServiceSchema as L, MovieSchema as M, type MusicRecordingSchemaProps as N, NewsArticleSchema as O, type NewsArticleSchemaProps as P, OfferSchema as Q, type OfferSchemaProps as R, OpinionNewsArticleSchema as S, type OpinionNewsArticleSchemaProps as T, OrganizationSchema as U, type OrganizationSchemaProps as V, PersonSchema as W, type PersonSchemaProps as X, PlaceSchema as Y, type PlaceSchemaProps as Z, PostalAddressSchema as _, type AggregateRatingSchemaProps as a, ProductSchema as a0, type ProductSchemaProps as a1, ProfilePageSchema as a2, type ProfilePageSchemaProps as a3, RecipeSchema as a4, type RecipeSchemaProps as a5, RestaurantSchema as a6, type RestaurantSchemaProps as a7, ReviewSchema as a8, type ReviewSchemaProps as a9, buildImageObjectJsonLd as aA, buildItemListJsonLd as aB, buildJobPostingJsonLd as aC, buildLegalServiceJsonLd as aD, buildLocalBusinessJsonLd as aE, buildMovieJsonLd as aF, buildMusicAlbumJsonLd as aG, buildMusicRecordingJsonLd as aH, buildNewsArticleJsonLd as aI, buildOfferJsonLd as aJ, buildOpinionNewsArticleJsonLd as aK, buildOrganizationJsonLd as aL, buildPersonJsonLd as aM, buildPlaceJsonLd as aN, buildPostalAddressJsonLd as aO, buildProductJsonLd as aP, buildProfilePageJsonLd as aQ, buildRecipeJsonLd as aR, buildRestaurantJsonLd as aS, buildReviewJsonLd as aT, buildServiceJsonLd as aU, buildSoftwareApplicationJsonLd as aV, buildVideoObjectJsonLd as aW, buildWebApplicationJsonLd as aX, buildWebPageJsonLd as aY, buildWebsiteJsonLd as aZ, SchemaOrgScripts as aa, type SchemaOrgScriptsProps as ab, ServiceSchema as ac, type ServiceSchemaProps as ad, SoftwareApplicationSchema as ae, type SoftwareApplicationSchemaProps as af, VideoObjectSchema as ag, type VideoObjectSchemaProps as ah, WebApplicationSchema as ai, type WebApplicationSchemaProps as aj, WebPageSchema as ak, type WebPageSchemaProps as al, WebsiteSchema as am, type WebsiteSchemaProps as an, buildAggregateRatingJsonLd as ao, buildArticleJsonLd as ap, buildBlogPostingJsonLd as aq, buildBookJsonLd as ar, buildBrandJsonLd as as, buildBreadcrumbListJsonLd as at, buildContactPointJsonLd as au, buildCountryJsonLd as av, buildCourseJsonLd as aw, buildEventJsonLd as ax, buildFAQPageJsonLd as ay, buildHowToJsonLd as az, ArticleSchema as b, type ArticleSchemaProps as c, type BlogPostingSchemaProps as d, BookSchema as e, type BookSchemaProps as f, BrandSchema as g, type BrandSchemaProps as h, BreadcrumbListSchema as i, type BreadcrumbListSchemaProps as j, type ContactPointSchemaProps as k, CountrySchema as l, type CountrySchemaProps as m, CourseSchema as n, type CourseSchemaProps as o, type EventSchemaProps as p, type FAQPageSchemaProps as q, type HowToSchemaProps as r, type ImageObjectSchemaProps as s, ItemListSchema as t, type ItemListSchemaProps as u, type JobPostingSchemaProps as v, type LegalServiceSchemaProps as w, LocalBusinessSchema as x, type LocalBusinessSchemaProps as y, type MovieSchemaProps as z };
|
package/dist/index.cjs
CHANGED
|
@@ -1064,7 +1064,7 @@ var resolveDashboardConfig = (healthDashboard, rootApiVersion) => {
|
|
|
1064
1064
|
var seofields = sanity.definePlugin((config = {}) => {
|
|
1065
1065
|
const { healthDashboard = true } = config;
|
|
1066
1066
|
const dash = resolveDashboardConfig(healthDashboard, config.apiVersion);
|
|
1067
|
-
const LazySeoHealthTool = react.lazy(() => import('./SeoHealthTool-
|
|
1067
|
+
const LazySeoHealthTool = react.lazy(() => import('./SeoHealthTool-CZZRMWQK.cjs'));
|
|
1068
1068
|
const BoundSeoHealthTool = () => react.createElement(
|
|
1069
1069
|
react.Suspense,
|
|
1070
1070
|
{ fallback: null },
|
|
@@ -1111,7 +1111,7 @@ var seofields = sanity.definePlugin((config = {}) => {
|
|
|
1111
1111
|
});
|
|
1112
1112
|
});
|
|
1113
1113
|
var plugin_default = seofields;
|
|
1114
|
-
var LazySeoHealthDashboard = react.lazy(() => import('./SeoHealthDashboard-
|
|
1114
|
+
var LazySeoHealthDashboard = react.lazy(() => import('./SeoHealthDashboard-IP5BJ322.cjs'));
|
|
1115
1115
|
function createSeoHealthPane(optionsOrS, optionsWhenS) {
|
|
1116
1116
|
const S = optionsOrS;
|
|
1117
1117
|
const _a = optionsWhenS != null ? optionsWhenS : {}, { query, openInPane = true, title: paneTitle } = _a, rest = chunkS367Y35J_cjs.__objRest(_a, ["query", "openInPane", "title"]);
|