{"_id":"@airdraft/plugin-seo","_rev":"8-5f749532453201c4af0207a1414b9b44","name":"@airdraft/plugin-seo","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.0":{"name":"@airdraft/plugin-seo","version":"0.1.0","license":"MIT","_id":"@airdraft/plugin-seo@0.1.0","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"d17f17e5c548c62be2a40c5b61f948ee18659a53","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.0.tgz","fileCount":10,"integrity":"sha512-MeUbpLYbD7DQM6GeECtU2bQL3cin0+IGuSOs8g742SCzq1sXqMC5yLdu4t7LKKQAW4UGc70vgUVbsJzxdxHjMg==","signatures":[{"sig":"MEQCIGM7wPiMybdhgIVjfXy/Pqu2pNoDdRZnjKifnu+SCI/vAiAZVT6P/h8iheSzZ/JQzjei4LmHNbwS252tEYor0k68JQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6504},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d6c85dfed37f11c42151c93b49a80ede90699616","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.0_1779387972433_0.4546276876363071","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@airdraft/plugin-seo","version":"0.1.1","license":"MIT","_id":"@airdraft/plugin-seo@0.1.1","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"4ef37af8646a30d7a8a2093700a615ea7439ddff","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.1.tgz","fileCount":10,"integrity":"sha512-rnPlclsfDIKd7J8QLWQYMF3e/rRYQvdIN1H0oHp4GeEATTEol4TOT1ffl8384QiPDxcTHExQYKE7U5qJS6jBsQ==","signatures":[{"sig":"MEUCIQDfvAzIl7Dn03uzXGU5eZYbdnd16H69uU1/PbAFMSCz9wIgF6R4XJ1CZQLFPspWq7QI/vDGpEZ9t8KVbQXHDqjgffc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10114},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"277e16b37c997996b49d90ec64fa3f5c023f4d0a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.1_1779521574099_0.7535375190351234","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@airdraft/plugin-seo","version":"0.1.2","license":"MIT","_id":"@airdraft/plugin-seo@0.1.2","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"1641149da3867bca9a7cb2d7400026bce3ec9a99","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.2.tgz","fileCount":10,"integrity":"sha512-5DTkxG8mtPTf9lJ1kgrNXVfKtmcZZ8PeXYgTGcLnyjo3V0eHHPvKGCfoQJt6n6Zd3vhxw5fzdv7CVeR9cbFK5g==","signatures":[{"sig":"MEUCIAcwJ649/4tS1wYjCMrP/YCZaQmzimZkjlL3E8yFftc4AiEA8AGKt3foo+G4Z75RIBzW5ZV1tDkC5HQ9BfskYPIG45Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11458},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d692f6e9c48b0c7886d404b7bbc9f1b0a79ca7b","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.2_1779557681185_0.4424402134985115","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@airdraft/plugin-seo","version":"0.1.3","license":"MIT","_id":"@airdraft/plugin-seo@0.1.3","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"a2c98f0579ff95b1a720910bad84eb0df9399ca3","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.3.tgz","fileCount":10,"integrity":"sha512-J8lOUR9pSiU46kQw2//yUifvAYtvVVgRZoeV8Z4UwrD/k0PZT7jL92Xbod9d/8idGRsDt59obgr+C+ZsbHnDvw==","signatures":[{"sig":"MEQCIESPNGakpNHJO6SRVIsqRtcyDFyFGKlbs48M1t2OjwsiAiB3RKmIn8rkHTqlsiF5yYh9IANdwHHfd0Hsx/t7IokY8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12300},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"88185ba7e7a5ed54561a09a53f6d13367587bbfb","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.3_1779564521809_0.7420674068204494","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@airdraft/plugin-seo","version":"0.1.4","license":"MIT","_id":"@airdraft/plugin-seo@0.1.4","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"d11abfc46cd4b7fee2f468ac550f8913d82c210a","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.4.tgz","fileCount":10,"integrity":"sha512-ApK1is4OrB7O+Qz732rSI3AuRANSZaBYtCUYbpVfEBoBJDrQqX2iesMBPqtzIP+o0M4ztUMrhlYYVXMj8b07kw==","signatures":[{"sig":"MEUCIBBeJC+ADkbIyUw667r/LUE8DbL1NLgNF+zw3Q9i+5jIAiEAnQZ6Tio2ZhLbADxzpzPb4Hbr1SJ1LGeDspZx1pDdqzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12982},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"829aab190f831c8d252be75e35c26b42715babe2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.4_1779570903934_0.8388418854548767","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@airdraft/plugin-seo","version":"0.1.5","license":"MIT","_id":"@airdraft/plugin-seo@0.1.5","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"b55a0b50fc543311227ff256ab2fb3d3447efca4","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.5.tgz","fileCount":10,"integrity":"sha512-3Kd2TO4bIcSpyGCYHopq5bFc0t9ZulXxuhG6YTWjfvV+CWmkFffSe39tDgsuhCeG4ndmSsUXNuWTjFYfU3xq1w==","signatures":[{"sig":"MEQCIBphPNxnTLBWi377qIZAyiNeCNn4WzlOQXPpOIh6+oi6AiANukDpKvYedfADDoYqWaok+bsdStEVPfzYjzhUGDacng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14563},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a7b4ae514e1f1974852cde66e2965935bcf8552a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.5_1779624517999_0.30055442236318575","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@airdraft/plugin-seo","version":"0.1.6","license":"MIT","_id":"@airdraft/plugin-seo@0.1.6","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"c87b4f3c5bce69dbd0c51c37d7ae4cde5491a6c7","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.6.tgz","fileCount":11,"integrity":"sha512-8uzILTMxeRPulK2BiHDf7qWL03fGRvNTJCbvCy8oI5eU4QObw2AzPs0Uly4MRq3n3ts813vb5DD4O99QbCSJWQ==","signatures":[{"sig":"MEUCIQCtCspLzjX917JK42SF6p/02m8ZGCr2lqP65roJ7qMs/gIgAtz/pJIi+aEYy+21VUeEFVHCKHxJbER+Ffd7F7c6BdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22006},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8c9d4744b92db08fa725d40bc50f9ef0f1392e59","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/plugin-seo_0.1.6_1780221114199_0.3766856531527121","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@airdraft/plugin-seo","version":"0.1.7","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run build","release":"standard-version","release:patch":"standard-version --release-as patch","release:minor":"standard-version --release-as minor","release:major":"standard-version --release-as major"},"publishConfig":{"access":"public"},"license":"MIT","devDependencies":{"@types/node":"^20.0.0","standard-version":"^9.5.0","tsx":"^4.7.0","typescript":"^5.4.0","vitest":"^1.5.0","@airdraft/core":"*"},"engines":{"node":">=18.0.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"gitHead":"9fdb3e0fbca1e58bb84aca8dd92155d0057ca4b1","_id":"@airdraft/plugin-seo@0.1.7","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-tAUvQu7yz5+vrODM9MNV5JswO9pUZUVSmvPsj+DavwyFZ8I7B2bmKUCiwxjiOFkXpPsDBjEa5jU89D4vZV22QQ==","shasum":"ecb67cfdf89d84c94ac18093696987cdc4ca7f96","tarball":"https://registry.npmjs.org/@airdraft/plugin-seo/-/plugin-seo-0.1.7.tgz","fileCount":11,"unpackedSize":25881,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH/zZSNGi4CX8nqzNDDkG59DBG7KBHfWSaOiDjMLdtQjAiEArBTWiOzQZmqsNdGBmF8qxC+lOG409VScoqJtoiUtxCQ="}]},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"directories":{},"maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-seo_0.1.7_1782407311659_0.4585657957118412"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T18:26:11.751Z","modified":"2026-06-25T17:08:31.926Z","0.1.0":"2026-05-21T18:26:12.666Z","0.1.1":"2026-05-23T07:32:54.232Z","0.1.2":"2026-05-23T17:34:41.367Z","0.1.3":"2026-05-23T19:28:41.953Z","0.1.4":"2026-05-23T21:15:04.081Z","0.1.5":"2026-05-24T12:08:38.160Z","0.1.6":"2026-05-31T09:51:54.337Z","0.1.7":"2026-06-25T17:08:31.796Z"},"license":"MIT","description":"Airdraft SEO plugin — meta fields, OG, sitemap generation","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"readme":"# @airdraft/plugin-seo\n\nSEO fields injection plugin for Airdraft. Automatically adds a pre-configured `seo` object field to all collections (or a specified subset), providing meta title, description, OG image, and no-index control without manual schema setup.\n\n## Installation\n\n```bash\nnpm install @airdraft/plugin-seo\n```\n\n## Usage\n\n```ts\nimport { defineConfig } from '@airdraft/core'\nimport { withSeo } from '@airdraft/plugin-seo'\n\nexport const airdraft = defineConfig({\n  adapter,\n  collections,\n  plugins: [\n    withSeo(),                              // inject into all collections\n    withSeo({ collections: ['posts', 'pages'] }),  // or specific ones\n  ],\n})\n```\n\n## Injected fields\n\nThe plugin adds an `seo` object field to each targeted collection with the following sub-fields:\n\n| Sub-field | Type | Description |\n|---|---|---|\n| `seo.title` | `string` | Meta / OG title override |\n| `seo.description` | `text` | Meta description |\n| `seo.image` | `image` | OG image (deprecated `image` type — use `media` in new schemas) |\n| `seo.noIndex` | `boolean` | Set to `true` to add `<meta name=\"robots\" content=\"noindex\">`. Default: `false`. |\n\n## Options\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `collections?` | `string[]` | all collections | Names of collections to inject SEO fields into. |\n\n## Usage in content\n\nAccess SEO data through the entry's `data.seo` field:\n\n```ts\nconst { entry } = await cms.getEntry('posts', slug)\n\nconst metaTitle = entry.data.seo?.title ?? entry.data.title\nconst metaDesc = entry.data.seo?.description ?? entry.data.excerpt\nconst ogImage = entry.data.seo?.image\nconst noIndex = entry.data.seo?.noIndex ?? false\n```\n\nWith Next.js `generateMetadata`:\n\n```ts\nexport async function generateMetadata({ params }) {\n  const entry = await cms.getEntry('posts', params.slug)\n  return {\n    title: entry?.data.seo?.title ?? entry?.data.title,\n    description: entry?.data.seo?.description,\n    robots: entry?.data.seo?.noIndex ? 'noindex' : undefined,\n  }\n}\n```\n\n## Exports\n\n| Export | Description |\n|---|---|\n| `withSeo(options?)` | Creates the SEO plugin |\n| `WithSeoOptions` | Options type |\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md).\n","readmeFilename":"README.md"}