{"_id":"@adriaanwm/stencil","_rev":"33-6e199a7abfad146a02f269bb17db2590","name":"@adriaanwm/stencil","dist-tags":{"latest":"0.1.9","next":"0.3.2"},"versions":{"0.0.1":{"name":"@adriaanwm/stencil","version":"0.0.1","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"dev":"rollup -c --watch","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"ea9e18b5a9cec511c657c1126b013f51dbd72ade","_id":"@adriaanwm/stencil@0.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9KNNAgyIlQjrDplOFMZcOjqUCYxNtCQmga9rg18+Hw8WMJKXkGBVihWr+NzLdQh2vC2eyJNVCF6xqSySjm+gBA==","shasum":"31e897d142509f43fc591ec12aad5df403dbdc18","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.1.tgz","fileCount":6,"unpackedSize":665787,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSb9nxJHNOs8tSDPhK22sy5hC7bEvlhyoNZZGVczOy7AiEA6RygeHv/v76joyCA6Du+n/DHmnbmzqUW8tCBfqN1ncY="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.1_1698002981970_0.08914122232750521"},"_hasShrinkwrap":false},"0.0.2":{"name":"@adriaanwm/stencil","version":"0.0.2","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"dev":"rollup -c --watch","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"b6752e5024238e0623514f1e1f05f3a0266c0206","_id":"@adriaanwm/stencil@0.0.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qPI9KvEpNJC0FiKYys+8xSgg5FdH5zFPsR2hRv10dP02n0Fpj2aeKmqM/vFQCV6byKPwCsTVXQNaA1BmYTCcTg==","shasum":"5ff30d78b530de984bc6cdbdfbd107c02c57665f","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.2.tgz","fileCount":6,"unpackedSize":664834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQF9jWufEIMBjG0EyOk28+48wpscFCHvrqoWlBZF92gAiAa8TEw/C5quZFjqIMXKDha1QUnvOWEa1VAT6u1O6ZOxg=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.2_1698005410880_0.08571902827416467"},"_hasShrinkwrap":false},"0.0.3":{"name":"@adriaanwm/stencil","version":"0.0.3","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"dev":"rollup -c --watch","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"6e9f59f1326d5cde76f34f6a22056a3a56cedb27","_id":"@adriaanwm/stencil@0.0.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pnxi4QeatTxPCI7ncpVqEeq3p1Zw2Mvcml4bMev79+qDeUPs8TuBvy1U+bSMH86BuKe8ztswYBzgg1TcrbHbeg==","shasum":"87cce1dedb87e9c5044e3ba35389ff33d44682e3","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.3.tgz","fileCount":6,"unpackedSize":664783,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICon2VmD/AJkb1AFO6pDojcvbfOYRsrj+dTbp5OuxLqUAiALslgTQKR6lFFaY5w2LHPVXshGa/xCZhTu+cFE1IucmA=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.3_1698008632665_0.3624084109678103"},"_hasShrinkwrap":false},"0.0.4":{"name":"@adriaanwm/stencil","version":"0.0.4","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"aa6387216ab260bc8146d537369daca455ebcbb0","_id":"@adriaanwm/stencil@0.0.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ouvwW2InW0c5kwZexubB1u6Zm56lzxNp89BeHygDfkBEO3ROD3c0YrEOB5kLvsLb4+zXJ7Ic8cZKn9yOWE10dA==","shasum":"ec3274ed6e63f8da2e0fa779331ef485cecde614","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.4.tgz","fileCount":6,"unpackedSize":675633,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFto5H39xwcelmPUUUBlOQhVgb7Rxc71pFKP1obLBwCwIhAOkwnZ22JLNSTgae35W7vT7yInq0jv3uTnbAj8F2XR36"}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.4_1698102134460_0.6104609738596654"},"_hasShrinkwrap":false},"0.0.5":{"name":"@adriaanwm/stencil","version":"0.0.5","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"c2e11978ea5ce803d5b856c5cee042a9a34251bf","_id":"@adriaanwm/stencil@0.0.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kvAkIS4AnNXPFXYc0/bEFodpXoBz3xTkeD6UvBj+6TTzAtW1QQFQPurLZOTNp8bOioVOEDehckMnNjJx7Jr/VQ==","shasum":"e62ede943b3dcae62311ed9b880c60ecdcd80f3c","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.5.tgz","fileCount":6,"unpackedSize":669327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRQ8YLtkU/F6Ieu6d/wSPteXqhpOSe5aZ3tAIkhYfJ8QIgLddztVxTMPnCteOkmXjPo0iaDFdFnvHhyWJawEAxJkM="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.5_1698179676587_0.9571495281637119"},"_hasShrinkwrap":false},"0.0.6":{"name":"@adriaanwm/stencil","version":"0.0.6","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"ea4753c40222b7af019d56b5684e8d989a85d588","_id":"@adriaanwm/stencil@0.0.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Ep4L3FrwW4mwe36VbKcpA/1y5yxtT2XiGb86kU+uz1OdRoD1NBDUiTfKR0xGzY8kvk0wp42fmF6ZXUjSHEHotQ==","shasum":"3d241cd87f62512ef162b788aa983d123c2c10c2","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.6.tgz","fileCount":6,"unpackedSize":659686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUWsLMCgDcLnpbh8temHiUFhxzPK+y8nLVhvzOho1CGQIgCaJ2zbN/Jn4ChiD1KS2AEBLDJqPHwaQgRyaTCTnfg/Q="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.6_1698186057391_0.22499288480978996"},"_hasShrinkwrap":false},"0.0.7":{"name":"@adriaanwm/stencil","version":"0.0.7","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"2f95e29db770df39dc8e43778f4788c693968a3d","_id":"@adriaanwm/stencil@0.0.7","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-WNuPQJAiVV9m6sUAWKJuD4iaOfLB1crk/oRizGCosv7Itos/vQ3Y08QyL2LzcGyGz/kBHbK0PdtqThhyUF/kHw==","shasum":"81f3ca9ef7756014774d80f583d1361b724fa555","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.7.tgz","fileCount":6,"unpackedSize":733045,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/H46OZ2OEPukEQ7MzeR/RMgdpBwtYxvsS8m9FW0h9uwIgcw7bUk5i6Uz8DE4slkq1q6iaUfItj7ylCEQ8JOL1X38="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.7_1698301742562_0.9715147761378986"},"_hasShrinkwrap":false},"0.0.8":{"name":"@adriaanwm/stencil","version":"0.0.8","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"8119681433251a93713dd955d7815bf41cc25e69","_id":"@adriaanwm/stencil@0.0.8","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-mE6MbWBFoeUJZOJclP1FjsVrM+mp9/3glzzkUqflTpZZUklAcwGL1E1XOelq5uL+mzvkX3YaSvWV4PxTIeXtHQ==","shasum":"33e4d198c71c35f40573df8d0d1b9d156258c214","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.8.tgz","fileCount":6,"unpackedSize":739557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALhKcq7MjX7Eh8X9Q2kkkCCYf83NH4DfQu3EkjWsWqEAiEArTlb7ixPs1olEL2Tn+29i9Zq1UaF8RvFwgP1C5/ed/I="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.8_1698381046229_0.10127323700952018"},"_hasShrinkwrap":false},"0.0.9":{"name":"@adriaanwm/stencil","version":"0.0.9","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"00fb4cb0ee0770cc0892ac6187c0afc92894ae7b","_id":"@adriaanwm/stencil@0.0.9","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KmVocq1a5SrCJNS4ucOj3nzIWV+pVLjkzTQTp4RCY52hC0rMFvB/CQHFFgvq7aD4gEBSzfbdkb6IWKND5JNK+Q==","shasum":"c6c8425ba5954fbf6ca390b2b0e1f25292695e8c","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.9.tgz","fileCount":6,"unpackedSize":742939,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPfr3aivWJoHT75gFN51dzC/MLl2vuz3q8itnhcVwIHwIgJrEDuey+bVWQONvzW+CO6VvwA4zdtKFFj4LkRDUERME="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.9_1698386976054_0.9591902494983633"},"_hasShrinkwrap":false},"0.0.10":{"name":"@adriaanwm/stencil","version":"0.0.10","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"0711d98eb3fb06737431b7fba6999a0fdbd15e36","_id":"@adriaanwm/stencil@0.0.10","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Mh4LVdgUESAMbyWdP2ouNck15mWWLHNvjyljvXBOKoKOC9rneIsGvi77AYNVFpNptOAO7SZ/qw9mfJ86JIti7Q==","shasum":"62828735a21e3de6ec45e4f331644a3ab6d69ead","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.10.tgz","fileCount":6,"unpackedSize":752146,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQ9Pr29uyx6G6QdvLCx4tgqFjYVCzW289X5YTKhl9j5AiEAzcMongIxsmMi5vrKtMyANN0yN3a/ZwI9M5Q/iFqHm7U="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.10_1698428459271_0.5067987050238798"},"_hasShrinkwrap":false},"0.0.11":{"name":"@adriaanwm/stencil","version":"0.0.11","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"40c0ca258eebbe0906ec397efaee3f8a6be808f3","_id":"@adriaanwm/stencil@0.0.11","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5vUenOK3yegJQ0BS6T+kZE3pDzvebCtEmWkUgLJzkgRHsvH7X9Ibf4jyPqKIAW1E2pWMxCxrqIBlMg/QucEnLQ==","shasum":"bcacedccdc8b214e2552fffe90b8a0775a6ef7ee","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.11.tgz","fileCount":6,"unpackedSize":752241,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHZokOREVKG+lITkCm4PrIkGtXgOWTu2NZdWW3eNu/UQIgDlLJOeqBE2QzS4v9GxcgFSrqvCbXPNFEoE2yIGufXEA="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.11_1698431134139_0.1876729444972094"},"_hasShrinkwrap":false},"0.0.12":{"name":"@adriaanwm/stencil","version":"0.0.12","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"2a13c7e8d7150fb6f9eebb4e2ddff21bde75181f","_id":"@adriaanwm/stencil@0.0.12","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Hmpoppf8Y725cpwD0WkGNdTAZQiosMqGefg4kHOHi6cwsOphhwMUlYc8qubmAHkxhB+MwAg5/GmOi03r51NI2g==","shasum":"d4889c3ad80262668f9b4f2e95e330b7ddce00ff","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.12.tgz","fileCount":6,"unpackedSize":752807,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDWyT71ayCz7rwdp13oXTeftsfyuEWt07usBMFTjBUJNAiBkk5cgJkbcuhFt+Xcl/J1GG5DANHKzD4ccw4OCsR3uZA=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.12_1698769820293_0.49488869328083074"},"_hasShrinkwrap":false},"0.0.13":{"name":"@adriaanwm/stencil","version":"0.0.13","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"9f67f62cdd7efd1c0a20e38b08f3fb1738d8b7a2","_id":"@adriaanwm/stencil@0.0.13","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-MJGZzP2o2DDm7RHURsNv2VHFZ1dnc/m3GqPSAWQOnglaOEkMIz19cQSEi/aKzCambMDtjMd9eZVhrzdbv7Is1w==","shasum":"006cd0bf6057655583ea206f850f589d12714cd5","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.13.tgz","fileCount":6,"unpackedSize":753940,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjmjjSN8j7Acr/IjbteU4KQ4iqCaFmPNYTKbECowWs1gIgVSXabJB7XwEu+PZXaif0aA05cqr3VIi+0NJOl670a+o="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.13_1698874168500_0.2918965874220072"},"_hasShrinkwrap":false},"0.0.14":{"name":"@adriaanwm/stencil","version":"0.0.14","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"16a2c8200debb606145aa3772d5d344ffcd0449d","_id":"@adriaanwm/stencil@0.0.14","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pBEJadRmGVW4LIeWkmvqpudhzEOVguCk1PDmP0h/k/9OshyiQRV7Y6ZpsZfk3ZojgVzGCoUyupH8VNfKc3oj/A==","shasum":"8c843f380970feaceb7bbdc940063aa7cfd40330","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.14.tgz","fileCount":6,"unpackedSize":763550,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHOjvBgZsvjRNh3ViT84Zv0xY+MDiHfPY2NTuQ//YGKyAiEAyHcmeytLkKZ5t70Tb/V0+auIhI3X68M6TA2lCKgMF9o="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.14_1698941471360_0.36017943636876915"},"_hasShrinkwrap":false},"0.0.15":{"name":"@adriaanwm/stencil","version":"0.0.15","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nNOTE: This is beta software and is changing rapidly.\n\nTurn specifications into UI building blocks.\n\nThis implementation of Stencil turns an OpenApi file into React building blocks. It does this with the help of react-hook-form and react-query.\n\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` TODO\n","readmeFilename":"README.md","gitHead":"073de0c5e3a3e2b22c12d3946e2b3a41d66ba342","_id":"@adriaanwm/stencil@0.0.15","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-M+T5ICTrT1kehZKORbVpWZ6dhsnj802VY7o4KksH/NHftGyoHiHb2JV+bqG2F3sJ+Vd6T9cdA+VG66e2zdMqXg==","shasum":"eda0e043b33a515af9cadeec1f25ccd715eb1ac7","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.15.tgz","fileCount":6,"unpackedSize":770555,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxdrSywl6B3rzxM5xoUOAkSA6CnjFF7XyXV8DxbqK05AIgXIUrylE88iY97dtOPJISn1r44TFN5AePE3jy1fcReKs="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.15_1699291454795_0.8720659813672786"},"_hasShrinkwrap":false},"0.0.16":{"name":"@adriaanwm/stencil","version":"0.0.16","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"a61eb5d5a0f6db9b6458380799c027d32b0dca0c","_id":"@adriaanwm/stencil@0.0.16","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ITlp4N+uQmR9WdUzduaCkmRBiWRe2m0/WMiT5ogDmBq1AfQK2Y4NyRYPIq/tApmLHNy54lSTq5piBwEZX145iw==","shasum":"567d83486cd9ee8d7a8492fa2d38d19c8400cba7","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.16.tgz","fileCount":6,"unpackedSize":773708,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD//bih/2IFe6zEMyJaUbbI5FXq3LNprvgxKVh3W/gdrAIgdQ4n1GDfDGVpKLSaUAvVYRTGJo/t6yAow22kvoKz2XE="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.16_1700097704201_0.6690681536933178"},"_hasShrinkwrap":false},"0.0.17":{"name":"@adriaanwm/stencil","version":"0.0.17","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"925b6a6a1c27848d86a53debe558b7b96845fff6","_id":"@adriaanwm/stencil@0.0.17","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Le3n6ycUbAVi+UnXweXVWAkDNkQbfZsIW2OELtaqPzDU46QeoNi5AY7oBHd1ihnWUoOItmGiKqDC6dT4bZ5a4w==","shasum":"d0214337c81af29d5ba569183d5c589adb8613db","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.17.tgz","fileCount":6,"unpackedSize":779687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGpU12WJRugv4st/7Szj7jlu22fSQFotTOLSMAA4FWmSAiEAqsynfE7nbnMv7K0wri2voxpNt+PQZN27gKG2rhiAu44="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.17_1700168913714_0.5156416946104077"},"_hasShrinkwrap":false},"0.0.18":{"name":"@adriaanwm/stencil","version":"0.0.18","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"96ace0f9ffbcf4fc643462df2bfe4bfdf76bfdf6","_id":"@adriaanwm/stencil@0.0.18","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2hK4HLsKspErQgF0zv/00eQjTOKq7xj7n4+KrflhFxzoaYKszI9ev2epKUTz/ar46vKWfggif4XtrJPP33Jnqw==","shasum":"e0542ac0542b0591496b1e9ed9bc1c1193be9c04","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.0.18.tgz","fileCount":6,"unpackedSize":779655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh5S4e/C4tt8pdHXhn26rr8WTIKScMtug5X/QaDPx1MAIgGgD27sZ/9Wm+wjBj4xCFXQu6w9KXYjd9hY53FRFmNxY="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.0.18_1700192923054_0.5378653841989354"},"_hasShrinkwrap":false},"0.1.0":{"name":"@adriaanwm/stencil","version":"0.1.0","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nNOTE: This is beta software and is changing rapidly.\n\nTurn specifications into UI building blocks.\n\nThis implementation of Stencil turns an OpenApi file into React building blocks. It does this with the help of react-hook-form and react-query.\n\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` TODO\n","readmeFilename":"README.md","gitHead":"be75ec19792267d580a4a25693f1853ce60c2c2f","_id":"@adriaanwm/stencil@0.1.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-UoTTZRZBbRlhBur19/AOmbBfb0udGAXJyYeiJpBkBVWPD0VdrvTtw6cwBJgsgYGl8o/CUhadqyfUIP8wBVkQiA==","shasum":"f474163babdcab21c549f32d5e97e3d06c73c6ad","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.0.tgz","fileCount":6,"unpackedSize":779665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICO17304hjdn9/DPF4KVw/V5/zNtF020tApYqlLD8uv3AiBgP24lh3iPBMjxpCGsmfKQ5yskt0YOEAdmY1Zh31rgEg=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.0_1700604017954_0.28931530118719806"},"_hasShrinkwrap":false},"0.1.1":{"name":"@adriaanwm/stencil","version":"0.1.1","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"2a14bf76182bc84871a704fc72af2fd8f604811e","_id":"@adriaanwm/stencil@0.1.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-+zHuT/GQjk1jmMKrIFkql434XgKiRhat0rSKDzN2Cejn+XOu+pss9o7gisFmISG6Z4LTUF2WSAmQxB+CcUgdpw==","shasum":"4aa6151474223345c8e89e9eefef7b949717995f","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.1.tgz","fileCount":6,"unpackedSize":779847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDw492ZJjF5XbBocM1ycTv8iPprG8Qeu4b4DEZeyG/9gIhALDAuWa5d4BPqPCzvhr/PzN9WsoCgydc1VxRjB0YBQjK"}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.1_1700867048686_0.34012752488972264"},"_hasShrinkwrap":false},"0.1.2":{"name":"@adriaanwm/stencil","version":"0.1.2","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"828821c89404a7476439ca71a87b6b7475a1b3de","_id":"@adriaanwm/stencil@0.1.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8DRL5JhkT++DmePoyLbHFjj+rpxBtnKJB9h0P96gKkNGJ21/qxnh0qwBHn2m7JHHx1xBHMaG5hiC9xmkejpEBQ==","shasum":"e6a310c0291387f3a21323df78b4595d4ae2ab80","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.2.tgz","fileCount":6,"unpackedSize":782056,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5csQB5jQfgE+qqAyvJOdOYjy4e+e2N0q/Y66OET5WjAiAQm7KkpTN7lEWYcJBt27doqXSG/frYUYTFsACHjkR8IQ=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.2_1701305284172_0.15164935359123444"},"_hasShrinkwrap":false},"0.1.3":{"name":"@adriaanwm/stencil","version":"0.1.3","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nNOTE: This is beta software and is changing rapidly.\n\nTurn specifications into UI building blocks.\n\nThis implementation of Stencil turns an OpenApi file into React building blocks. It does this with the help of react-hook-form and react-query.\n\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinitions](#ComponentDefinition)**: An array of component definitions.\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` TODO\n","readmeFilename":"README.md","gitHead":"e08515a93f7e72d6c393f02f2275ee24fc01c1e5","_id":"@adriaanwm/stencil@0.1.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-wz6wJ+2livtodzFrEMCCwn3u55GyWPkXE1KeUyXeQ2K0PsDRWz7hGH3sOAjEwVQ3Hsb988A8/vmy5vtZLFOqSg==","shasum":"4aa14fb3568ac9ff6980222d7c4bfffce651a940","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.3.tgz","fileCount":6,"unpackedSize":782624,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGS7pZXNC4fIhMKBbD9YXORNsVhMrq5s6965k9eq2TuwAiAXEuWyZKPBt/Xm4YiL5pWvS1xnpeiDr++N3VPY3o/8Nw=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.3_1702576664970_0.8859844363609026"},"_hasShrinkwrap":false},"0.1.4":{"name":"@adriaanwm/stencil","version":"0.1.4","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.0.0","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"23aeafe87c672f2e5a4989053f7b98990f419d90","_id":"@adriaanwm/stencil@0.1.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-9DgDoA/DrG4ko5BkK1avuiXIsbDojU2InzDPSrH0e/LBDTbz7N6fM/9nsw3ppf4vnsxpVROYxWyYBxwRxJUR4g==","shasum":"a2e6a4337af5161b6234c596f9d2b4a9980a0964","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.4.tgz","fileCount":6,"unpackedSize":783031,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGt4xd98tHW0qQ6dxsv1bZHfcKq3vC1FLkiQ1ejE9tQXAiEAgRcLwYpSgEktJN7R7Ldd6TC7zHFVDumvNrGS7GQ0xvw="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.4_1704761555554_0.6750192089935971"},"_hasShrinkwrap":false},"0.1.5":{"name":"@adriaanwm/stencil","version":"0.1.5","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"4adb3e08b5eb79638ef5662b4c811082cac74e78","_id":"@adriaanwm/stencil@0.1.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-VYEDZJGQYSPk5D6pvEXbT8cguBkLtFfl1+SFE6DWP/4jET13qIHaRiR7mc6Y3yEr5U2b5cvpK71gbDar5wCP8w==","shasum":"d3285af5236c3f8e00ecec3400a469c887a13e8b","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.5.tgz","fileCount":6,"unpackedSize":783402,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDj0sAeTTZHtsEqPYgS/lruTxCqYTVtgDd5eov/t51yAiEA+TywVfl1ZpazmAF0POi+1H3VQTQruxr5ZYRfMlne4vs="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.5_1704825149742_0.20721542951184424"},"_hasShrinkwrap":false},"0.1.6":{"name":"@adriaanwm/stencil","version":"0.1.6","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"7b858b097234e0359f271bef8d96015a06700501","_id":"@adriaanwm/stencil@0.1.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ftll9LbX8XjZ/osSEhUsBwBjeG0f7h8KRuPrI1UTh+kqJPdUnUKXw9a01KijhTCTdS23o57S1gHHvdsh7zrhkg==","shasum":"685a99c9a06dfb78eeedf7b48cbe7fd327481fd3","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.6.tgz","fileCount":6,"unpackedSize":782884,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChUT46l8PUCfUJs5FnPxRgiI9qESZHfEwjxLGsbxG7uQIga/D46q4wteSdyzVUQej5eJJQNjZ6EZLAXuKHKNLcf9w="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.6_1704828938790_0.9465445593647026"},"_hasShrinkwrap":false},"0.1.7":{"name":"@adriaanwm/stencil","version":"0.1.7","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"6451401ef46070629e30cea98154c9ac3ed3a94d","_id":"@adriaanwm/stencil@0.1.7","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fQ3DqRyajJrrodolOgiDuq7LlWBoj7Wb+PqDjciBMlJPOyhQ37eerRxyxgqGeMIufs0xao6VkW/NYl/w9Pp+nw==","shasum":"0e2fe21c1aa34f6d9cb6b6f0ab0ccbbc1f569fcf","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.7.tgz","fileCount":6,"unpackedSize":782248,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4yjXafU+IltElLa9xVCtW/Euc+Z7HDwgNcoGIdbTLywIhAKQxPDg1zmC+UAZhYhe5x/JKX2XO/UcCtFtHu8n/y8vx"}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.7_1704848586849_0.7456815221396444"},"_hasShrinkwrap":false},"0.1.8":{"name":"@adriaanwm/stencil","version":"0.1.8","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"61a00ad5ae7fb4160efdedb274a6ba94a934aa79","_id":"@adriaanwm/stencil@0.1.8","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-LQnU2DE0xmXqujqsu1ehGKziVZZ66Yx+5X2lrbkNQpvfJqueGSFCGVmMilW1fmyyNlEudjpglw2PU3xe55WAiA==","shasum":"04b60129bc1fa5c1b7c270c34436075786b0af13","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.8.tgz","fileCount":6,"unpackedSize":782668,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDhA3wTludsoI9ZqbFVDGVvPBNt0cp4rS0WVlHIDhaBgAiEAlyodaAyUwROB2pZCdvqUQBML0ZTScFqh/qK+Fa+VZ20="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.8_1705952123080_0.006903750302972078"},"_hasShrinkwrap":false},"0.1.9":{"name":"@adriaanwm/stencil","version":"0.1.9","description":"NOTE: This is beta software and is changing rapidly.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0","next":"13.5.5"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"gitHead":"00c7b1c96d4a38cc801a05344c65d2c6dcce3c2c","_id":"@adriaanwm/stencil@0.1.9","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pDgFcsJ3M6EKZ/Zt8LMDvpeOtKRE+oWVuBv+F0IPi5Rkew4CloQ0GkYCWXh+Us+TiV4lM9CzUc+Obq92tKxlXg==","shasum":"0fe144b09993d375f827d880a1d87dff2560929e","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.1.9.tgz","fileCount":6,"unpackedSize":782788,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNTwM0ss6jucEVRjxDT8mft+28kKgyZKuAJKNKi0UwWAiBs6/vT42krc66ltTlUhlM8dnXt3eHSWaJaph4Gyqt9+Q=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.1.9_1705966326023_0.009256647082479086"},"_hasShrinkwrap":false},"0.2.0":{"name":"@adriaanwm/stencil","version":"0.2.0","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"13.5.5","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"de46c70f597d88e9fa808e5661a34c0cb7967b36","_id":"@adriaanwm/stencil@0.2.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TBupdxn1Vc3v75dFfaRGOT+rMrAW8NiTytFDKbFmY7xOBwflqD57n0FmtbJSE0D+oMCRHkI2tvt5F36zJph5hQ==","shasum":"6996aa9c6e1ed7ffd5718d755b1a35be958e69b5","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.2.0.tgz","fileCount":6,"unpackedSize":1318736,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3AFG36umYMWKGiMasFPziEZAian7tB8mMmHpEmbFh4wIgI0zgRjaP7lLio0bwkB9BWv5UlBT1ss50qaxJ08Owe+0="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.2.0_1708987800450_0.49296935272058984"},"_hasShrinkwrap":false},"0.2.1":{"name":"@adriaanwm/stencil","version":"0.2.1","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"13.5.5","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"de46c70f597d88e9fa808e5661a34c0cb7967b36","_id":"@adriaanwm/stencil@0.2.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-WchVtxMXKNURiCBot9eU9pUceJRMpbkWMuSdSessexptIAT2WoegtTTZKlOe9U8cQthQ+Av1mMqUknviKsfnaQ==","shasum":"aca0498b5cac7cd3adb578afeed9634bd520fc14","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.2.1.tgz","fileCount":6,"unpackedSize":1318749,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQCZ7od3JohpApcSnxc2bCiJjdfFamY4CJ1qdzRU5swg0QIfSko2yh/qK8ywTWXGCJzVtn98HSWsoxn4LLwLx3sstw=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.2.1_1708989009124_0.2965322520709561"},"_hasShrinkwrap":false},"0.2.2":{"name":"@adriaanwm/stencil","version":"0.2.2","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"13.5.5","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"d6484532dbd270ee3691cb901d8b39a9196f9579","_id":"@adriaanwm/stencil@0.2.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-eAZON5hnRzQjzBZ1vVh0TraM9+vdbwQbZ7wakcg9uaN+dX5aXMRXSOwR6vzXip3tdsJQmDEhQFc2abo/3m8HPg==","shasum":"33ab5f49508ef3c25598f27e4ca5f05784daada1","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.2.2.tgz","fileCount":6,"unpackedSize":1317438,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEWfyaq4Xtk9PTYRMi893WJqPSaeb3OBdC+/NlszXPPzAiBGx+lfiJTnfdyE1ZYflpCjoSUz6QP0qx0rhU0LIvGUVQ=="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.2.2_1708989231481_0.4175347054189966"},"_hasShrinkwrap":false},"0.3.0":{"name":"@adriaanwm/stencil","version":"0.3.0","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"13.5.5","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"6190e6bced1c6021d18e52e05533604a99ff16f3","_id":"@adriaanwm/stencil@0.3.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NisRp7lnLcMi2UOBhIQV/6FrFOTKu3/Auhz7vhgdEKWa6HzTLX1iz8uhVRdb95J4UIFMICFWiWy1S4kuSxZDgw==","shasum":"db21496862b2fda97775b4a3a70ecf3431e6e215","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.3.0.tgz","fileCount":6,"unpackedSize":1317768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7LG7TMf1sEhsq5fuPGV2nGqiv3iaVliCOkZizSAzzQQIgeiXDDGGi6MbERLgsUKl6JVWrAuTc3luZKNcy27rnZBM="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.3.0_1710786311320_0.14166126325912742"},"_hasShrinkwrap":false},"0.3.1":{"name":"@adriaanwm/stencil","version":"0.3.1","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"^13.5.5","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"5d19b2034aec9074e5019da774c526832e417057","_id":"@adriaanwm/stencil@0.3.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-86JsY3EwnHR2N7aACqn/KR44bVIGUrwgpghso8+Iafo0Wjkb3E0DJed25OZMRi/PzZTWZ5kG0OoaSpCkbRK4aA==","shasum":"ea01e8ae3ac33f81197edb8eddbcb604d48d8dc6","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.3.1.tgz","fileCount":6,"unpackedSize":1317769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLQVOVym/9PEvMyYGuF5xua+lDeUItZnfZMURmy9t4ZAiEA+ovEUg527OO+AuwPqSEsHosAvoF4lt6Toq5BVJn7410="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.3.1_1710786466783_0.29599523263408045"},"_hasShrinkwrap":false},"0.3.2":{"name":"@adriaanwm/stencil","version":"0.3.2","description":"Turn openapi specifications into react building blocks.","type":"module","scripts":{"nodemon-yalc-dev":"nodemon --watch dist --exec \"yalc push\" --delay 1000ms","rollup-dev":"rollup -c --watch","dev":"npm-run-all --parallel rollup-dev nodemon-yalc-dev","build":"rollup -c"},"author":"","license":"MIT","peerDependencies":{"@tanstack/react-query":"^5.17.15","next":"^14.0.0","react":"^18.0.0","react-hook-form":"^7.49.3","react-query":"^3.0.0"},"devDependencies":{"@babel/preset-env":"^7.23.2","@babel/preset-react":"^7.22.15","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.5","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","nodemon":"^3.0.1","npm-run-all":"^4.1.5","rollup":"^4.0.2","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-postcss":"^4.0.2","sass":"^1.69.3"},"exports":{"import":"./dist/es/index.js","default":"./dist/cjs/index.cjs"},"main":"./dist/cjs/index.cjs","module":"./dist/es/index.js","dependencies":{"case":"^1.6.3","ramda":"^0.29.1","react18-json-view":"^0.2.6"},"readme":"# Stencil 📐\n\nTurn openapi specifications into react building blocks.\n\n# API\n\n### Table of Contents\n\n-   [buildStencil](#buildStencil)\n-   [stencil](#stencil)\n    -   [useForm](#useForm)\n    -   [queries](#queries)\n    -   [mutations](#mutations)\n-   [Inspector](#inspector)\n\n## buildStencil\n\nCreate a new stencil `buildStencil(openapiDoc, options)`\n\n### Parameters\n\n-   `openapiDoc` **Object**: The OpenAPI document that defines the api.\n-   `options` **Object**: An object containing various configuration options.\n    -   `server` **Object**: Configuration related to the server.\n        -   `url` **String**: The URL of the server.\n    -   `devMode` **Boolean**: When devMode is on, some additional information may be shown when an error occurs. For example if you try to access a field that does not exist it will render a warning component that shows the error. When devMode is false this will be hidden.\n    -   `useToken` **Function**: A function that returns the auth token.\n    -   `components` **Object**: Some generic components that may be reused in different places.\n        -   `loading` **Array**: An array of loading components.\n            -   `name` **String**: The name of the loading component.\n            -   `component` **Function**: A function that returns a React component for loading.\n    -   `useForm` **Object**: Configuration for form fields, buttons, errors, and forms.\n        -   `errorHandler` **Function**: A function to handle form errors.\n        -   `fields` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of field component definitions.\n        -   `buttons` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `formErrors` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n        -   `forms` **Array of [ComponentDefinition](#ComponentDefinition)**: An array of component definitions.\n    -   `useList` **Object**: Configuration for lists\n        -   `defaultPageSize` **Positive Integer**: How many results to show per page by default.\n        -   `emptyStates` **[ComponentDefinition]**: Components to use for list empty states.\n        -   `loaders` **[ComponentDefinition]**: Components to use for loading states.\n        -   `loadingErrors` **[ComponentDefinition]**: Components to use for when loading fails.\n        -   `paginations` **[ComponentDefinition]**: Components to use for pagination. The component will be provided with the following props:\n            -   `useQuery`\n            -   `setQueryParam`\n            -   `useQueryCount`\n            -   `useQueryParam`\n            -   `calculateNewQuery`\n\n## ComponentDefinition\n\nDefines a component that can be used for some given task. For example a component in useForm.fields is expected to be a form field that will update form data in some way. Stencil is designed to allow for many different versions of components for the same task. For example, you might want to have form fields for different themes. Or you might have many different form fields that can handle text, (eg. a text area, a text input, and a growing text area). You can easily make one of these be the default, while still having the others available in building your form.\n\n### Keys\n\n-   `name` **String**: The name of the component.\n-   `predicate` **Function**: A function to determine if the component can be used. This is only applicable to some types of component definitions, namely fields. You will be given the name and details about the field, and can return whether this component can handle the type of field. For example, if the type is boolean, you would return false for a text input component.\n-   `theme` **String**: The theme name of the field.\n-   `priority` **Number**: The priority of the field. The higher the number, the higher priority it is given. When resolving which field to use as the default, the one with the matching theme and highest priority will be chosen. (This filed will be included in the `Fields` object, and will be used if you let the form render fields itself instead of passing in children. eg. `<Form />`\n-   `component` **Function**: A function that returns a React component for the field. eg. `() => props => <input {...props}/>`. For field components, you will normally want to use `useFormContext` from react hook form to hook the component up to the form state.\n\n## stencil\n\nStencil is the object that is returned by `buildStencil`. It has a number of useful utilities.\n\n### Keys\n\n-   `queries` **Object where all keys are [generatedQueryHooks](#generatedQueryHook)**: All of the generated react-query hooks for the `get` resources. Eg. for a `public/posts` endpoint there will be a `stencil.queries.usePublicPosts` hook.\n\n## generatedQueryHook\n\nTODO: add documentation about stencil.queries\n\n## useForm\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `method` **String**: The http method of the form (eg. `post`, `patch`, `delete`)\n-   `options` **[useFormOptions](#useFormOptions)**: \n\n#### useFormOptions\n\n-   `theme` **String**: Which theme to use, defaults to `default`\n-   `useFormOptions` **reactHookFormUseFormOptions**: The object that will get passed to react-hook-form's `useForm`, this is where you can pass along a resolver for validation, or manually pass defaultValues.\n\n## useList\n\n### Parameters\n\n-   `name` **String**: The name of the url (you can see all available names in `stencil.urls`)\n-   `options` **[useListOptions](#useListOptions)**: \n\n#### useListOptions\n\n-   `additionalFilters` **[Filter](#OpenAPIQueryParam)**: Add filters that are not included in the open api document.\n-   `id` **String**: This is used to namespace query param args. Eg. if id is `foo` then a query param would look like `?foo.bar=1&foo.baz=2`\n-   `useQuery` **Hook** \n-   `loader` **String**: The name of the loader to use.\n-   `emptyState` **String**: The name of the emptyState to use.\n-   `defaultQueries` **Object**: The default queries to use.\n\n#### OpenAPIQueryParam\n\nThis is an object that looks the same as an openapi query param, for example:\n\n```\n{ name: 'is_notable', value: 'true', schema: { type: 'string' } }\n```\n\n","readmeFilename":"README.md","gitHead":"898213e552b90edf5ffd6e0c0ec461ac4c9ce9fb","_id":"@adriaanwm/stencil@0.3.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-xlQfeeItnwtDb8trZ4qErHBRJMDC+HTlp5GZw2HN4tstpWjmXJ98JfqZMCqvgxWK1thhJBAIGLAfZpikzlsvDg==","shasum":"beafadff5bdb8c8e3681dc857271af705faddadb","tarball":"https://registry.npmjs.org/@adriaanwm/stencil/-/stencil-0.3.2.tgz","fileCount":6,"unpackedSize":1317769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCX+MdN4fS4HJXVwTJ3uPd/GeVa94FBxEjqqZ4UMgPYMwIgduLr8gt07GOcQK4+/FQM4hVWUUEgUBWIKANSMTl6CDI="}]},"_npmUser":{"name":"adriaanwm","email":"adriaan@niftylab.co"},"directories":{},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/stencil_0.3.2_1710786692151_0.1287254348905782"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-22T19:29:41.842Z","0.0.1":"2023-10-22T19:29:42.324Z","modified":"2024-03-18T18:31:32.975Z","0.0.2":"2023-10-22T20:10:11.374Z","0.0.3":"2023-10-22T21:03:53.028Z","0.0.4":"2023-10-23T23:02:14.761Z","0.0.5":"2023-10-24T20:34:36.977Z","0.0.6":"2023-10-24T22:20:57.691Z","0.0.7":"2023-10-26T06:29:02.931Z","0.0.8":"2023-10-27T04:30:46.638Z","0.0.9":"2023-10-27T06:09:36.382Z","0.0.10":"2023-10-27T17:40:59.656Z","0.0.11":"2023-10-27T18:25:34.422Z","0.0.12":"2023-10-31T16:30:20.592Z","0.0.13":"2023-11-01T21:29:28.882Z","0.0.14":"2023-11-02T16:11:11.617Z","0.0.15":"2023-11-06T17:24:15.104Z","0.0.16":"2023-11-16T01:21:44.481Z","0.0.17":"2023-11-16T21:08:34.090Z","0.0.18":"2023-11-17T03:48:43.310Z","0.1.0":"2023-11-21T22:00:18.187Z","0.1.1":"2023-11-24T23:04:09.021Z","0.1.2":"2023-11-30T00:48:04.436Z","0.1.3":"2023-12-14T17:57:45.124Z","0.1.4":"2024-01-09T00:52:35.784Z","0.1.5":"2024-01-09T18:32:30.030Z","0.1.6":"2024-01-09T19:35:39.035Z","0.1.7":"2024-01-10T01:03:07.127Z","0.1.8":"2024-01-22T19:35:23.383Z","0.1.9":"2024-01-22T23:32:06.341Z","0.2.0":"2024-02-26T22:50:00.664Z","0.2.1":"2024-02-26T23:10:09.334Z","0.2.2":"2024-02-26T23:13:51.680Z","0.3.0":"2024-03-18T18:25:11.631Z","0.3.1":"2024-03-18T18:27:47.019Z","0.3.2":"2024-03-18T18:31:32.484Z"},"maintainers":[{"name":"adriaanwm","email":"adriaan@niftylab.co"}],"description":"NOTE: This is beta software and is changing rapidly.","license":"MIT","readme":"","readmeFilename":""}