{"_id":"@10up/block-renderer","_rev":"8-42130c213944c85def6b20ca259bba0b","name":"@10up/block-renderer","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.4":{"name":"@10up/block-renderer","version":"0.1.4","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.4","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"163edacd60b57ac22f6997c197cba88bc8c5edc3","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.4.tgz","fileCount":76,"integrity":"sha512-GowWFix8ch0LE3PSb6sNZDZgANJCXH0XkhtikL2tXRghf61NBEODJPhpj3bxZpdYoEEnpGgOO8lEfI9WLsozFA==","signatures":[{"sig":"MEUCIQCLL/yTkIqwFuLftdHuBwzVJ0VxHavNV8gDEaQ4T77yEAIgLrmvoh4TeLMyyN/6+jnLVvGA5DsxrMgQ25nJv3eblow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143709},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},"_resolved":"/private/var/folders/j3/yjw_92c17dxg7b0pcdntvnqh0000gn/T/e456dee84b97dd4853e6bd3a54a3d841/10up-block-renderer-0.1.4.tgz","_integrity":"sha512-GowWFix8ch0LE3PSb6sNZDZgANJCXH0XkhtikL2tXRghf61NBEODJPhpj3bxZpdYoEEnpGgOO8lEfI9WLsozFA==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"25.3.0","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.4","@10up/block-renderer-patterns":"0.1.4","@10up/block-renderer-benchmark":"0.1.4","@10up/block-renderer-validator":"0.1.4","@10up/block-renderer-mcp-server":"0.1.4","@10up/block-renderer-serializer":"0.1.4","@10up/block-renderer-theme-json":"0.1.4","@10up/block-renderer-preferences":"0.1.4","@10up/block-renderer-block-schemas":"0.1.4","@10up/block-renderer-prompt-generator":"0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.4_1768823491010_0.9246190539790813","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@10up/block-renderer","version":"0.1.5","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.5","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"1be1e40811df5c455fc140d65efa90b1fc3bbba7","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.5.tgz","fileCount":76,"integrity":"sha512-wXNLWnw+fwWUPVq0CjJR+cQisXetorsODatW8y5SgpewslSTZj07FXz7xNjGSTsmob7z2y3XjTZSwxrzR5FbQg==","signatures":[{"sig":"MEUCIAzXuctORId/gv1mKzeZck80/ryUMOTvoSNA85+gt2xNAiEA5bVcAE3g0M5+LoxO7ONZSqZkFuLSRMSFnHwaqbfvxSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143709},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/b4fda1a180c0b3ff58c86ee2f125477d/10up-block-renderer-0.1.5.tgz","_integrity":"sha512-wXNLWnw+fwWUPVq0CjJR+cQisXetorsODatW8y5SgpewslSTZj07FXz7xNjGSTsmob7z2y3XjTZSwxrzR5FbQg==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.5","@10up/block-renderer-patterns":"0.1.5","@10up/block-renderer-benchmark":"0.1.5","@10up/block-renderer-validator":"0.1.5","@10up/block-renderer-mcp-server":"0.2.0","@10up/block-renderer-serializer":"0.1.5","@10up/block-renderer-theme-json":"0.1.5","@10up/block-renderer-preferences":"0.1.5","@10up/block-renderer-block-schemas":"0.1.5","@10up/block-renderer-prompt-generator":"0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.5_1768824039427_0.6163665336629716","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@10up/block-renderer","version":"0.1.6","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.6","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"054d44b23e331b4e4971bc2d8521965922afd06c","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.6.tgz","fileCount":76,"integrity":"sha512-NRcXKeCAzDSjbS9bXoDee26VE57dEbw3Snwv3gBDfGwe/Jfa4hHBZGugaN8Y8fUcvZiEKD9k53aRTzAxvhPDSQ==","signatures":[{"sig":"MEUCIQCkpqnHrWsnzhtwb+736XKP+WOuGKEZK3MGllrqYYz+RQIgT2/fdrSQze/EAUILAo41h7Tt11z+06TxOJhua0QBmDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143109},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/026644a40d33779b93fa10f0f342dfdd/10up-block-renderer-0.1.6.tgz","_integrity":"sha512-NRcXKeCAzDSjbS9bXoDee26VE57dEbw3Snwv3gBDfGwe/Jfa4hHBZGugaN8Y8fUcvZiEKD9k53aRTzAxvhPDSQ==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.6","@10up/block-renderer-patterns":"0.1.6","@10up/block-renderer-benchmark":"0.1.6","@10up/block-renderer-validator":"0.1.6","@10up/block-renderer-mcp-server":"0.2.1","@10up/block-renderer-serializer":"0.1.6","@10up/block-renderer-theme-json":"0.1.6","@10up/block-renderer-preferences":"0.1.6","@10up/block-renderer-block-schemas":"0.1.6","@10up/block-renderer-prompt-generator":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.6_1768824510031_0.1389295068689118","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@10up/block-renderer","version":"0.1.7","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.7","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"47dbc4dc4ec32f2bddbe3dff880a28749a48e4ab","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.7.tgz","fileCount":76,"integrity":"sha512-O1D8wfD09ENy54jp2CtnAP1IW6tNblfQ7X+B3C03J1lJVMO/tXhRP+VVb4BcRc3jFEd3zOuUiBckUpVZwOslnQ==","signatures":[{"sig":"MEYCIQCDNM919k0tucdcruAeNux6pe4RRm3fYej/CBOQYEe2WAIhAJ3PlFp9CfofbqKg/pYsldXt2SbNx11IlG+kxjk3u4Fl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143854},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/f3df05acc52d7b9c622e30d40828a942/10up-block-renderer-0.1.7.tgz","_integrity":"sha512-O1D8wfD09ENy54jp2CtnAP1IW6tNblfQ7X+B3C03J1lJVMO/tXhRP+VVb4BcRc3jFEd3zOuUiBckUpVZwOslnQ==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.6","@10up/block-renderer-patterns":"0.1.6","@10up/block-renderer-benchmark":"0.1.6","@10up/block-renderer-validator":"0.1.6","@10up/block-renderer-mcp-server":"0.3.0","@10up/block-renderer-serializer":"0.2.0","@10up/block-renderer-theme-json":"0.1.6","@10up/block-renderer-preferences":"0.1.6","@10up/block-renderer-block-schemas":"0.1.6","@10up/block-renderer-prompt-generator":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.7_1768830706611_0.17448244644921607","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@10up/block-renderer","version":"0.1.8","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.8","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"244bf36630a0eee1940dbcbe9149ada26e61b037","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.8.tgz","fileCount":76,"integrity":"sha512-QaNb+NRJpBWTk2Yx8fzGqcNV6FbaFqaO03gSZ/mQchRXjtLERg1s/eFpS7AA9IIoQIDXioUJmMalrZ4k6L8OxA==","signatures":[{"sig":"MEUCIAGKazyCH0gryaJiCYKOmNLzt41Xl0gBckMtDgv6/ZOXAiEA7jQQoXJWOtOJIGqNjYEFk0105bB8Z7nOLkvnlaj3gqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143854},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/f1a080739792a374f5ba4c319ed8e768/10up-block-renderer-0.1.8.tgz","_integrity":"sha512-QaNb+NRJpBWTk2Yx8fzGqcNV6FbaFqaO03gSZ/mQchRXjtLERg1s/eFpS7AA9IIoQIDXioUJmMalrZ4k6L8OxA==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.6","@10up/block-renderer-patterns":"0.1.6","@10up/block-renderer-benchmark":"0.1.6","@10up/block-renderer-validator":"0.1.6","@10up/block-renderer-mcp-server":"0.3.1","@10up/block-renderer-serializer":"0.2.1","@10up/block-renderer-theme-json":"0.1.6","@10up/block-renderer-preferences":"0.1.6","@10up/block-renderer-block-schemas":"0.1.6","@10up/block-renderer-prompt-generator":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.8_1768834430170_0.22618125843450798","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@10up/block-renderer","version":"0.1.9","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.9","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"b08d3c6e9e15982b044b0a6b96af7095f8f4fdc1","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.9.tgz","fileCount":76,"integrity":"sha512-ynYKMZ/E9J8DWNtxjdrZdskV+pCUuSjT0DCKOzouJru9KupPcQ/iTRexO2A0GtpPvWWM70cGaPqZG2Fc31lDIA==","signatures":[{"sig":"MEQCIGXRWqmR+248dtVSU/58x7SGQVCwF5RHym5WWS7LvlfCAiAa6nLFPX0Eq7YTEmpbhywnq8C8AB5NOcddXzL2dEDGmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143854},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/c29ebe416274cc5a9cb45ca9c239f221/10up-block-renderer-0.1.9.tgz","_integrity":"sha512-ynYKMZ/E9J8DWNtxjdrZdskV+pCUuSjT0DCKOzouJru9KupPcQ/iTRexO2A0GtpPvWWM70cGaPqZG2Fc31lDIA==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.7.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.1.6","@10up/block-renderer-patterns":"0.1.6","@10up/block-renderer-benchmark":"0.1.6","@10up/block-renderer-validator":"0.1.6","@10up/block-renderer-mcp-server":"0.3.2","@10up/block-renderer-serializer":"0.2.2","@10up/block-renderer-theme-json":"0.1.6","@10up/block-renderer-preferences":"0.1.6","@10up/block-renderer-block-schemas":"0.1.6","@10up/block-renderer-prompt-generator":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.9_1768908185424_0.8758151792362867","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@10up/block-renderer","version":"0.1.10","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"license":"MIT","_id":"@10up/block-renderer@0.1.10","maintainers":[{"name":"fabiankaegy","email":"mail@fabian-kaegy.de"},{"name":"eugene-manuilov","email":"eugene.manuilov@gmail.com"},{"name":"christianc1","email":"christian.m.chung@gmail.com"},{"name":"nicholasio","email":"nicholasio.oliveira@gmail.com"},{"name":"joesnellpdx","email":"joesnellpdx@gmail.com"},{"name":"devinle","email":"devin.leggett@gmail.com"},{"name":"darylldoyle","email":"daryll.doyle@10up.com"}],"homepage":"https://github.com/10up/json-block-renderer#readme","bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"bin":{"block-renderer":"dist/cli/index.js"},"dist":{"shasum":"c92936def4c12675818c4855b40d4e2deeea1a36","tarball":"https://registry.npmjs.org/@10up/block-renderer/-/block-renderer-0.1.10.tgz","fileCount":76,"integrity":"sha512-U9wm1sEm671P0kkTQouTMTnpJOcBIgfk2wHgkH1BmQm288Aj59tiOdfC2YhoQWUdBONcnMjaxN6lAUMiRwUFoA==","signatures":[{"sig":"MEUCIF8b5wmshjjxTeM84xcDhtRST5GENh53liC1sPDSOnHQAiEA3IC2IP3rLBwcqGrFtBp1Ni+dsE3zLk/hNXZyowE3MLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143855},"main":"./dist/index.js","type":"module","_from":"file:10up-block-renderer-0.1.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.js"},"./theme":{"types":"./dist/theme.d.ts","import":"./dist/theme.js"},"./prompts":{"types":"./dist/prompts.d.ts","import":"./dist/prompts.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./patterns":{"types":"./dist/patterns.d.ts","import":"./dist/patterns.js"},"./renderer":{"types":"./dist/renderer.d.ts","import":"./dist/renderer.js"},"./validator":{"types":"./dist/validator.d.ts","import":"./dist/validator.js"},"./preferences":{"types":"./dist/preferences.d.ts","import":"./dist/preferences.js"}},"scripts":{"dev":"tsc -p tsconfig.build.json --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1fb1f36e-8105-435a-969a-62e459215db0"}},"_resolved":"/tmp/fac7322fe4f80e5dded46914d3e49847/10up-block-renderer-0.1.10.tgz","_integrity":"sha512-U9wm1sEm671P0kkTQouTMTnpJOcBIgfk2wHgkH1BmQm288Aj59tiOdfC2YhoQWUdBONcnMjaxN6lAUMiRwUFoA==","repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"_npmVersion":"11.8.0","description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.24.0","@wordpress/block-library":"^9.38.0","@10up/block-renderer-core":"0.2.0","@10up/block-renderer-patterns":"0.1.7","@10up/block-renderer-benchmark":"0.1.7","@10up/block-renderer-validator":"0.2.0","@10up/block-renderer-mcp-server":"0.3.3","@10up/block-renderer-serializer":"0.3.0","@10up/block-renderer-theme-json":"0.1.7","@10up/block-renderer-preferences":"0.1.7","@10up/block-renderer-block-schemas":"0.1.7","@10up/block-renderer-prompt-generator":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/block-renderer_0.1.10_1769077369153_0.22047326572168124","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-19T11:51:30.886Z","modified":"2026-08-21T19:38:45.278Z","0.1.4":"2026-01-19T11:51:31.143Z","0.1.5":"2026-01-19T12:00:39.585Z","0.1.6":"2026-01-19T12:08:30.183Z","0.1.7":"2026-01-19T13:51:46.764Z","0.1.8":"2026-01-19T14:53:50.321Z","0.1.9":"2026-01-20T11:23:05.583Z","0.1.10":"2026-01-22T10:22:49.321Z"},"bugs":{"url":"https://github.com/10up/json-block-renderer/issues"},"license":"MIT","homepage":"https://github.com/10up/json-block-renderer#readme","keywords":["wordpress","blocks","gutenberg","json","renderer","ai","mcp"],"repository":{"url":"git+https://github.com/10up/json-block-renderer.git","type":"git"},"description":"Generate valid WordPress block markup from JSON - AI-friendly block generation","maintainers":[{"email":"mail@fabian-kaegy.de","name":"fabiankaegy"},{"email":"eugene.manuilov@gmail.com","name":"eugene-manuilov"},{"email":"christian.m.chung@gmail.com","name":"christianc1"},{"email":"nicholasio.oliveira@gmail.com","name":"nicholasio"},{"email":"joesnellpdx@gmail.com","name":"joesnellpdx"},{"email":"devin.leggett@gmail.com","name":"devinle"},{"email":"daryll.doyle@10up.com","name":"darylldoyle"},{"email":"jeffpaul@hotmail.com","name":"jeffpaul"}],"readme":"# @10up/block-renderer\n\nMain package for Block Renderer - generate valid WordPress block markup from AI-friendly JSON structures.\n\n## Installation\n\n```bash\nnpm install @10up/block-renderer\n# or\npnpm add @10up/block-renderer\n```\n\n## Overview\n\nThis is the unified package that:\n\n1. **Provides a CLI** - Start MCP servers and generate prompts\n2. **Re-exports all sub-packages** - Use any functionality with a single import\n3. **Includes debug commands** - Generate documentation of your WordPress setup\n\n## The Problem\n\nWhen AI generates WordPress block markup directly, it often produces invalid output:\n- Incorrect HTML comment syntax\n- Malformed JSON in attributes\n- Missing closing tags\n- Invalid nesting\n\n## The Solution\n\nAI generates a constrained JSON structure, and this package renders it to valid WordPress markup using native `@wordpress/blocks` serialization.\n\n```json\n{\n  \"root\": \"para-1\",\n  \"elements\": {\n    \"para-1\": {\n      \"key\": \"para-1\",\n      \"type\": \"core/paragraph\",\n      \"props\": { \"content\": \"Hello world\" }\n    }\n  }\n}\n```\n\nBecomes:\n\n```html\n<!-- wp:paragraph -->\n<p>Hello world</p>\n<!-- /wp:paragraph -->\n```\n\n## CLI Usage\n\n### Start MCP Server\n\nFor AI assistant integration (Claude, Cursor, etc.):\n\n```bash\n# Basic server\nblock-renderer mcp-server\n\n# With theme (recommended)\nblock-renderer mcp-server --theme /path/to/theme\n\n# With preferences\nblock-renderer mcp-server --theme /path/to/theme --preferences ./prefs.json\n```\n\n### Generate AI System Prompt\n\nGenerate a system prompt for AI assistants:\n\n```bash\n# Generate prompt\nblock-renderer generate-prompt --theme /path/to/theme\n\n# Compact mode for smaller context\nblock-renderer generate-prompt --theme /path/to/theme --compact\n\n# With preferences\nblock-renderer generate-prompt --theme /path/to/theme -p ./prefs.json\n```\n\n### Debug Commands\n\nGenerate markdown documentation of your WordPress setup:\n\n```bash\n# First, create a config file in your theme\n# .block-renderer/config.json\n# { \"themePath\": \"../\" }\n\n# Then run from theme directory:\nblock-renderer debug:tokens       # Lists color, spacing, typography tokens\nblock-renderer debug:blocks       # Lists all blocks with attributes\nblock-renderer debug:patterns     # Lists available patterns\nblock-renderer debug:css-variables  # Lists CSS custom properties\n```\n\nOutput files are written to `.block-renderer/` directory.\n\n### CLI Options\n\n```\nOptions:\n  -t, --theme <path>        Path to WordPress theme directory\n  -p, --preferences <path>  Path to preferences file\n  -c, --compact             Use compact output format\n  -h, --help                Show help\n  -v, --version             Show version\n```\n\n## Programmatic Usage\n\n### Render Blocks\n\n```typescript\nimport {\n  setupBrowserEnvironment,\n  registerCoreBlocks,\n  renderBlockTree\n} from '@10up/block-renderer';\n\n// Setup environment (required once)\nsetupBrowserEnvironment();\nawait registerCoreBlocks();\n\n// Render a block tree\nconst tree = {\n  root: 'group-1',\n  elements: {\n    'group-1': {\n      key: 'group-1',\n      type: 'core/group',\n      props: { layout: { type: 'constrained' } },\n      children: ['heading-1', 'para-1']\n    },\n    'heading-1': {\n      key: 'heading-1',\n      type: 'core/heading',\n      props: { content: 'Welcome', level: 2 },\n      parentKey: 'group-1'\n    },\n    'para-1': {\n      key: 'para-1',\n      type: 'core/paragraph',\n      props: { content: 'Hello world!' },\n      parentKey: 'group-1'\n    }\n  }\n};\n\nconst markup = renderBlockTree(tree);\n```\n\n### Validate Trees\n\n```typescript\nimport { validateTree, parseTheme, loadPatterns } from '@10up/block-renderer';\n\nconst theme = parseTheme('/path/to/theme');\nconst patterns = loadPatterns('/path/to/theme');\n\nconst result = validateTree(tree, {\n  tokens: theme.tokens,\n  patterns\n});\n\nif (!result.valid) {\n  console.log('Errors:', result.errors);\n}\n```\n\n### Parse Theme\n\n```typescript\nimport { parseTheme } from '@10up/block-renderer';\n\nconst theme = parseTheme('/path/to/theme');\nconsole.log(theme.tokens.colors.palette);\nconsole.log(theme.tokens.typography.fontSizes);\nconsole.log(theme.tokens.spacing.spacingSizes);\n```\n\n### Load Patterns\n\n```typescript\nimport { loadPatterns } from '@10up/block-renderer';\n\nconst patterns = loadPatterns('/path/to/theme');\nfor (const [slug, pattern] of patterns) {\n  console.log(slug, pattern.title);\n}\n```\n\n### Generate Prompts\n\n```typescript\nimport { generateSystemPrompt, parseTheme, loadPatterns } from '@10up/block-renderer';\n\nconst theme = parseTheme('/path/to/theme');\nconst patterns = loadPatterns('/path/to/theme');\n\nconst prompt = generateSystemPrompt({\n  tokens: theme.tokens,\n  patterns,\n  compact: true\n});\n```\n\n### Load Preferences\n\n```typescript\nimport { loadPreferences, formatPreferencesForPrompt } from '@10up/block-renderer';\n\nconst prefs = loadPreferences('/path/to/project');\nconst promptSection = formatPreferencesForPrompt(prefs);\n```\n\n## MCP Server Integration\n\nThe recommended approach is **per-project configuration**.\n\n### Setup (Recommended)\n\n1. **Create workspace config** in your project root at `.block-renderer/config.json`:\n\n```json\n{\n  \"themePath\": \"./wp-content/themes/your-theme\",\n  \"ignite\": true,\n  \"prettyPrint\": true\n}\n```\n\n2. **Create MCP client config** for your IDE:\n\n### Cursor IDE\n\nCreate `.cursor/mcp.json` in project root:\n```json\n{\n  \"mcpServers\": {\n    \"block-renderer\": {\n      \"command\": \"npx\",\n      \"args\": [\"@10up/block-renderer-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\nCreate `.claude/settings.json` in project root:\n```json\n{\n  \"mcpServers\": {\n    \"block-renderer\": {\n      \"command\": \"npx\",\n      \"args\": [\"@10up/block-renderer-mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd to global config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n```json\n{\n  \"mcpServers\": {\n    \"block-renderer\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"@10up/block-renderer-mcp-server\",\n        \"--config\",\n        \"/absolute/path/to/your/project\"\n      ]\n    }\n  }\n}\n```\n\nThe server automatically watches for file changes and reloads theme tokens, patterns, and blocks.\n\n## Re-exports\n\nThis package re-exports from all sub-packages:\n\n| Package | Exports |\n|---------|---------|\n| `@10up/block-renderer-core` | Types: `BlockTree`, `BlockElement`, `BlockDefinition`, etc. |\n| `@10up/block-renderer-block-schemas` | `generateBlockDefinition` |\n| `@10up/block-renderer-theme-json` | `parseTheme`, `parseThemeJson` |\n| `@10up/block-renderer-patterns` | `loadPatterns`, `scanPatterns` |\n| `@10up/block-renderer-serializer` | `setupBrowserEnvironment`, `renderBlockTree`, `registerCoreBlocks`, etc. |\n| `@10up/block-renderer-validator` | `validateTree`, `createTreeValidator`, etc. |\n| `@10up/block-renderer-preferences` | `loadPreferences`, `formatPreferencesForPrompt` |\n| `@10up/block-renderer-prompt-generator` | `generateSystemPrompt`, `generateMinimalPrompt` |\n\n## Block Tree Format\n\nThe JSON format uses a flat structure with key references:\n\n```typescript\ninterface BlockTree {\n  root: string;                           // Key of root element\n  elements: Record<string, BlockElement>; // Map of key -> element\n}\n\ninterface BlockElement {\n  key: string;                    // Unique identifier\n  type: string;                   // Block name, e.g., \"core/paragraph\"\n  props: Record<string, unknown>; // Block attributes\n  children?: string[];            // Keys of child elements\n  parentKey?: string;             // Key of parent element\n}\n```\n\n### Why Flat Structure?\n\n1. **Easier for AI to generate** - No deep nesting means fewer bracket-matching errors\n2. **Easier to validate** - Each element can be validated independently\n3. **Easier to reference** - Elements can reference siblings without knowing the full tree\n\n## Design Tokens\n\nUse WordPress design token syntax for theme-aware values:\n\n```json\n{\n  \"type\": \"core/group\",\n  \"props\": {\n    \"backgroundColor\": \"primary\",\n    \"style\": {\n      \"color\": { \"text\": \"var:preset|color|contrast\" },\n      \"spacing\": { \"padding\": { \"top\": \"var:preset|spacing|50\" } }\n    }\n  }\n}\n```\n\n### Token Formats\n\n| Format | Example | Use Case |\n|--------|---------|----------|\n| Slug only | `\"primary\"` | Direct attributes like `backgroundColor` |\n| CSS var reference | `\"var:preset\\|color\\|primary\"` | Inside `style` object |\n\n## Common Block Examples\n\n### Paragraph with Styling\n\n```json\n{\n  \"root\": \"para\",\n  \"elements\": {\n    \"para\": {\n      \"key\": \"para\",\n      \"type\": \"core/paragraph\",\n      \"props\": {\n        \"content\": \"Styled paragraph text\",\n        \"fontSize\": \"large\",\n        \"textColor\": \"primary\"\n      }\n    }\n  }\n}\n```\n\n### Columns Layout\n\n```json\n{\n  \"root\": \"cols\",\n  \"elements\": {\n    \"cols\": {\n      \"key\": \"cols\",\n      \"type\": \"core/columns\",\n      \"children\": [\"col1\", \"col2\"]\n    },\n    \"col1\": {\n      \"key\": \"col1\",\n      \"type\": \"core/column\",\n      \"props\": { \"width\": \"66.66%\" },\n      \"children\": [\"content\"],\n      \"parentKey\": \"cols\"\n    },\n    \"col2\": {\n      \"key\": \"col2\",\n      \"type\": \"core/column\",\n      \"props\": { \"width\": \"33.33%\" },\n      \"children\": [\"sidebar\"],\n      \"parentKey\": \"cols\"\n    },\n    \"content\": {\n      \"key\": \"content\",\n      \"type\": \"core/paragraph\",\n      \"props\": { \"content\": \"Main content\" },\n      \"parentKey\": \"col1\"\n    },\n    \"sidebar\": {\n      \"key\": \"sidebar\",\n      \"type\": \"core/paragraph\",\n      \"props\": { \"content\": \"Sidebar\" },\n      \"parentKey\": \"col2\"\n    }\n  }\n}\n```\n\n### Using a Pattern\n\n```json\n{\n  \"root\": \"pattern\",\n  \"elements\": {\n    \"pattern\": {\n      \"key\": \"pattern\",\n      \"type\": \"core/pattern\",\n      \"props\": { \"slug\": \"theme/hero-section\" }\n    }\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}