{"_id":"@coherent.js/seo","_rev":"21-960be43ea0001559cf4d88e685779f2e","name":"@coherent.js/seo","dist-tags":{"beta":"1.0.0-rc.2","rc":"1.0.0-rc.6","latest":"1.1.2"},"versions":{"1.0.0-beta.2":{"name":"@coherent.js/seo","version":"1.0.0-beta.2","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.2","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js#readme","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"11a567efe7e9588b17acef6725d867fbd33731bc","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.2.tgz","fileCount":4,"integrity":"sha512-ZD1YR8bVlbUlcAHRO7E7bcovoiEqRQQWbhlMzyzBTFLooutHowXWh/dsYdxuIhUC2XZumo8JoQ+d21TnsB89BQ==","signatures":[{"sig":"MEQCIHOp+4XEiogpC1TU9VjTXYRqkFtIGKeGTjchvKbHPQJjAiB0ReXgbthQrleo/o5jhtl4vgvAF1eWLfHWie5JUEb+7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18870},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.2.tgz","types":"./types/index.d.ts","exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"build":"node build.mjs","clean":"rm -rf dist"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/private/var/folders/kk/l_79ffzs1qn506g0rc8lmlyr0000gn/T/ec07d90933938cff72556bafd52986f7/coherent.js-seo-1.0.0-beta.2.tgz","_integrity":"sha512-ZD1YR8bVlbUlcAHRO7E7bcovoiEqRQQWbhlMzyzBTFLooutHowXWh/dsYdxuIhUC2XZumo8JoQ+d21TnsB89BQ==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.0","description":"SEO utilities for Coherent.js applications","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.2_1762873045571_0.47860968944088933","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.3":{"name":"@coherent.js/seo","version":"1.0.0-beta.3","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.3","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js#readme","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"56f9c7dfe0e44dc6e474134799f337ebc01f693b","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.3.tgz","fileCount":4,"integrity":"sha512-OfCIskHwRwUGs+0xbszyjnp2GQz4opzMqS9vmCV9iLxshnDtP0xNbYSzczXs0cdfo3u91ZzzJ3LpYVystGGopg==","signatures":[{"sig":"MEYCIQC1uVeXBMf2AL6enPOaJInfZDhps19rlGTLU2Z4i+5xSwIhAKB5tp3J4JbADjDb7nYzu3vXkOWUANRMMuYHAu9BEqhy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18870},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.3.tgz","types":"./types/index.d.ts","exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"build":"node build.mjs","clean":"rm -rf dist"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/tmp/a952d10f9ee81f477e46c1144d90a3dc/coherent.js-seo-1.0.0-beta.3.tgz","_integrity":"sha512-OfCIskHwRwUGs+0xbszyjnp2GQz4opzMqS9vmCV9iLxshnDtP0xNbYSzczXs0cdfo3u91ZzzJ3LpYVystGGopg==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.2","description":"SEO utilities for Coherent.js applications","directories":{},"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.3_1762971263995_0.0094047233886283","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.5":{"name":"@coherent.js/seo","version":"1.0.0-beta.5","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.5","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js#readme","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"655efa6c7572039817af5f1ca96a2521eb2c4239","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.5.tgz","fileCount":5,"integrity":"sha512-SFXv0wwIgQjyuo3Ya6/EIv8Sbgnx47N49UFQ4KTtTdLz6FCRJHPkbYsKZgm8sDAyFLWOaomI2URZaRHttpJ1sg==","signatures":[{"sig":"MEUCIQDh5QlNe05bXbx5WGqSBGh+F75EUzQlCkNyYQi11eIOEwIgLPMvVgnYHFOHVWoSymKfGi/RHVK30/t5114P8LU64a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34125},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.5.tgz","types":"./types/index.d.ts","exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"build":"node build.mjs","clean":"rm -rf dist"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/tmp/612e705bc7b6c4cacb50be67db12ba33/coherent.js-seo-1.0.0-beta.5.tgz","_integrity":"sha512-SFXv0wwIgQjyuo3Ya6/EIv8Sbgnx47N49UFQ4KTtTdLz6FCRJHPkbYsKZgm8sDAyFLWOaomI2URZaRHttpJ1sg==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.2","description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-beta.5"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.5_1764259602518_0.7362384277111784","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.6":{"name":"@coherent.js/seo","version":"1.0.0-beta.6","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.6","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js#readme","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"2e25fa5d3564c8692e256698a7eb1a7c2b1845e4","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.6.tgz","fileCount":5,"integrity":"sha512-XAttsVh79uXyXsknM2eCTbOLN3Hj32cfapTrPVK+ikA+bNlNd135CAS8lOB3zjQR7fxxGV1ylBYdTAL7r70ILw==","signatures":[{"sig":"MEUCIBbQYxajjZgH3ewcKGCZQPdDoPmUoUb3SHeAjvNskIOdAiEA0qbrjo8meHbAFaBUErV8Tb+tvxTPkEi2p3Rv9oivr5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41211},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.6.tgz","types":"./types/index.d.ts","exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"build":"node build.mjs","clean":"rm -rf dist"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/tmp/c9e67c4bb7350a152b8fd4cc1e1a3e15/coherent.js-seo-1.0.0-beta.6.tgz","_integrity":"sha512-XAttsVh79uXyXsknM2eCTbOLN3Hj32cfapTrPVK+ikA+bNlNd135CAS8lOB3zjQR7fxxGV1ylBYdTAL7r70ILw==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.2","description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@coherent.js/core":"1.0.0-beta.6"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.6_1769267869714_0.7366182275139574","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.7":{"name":"@coherent.js/seo","version":"1.0.0-beta.7","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.7","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"f8d41fd46cb3147407fb04285d596e047ebfe740","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.7.tgz","fileCount":12,"integrity":"sha512-rDkb61MYLDxH0iCEdYPQHbOvJjGW1pWEF8oEuNN+yPGMeI3QH4E14KLwtu8PTwLg98WHuFW6RaSJM7oE3jrWGQ==","signatures":[{"sig":"MEYCIQD5vSelKTkz7DdNC7eKcXra0rbput+AcnbIFIRASNgC3gIhAKV6EE2BrOKFzYyWrSWoRM1rvdPmhMjeX4EABgI43iLr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101361},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.7.tgz","types":"./types/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/private/var/folders/kk/l_79ffzs1qn506g0rc8lmlyr0000gn/T/1fad5dbd59063afaabdfbc7a6d293e54/coherent.js-seo-1.0.0-beta.7.tgz","_integrity":"sha512-rDkb61MYLDxH0iCEdYPQHbOvJjGW1pWEF8oEuNN+yPGMeI3QH4E14KLwtu8PTwLg98WHuFW6RaSJM7oE3jrWGQ==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.2","description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@coherent.js/core":"1.0.0-beta.7"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.7_1775394843161_0.11818127433782522","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.8":{"name":"@coherent.js/seo","version":"1.0.0-beta.8","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":{"name":"Coherent.js Team"},"license":"MIT","_id":"@coherent.js/seo@1.0.0-beta.8","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"8b06f93fe7fcf0913c60c03021c7ca2f141b9f0b","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-beta.8.tgz","fileCount":12,"integrity":"sha512-ieVuD4hZE++al9rX+yVCHSHucr44wk6JJ2BiheunPkYH6j3Q9LHBHPPMGRhgzl3ZAZKCDlOUZ4Tx3mm+t1fb+g==","signatures":[{"sig":"MEYCIQCO8eoloO7AmEiH6xI1QStF3jcgihFu5eVMReDdfQuS8gIhAKjKWvdvEKCvGc32+Ggd+/VIyIqwdOSHSYqeE+SVxgs7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101361},"main":"./dist/index.js","type":"module","_from":"file:coherent.js-seo-1.0.0-beta.8.tgz","types":"./types/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"},"_resolved":"/private/var/folders/kk/l_79ffzs1qn506g0rc8lmlyr0000gn/T/eaf80eb51326c29260174eb17dea7d07/coherent.js-seo-1.0.0-beta.8.tgz","_integrity":"sha512-ieVuD4hZE++al9rX+yVCHSHucr44wk6JJ2BiheunPkYH6j3Q9LHBHPPMGRhgzl3ZAZKCDlOUZ4Tx3mm+t1fb+g==","repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"_npmVersion":"11.6.2","description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@coherent.js/core":"1.0.0-beta.8"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-beta.8_1775499693081_0.9984914567784218","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.1":{"name":"@coherent.js/seo","version":"1.0.0-rc.1","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.1","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"15a55eea127dc178fd615c87135900a2a9da804a","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.1.tgz","fileCount":12,"integrity":"sha512-r2ItiFDc1pF32UISLcsJTXgNUpab3R0NOAs1ac2xMz/4D1NP+QBC3OTDCUcMGhVIrDg584fdxloKtLK+ZD4PbQ==","signatures":[{"sig":"MEYCIQDhwsYj02YIeq5b0ODHbuti9b7je6tQKoH9Y6XvA2fYQgIhAOsDQjszbbFMz6iVnZEHfd2y58GEC45AWvCOeaer0pfr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101357},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.1_1779140237055_0.6922161672208438","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.2":{"name":"@coherent.js/seo","version":"1.0.0-rc.2","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.2","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"82d97a868886cda597b095365a3a08a164a8952f","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.2.tgz","fileCount":12,"integrity":"sha512-NeKkSoxrPTHttQRYvR+8FT68cLwFCXMbijwIdM+x3LSSnB0WWIoDV6u9LOxfN30T8/94s5gDzPwzxyR0AunQJQ==","signatures":[{"sig":"MEUCIENjdH9X2vcPpqoisEPvr9EIzSu0lgczxTxMVB4dHOkeAiEA2f2WgIbMqV7ky4+VtFIihQxRz36LeFPv8Ef/QBr8iVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101357},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js","./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.2"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.2_1779714305661_0.788826682919737","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.3":{"name":"@coherent.js/seo","version":"1.0.0-rc.3","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.3","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"e5fae9687df5904a12ed504bf2ffbe4f170f6b5f","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.3.tgz","fileCount":12,"integrity":"sha512-ZW+Dmi13Rgk53mqM/SUPepq7r0b1LNfwMrw366FPPbuXINBmyLe91i1llTVdutkdKB1qC06hy0RjTQeDdZi0fA==","signatures":[{"sig":"MEQCIG7Ba4iEYjY/Ys5VVrAGJSyssKEbcPUsiAqyxwijP+QJAiAb3wdUPOO+TYOjw0caA/mfgWUaLlsFJS1padA6x2+gwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100891},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.3"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.3_1784480594751_0.46145122143279305","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.4":{"name":"@coherent.js/seo","version":"1.0.0-rc.4","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.4","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"dc49ce5c2f746b14cbb571a6f022ba6615e84e0f","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.4.tgz","fileCount":12,"integrity":"sha512-vNwDHZe+mAd4NwTGrNmdOo2kTNU9P0o5j2rqkKjIvhLPzMApMpQkdUayPj2YdJgIuSlGxeNuXbzNQUk8uctJbg==","signatures":[{"sig":"MEYCIQDaUbH2Mfs+DJ8OYUeCc/YHbl1Zwo1QuaRZYz8BiY6E/gIhAOfh9cvsqPk2jtPCpb3MqRJAj9i3uOJJrNhse3cFKFIO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100891},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.4"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.4_1784492334326_0.11632306306348195","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.5":{"name":"@coherent.js/seo","version":"1.0.0-rc.5","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.5","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"4e9bee62651675c9d33107cb61f0454a25b3c48d","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.5.tgz","fileCount":12,"integrity":"sha512-nQVdzD/xnPODQMEMJwY8wO1nPG2nK1Vmm2yFgXLWVuALsw3pB0Bp6Zj33/7F/+Girt2QmFMmpPmoKhJfeFNa3Q==","signatures":[{"sig":"MEQCIAPxX9TGsVq5Ky9IgGVZ/hQadkXNcOXAEhdMKptrhjc8AiB2hidA9tRvGwPuk20Jg3q54lTh5WGaerP+FMpwdGIYUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100891},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.5"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.5_1784496795918_0.04504179715643786","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-rc.6":{"name":"@coherent.js/seo","version":"1.0.0-rc.6","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0-rc.6","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"d751bb35fa32ab4fecb98e49fd97369389348702","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0-rc.6.tgz","fileCount":12,"integrity":"sha512-gX6cZIpsO633170/YK5YVDwZ1bWqLBVEJahkuxzO84DT2g2uWf3/Nn4wiCAR09Fn4DrcL1Q7kdWPrAPjveBJTg==","signatures":[{"sig":"MEUCIDcUrUCOBhFyDowDGci+HK+BxpLhxqoj7MLIj7ljSl/oAiEA+9iNhw2JmS3gF28MWA0ENnL/PsrsVS+gP8wJNN2u+3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0-rc.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100892},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0-rc.6_1784503809603_0.35775377075803383","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@coherent.js/seo","version":"1.0.0","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.0","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"b68e377a2de510f132c5c0fbc09ccaed569a2c9a","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.0.tgz","fileCount":12,"integrity":"sha512-9teCkeNVBkm7sMYuxs0IV+T5JTVsPCB/qdhKOGlB3zHZvikSJuW88uhuLYk+0453pqtWLgUx/Axke3fYJyslqw==","signatures":[{"sig":"MEUCIDmJycQF6UzBRVzR6qj8HtFid5kuGAej5dEYvcnB42syAiEA58KWbPrV3gQSgioEetforoIKrZUkub0dp7+aqaRruzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":100882},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.0_1785360479444_0.05338010324218456","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@coherent.js/seo","version":"1.0.1","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.0.1","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"1c0c3c679f6db82a5a30b9343a374306f7ae77ef","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.0.1.tgz","fileCount":12,"integrity":"sha512-OKjwFJwVE3aKRcMcyxe5F84M6K4D9MAAiUPsnBxtFXowoYLNDpqQw+DvLHkCA3GFAWpplluoCeSD98HOEzlktg==","signatures":[{"sig":"MEQCIQCV7kPPLbqsRUdlmRbypZ9rFGeLn8lTXngMJIogRaUxwQIfWHUfUnTClZG3FP4slfvBPsC9vwkOsHS7H5EAqYjyMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99764},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.0.1_1785431531173_0.6890873935861164","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@coherent.js/seo","version":"1.1.0","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","_id":"@coherent.js/seo@1.1.0","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"dist":{"shasum":"ff9b04ecdf411173e5f88fc88f59f626a95423ec","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.1.0.tgz","fileCount":12,"integrity":"sha512-L/agqgsY/8BCcuGhV2LCUYMiuHRzbb8/xSmvki/yH02dbO/cen+cB1hI+KkBrXquTJy8P9ze6+dLrFpdqGTKhQ==","signatures":[{"sig":"MEUCIQDxGqeUuZh7RIuzwEZQb0h5HW9HlmTAh4k5vEZkbmmKSgIgVMaX7d8tlFEX7Bwa8w3CSHNZgOx1/qu/3TeM9qSRXFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99765},"main":"./dist/index.js","type":"module","types":"./types/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"scripts":{"test":"vitest run","build":"node build.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"repository":{"url":"git+https://github.com/Tomdrouv1/coherent.js.git","type":"git"},"description":"SEO utilities for Coherent.js applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@coherent.js/core":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/seo_1.1.0_1785861336966_0.1568333466976235","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@coherent.js/seo","version":"1.1.2","description":"SEO utilities for Coherent.js applications","type":"module","main":"./dist/index.js","exports":{".":{"types":"./types/index.d.ts","default":"./dist/index.js"},"./meta":"./dist/meta.js","./sitemap":"./dist/sitemap.js","./structured-data":"./dist/structured-data.js"},"keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"author":"Coherent.js Team","license":"MIT","peerDependencies":{"@coherent.js/core":"^1.1.2"},"repository":{"type":"git","url":"git+https://github.com/Tomdrouv1/coherent.js.git"},"homepage":"https://github.com/Tomdrouv1/coherent.js","bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"publishConfig":{"access":"public"},"engines":{"node":">=22.12.0"},"types":"./types/index.d.ts","sideEffects":false,"scripts":{"build":"node build.mjs","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc -p tsconfig.typecheck.json --noEmit"},"_nodeVersion":"22.23.2","_id":"@coherent.js/seo@1.1.2","dist":{"integrity":"sha512-+1hwY1aSk2LD3Jx7EJ5mvRWqPFfN3OM6npUPmYPiP5vDHRn0+NxNGmykqto90NCPWEP0AB7X8T00jtv1E5qIAA==","shasum":"c21e2833b299bd1909d74c68ebe89a89e117c0b9","tarball":"https://registry.npmjs.org/@coherent.js/seo/-/seo-1.1.2.tgz","fileCount":12,"unpackedSize":99765,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coherent.js%2fseo@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDFRLJwJeYS+3W3eNFNaV4Q0iz+BnXOfYxq6bdGEhZl6QIhAOT1tYR1cgWiGQ2DFjCnk0QxLUz+OctfKvquQcwJAoLr"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed55d16d-074b-44d6-83b9-bad7509b9e06"}},"directories":{},"maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/seo_1.1.2_1788103658492_0.8800469973537026"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-11T14:57:25.478Z","modified":"2026-08-30T15:27:39.018Z","1.0.0-beta.1":"2025-11-08T14:22:25.478Z","1.0.0-beta.2":"2025-11-11T14:57:25.763Z","1.0.0-beta.3":"2025-11-12T18:14:24.158Z","1.0.0-beta.5":"2025-11-27T16:06:42.742Z","1.0.0-beta.6":"2026-01-24T15:17:49.849Z","1.0.0-beta.7":"2026-04-05T13:14:03.305Z","1.0.0-beta.8":"2026-04-06T18:21:33.239Z","1.0.0-rc.1":"2026-05-18T21:37:17.210Z","1.0.0-rc.2":"2026-05-25T13:05:05.818Z","1.0.0-rc.3":"2026-07-19T17:03:14.879Z","1.0.0-rc.4":"2026-07-19T20:18:54.465Z","1.0.0-rc.5":"2026-07-19T21:33:16.056Z","1.0.0-rc.6":"2026-07-19T23:30:09.729Z","1.0.0":"2026-07-29T21:27:59.576Z","1.0.1":"2026-07-30T17:12:11.330Z","1.1.0":"2026-08-04T16:35:37.109Z","1.1.2":"2026-08-30T15:27:38.624Z"},"bugs":{"url":"https://github.com/Tomdrouv1/coherent.js/issues"},"author":"Coherent.js Team","license":"MIT","homepage":"https://github.com/Tomdrouv1/coherent.js","keywords":["coherent","seo","meta-tags","sitemap","structured-data"],"repository":{"type":"git","url":"git+https://github.com/Tomdrouv1/coherent.js.git"},"description":"SEO utilities for Coherent.js applications","maintainers":[{"name":"tomdrouv1","email":"thomas.drouvin@collektivs.com"}],"readme":"# @coherent.js/seo\n\nSEO optimization tools for Coherent.js applications - Meta tags, structured data, and search engine optimization utilities.\n\n## Installation\n\n```bash\nnpm install @coherent.js/seo\n# or\npnpm add @coherent.js/seo\n# or\nyarn add @coherent.js/seo\n```\n\n## Overview\n\nThe `@coherent.js/seo` package provides comprehensive SEO tools for Coherent.js applications, including:\n\n- Dynamic meta tag management\n- Open Graph and Twitter Card support\n- JSON-LD structured data generation\n- Sitemap generation\n- Robots.txt management\n- SEO-friendly URL generation\n- Canonical URL support\n- Internationalization SEO\n\n## Quick Start\n\n```javascript\nimport { createSEOHooks } from '@coherent.js/seo';\n\n// Create SEO hooks\nconst seo = createSEOHooks();\n\n// Add to your Coherent.js component\nfunction BlogPost({ post }) {\n  // Set SEO metadata\n  seo.setMetadata({\n    title: `${post.title} - My Blog`,\n    description: post.excerpt,\n    keywords: post.tags,\n    author: post.author.name,\n    publishedTime: post.publishedAt,\n    image: post.featuredImage\n  });\n  \n  return {\n    div: {\n      children: [\n        { h1: { text: post.title } },\n        { div: { \n          innerHTML: post.content,\n          className: 'post-content' \n        }}\n      ]\n    }\n  };\n}\n```\n\n## Features\n\n### Dynamic Meta Tags\n\nAutomatically generate meta tags for search engines:\n\n```javascript\nimport { createSEOHooks } from '@coherent.js/seo';\n\nconst seo = createSEOHooks();\n\nfunction ProductPage({ product }) {\n  seo.setMetadata({\n    title: product.name,\n    description: product.description,\n    keywords: [product.category, product.brand, ...product.tags],\n    image: product.images[0],\n    locale: 'en_US',\n    type: 'product',\n    url: `https://example.com/products/${product.slug}`\n  });\n  \n  return {\n    div: {\n      children: [\n        { h1: { text: product.name } },\n        { p: { text: product.description } },\n        { img: { src: product.images[0], alt: product.name } }\n      ]\n    }\n  };\n}\n```\n\n### Open Graph Support\n\nGenerate Open Graph meta tags for social sharing:\n\n```javascript\nseo.setMetadata({\n  title: 'Awesome Product',\n  description: 'This product will change your life',\n  image: 'https://example.com/product-image.jpg',\n  type: 'product.item',\n  siteName: 'My E-commerce Store',\n  locale: 'en_US',\n  \n  // Open Graph specific\n  og: {\n    price: {\n      amount: '29.99',\n      currency: 'USD'\n    },\n    availability: 'instock'\n  }\n});\n```\n\n### Twitter Card Support\n\nGenerate Twitter Card meta tags:\n\n```javascript\nseo.setMetadata({\n  title: 'Check out this awesome content!',\n  description: 'You won\\'t believe what happens next',\n  image: 'https://example.com/twitter-card-image.jpg',\n  \n  // Twitter specific\n  twitter: {\n    card: 'summary_large_image',\n    site: '@mywebsite',\n    creator: '@author'\n  }\n});\n```\n\n### JSON-LD Structured Data\n\nGenerate structured data for rich search results:\n\n```javascript\nimport { createArticleSchema, createBreadcrumbSchema } from '@coherent.js/seo';\n\nfunction BlogPost({ post, breadcrumbs }) {\n  // Add article structured data\n  seo.addSchema(createArticleSchema({\n    headline: post.title,\n    description: post.excerpt,\n    author: {\n      name: post.author.name,\n      url: `/authors/${post.author.slug}`\n    },\n    datePublished: post.publishedAt,\n    dateModified: post.updatedAt,\n    image: post.featuredImage,\n    keywords: post.tags,\n    articleBody: post.content\n  }));\n  \n  // Add breadcrumb schema\n  seo.addSchema(createBreadcrumbSchema(breadcrumbs));\n  \n  return {\n    div: {\n      children: [\n        { h1: { text: post.title } },\n        { div: { innerHTML: post.content } }\n      ]\n    }\n  };\n}\n```\n\n## SEO Hooks\n\n### Basic Usage\n\n```javascript\nimport { createSEOHooks } from '@coherent.js/seo';\n\nconst seo = createSEOHooks({\n  defaultTitle: 'My Website',\n  defaultDescription: 'Welcome to my awesome website',\n  defaultImage: '/default-social-image.jpg',\n  siteUrl: 'https://example.com'\n});\n\nfunction Page({ title, description }) {\n  seo.setMetadata({\n    title: title,\n    description: description\n  });\n  \n  return {\n    div: {\n      children: [\n        { h1: { text: title } },\n        { p: { text: description } }\n      ]\n    }\n  };\n}\n```\n\n### Advanced Configuration\n\n```javascript\nconst seo = createSEOHooks({\n  // Default metadata\n  defaultTitle: 'My Website',\n  defaultDescription: 'Default description',\n  defaultImage: '/images/default.jpg',\n  siteUrl: 'https://example.com',\n  \n  // SEO settings\n  titleTemplate: '%s | My Website', // \"Page Title | My Website\"\n  truncateTitle: 60,                // Truncate titles to 60 chars\n  truncateDescription: 160,         // Truncate descriptions to 160 chars\n  \n  // Social media\n  social: {\n    twitter: '@mytwitterhandle',\n    facebook: 'myfacebookpage',\n    linkedin: 'mylinkedincompany'\n  },\n  \n  // Default Open Graph\n  og: {\n    type: 'website',\n    siteName: 'My Website'\n  }\n});\n```\n\n## Sitemap Generation\n\nGenerate dynamic sitemaps:\n\n```javascript\nimport { createSitemap } from '@coherent.js/seo';\n\nconst sitemap = createSitemap({\n  siteUrl: 'https://example.com',\n  changefreq: 'daily',\n  priority: 0.7,\n  lastmod: new Date()\n});\n\n// Add URLs to sitemap\nsitemap.add({\n  url: '/',\n  changefreq: 'daily',\n  priority: 1.0\n});\n\nsitemap.add({\n  url: '/about',\n  changefreq: 'monthly',\n  priority: 0.8\n});\n\nsitemap.add({\n  url: '/blog',\n  changefreq: 'weekly',\n  priority: 0.9\n});\n\n// Generate sitemap XML\nconst sitemapXml = sitemap.toXML();\n```\n\n## Robots.txt Management\n\nGenerate robots.txt files:\n\n```javascript\nimport { createRobotsTxt } from '@coherent.js/seo';\n\nconst robots = createRobotsTxt({\n  userAgent: '*',              // Default user agent\n  allow: ['/'],                // Allow all paths\n  disallow: ['/admin', '/private'], // Disallow specific paths\n  sitemap: 'https://example.com/sitemap.xml',\n  host: 'https://example.com'\n});\n\n// Add custom rules\nrobots.addRule({\n  userAgent: 'Googlebot',\n  allow: ['/'],\n  crawlDelay: 10\n});\n\n// Generate robots.txt content\nconst robotsTxt = robots.toString();\n```\n\n## Canonical URLs\n\nManage canonical URLs to prevent duplicate content issues:\n\n```javascript\nfunction ProductPage({ product, queryParams }) {\n  // Set canonical URL without tracking parameters\n  const canonicalUrl = `https://example.com/products/${product.slug}`;\n  \n  seo.setCanonical(canonicalUrl);\n  \n  // Add alternate URLs for internationalization\n  seo.addAlternate({\n    href: `https://example.com/en/products/${product.slug}`,\n    hreflang: 'en'\n  });\n  \n  seo.addAlternate({\n    href: `https://example.com/es/products/${product.slug}`,\n    hreflang: 'es'\n  });\n  \n  return {\n    div: {\n      children: [\n        { h1: { text: product.name } },\n        { p: { text: product.description } }\n      ]\n    }\n  };\n}\n```\n\n## Internationalization SEO\n\nSupport for multilingual SEO:\n\n```javascript\nfunction MultilingualPage({ content, language, translations }) {\n  // Set language\n  seo.setLanguage(language);\n  \n  // Add alternate language versions\n  Object.entries(translations).forEach(([lang, url]) => {\n    seo.addAlternate({\n      href: url,\n      hreflang: lang\n    });\n  });\n  \n  // Set direction for RTL languages\n  seo.setDirection(language === 'ar' || language === 'he' ? 'rtl' : 'ltr');\n  \n  return {\n    div: {\n      lang: language,\n      children: [\n        { h1: { text: content.title } },\n        { div: { innerHTML: content.body } }\n      ]\n    }\n  };\n}\n```\n\n## API Reference\n\n### createSEOHooks(options)\n\nCreate SEO hooks for metadata management.\n\n**Parameters:**\n- `options.defaultTitle` - Default page title\n- `options.defaultDescription` - Default page description\n- `options.defaultImage` - Default social image\n- `options.siteUrl` - Base site URL\n- `options.titleTemplate` - Title template string\n- `options.truncateTitle` - Title character limit\n- `options.truncateDescription` - Description character limit\n\n**Returns:** SEO hooks object with methods\n\n### SEO Hooks Methods\n\n- `seo.setMetadata(metadata)` - Set page metadata\n- `seo.setTitle(title)` - Set page title\n- `seo.setDescription(description)` - Set page description\n- `seo.setCanonical(url)` - Set canonical URL\n- `seo.addAlternate(options)` - Add alternate language URL\n- `seo.addSchema(schema)` - Add JSON-LD schema\n- `seo.setLanguage(lang)` - Set page language\n- `seo.setDirection(dir)` - Set text direction\n\n### createSitemap(options)\n\nCreate a sitemap generator.\n\n**Parameters:**\n- `options.siteUrl` - Base site URL\n- `options.changefreq` - Default change frequency\n- `options.priority` - Default priority\n- `options.lastmod` - Default last modified date\n\n**Returns:** Sitemap generator object\n\n### createRobotsTxt(options)\n\nCreate a robots.txt generator.\n\n**Parameters:**\n- `options.userAgent` - Default user agent\n- `options.allow` - Allowed paths\n- `options.disallow` - Disallowed paths\n- `options.sitemap` - Sitemap URL\n- `options.host` - Host URL\n\n**Returns:** Robots.txt generator object\n\n## Schema Generators\n\n### createArticleSchema(options)\n\nGenerate Article JSON-LD schema.\n\n**Parameters:**\n- `options.headline` - Article headline\n- `options.description` - Article description\n- `options.author` - Author information\n- `options.datePublished` - Publication date\n- `options.dateModified` - Modification date\n- `options.image` - Featured image\n- `options.keywords` - Article keywords\n- `options.articleBody` - Article content\n\n### createBreadcrumbSchema(breadcrumbs)\n\nGenerate Breadcrumb JSON-LD schema.\n\n**Parameters:**\n- `breadcrumbs` - Array of breadcrumb objects with name and url\n\n### createProductSchema(options)\n\nGenerate Product JSON-LD schema.\n\n**Parameters:**\n- `options.name` - Product name\n- `options.description` - Product description\n- `options.image` - Product images\n- `options.offers` - Product offers/pricing\n- `options.brand` - Product brand\n- `options.category` - Product category\n- `options.sku` - Product SKU\n\n## Examples\n\n### Blog with Full SEO\n\n```javascript\nimport { \n  createSEOHooks, \n  createArticleSchema, \n  createBreadcrumbSchema \n} from '@coherent.js/seo';\n\nconst seo = createSEOHooks({\n  siteUrl: 'https://myblog.com',\n  defaultTitle: 'My Blog',\n  titleTemplate: '%s | My Blog'\n});\n\nfunction BlogPost({ post }) {\n  // Set basic metadata\n  seo.setMetadata({\n    title: post.title,\n    description: post.excerpt,\n    image: post.featuredImage,\n    publishedTime: post.publishedAt,\n    modifiedTime: post.updatedAt,\n    type: 'article',\n    author: post.author.name,\n    tags: post.tags\n  });\n  \n  // Add structured data\n  seo.addSchema(createArticleSchema({\n    headline: post.title,\n    description: post.excerpt,\n    author: {\n      name: post.author.name,\n      url: `/authors/${post.author.slug}`\n    },\n    datePublished: post.publishedAt,\n    dateModified: post.updatedAt,\n    image: post.featuredImage,\n    keywords: post.tags,\n    articleBody: post.content\n  }));\n  \n  // Add breadcrumbs\n  seo.addSchema(createBreadcrumbSchema([\n    { name: 'Home', url: '/' },\n    { name: 'Blog', url: '/blog' },\n    { name: post.title, url: `/blog/${post.slug}` }\n  ]));\n  \n  // Set canonical URL\n  seo.setCanonical(`https://myblog.com/blog/${post.slug}`);\n  \n  return {\n    article: {\n      className: 'blog-post',\n      children: [\n        { h1: { text: post.title } },\n        { \n          div: { \n            className: 'post-meta',\n            children: [\n              { span: { text: `By ${post.author.name}` } },\n              { time: { \n                text: formatDate(post.publishedAt),\n                datetime: post.publishedAt\n              }}\n            ]\n          }\n        },\n        { div: { \n          className: 'post-content',\n          innerHTML: post.content \n        }}\n      ]\n    }\n  };\n}\n```\n\n### E-commerce Product Page\n\n```javascript\nimport { \n  createSEOHooks, \n  createProductSchema \n} from '@coherent.js/seo';\n\nconst seo = createSEOHooks({\n  siteUrl: 'https://mystore.com'\n});\n\nfunction ProductPage({ product, reviews }) {\n  // Basic SEO metadata\n  seo.setMetadata({\n    title: `${product.name} | My Store`,\n    description: product.description,\n    image: product.images[0],\n    type: 'product.item',\n    \n    // Open Graph for social sharing\n    og: {\n      price: {\n        amount: product.price.toString(),\n        currency: product.currency\n      },\n      availability: product.inStock ? 'instock' : 'outofstock',\n      condition: 'new'\n    },\n    \n    // Twitter Card\n    twitter: {\n      card: 'summary_large_image',\n      label1: 'Price',\n      data1: `${product.currency} ${product.price}`,\n      label2: 'Availability',\n      data2: product.inStock ? 'In Stock' : 'Out of Stock'\n    }\n  });\n  \n  // Product structured data\n  seo.addSchema(createProductSchema({\n    name: product.name,\n    description: product.description,\n    image: product.images,\n    offers: {\n      price: product.price.toString(),\n      priceCurrency: product.currency,\n      availability: product.inStock ? 'InStock' : 'OutOfStock',\n      url: `https://mystore.com/products/${product.slug}`,\n      seller: {\n        name: 'My Store'\n      }\n    },\n    brand: product.brand,\n    category: product.category,\n    sku: product.sku,\n    gtin: product.gtin,\n    aggregateRating: {\n      ratingValue: reviews.averageRating,\n      reviewCount: reviews.count\n    }\n  }));\n  \n  // Set canonical and alternates\n  seo.setCanonical(`https://mystore.com/products/${product.slug}`);\n  \n  return {\n    div: {\n      className: 'product-page',\n      children: [\n        { h1: { text: product.name } },\n        { \n          div: { \n            className: 'product-images',\n            children: product.images.map(img => ({\n              img: { src: img, alt: product.name }\n            }))\n          }\n        },\n        { p: { text: product.description } },\n        { p: { text: `${product.currency} ${product.price}` } },\n        { \n          button: { \n            text: product.inStock ? 'Add to Cart' : 'Out of Stock',\n            disabled: !product.inStock\n          }\n        }\n      ]\n    }\n  };\n}\n```\n\n## Best Practices\n\n### 1. Unique Titles and Descriptions\n\n```javascript\n// Good: Unique for each page\nseo.setMetadata({\n  title: `How to Master Coherent.js | Developer Guide`,\n  description: 'Learn advanced techniques for building high-performance Coherent.js applications with this comprehensive guide.'\n});\n\n// Avoid: Generic/duplicated content\nseo.setMetadata({\n  title: 'Page Title',\n  description: 'This is a description'\n});\n```\n\n### 2. Optimal Lengths\n\n```javascript\n// Title: 50-60 characters\n// Description: 150-160 characters\nseo.setMetadata({\n  title: 'Coherent.js Performance Optimization Guide', // 42 chars - good\n  description: 'Maximize your Coherent.js application performance with these proven optimization techniques and best practices.' // 117 chars - good\n});\n```\n\n### 3. Image Optimization\n\n```javascript\nseo.setMetadata({\n  // Use appropriately sized images\n  image: {\n    url: 'https://example.com/social-image.jpg',\n    width: 1200,\n    height: 630,\n    alt: 'Description of image content'\n  }\n});\n```\n\n## Related Packages\n\n- [@coherent.js/core](../core/README.md) - Core framework\n- [@coherent.js/i18n](../i18n/README.md) - Internationalization\n- [@coherent.js/client](../client/README.md) - Client-side utilities\n\n## License\n\nMIT\n","readmeFilename":""}