{"_id":"@autoblogwriter/sdk","_rev":"30-d19a7b0871885161ef139697c4c74f39","name":"@autoblogwriter/sdk","dist-tags":{"latest":"3.1.8"},"versions":{"1.0.2":{"name":"@autoblogwriter/sdk","version":"1.0.2","license":"MIT","_id":"@autoblogwriter/sdk@1.0.2","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"71155a9f2242b762d177041068694167ab167f40","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-1.0.2.tgz","fileCount":16,"integrity":"sha512-1Hra3kl2s4i14nFX9uLne3RVNLjkRnLQiEbxUAC23JqFTHcudYbXDv78m932ofHbvXiGdQsfSahocNMSzVtsZA==","signatures":[{"sig":"MEUCIQDu7LlW6pS9QNSNbhvLspie2bx7zqutToywkm+XqgmlDwIgYgrq336mM0bLAxB1/DzQ7BuGDlBWFvL7NnsXcSk3Qvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158645},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"}},"gitHead":"087067898e3aad3b776f86b35fc7452bd3f00e83","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official BlogAuto SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.2_1770771473643_0.9075441973162084","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@autoblogwriter/sdk","version":"2.0.0","license":"MIT","_id":"@autoblogwriter/sdk@2.0.0","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"80320e4c16f97a216ab32f1f8db44f250373ae6e","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.0.tgz","fileCount":31,"integrity":"sha512-fd1rh8zuZa93tbPaQ7sqCEFTEJ9MZXc0hhtkYeU2QzHz964r/XtAvDtJsqZKw3xG5cLJXcl5kLHGRrNJs/QdoQ==","signatures":[{"sig":"MEUCIQDBZCAgkJTbPCYV6RJjFZ1ZExIg/AJ95iFcm/5KUDfmwgIgRPU1AyPzVKVSNzNClyZ07PZWQVa4LeuhXB/ISuA0kbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348677},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"261bc63fe1b30975ae2153eb7cb79c4bc7f0c963","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official BlogAuto SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.0_1770962147741_0.6377184487035301","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@autoblogwriter/sdk","version":"2.0.1","license":"MIT","_id":"@autoblogwriter/sdk@2.0.1","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"3f31d0f95992f04352c814e0d23bff942212e8af","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.1.tgz","fileCount":31,"integrity":"sha512-W9effW2nDMC+4Zqc+q39h1H1Xd0uGyM5EDPbd4pXo+dOFPHhYR95AHqIXo0tzm0f26uSanO9eIToZCWereqYcw==","signatures":[{"sig":"MEUCIQC6zu+6x35v91R8fYdwyDhqeSx47EuxIaSnFIQBt/kqUwIgdk/Shpkv7tc87BCsbNRzwA98++GkX2Dg0Tp0ApNp0bI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338288},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"261bc63fe1b30975ae2153eb7cb79c4bc7f0c963","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official BlogAuto SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.1_1771006346769_0.9173543095243912","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@autoblogwriter/sdk","version":"2.0.2","license":"MIT","_id":"@autoblogwriter/sdk@2.0.2","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"8a7ea0cca0731a37d2f936f7544649ff6460aa79","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.2.tgz","fileCount":31,"integrity":"sha512-SyS1QQCrGX03pD4dukf3GegnPM9wZt8cR3qRQPRTcrYCOu45z33LhN2figeOZ77ecczHPeXXDmAmtaGpxdF7KQ==","signatures":[{"sig":"MEQCICI52q/hp+IxE3pY3ps5N80o1aFLD+S1e63myyvv/ZWpAiBvGX7b5jKdFZbbBZoSkcH+Cg9hqNrBiqp3hJqGJHk4BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338397},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"261bc63fe1b30975ae2153eb7cb79c4bc7f0c963","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.2_1771007220122_0.564209608247658","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@autoblogwriter/sdk","version":"2.0.3","license":"MIT","_id":"@autoblogwriter/sdk@2.0.3","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"2467d5160ea2fe4d34e286e66f60162cb1c399cc","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.3.tgz","fileCount":31,"integrity":"sha512-Q5Z56T93pyutM53E9tmnAt1KgGjxFsiZ2q8jfOmz9L499RCnhQOS3b4EaNLhvLe2iiBp8lp0wnoc06L9RxWEbA==","signatures":[{"sig":"MEYCIQCvUSQ2aoFlHrEyBRcnILL5kbNH8GveBpdf7YB6cFW95QIhAJLIIx1C0ORdQ3zJBOjgBWK1h3+Sfm4tz425MguM0IeA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338453},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"261bc63fe1b30975ae2153eb7cb79c4bc7f0c963","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.3_1771007318572_0.7881715428423759","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@autoblogwriter/sdk","version":"2.0.5","license":"MIT","_id":"@autoblogwriter/sdk@2.0.5","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"459445089e6124d05dd5443bff20853f5156aa4b","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.5.tgz","fileCount":31,"integrity":"sha512-F0KtK5/TIboizmyXx3eEOysOJtN9KwJvgw4kTfewdNkhpXx/CYndLMUVNB6BjzJEGY0/tBc8egZE033bGmfVUA==","signatures":[{"sig":"MEQCIGOKhfSOGTeB6hGwwFn/2KebCWilFEZ7SZtK2IPjjgrCAiBf0FmOYa7i+/86bNkLG8KXxZXRdPTtIQb14J90KLf6Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338470},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"e1aeae33b87187139a91b69ea852ace1377a4cf3","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.5_1771007532664_0.6306323292226144","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@autoblogwriter/sdk","version":"2.0.6","license":"MIT","_id":"@autoblogwriter/sdk@2.0.6","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"63c57e3dc6b53df7b9abb849584e14a971bb2855","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.0.6.tgz","fileCount":31,"integrity":"sha512-mc0xoradduqfzS3O5XpITLeQ/Tn+ZThFULvoPwHedUNVXwBkaFYgZ7CMfxjxslpwQRz7YjRYnH7rJiAwJHNfsQ==","signatures":[{"sig":"MEUCIQCJXgFYzxqlzLSq43zIXP/EU7W5bI83ceiLhPOqHSMbjgIgFzyweKI1AujTnk4fIDm9z968PEq2ZCzLlUo5lmBboxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343478},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"198d389f7e7bd29c1ebc385e35a2789e39bb99ca","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.0.6_1771008303824_0.886492005900517","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@autoblogwriter/sdk","version":"2.1.1","license":"MIT","_id":"@autoblogwriter/sdk@2.1.1","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"f48a3e43a827e7dbb51d935138f2b9d9dd79caef","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-2.1.1.tgz","fileCount":31,"integrity":"sha512-wNtIO0IKQEx8G7pWuklwIiKTFMBLyCwyl1spKo2t1/+YHD5q0h9tcyUY6vk9I/UqYGSv5xBkTg39IStQP/76NA==","signatures":[{"sig":"MEQCIARx2YOpEt2NaETtjXwYiGXPNb5YFvtCYXnsmmseX2vPAiBVKcWh1u4ScC+F216tStShniZwcu6f0AXWwo5bMzEw2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343502},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"01ca0c3ae09fb7665498e51a43aada9d1607f6be","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_2.1.1_1771010801765_0.4876173901553462","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@autoblogwriter/sdk","version":"3.0.0","license":"MIT","_id":"@autoblogwriter/sdk@3.0.0","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"6a48b403cdcefc1ffa36d520653d6c44f29bf10a","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.0.tgz","fileCount":31,"integrity":"sha512-RFzSXRXhxFutw4XOMtXHb6pU+2dpinzOn1JY9UrwOxaelqGt4/g3ZwIfrS/0eKUpWY8v/RWD5rKoLlNkbY1xXw==","signatures":[{"sig":"MEYCIQCsl4cRWAWRAnzqfhAlsBHmPF2NhiecA3z0D8FDH4f+GwIhAIIgsN3/gU/f47Ow2r9SKkLUyH1FPwzjRG6uZHgUXrBX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347602},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"4f4224160932e7ad560b8b20dacdd4bbcb753fc2","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.0_1771014355251_0.3961468036243112","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@autoblogwriter/sdk","version":"3.0.1","license":"MIT","_id":"@autoblogwriter/sdk@3.0.1","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"ffb1d63ef5bb1dd2635489b140bd58e6112bf0ae","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.1.tgz","fileCount":31,"integrity":"sha512-Q/DIZJDvw8gEDAfUQs8LK07FySGYg1I5ZFVCbnzK0q7YgP2FiHCCvIkrwTDTXtQtEKh1mveW1wC6XmtRJOsIvA==","signatures":[{"sig":"MEQCIAHSwAwA4QowjVDWM2WyLM0rZaZfVtukhyPnTBon170aAiBk0sr5ZMlLJTgUaI5SawxkW5kr+M/a6HN+emPbPWciyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346629},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"4257f172175402308f774f2faf2b78e79ba3e660","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.1_1771014497599_0.7119668217482438","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@autoblogwriter/sdk","version":"3.0.2","license":"MIT","_id":"@autoblogwriter/sdk@3.0.2","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"8846cd7eaead0abcbf4cf1f142f4c6beec83fa3f","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.2.tgz","fileCount":31,"integrity":"sha512-pN7TbM3fNbIil6iXTQN1NccDI3WKmDMxYj+V1zla2zByHse9UfQGvfoZ3lLDG13HlTOSnkVq/2YCqF4+HWB9cA==","signatures":[{"sig":"MEQCIChCfDAwh68r7s0RihimEz7yfgFF0ZYBArcUvTA2BQbZAiAmsuU83AA6KzqAcR/ySF3eZ1wskw1o2yZ+VEm6dXQesA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353368},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"c28b5d6f570e18f120e050957818f5008f9f5c9f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.2_1771016451926_0.8569004204381181","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@autoblogwriter/sdk","version":"3.0.3","license":"MIT","_id":"@autoblogwriter/sdk@3.0.3","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"ec97ace55e271782cd61837518c732f43161bfed","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.3.tgz","fileCount":31,"integrity":"sha512-RRDaazkjFUEaCU+HgfQAWwxBw1LV9YnfQfmEBsYRWBStxV+/zXG6aO0WjpE+Yi+BfBBk5e5ecVqM/ZODCZoCyg==","signatures":[{"sig":"MEUCIQDqMADn9M+QGY2X10akyhOCJJoKudvvLqV37rhg5uEi+gIgAnStKQHdC23tkVJ2qs/2htTvr/h4wIywPyqsJGmTM4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353430},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"cbaeac5344db052d87b019212e4cdc018a420e5f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.3_1771039555050_0.6084748689748385","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@autoblogwriter/sdk","version":"3.0.4","license":"MIT","_id":"@autoblogwriter/sdk@3.0.4","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"2e74822d642b2c81b29b9aebc29b97bee689165d","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.4.tgz","fileCount":31,"integrity":"sha512-wdjKDNZtzmtG6Hki58i9CbWHL5/bmi4Tywv2gkxd8RhA+Ks/R7TYH3E1V2m2OT8aldu/oiS7dvZnudDJqn53bw==","signatures":[{"sig":"MEUCIHE/J9KkqLo3zzOhBRu5acq0bZGQHITSJkLev32g8zfQAiEAjST0HRljYsOW8PPARU7vfIIYU0TDSX9g8CSv0Nt3yGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353924},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"f3bde36018cef137ab8519f59d91185bc21c2f8d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.4_1771039990037_0.3180688754901806","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@autoblogwriter/sdk","version":"3.0.5","license":"MIT","_id":"@autoblogwriter/sdk@3.0.5","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"a99d7b0d8a3085846a54e2b96e42c779321d631f","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.5.tgz","fileCount":31,"integrity":"sha512-sNwF28hBVyIGB1KAcBoLIVamHw+5+XMV9ZERHrd+oHSRAx2vG2VB2pMsfWwUjAfcSTCBaYKMGF2onGg052f+uw==","signatures":[{"sig":"MEYCIQDXxQHseTx7bnwBl2eEg0N77kbuXHe7pHDSgE7juuReXgIhALVkaKG4LQPhzfO0JazCZnb/7BdRHHshz8L+qRxv73uy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410164},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"b0769b5ab2f311157463e78930ed216ff22007ce","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.5_1771040344215_0.40669345250593847","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@autoblogwriter/sdk","version":"3.0.6","license":"MIT","_id":"@autoblogwriter/sdk@3.0.6","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"d1efe9ef86d58050bd7bb71ab382cae4cd9af3ea","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.6.tgz","fileCount":31,"integrity":"sha512-zwzyNTp1smU+03+HS/AcLfk0R+awMWGypu4Q0JnCnOObYGRVYpI2+X71e+3vU6kgqCKP2cAVd/t+r5Lyqb3ExA==","signatures":[{"sig":"MEUCIQDSYgh+jeipgFUWNKxWlBFtsXeIwgIvXCzCoA76E+VsQgIgLUxa3ZU90nPxtFhwxZkpWXywWI3M0ha08RVnT0OYzhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410152},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"c75cf1b13cdbdc0a75843510160d9ca534d75b14","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.6_1771041293708_0.29640842003712575","host":"s3://npm-registry-packages-npm-production"}},"3.0.9":{"name":"@autoblogwriter/sdk","version":"3.0.9","license":"MIT","_id":"@autoblogwriter/sdk@3.0.9","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"9b9ca7b86faac19ab62b74ac07e28476d1a39d41","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.9.tgz","fileCount":31,"integrity":"sha512-swVQH8BrL4nmJj8qracdFk5MRnROEybL9mQkvS/AN3AQVXD4n9BNppx6Ypuh74kBumXL+fR9VYDo38z/WwG1Aw==","signatures":[{"sig":"MEUCIE51XzQ6RCAYo4aKMRUyWq0scZF0e5s7AzH2ulNoXilIAiEAtfCsqvTFmQsnR5Lo5leYNd2uluLvmblxvAWD/dFHzjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410006},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"1892766bed3ae3dbfa1a9f6eb864b4dbeade596d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.9_1771041592731_0.3479406264797342","host":"s3://npm-registry-packages-npm-production"}},"3.0.10":{"name":"@autoblogwriter/sdk","version":"3.0.10","license":"MIT","_id":"@autoblogwriter/sdk@3.0.10","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"318cad20190f6a1bf854396afb99a50ef6f1c7fc","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.10.tgz","fileCount":31,"integrity":"sha512-wfErhQXwUOv4Nuks/zx5N7Anfkb+pJgr6Am4aGKsdlsFfGCsQcVyndZs4AZTAvNFqRHsHGFbI1eRNI2XUU1tPg==","signatures":[{"sig":"MEUCIDM2tzxVUwbd9r5l/Sseazu2PvGn3N3nrek2Yts/azYOAiEA/kK7/7MKzJ77oreTJ0TeEl2Kl1pWQrUMrp28VUoHGDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409983},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"e5bb094a4334d1f940c42b701e878d34c66ca26a","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.10_1771042581993_0.9360999037622577","host":"s3://npm-registry-packages-npm-production"}},"3.0.11":{"name":"@autoblogwriter/sdk","version":"3.0.11","license":"MIT","_id":"@autoblogwriter/sdk@3.0.11","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"048173e3b6329fb4d4a2ed3f4589caf7ccf75345","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.11.tgz","fileCount":31,"integrity":"sha512-B7/+csEZoiHPUBxJgsIklDbrV+1sXUdvuPD+/osdouEkJFZc99GrNqGjxKP0+xmqZRUUZ2y9Dl1Lqcr4mRfrbQ==","signatures":[{"sig":"MEQCIAPZJXvrT4rDLuuUzEuKTYDb5gDkbjmeZTQNHJ8AAcoTAiAgTbRup9JBtAtila5EcgbylQ30bdGwKwUmkbpzpJUbkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411193},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"43c2a9ad7264610ad8c794b149f412e243c5ac71","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.11_1771042946715_0.06392200630841316","host":"s3://npm-registry-packages-npm-production"}},"3.0.12":{"name":"@autoblogwriter/sdk","version":"3.0.12","license":"MIT","_id":"@autoblogwriter/sdk@3.0.12","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"4159dd4ff2d0a6fb8b7effb0162307a89867582c","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.12.tgz","fileCount":31,"integrity":"sha512-PBJa1G5MCyOjmWF8BL4WMmt1xOwjbj26siPRKdJqVtd1+ZYpyGhd2cZ9KYBt306yCZRidoZnrOS5EU+/LKsYlQ==","signatures":[{"sig":"MEUCIAJ5T2l90CFKHF28YnLymGI8hjSsNTXb2DW6RB6+c5QfAiEAjV6wXPxXRTAPqiuXc9Uz2faSVwrECoDaNkBPwf3jj8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415066},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"9013467adc675d4a2f5cf97ff528be059c691263","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.12_1771043202696_0.41061857299794946","host":"s3://npm-registry-packages-npm-production"}},"3.0.13":{"name":"@autoblogwriter/sdk","version":"3.0.13","license":"MIT","_id":"@autoblogwriter/sdk@3.0.13","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"9301aa81c2021becab9a0cd73849fdc57f8bb79d","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.13.tgz","fileCount":31,"integrity":"sha512-7hlMMuVRXbAexzOKOAlbgpxOUIVQ8aiDt8c2SBffc291M6GWej4GiZdbJhxksWbmH3Ps7Z0VdpCFxd/8KHjB7Q==","signatures":[{"sig":"MEUCICRzU0RSkl8Pj8wOMqfecI+8GLteeFhUU1Hn7n5iq1rhAiEAlOoBUpifT2ZMHIYtrSUKVkzADnv/V69UvivWZTEGrmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471459},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"38d1a0d760715a9d0ac2ae8951b1d34cd44db860","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.13_1771106172369_0.020517172567522834","host":"s3://npm-registry-packages-npm-production"}},"3.0.15":{"name":"@autoblogwriter/sdk","version":"3.0.15","license":"MIT","_id":"@autoblogwriter/sdk@3.0.15","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"7e71333c60c8c050add80ec49e3e37c38ab132c3","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.15.tgz","fileCount":31,"integrity":"sha512-8JgavYkC7TmGSR5vZWqiASFYUPiyAoz6u+SjEKAcchLOPPL6+hG3qahJetUAWFwlhJvsydcmX6FFRGGSqVtOSg==","signatures":[{"sig":"MEUCIA85u6W2SeQTs9A2agBsKdJtTVvG6us2MEJwZJJjCxCBAiEAmx3aUb8LZPaELhHaRbgaQuHPGZbTXDsr1pvZZByUWO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472115},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"b2e455a23b489a231b89bcfb6e0bfdadc8b6b420","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.15_1771106683412_0.8776039059693852","host":"s3://npm-registry-packages-npm-production"}},"3.0.16":{"name":"@autoblogwriter/sdk","version":"3.0.16","license":"MIT","_id":"@autoblogwriter/sdk@3.0.16","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"42f4663f597e3ae5e50782480cd6fa3b34591f0c","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.0.16.tgz","fileCount":31,"integrity":"sha512-GQQml3n3wS72eVr8F29bq3fT476bDRidil28BMJQE2Afyrj7TbpTnrIwok6ExAgZhuFoCusISGjuCBzCMXTz9g==","signatures":[{"sig":"MEUCIQCMsZNQaYSjzIZZso+EnSgLdUdnf6DD98B0OP7nVcnhNwIgODCJOkbbzPG/JsOnOUm1nU5RjMFkQN+6Zt1gZUyxgsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":478587},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"234c86e4dcf9f204e9c227bb8ca43a7303615885","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.0.16_1771107419554_0.2404336727585319","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@autoblogwriter/sdk","version":"3.1.0","license":"MIT","_id":"@autoblogwriter/sdk@3.1.0","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"3de31e712921c7ea5e1531325eb697acc9658f13","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.0.tgz","fileCount":33,"integrity":"sha512-Pho7lvloXUjb+cPz1PWyr9Tsgb8sehi2UPURGFOIpmgmaxax6RP9IMYl2uI7VAw568oVcnVxUWZL5wrIcU6tIg==","signatures":[{"sig":"MEUCIQDvLAihKktjgNqVU6k+CTaiDX1zSZ8FhaI8db7QFmWpQAIgR8GPEpakiXFSw4RyEQlIjDQARTNbhsM2QxKIvNwG7Oc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":569209},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"7e9a2a0901bc076f02997964fb12349e25345888","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.0_1771221716721_0.04325013905339303","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@autoblogwriter/sdk","version":"3.1.1","license":"MIT","_id":"@autoblogwriter/sdk@3.1.1","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"910c72e19333f97171181dc67c1e1ca5bf720491","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.1.tgz","fileCount":33,"integrity":"sha512-gN8RvIZXpJyGUOBIQIsGi/UiyhBOOsoLizUhG3fiAICht8DItAL1v+ERoPOElGDHDP5qPzsWCV6+l6iW7Tv4OQ==","signatures":[{"sig":"MEQCIHWdWBL+/YVdnhP+V+efasrZMt9lzsqxOPua6KFF3k/4AiBshR25jjfTTzc22nG+9cpfWjV4GMBHYbIHC+zf3fSoBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":569805},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"da0b55f10f2ba29ce10ffea8b8ddeafad20da9fa","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.1_1771222297226_0.23069176294164007","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@autoblogwriter/sdk","version":"3.1.2","license":"MIT","_id":"@autoblogwriter/sdk@3.1.2","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"75a7a282576a98d54ade5c8445a0ecf4be582ebc","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.2.tgz","fileCount":33,"integrity":"sha512-HdsiHeE8G35CLxQQAZhMHPd3Bqm3ppzp5G/MytL96H32dA60PtYtO4ZJ8U+uIKQOsRj9lm1i1BRIyoTMvEoPrw==","signatures":[{"sig":"MEQCIG22FU3u4zI/+LJ7QrqLYVGz4tMRtr4WwGJA1VBnaHxtAiBY4814BUFfGV8cl3qEgH7vnJjF+Cdlk1/QacbRoOAU4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572161},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"0040a5a60cd2d1b93823de73599bd381597e419e","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.2_1771224496465_0.734256490700588","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@autoblogwriter/sdk","version":"3.1.3","license":"MIT","_id":"@autoblogwriter/sdk@3.1.3","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"b3e68f4e2cc71cde88078c5a581dc56932646129","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.3.tgz","fileCount":33,"integrity":"sha512-hvTuk3KEFECh4JDWOBzUGS1HAC5X8MlfBxuWiZGq4zPGwkeMmfIDcrnDYNCQyaU6llR8OLhR+mMIkkOi08LR5w==","signatures":[{"sig":"MEQCIBBD5MgbfEk9+uhQSKOWqsuxHAAq5bZ76Cz3W6cFen5LAiBL8wbhg1Q/4wFoSz/GxD5LlDmQQpKhZ0e3uPMto2FcFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":576779},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"4b63fe453080298bb1a658802311814d83bc35ec","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.3_1771259464301_0.5272650089425386","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"@autoblogwriter/sdk","version":"3.1.4","license":"MIT","_id":"@autoblogwriter/sdk@3.1.4","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"83860df29efd74e77a179154ac8a2e471d4be277","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.4.tgz","fileCount":33,"integrity":"sha512-EHaZwDhURL6OUBAceqr64BzBIywH9LiWr5rbTA6a4q1XDg6y/4XwhPsiy0/sKHkRUrdDroEOA69Sr1OZFSSu+A==","signatures":[{"sig":"MEYCIQD76rwE6uEzE1KlrVFtrcNL+UNrO4yPZAMbx8i9eh29gQIhAJx1ZRsJn6cUEaaArwIxKa4FLlvp09P2fD6x6wExOJE6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604741},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"360f7c352b4eab852820f8a575305ee4a27b8717","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.4_1771779210720_0.6556747855747036","host":"s3://npm-registry-packages-npm-production"}},"3.1.6":{"name":"@autoblogwriter/sdk","version":"3.1.6","license":"MIT","_id":"@autoblogwriter/sdk@3.1.6","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"65e1d7f3b08b33d5d91c7e90c41d4c65d29b86b2","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.6.tgz","fileCount":33,"integrity":"sha512-4jMAN8gqRdpt6mX66AZJ8zt2BfUOss3LC9Bo3IZGKxsr6tnDq9CI6iK0zL9gBM8OdAem+s3Ogp2sXAxsPWLTPQ==","signatures":[{"sig":"MEQCIDtq9BJfnQg0US51t3L2+oYkjBPkShdEMzbuRKJOLZgDAiAj7tJmRDMp7gXdYXkJ2bnLDT3Tn/59QPCdgPEzZzGZoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604671},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"ce2a6379acb19ce8286c06037e2626bf488dcc0e","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.6_1771958807766_0.740104602284561","host":"s3://npm-registry-packages-npm-production"}},"3.1.7":{"name":"@autoblogwriter/sdk","version":"3.1.7","license":"MIT","_id":"@autoblogwriter/sdk@3.1.7","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"dist":{"shasum":"a88d571907c872f4ed94e73db56b535668533e2f","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.7.tgz","fileCount":39,"integrity":"sha512-e25xs6Zgwue14t8CI0V5NHiYGHWFH10ZS42O/0+C7taVzOv3A2hW0OZkNmzvV9ev3pvnRGDpMeXFj+mJ87G/WA==","signatures":[{"sig":"MEUCIQDqjguAoz3b+QbCLSddEWuhEzm/W/8+bYrKm4XFgnT5lQIgB/mLui5GtKoMzA7HLo4Meqkede0F9yz4tKTdlj+2pKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":713127},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./helpers":{"types":"./dist/helpers.d.ts","import":"./dist/helpers.js","require":"./dist/helpers.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./styles.css":"./dist/styles.css"},"gitHead":"828f00363f777edf08853e942aa9ce1e8640374f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest","build":"tsup"},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"_npmVersion":"11.7.0","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","vitest":"^1.2.0","typescript":"^5.3.3","@types/node":"^20.11.17","@types/react":"^18.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sdk_3.1.7_1771983479795_0.10879573453723768","host":"s3://npm-registry-packages-npm-production"}},"3.1.8":{"name":"@autoblogwriter/sdk","version":"3.1.8","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","license":"MIT","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./revalidate":{"types":"./dist/revalidate.d.ts","import":"./dist/revalidate.js","require":"./dist/revalidate.cjs"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js","require":"./dist/next.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./helpers":{"types":"./dist/helpers.d.ts","import":"./dist/helpers.js","require":"./dist/helpers.cjs"},"./styles.css":"./dist/styles.css"},"engines":{"node":">=18"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest","lint":"tsc --noEmit"},"devDependencies":{"@types/node":"^20.11.17","@types/react":"^18.2.0","tsup":"^8.0.1","typescript":"^5.3.3","vitest":"^1.2.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"react":{"optional":true}},"gitHead":"d1042d4d4bb6a57d98bc7c725a9f8cf05ef6b28e","_id":"@autoblogwriter/sdk@3.1.8","_nodeVersion":"25.4.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-VMOh5tAnjunC7A7DBoQTi/kw+XPfT3oflsgu/sbTGp/sN/MelIWQPQG2Iyq0Q6UDc/lswgMv2vJjgbGtmys91g==","shasum":"e4104d8058353a61f637012be5d4f7fd5e536f55","tarball":"https://registry.npmjs.org/@autoblogwriter/sdk/-/sdk-3.1.8.tgz","fileCount":37,"unpackedSize":185903,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHjIebaBQ0RA1Gkwpaue9M7iX3hbGxycydCrfKYKuPSaAiAdkMpoYjLYCMvt/CGeVb0tEP5xtHThXlcgO0HO5Qom6Q=="}]},"_npmUser":{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"},"directories":{},"maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_3.1.8_1771985145702_0.9900711326077405"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-11T00:57:53.546Z","modified":"2026-02-25T02:05:45.990Z","1.0.2":"2026-02-11T00:57:53.823Z","2.0.0":"2026-02-13T05:55:47.886Z","2.0.1":"2026-02-13T18:12:26.931Z","2.0.2":"2026-02-13T18:27:00.309Z","2.0.3":"2026-02-13T18:28:38.736Z","2.0.5":"2026-02-13T18:32:12.832Z","2.0.6":"2026-02-13T18:45:03.967Z","2.1.1":"2026-02-13T19:26:41.929Z","3.0.0":"2026-02-13T20:25:55.480Z","3.0.1":"2026-02-13T20:28:17.812Z","3.0.2":"2026-02-13T21:00:52.084Z","3.0.3":"2026-02-14T03:25:55.217Z","3.0.4":"2026-02-14T03:33:10.184Z","3.0.5":"2026-02-14T03:39:04.381Z","3.0.6":"2026-02-14T03:54:53.843Z","3.0.9":"2026-02-14T03:59:52.914Z","3.0.10":"2026-02-14T04:16:22.174Z","3.0.11":"2026-02-14T04:22:26.878Z","3.0.12":"2026-02-14T04:26:42.916Z","3.0.13":"2026-02-14T21:56:12.553Z","3.0.15":"2026-02-14T22:04:43.575Z","3.0.16":"2026-02-14T22:16:59.727Z","3.1.0":"2026-02-16T06:01:56.860Z","3.1.1":"2026-02-16T06:11:37.397Z","3.1.2":"2026-02-16T06:48:16.650Z","3.1.3":"2026-02-16T16:31:04.456Z","3.1.4":"2026-02-22T16:53:30.886Z","3.1.6":"2026-02-24T18:46:47.996Z","3.1.7":"2026-02-25T01:38:00.031Z","3.1.8":"2026-02-25T02:05:45.847Z"},"license":"MIT","description":"Official AutoBlogWriter SDK for fetching posts, building sitemaps, rendering helpers, and revalidation utilities.","maintainers":[{"name":"connorfitz","email":"connorfitzgerald17@gmail.com"}],"readme":"# @autoblogwriter/sdk\n\nOfficial TypeScript SDK for AutoBlogWriter. It keeps server-side integration tiny, adds helpers for Next.js App Router and Vite/React apps, and ships revalidation utilities that respect AutoBlogWriter's API contract.\n\n**[Documentation](https://docs.autoblogwriter.app/)**\n\n## Installation\n\n```bash\nnpm install @autoblogwriter/sdk\n```\n\n> Requires Node.js 18+ and native `fetch`. Bundles ship as ESM, CJS, and types via `tsup`.\n\n## v3 Migration (Breaking Changes)\n\nVersion `3.0.0` removes legacy `BlogAuto*` symbols and legacy webhook/env identifiers. There are no compatibility aliases in v3.\n\n### API Rename Map\n\n| Old (removed) | New |\n| --- | --- |\n| `createBlogAutoClient` | `createAutoBlogWriterClient` |\n| `BlogAutoClient` | `AutoBlogWriterClient` |\n| `BlogAutoError` | `AutoBlogWriterError` |\n| `createBlogAutoFromEnv` | `createAutoBlogWriterFromEnv` |\n| `BlogAutoEnvConfig` | `AutoBlogWriterEnvConfig` |\n| `BlogAutoClientConfig` | `AutoBlogWriterClientConfig` |\n| `BlogAutoRevalidatePayload` | `AutoBlogWriterRevalidatePayload` |\n\n### Wire/Config Identifier Changes\n\n| Old (removed) | New |\n| --- | --- |\n| `BLOGAUTO_API_KEY` | `AUTOBLOGWRITER_API_KEY` |\n| `BLOGAUTO_WORKSPACE_SLUG` | `AUTOBLOGWRITER_WORKSPACE_SLUG` |\n| `BLOGAUTO_API_URL` | `AUTOBLOGWRITER_API_URL` |\n| `BLOGAUTO_WORKSPACE_ID` | `AUTOBLOGWRITER_WORKSPACE_ID` |\n| `BLOGAUTO_REVALIDATE_SECRET` | `AUTOBLOGWRITER_REVALIDATE_SECRET` |\n| `BLOGAUTO_DEBUG` | `AUTOBLOGWRITER_DEBUG` |\n| `x-autoblogwriter-signature` | `x-autoblogwriter-signature` |\n| `autoblogwriter:{workspaceSlug}:...` | `autoblogwriter:{workspaceSlug}:...` |\n\n## Entry Points\n\n```ts\n// Core client, types, and utilities\nimport { createAutoBlogWriterClient } from \"@autoblogwriter/sdk\";\n\n// Next.js App Router helpers (server-side)\nimport { fetchBlogPosts, fetchBlogPost } from \"@autoblogwriter/sdk/next\";\n\n// Framework-agnostic helpers (Remix, Astro, Express, …)\nimport { fetchPosts, fetchPost } from \"@autoblogwriter/sdk/helpers\";\n\n// React components\nimport { BlogFaq, BlogPost, BlogPostList, Markdown, Branding, AutoBlogPost, AutoBlogPostList } from \"@autoblogwriter/sdk/react\";\n\n// Webhook signature verification (server-side)\nimport { verifyWebhookSignature } from \"@autoblogwriter/sdk/revalidate\";\n\n// Default styles\nimport \"@autoblogwriter/sdk/styles.css\";\n```\n\n| Entry Point | Environment | Description |\n| --- | --- | --- |\n| `@autoblogwriter/sdk` | Server | Core client, markdown renderer, sitemap/robots builders |\n| `@autoblogwriter/sdk/next` | Server (Next.js) | `fetchBlogPosts`, `fetchBlogPost`, `generatePostMetadata`, `generateBlogSitemap`, `generateBlogRobots`, `createEnvRevalidateHandler` — graceful on errors |\n| `@autoblogwriter/sdk/helpers` | Server | `fetchPosts`, `fetchPost`, `buildBlogSitemap`, `buildBlogRobots` — framework-agnostic, always graceful |\n| `@autoblogwriter/sdk/react` | Client or Server | `<BlogPost>`, `<BlogPostList>`, `<BlogFaq>`, `<Markdown>`, `<Branding>` components; `<AutoBlogPost>`, `<AutoBlogPostList>` async Server Components |\n| `@autoblogwriter/sdk/revalidate` | Server | `createRevalidateRouteHandler`, `verifyWebhookSignature` |\n| `@autoblogwriter/sdk/styles.css` | Client | Default dark-theme styles for all components |\n\n## Quick Start (Next.js App Router)\n\n1. Install the package:\n\n```bash\nnpm install @autoblogwriter/sdk\n```\n\n2. Configure environment variables:\n\n```bash\nAUTOBLOGWRITER_API_KEY=ba_pk_your_api_key\nAUTOBLOGWRITER_WORKSPACE_SLUG=your-workspace\nAUTOBLOGWRITER_REVALIDATE_SECRET=your_webhook_secret\n```\n\n3. Fetch and render posts:\n\n```tsx\nimport { fetchBlogPosts } from \"@autoblogwriter/sdk/next\";\nimport { BlogPostList } from \"@autoblogwriter/sdk/react\";\n\nexport default async function BlogPage() {\n  const { posts } = await fetchBlogPosts({ limit: 20 });\n  return <BlogPostList posts={posts} />;\n}\n```\n\n## Quick Start (Other Frameworks — Remix / Astro / Express)\n\n1. Install and set the same environment variables as above.\n\n2. Fetch and render posts:\n\n```ts\nimport { fetchPosts, fetchPost } from \"@autoblogwriter/sdk/helpers\";\n\n// List all posts\nconst { posts } = await fetchPosts({ limit: 20 });\n\n// Single post — returns null if not found (never throws)\nconst post = await fetchPost(\"my-post-slug\");\nif (!post) {\n  // handle 404 in your framework\n}\n```\n\n3. Generate a sitemap and robots config:\n\n```ts\nimport { buildBlogSitemap, buildBlogRobots } from \"@autoblogwriter/sdk/helpers\";\n\n// Plain objects — no Next.js dependency\nconst sitemapEntries = await buildBlogSitemap();\nconst robotsConfig = buildBlogRobots();\n```\n\n## Security Notes (Read First)\n- Never ship AutoBlogWriter API keys in public, client-side code.\n- Run the SDK inside Next.js server components, route handlers, or your own backend proxy.\n- If you must expose functionality to the browser, issue scoped public tokens or proxy through your server. Do **not** mint new auth schemes.\n\n## Client Configuration\n\n```ts\nimport { createAutoBlogWriterClient } from \"@autoblogwriter/sdk\";\n\nconst client = createAutoBlogWriterClient({\n  apiUrl: \"https://api.autoblogwriter.app\",\n  apiKey: process.env.AUTOBLOGWRITER_API_KEY!,\n  workspaceId: process.env.AUTOBLOGWRITER_WORKSPACE_ID,\n  workspaceSlug: process.env.AUTOBLOGWRITER_WORKSPACE_SLUG,\n  authMode: \"bearer\",           // or \"x-api-key\"\n  headers: { \"x-trace-id\": \"...\" },\n  timeoutMs: 10_000,\n  fetch: globalThis.fetch,       // optional custom fetch\n});\n```\n\n| Option | Type | Required | Description |\n| --- | --- | --- | --- |\n| `apiUrl` | `string` | yes | Root API URL, e.g. `https://api.autoblogwriter.app`. Trailing slash removed automatically. |\n| `apiKey` | `string` | yes | Workspace-scoped API key created in the AutoBlogWriter dashboard. |\n| `workspaceId` | `string` | one of `workspaceId` or `workspaceSlug` | Optional; used for account scoping. |\n| `workspaceSlug` | `string` | one of `workspaceId` or `workspaceSlug` | Required for public content APIs (`/v1/public/:workspaceSlug/...`). |\n| `authMode` | `\"bearer\" \\| \"x-api-key\"` | no (default `\"bearer\"`) | Sends the API key via `Authorization: Bearer` or `x-api-key`. |\n| `headers` | `Record<string, string>` | no | Additional static headers (merged on each request). |\n| `fetch` | `typeof fetch` | no | Provide a custom fetch implementation (e.g., for SSR polyfills). |\n| `timeoutMs` | `number` | no | Optional request timeout enforced client-side. |\n\n## Next.js Helper Functions (`@autoblogwriter/sdk/next`)\n\nThe `next` entry point provides high-level helpers that read configuration from environment variables automatically (via `createAutoBlogWriterFromEnv`). Set these env vars and the helpers handle client creation, cache tagging, and metadata for you.\n\n> **Graceful errors:** All helpers log a `console.warn` and return safe defaults on config or API errors instead of throwing. `fetchBlogPost` calls Next.js `notFound()` on all error types so pages always show a 404 rather than crashing.\n\n| Env Variable | Required | Description |\n| --- | --- | --- |\n| `AUTOBLOGWRITER_API_KEY` | yes | Workspace API key |\n| `AUTOBLOGWRITER_WORKSPACE_SLUG` | yes | Workspace slug for content APIs |\n| `AUTOBLOGWRITER_API_URL` | no | Defaults to `https://api.autoblogwriter.app` |\n| `AUTOBLOGWRITER_WORKSPACE_ID` | no | Optional workspace ID |\n| `SITE_URL` or `NEXT_PUBLIC_SITE_URL` | no | Defaults to `http://localhost:3000` |\n| `AUTOBLOGWRITER_REVALIDATE_SECRET` | no | Required for the revalidation handler |\n\n### `fetchBlogPosts(options?)`\n\nFetches a paginated list of posts with automatic cache tagging.\n\n```ts\nimport { fetchBlogPosts } from \"@autoblogwriter/sdk/next\";\n\nconst { posts, nextCursor } = await fetchBlogPosts({ limit: 20 });\n```\n\n### `fetchBlogPost(slug)`\n\nFetches a single post by slug. Automatically calls `notFound()` if the post doesn't exist.\n\n```ts\nimport { fetchBlogPost } from \"@autoblogwriter/sdk/next\";\n\nconst post = await fetchBlogPost(params.slug);\n```\n\n### `generatePostMetadata(slug)`\n\nReturns a Next.js `Metadata` object (title, description, Open Graph, Twitter cards) for a blog post. Use it in your `generateMetadata` export.\n\n```ts\nimport { generatePostMetadata } from \"@autoblogwriter/sdk/next\";\n\nexport async function generateMetadata({ params }: Props) {\n  return generatePostMetadata(params.slug);\n}\n```\n\n### `buildJsonLdScript(post)`\n\nGenerates a `<script type=\"application/ld+json\">` element for manual injection in `<head>`. Available from the core `@autoblogwriter/sdk` entry point.\n\n> **Note:** `<BlogPost>` automatically injects JSON-LD when `post.metadata.jsonLd` is present — `buildJsonLdScript()` is only needed for manual `<head>` injection via `generateMetadata`.\n\n```ts\nimport { buildJsonLdScript } from \"@autoblogwriter/sdk\";\n\nexport async function generateMetadata({ params }: Props) {\n  const post = await client.getPostBySlug(params.slug);\n  if (!post) return {};\n  const jsonLdScript = buildJsonLdScript(post); // null if no JSON-LD\n  return {\n    ...buildNextMetadata(post),\n    ...(jsonLdScript ? { other: { scripts: [jsonLdScript] } } : {}),\n  };\n}\n```\n\n### `generateBlogSitemap()`\n\nReturns a `MetadataRoute.Sitemap` array for `app/sitemap.ts`.\n\n```ts\nimport { generateBlogSitemap } from \"@autoblogwriter/sdk/next\";\n\nexport default async function sitemap() {\n  return generateBlogSitemap();\n}\n```\n\n### `generateBlogRobots()`\n\nReturns a `MetadataRoute.Robots` object for `app/robots.ts`.\n\n```ts\nimport { generateBlogRobots } from \"@autoblogwriter/sdk/next\";\n\nexport default function robots() {\n  return generateBlogRobots();\n}\n```\n\n### `createEnvRevalidateHandler()`\n\nCreates a POST route handler for webhook-based revalidation. Reads `AUTOBLOGWRITER_REVALIDATE_SECRET` from env, verifies the HMAC signature, and calls `revalidatePath`/`revalidateTag`.\n\n```ts\n// app/api/autoblogwriter/revalidate/route.ts\nimport { createEnvRevalidateHandler } from \"@autoblogwriter/sdk/next\";\n\nexport const POST = createEnvRevalidateHandler();\n```\n\n### Full Next.js Example\n\n```ts\n// app/blog/page.tsx\nimport { fetchBlogPosts } from \"@autoblogwriter/sdk/next\";\nimport { BlogPostList } from \"@autoblogwriter/sdk/react\";\n\nexport default async function BlogIndexPage() {\n  const { posts } = await fetchBlogPosts({ limit: 20 });\n  return <BlogPostList posts={posts} />;\n}\n```\n\n```ts\n// app/blog/[slug]/page.tsx\nimport { fetchBlogPost, generatePostMetadata } from \"@autoblogwriter/sdk/next\";\nimport { BlogPost } from \"@autoblogwriter/sdk/react\";\n\ninterface Props {\n  params: { slug: string };\n}\n\nexport async function generateMetadata({ params }: Props) {\n  return generatePostMetadata(params.slug);\n}\n\nexport default async function BlogPostPage({ params }: Props) {\n  const post = await fetchBlogPost(params.slug);\n  return <BlogPost post={post} />;\n}\n```\n\n## Framework-Agnostic Helper Functions (`@autoblogwriter/sdk/helpers`)\n\nThe `helpers` entry point provides the same env-based convenience wrappers as `./next` but with **no Next.js dependency** — safe to import in Remix, Astro, Express, Vite SSR, or any other Node.js server environment.\n\nUses the same env vars as the Next.js helpers (`AUTOBLOGWRITER_API_KEY`, `AUTOBLOGWRITER_WORKSPACE_SLUG`, etc.)\n\n> **Always graceful:** Every function catches all errors and returns safe defaults — it never throws. `fetchPost` returns `null` instead of calling `notFound()` so your framework's 404 handling stays in your hands. No ISR cache tags are applied — use `./next` if you need tag-based revalidation.\n\n| Function | Returns on error |\n| --- | --- |\n| `fetchPosts(options?)` | `{ posts: [], nextCursor: undefined, pagination: zeroed }` |\n| `fetchPost(slug)` | `null` |\n| `buildBlogSitemap()` | `[]` |\n| `buildBlogRobots()` | `{ rules: [{ userAgent: \"*\", allow: \"/\" }] }` |\n| `buildJsonLdScript` | re-exported from `./metadata` |\n\nAlso exports `FetchPostsOptions` type.\n\n### `fetchPosts(options?)`\n\n```ts\nimport { fetchPosts } from \"@autoblogwriter/sdk/helpers\";\n\nconst { posts, nextCursor } = await fetchPosts({ limit: 20 });\n```\n\n### `fetchPost(slug)`\n\n```ts\nimport { fetchPost } from \"@autoblogwriter/sdk/helpers\";\n\nconst post = await fetchPost(\"my-post-slug\");\nif (!post) {\n  // show 404 in your framework\n}\n```\n\n### `buildBlogSitemap()`\n\n```ts\nimport { buildBlogSitemap } from \"@autoblogwriter/sdk/helpers\";\n\nconst entries = await buildBlogSitemap();\n// [{ url: \"https://yoursite.com/blog/slug\", lastModified: \"...\" }, ...]\n```\n\n### `buildBlogRobots()`\n\n```ts\nimport { buildBlogRobots } from \"@autoblogwriter/sdk/helpers\";\n\nconst robots = buildBlogRobots();\n// { rules: [{ userAgent: \"*\", allow: \"/\" }], sitemap: \"https://yoursite.com/sitemap.xml\" }\n```\n\n## React Components (`@autoblogwriter/sdk/react`)\n\nPre-built components for rendering blog content. Works in Next.js, Vite, or any React 18+ app.\n\n### `<Markdown>`\n\nRenders a markdown string to HTML using the built-in renderer.\n\n```tsx\nimport { Markdown } from \"@autoblogwriter/sdk/react\";\n\n<Markdown source={post.content} />\n<Markdown source={post.content} className=\"custom-markdown\" />\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `source` | `string \\| null` | — | Markdown string to render. Returns `null` if empty. |\n| `className` | `string` | `\"ba-markdown\"` | CSS class on the wrapper `<div>`. |\n\n### `<BlogPost>`\n\nRenders a full blog post with title, date, reading time, and markdown content.\n\n```tsx\nimport { BlogPost } from \"@autoblogwriter/sdk/react\";\n\n<BlogPost post={post} />\n<BlogPost post={post} showDate={false} />\n<BlogPost post={post} theme=\"light\" />\n<BlogPost post={post} showHeroImage />\n<BlogPost\n  post={post}\n  linkComponent={Link}\n  imageComponent={Image}\n  imageProps={{ width: 1200, height: 630 }}\n/>\n<BlogPost post={post} renderContent={(md) => <MyCustomRenderer source={md} />} />\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `post` | `BlogPost` | — | The post object from the SDK. |\n| `showTitle` | `boolean` | `true` | Show the post title as an `<h1>`. |\n| `showDate` | `boolean` | `true` | Show the published/updated date. |\n| `showFaq` | `boolean` | `true` | Render FAQ after content when `post.faq` exists. |\n| `showRelatedPosts` | `boolean` | `true` | Render related posts when `post.relatedPosts` exists. |\n| `className` | `string` | `\"ba-post\"` | CSS class on the `<article>`. |\n| `theme` | `\"light\" \\| \"dark\"` | — | Applies a theme via `data-ba-theme` on the wrapper. |\n| `showHeroImage` | `boolean` | `false` | Render `post.images?.hero?.url` under the title when available. |\n| `heroImageAlt` | `string` | `post.title` | Optional `alt` text for the hero image. |\n| `linkComponent` | `React.ComponentType` | — | Custom link component for related posts (e.g. Next.js `Link`). |\n| `imageComponent` | `React.ComponentType` | — | Custom image component for the hero image (e.g. Next.js `Image`). |\n| `imageProps` | `Record<string, unknown>` | — | Extra props forwarded to the hero image component. |\n| `renderContent` | `(content: string) => ReactNode` | — | Override the default `<Markdown>` renderer. |\n| `renderFaq` | `(faq, post) => ReactNode` | — | Override FAQ rendering, or return `null` to hide it. |\n| `renderRelatedPosts` | `(posts, post) => ReactNode` | — | Override related posts rendering, or return `null` to hide it. |\n| `branding` | `BrandingInfo` | from API | Explicit branding tier info. Overrides `post.branding`. |\n| `showBranding` | `boolean` | `true` | Show/hide the \"Powered by\" footer. On read-only workspaces this is forced `true`. |\n| `brandingLinkComponent` | `React.ComponentType` | `linkComponent` | Link component used specifically for the branding link. |\n\n### `<BlogFaq>`\n\nRenders an FAQ section from post FAQ data.\n\n```tsx\nimport { BlogFaq } from \"@autoblogwriter/sdk/react\";\n\n<BlogFaq faq={post.faq!} />\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `faq` | `BlogFaq \\| BlogFaqItem[]` | — | FAQ data to render. |\n| `title` | `string` | `\"Frequently Asked Questions\"` | Section heading text. |\n| `className` | `string` | `\"ba-faq\"` | CSS class on the FAQ section. |\n\n### `<RelatedPosts>`\n\nRenders a related-posts list from `post.relatedPosts`.\n\n```tsx\nimport { RelatedPosts } from \"@autoblogwriter/sdk/react\";\n\n<RelatedPosts posts={post.relatedPosts ?? []} />\n<RelatedPosts posts={post.relatedPosts ?? []} title=\"Keep reading\" routePrefix=\"/articles\" />\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `posts` | `RelatedPostSummary[]` | — | Related post summaries to render. |\n| `title` | `string` | `\"Related Posts\"` | Section heading text. |\n| `routePrefix` | `string` | `\"/blog\"` | URL prefix for links (`{routePrefix}/{slug}`). |\n| `linkComponent` | `React.ComponentType` | `<a>` | Custom link component (e.g. Next.js `Link`). |\n| `className` | `string` | `\"ba-related\"` | CSS class on the section wrapper. |\n| `renderItem` | `(post, href) => ReactNode` | — | Override default item rendering. |\n\n### `<BlogPostList>`\n\nRenders a list of post cards with titles, dates, and excerpts.\n\n```tsx\nimport { BlogPostList } from \"@autoblogwriter/sdk/react\";\n\n<BlogPostList posts={posts} />\n<BlogPostList posts={posts} title=\"Blog\" routePrefix=\"/articles\" />\n<BlogPostList posts={posts} theme=\"light\" layout=\"list\" />\n<BlogPostList posts={posts} imageComponent={Image} imageProps={{ width: 1200, height: 675 }} />\n```\n\nWith Next.js `<Link>`:\n\n```tsx\nimport Link from \"next/link\";\n\n<BlogPostList posts={posts} linkComponent={Link} />\n```\n\nWith a custom card:\n\n```tsx\n<BlogPostList\n  posts={posts}\n  renderCard={(post, href) => (\n    <a href={href}>{post.title} — {post.excerpt}</a>\n  )}\n/>\n```\n\nWith controlled pagination:\n\n```tsx\n<BlogPostList\n  posts={posts}\n  postsPerPage={6}\n  page={page}\n  onPageChange={setPage}\n/>\n```\n\nServer-friendly pagination with links:\n\n```tsx\n<BlogPostList\n  posts={posts}\n  postsPerPage={6}\n  page={page}\n  paginationHref={(nextPage) => `/blog?page=${nextPage}`}\n/>\n```\n\nNext.js server component example (no client state):\n\n```tsx\nimport Link from \"next/link\";\nimport { fetchBlogPosts } from \"@autoblogwriter/sdk/next\";\nimport { BlogPostList } from \"@autoblogwriter/sdk/react\";\n\ntype Props = {\n  searchParams?: { page?: string };\n};\n\nexport default async function BlogPage({ searchParams }: Props) {\n  const { posts } = await fetchBlogPosts();\n  const page = Math.max(1, Number(searchParams?.page ?? \"1\"));\n\n  return (\n    <BlogPostList\n      posts={posts}\n      linkComponent={Link}\n      layout=\"card\"\n      postsPerPage={6}\n      page={page}\n      paginationHref={(nextPage) => `/blog?page=${nextPage}`}\n    />\n  );\n}\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `posts` | `BlogPost[]` | — | Array of post objects. |\n| `title` | `string` | `\"Latest posts\"` | Section heading. Pass empty string to hide. |\n| `routePrefix` | `string` | `\"/blog\"` | URL prefix for post links (`{routePrefix}/{slug}`). |\n| `linkComponent` | `React.ComponentType` | `<a>` | Custom link component (e.g. Next.js `Link`). |\n| `className` | `string` | `\"ba-listing\"` | CSS class on the `<section>`. |\n| `theme` | `\"light\" \\| \"dark\"` | — | Applies a theme via `data-ba-theme` on the wrapper. |\n| `layout` | `\"card\" \\| \"list\"` | `\"card\"` | Layout style for the list. |\n| `postsPerPage` | `number` | — | Page size for controlled pagination. |\n| `page` | `number` | `1` | Current page (1-based) for controlled pagination. |\n| `onPageChange` | `(page: number) => void` | — | Handler invoked by pagination buttons. |\n| `paginationHref` | `(page: number) => string` | — | Render pagination links instead of buttons (server-safe). |\n| `showPagination` | `boolean` | `true` (when `postsPerPage` is set) | Whether to render pagination UI. |\n| `imageComponent` | `React.ComponentType` | — | Custom image component for card images (e.g. Next.js `Image`). |\n| `imageProps` | `Record<string, unknown>` | — | Extra props forwarded to the card image component. |\n| `renderCard` | `(post, href) => ReactNode` | — | Override the default card rendering. |\n| `branding` | `BrandingInfo` | inferred from posts | Explicit branding tier info. Inferred from `posts[0].branding` if not set. |\n| `showBranding` | `boolean` | `true` | Show/hide the \"Powered by\" footer. On read-only workspaces this is forced `true`. |\n| `brandingLinkComponent` | `React.ComponentType` | `linkComponent` | Link component used specifically for the branding link. |\n\n### `<Branding>`\n\nA standalone \"Powered by AutoBlogWriter\" attribution component. Rendered automatically inside `<BlogPost>` and `<BlogPostList>` when branding is required, but can also be used directly.\n\n```tsx\nimport { Branding } from \"@autoblogwriter/sdk/react\";\n\n<Branding />\n<Branding linkComponent={Link} showLabel={false} />\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `className` | `string` | `\"ba-branding\"` | CSS class on the wrapper element. |\n| `linkComponent` | `React.ComponentType` | `<a>` | Custom link component for the attribution link. |\n| `href` | `string` | AutoBlogWriter site URL | Override the attribution link target. |\n| `label` | `string` | `\"AutoBlogWriter\"` | Override the brand name text. |\n| `showLabel` | `boolean` | `true` | Show the \"Powered by\" label text. |\n\n> **Paid plans:** Branding can be disabled on active paid plans. Read-only workspaces may still enforce attribution.\n\n### `<AutoBlogPost>`\n\nAsync React Server Component that fetches and renders a single post in one JSX call.\n\n```tsx\nimport { AutoBlogPost } from \"@autoblogwriter/sdk/react\";\n\n// Basic — fetches using env config\nexport default async function PostPage({ params }: Props) {\n  const { slug } = await params;\n  return <AutoBlogPost slug={slug} />;\n}\n\n// With a custom client\nimport { createAutoBlogWriterClient } from \"@autoblogwriter/sdk\";\nconst client = createAutoBlogWriterClient({ apiUrl: \"...\", apiKey: \"...\" });\nreturn <AutoBlogPost slug={slug} client={client} showHeroImage />;\n\n// With a custom fetcher\nreturn <AutoBlogPost slug={slug} fetchPost={myFetchPost} />;\n\n// With a pre-fetched post\nconst post = await fetchBlogPost(slug);\nreturn <AutoBlogPost slug={slug} post={post} />;\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `slug` | `string` | — | **(Required)** The post slug to fetch. |\n| `post` | `BlogPost` | — | Optional pre-fetched post. Skips fetch if provided. |\n| `fetchPost` | `(slug: string) => Promise<BlogPost \\| null>` | — | Custom fetch function. Overrides the default client. |\n| `client` | `AutoBlogWriterClient` | env client | Custom client instance. |\n| ...BlogPostProps | — | — | All `<BlogPost>` props are inherited. |\n\n### `<AutoBlogPostList>`\n\nAsync React Server Component that fetches and renders a list of posts in one JSX call.\n\n```tsx\nimport { AutoBlogPostList } from \"@autoblogwriter/sdk/react\";\n\n// Basic\nexport default async function BlogPage() {\n  return <AutoBlogPostList />;\n}\n\n// With limit and category\nreturn <AutoBlogPostList limit={6} category=\"engineering\" layout=\"card\" />;\n\n// With pre-fetched posts\nconst { posts } = await fetchBlogPosts({ limit: 20 });\nreturn <AutoBlogPostList posts={posts} layout=\"list\" />;\n```\n\n| Prop | Type | Default | Description |\n| --- | --- | --- | --- |\n| `posts` | `BlogPost[]` | — | Optional pre-fetched posts. Skips fetch if provided. |\n| `fetchPosts` | `() => Promise<PostsResponse>` | — | Custom fetch function. Overrides the default client. |\n| `client` | `AutoBlogWriterClient` | env client | Custom client instance. |\n| `limit` | `number` | — | Maximum number of posts to fetch. |\n| `cursor` | `string` | — | Pagination cursor. |\n| `category` | `string` | — | Filter posts by category slug. |\n| ...BlogPostListProps | — | — | All `<BlogPostList>` props are inherited. |\n\n## Styles (`@autoblogwriter/sdk/styles.css`)\n\nThe SDK ships a default dark-theme stylesheet that styles all the React components out of the box. Import it in your app entry point:\n\n```ts\n// app/layout.tsx or src/main.tsx\nimport \"@autoblogwriter/sdk/styles.css\";\n```\n\nAll values are driven by CSS custom properties on `:root`, so you can override them to match your theme:\n\n```css\n:root {\n  --ba-color-bg: #0c0d10;\n  --ba-color-text: #f2f4f8;\n  --ba-color-text-muted: rgba(242, 244, 248, 0.6);\n  --ba-color-link: #6cf;\n  --ba-color-link-hover: #8df;\n  --ba-color-border: rgba(255, 255, 255, 0.08);\n  --ba-color-card-bg: rgba(255, 255, 255, 0.02);\n  --ba-color-card-bg-hover: rgba(255, 255, 255, 0.04);\n  --ba-color-code-bg: rgba(255, 255, 255, 0.1);\n  --ba-color-pre-bg: rgba(255, 255, 255, 0.05);\n  --ba-radius: 8px;\n  --ba-max-width: 720px;\n  --ba-font-sans: system-ui, -apple-system, sans-serif;\n  --ba-font-mono: ui-monospace, SFMono-Regular, monospace;\n}\n```\n\nFor a light theme, override the color variables:\n\n```css\n[data-ba-theme=\"light\"] {\n  --ba-color-bg: #ffffff;\n  --ba-color-text: #0c0d10;\n  --ba-color-text-muted: rgba(12, 13, 16, 0.6);\n  --ba-color-text-secondary: rgba(12, 13, 16, 0.8);\n  --ba-color-text-content: rgba(12, 13, 16, 0.9);\n  --ba-color-link: #0a66c2;\n  --ba-color-link-hover: #0c74db;\n  --ba-color-border: rgba(12, 13, 16, 0.12);\n  --ba-color-card-bg: rgba(12, 13, 16, 0.03);\n  --ba-color-card-bg-hover: rgba(12, 13, 16, 0.06);\n  --ba-color-code-bg: rgba(12, 13, 16, 0.08);\n  --ba-color-pre-bg: rgba(12, 13, 16, 0.04);\n}\n```\n\n### CSS Class Reference\n\n| Class | Used by | Description |\n| --- | --- | --- |\n| `.ba-listing` | `<BlogPostList>` | Outer section wrapper |\n| `.ba-listing-title` | `<BlogPostList>` | Section heading |\n| `.ba-posts` | `<BlogPostList>` | Flex column container for cards |\n| `.ba-posts--card` | `<BlogPostList>` | Card layout modifier |\n| `.ba-posts--list` | `<BlogPostList>` | List layout modifier |\n| `.ba-post-card` | `<BlogPostList>` | Individual post card |\n| `.ba-post-card-title` | `<BlogPostList>` | Card title |\n| `.ba-post-card-link` | `<BlogPostList>` | Title link |\n| `.ba-post-card-meta` | `<BlogPostList>` | Card date |\n| `.ba-post-card-excerpt` | `<BlogPostList>` | Card excerpt |\n| `.ba-pagination` | `<BlogPostList>` | Pagination wrapper |\n| `.ba-pagination-btn` | `<BlogPostList>` | Pagination button |\n| `.ba-pagination-text` | `<BlogPostList>` | Pagination text |\n| `.ba-post` | `<BlogPost>` | Article wrapper |\n| `.ba-post-title` | `<BlogPost>` | Post title |\n| `.ba-post-hero` | `<BlogPost>` | Post hero image |\n| `.ba-post-meta` | `<BlogPost>` | Date and reading time |\n| `.ba-related` | `<RelatedPosts>` | Related posts section wrapper |\n| `.ba-related-title` | `<RelatedPosts>` | Related posts heading |\n| `.ba-related-list` | `<RelatedPosts>` | Related posts list |\n| `.ba-related-item` | `<RelatedPosts>` | Related posts item |\n| `.ba-related-link` | `<RelatedPosts>` | Related posts link |\n| `.ba-markdown` | `<Markdown>` | Markdown content wrapper |\n| `.ba-branding` | `<Branding>` | Attribution footer wrapper |\n| `.ba-branding-link` | `<Branding>` | Attribution anchor/link |\n| `.ba-branding-label` | `<Branding>` | \"Powered by\" label text |\n\n## Revalidation\n\nWhen AutoBlogWriter publishes a post it can ping your Next.js site so cached pages refresh immediately.\n\n**Quick setup** (env-based, one line):\n\n```ts\n// app/api/autoblogwriter/revalidate/route.ts\nimport { createEnvRevalidateHandler } from \"@autoblogwriter/sdk/next\";\n\nexport const POST = createEnvRevalidateHandler();\n```\n\nSet `AUTOBLOGWRITER_REVALIDATE_SECRET` in your environment and configure the webhook URL in the AutoBlogWriter dashboard under **Workspace Settings → Revalidation URL**.\n\n**Advanced setup** (manual control via `@autoblogwriter/sdk/revalidate`):\n\n```ts\n// app/api/autoblogwriter/revalidate/route.ts\nimport { revalidatePath, revalidateTag } from \"next/cache\";\nimport { createRevalidateRouteHandler } from \"@autoblogwriter/sdk/revalidate\";\n\nexport const POST = createRevalidateRouteHandler({\n  secret: process.env.AUTOBLOGWRITER_REVALIDATE_SECRET!,\n  revalidatePath,\n  revalidateTag,\n});\n```\n\nThe handler verifies the `X-AutoBlogWriter-Signature` HMAC header, enforces timestamp skew (default 5 minutes), and revalidates:\n\n- Paths: `/sitemap.xml`, `/robots.txt`, `/blog`, `/blog/:slug`\n- Tags: `autoblogwriter:<workspaceSlug>:sitemap`, `autoblogwriter:<workspaceSlug>:posts`, and `autoblogwriter:<workspaceSlug>:post:<slug>`\n\nFor manual signature verification:\n\n```ts\nimport { verifyWebhookSignature } from \"@autoblogwriter/sdk/revalidate\";\n\nconst isValid = verifyWebhookSignature({\n  rawBody,\n  signature: req.headers.get(\"x-autoblogwriter-signature\"),\n  secret: process.env.AUTOBLOGWRITER_REVALIDATE_SECRET!,\n});\n```\n\n## Testing\n\n```bash\nnpm test\n```\n\nTests cover config validation, auth headers, 404 handling, sitemap output, and revalidation helpers.\n","readmeFilename":"README.md"}