{"_id":"shader-composer","_rev":"56-f0a6ced92075689a2ac66d1834c5c89b","name":"shader-composer","dist-tags":{"latest":"0.4.9","next":"0.3.0-next.1","canary":"0.0.0-canary-20221130162026"},"versions":{"0.0.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.141.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.141.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"licenseText":"Copyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","_id":"shader-composer@0.0.1","dist":{"shasum":"67ac07e7e757c1d0426bc1bb285e56efe9ca5513","integrity":"sha512-KGAip3jqO8vsiRnwvYu/NEKqTr5ipwk2oSuHee8aP0L0e1rcBHfr3iH8i3d9VcH7eOzy7Gv+j4Bdu3bk5rhpHg==","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.1.tgz","fileCount":13,"unpackedSize":10954,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCychIxbqFGhTu3IGQe12nCHK2j/BUDDkZPOz2yso9hawIgXsDbEcDSgwyRWbE7Saj0UVH3tA92BJVOMQdk9YBj39A="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1k79ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZlw//cSBsrWUmCt8cuk7112kugTxXqnrA+8wdJlrV5KHbie79DMz2\r\n82gKxfRkXxLy9Uck5TWaNDY2UQY/oUWs6ell7OGYp+/IGbPwXUggfeUmu5s8\r\nIFFRO7X8MSrwAXMisZ4c0h2sqqiyif5d1qlD7a7+N+rACKhpt4Kg+ErJJQ4U\r\n0JcWjrg07tzGbU2xEIisIY/bchEc7OVtVIJFadXRet9qx4xAhdou7aGdGbR8\r\n0SEdnxEHY30qJBFLKsajFm0bxjmBAbHC3K6lf4bfIdaDzVKw/ULAQpKNY3/X\r\ntlfEZRs14yBnOUqO8GGE8yFa3ykHJeS2ER1XhzaZuJt1s1UIUJbN8c9Jyjr7\r\nJrapdSZi4sSJOwEQegD51oUymm4gButftf8DXSkJe1ideRMjxHfYxWNQsqYr\r\nFUnxjcr/uHvAj9K8m+SPBJQ+Sza4SL/kOvbdeGu6vzuA4Q8r5t/dlqOH46b8\r\nnNX1TgDDUtusSAq2iemjBLbg66aMLWtfL95Y+NzV9kw2GZ4cmOrdF6ND5mRo\r\n63YYNEPoM/xkpE/dfOKggHyikUbN4ao1IzAONwg+NjdAsJeMyDeBkSj7Ud3m\r\nL24PEcjgEAI44zvps8hkbU2IxL/WQHdvqXBl5+Du+W9RtgmFOCp18UKvZ/eh\r\niKuhv+tIrh/KD0cLcssFVjj7dm11l+kczDk=\r\n=ApR4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.1_1658212093071_0.4746606680258896"},"_hasShrinkwrap":false},"0.0.3":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.3","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"_id":"shader-composer@0.0.3","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-OxR3/7eAcftdilND6F/h+5l/xZWlcQuspbsklJnR5gw/VPYzT6L73jj6TV4f+30gGXXdLsS/1sEof5mvnOuwXg==","shasum":"4b2c2e9ed357c88afe029b046f0638a27f4a1495","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.3.tgz","fileCount":32,"unpackedSize":137188,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtOqi0Tsh/iXkCYuncYY780McrPvL6lXXdM81Ym4pYJgIgEGpUVGORR6LTxXl4Cci7HQGuj9AHQwwH8UGHY0GRslo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2STLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/kxAAhhYYJgQl9DDFRvHZhCYDCKiu1Cyl8vkVV7eb5CNHaJ5x/l6C\r\n7y3GUG+uGSJdmHRB+0Q3p3mPounludPLbLowlftzA+vRGnOTinzeW2emPNQi\r\nceMhJP7krysu4H7FXv26Ehe5xg8EYP/uYYl4CHguVdGn1gpRtcbZtfeu2GG+\r\nXXlYJm/BlY4f09cj2igQhCuE/tF8aNhJ5S9v5+jcqPAM1/Z/4iFDrsHwJz8C\r\nkjZq0E6Fb80S8+qm9N01bMBdDUV7g3uPzW/Rv9sBi29phse1uVwJD8QbzfY+\r\nHJdDVAIJwQDb20wFAqFb6E5FfgsZrEXzmjVHaHkl8gqrkUepS4uH3E57gmcm\r\nRvNn3WOWTgGk6MhkvKOuiCB23cFYHfWKJntoXvJFSC3n6Sp8W5GANHIjVkqy\r\n7OsOb01k/I5313KmtFKPjLVNX/qK9CyDMDeoxWLkGSzcavmBGoewsG9n/0Bf\r\nbkWdf7iweCWOYr1w0r9z4wv1/zFH9zD0wMbdZ1jGJai+4cpgBS0QC0JB6HZQ\r\n9Qe17Un2bHbX8wHM4qPqE8N4/PY3CCtlgUcYYS5YqT5jBViKjCn5LDSWx+Cr\r\n4TT0WGzzCGxcFqmZV7TIaQrAiFRnHZipE7GfODL0XMmfFjXPsl/0MhNUg8eT\r\nwPr++K+b9bc+t4XTP8NIeMFbyxVp23MxQlA=\r\n=U6S0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.3_1658397899036_0.3065198870186816"},"_hasShrinkwrap":false},"0.0.4-next.0":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.4-next.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"readme":"# shader-composer\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([Open in CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer))\n\n## Documentation\n\nFor the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","_id":"shader-composer@0.0.4-next.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-/AZp+MYhbRwMLe06TjPhm2hdeug7DnhSaGQH7JSde+f7b9bcEyY9dpyDNBp2OGoaadzqrTvPN2zkjg3mSbmmng==","shasum":"e7b63b92e5e17abe1c8719bf68a751118fb8521e","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.4-next.0.tgz","fileCount":32,"unpackedSize":137279,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFuJgGiKCudXMr5z4fd1C/0jsrI8xDohLxhcmkNroxO7AiApLvTa/OMj4r5XElDzZNFFN8WOWOnAXmp9wIhXTCCvcw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2SfnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+VQ//aOYCjyAB67VsqaJZa6f3UxzCdqZ1ATgL+xjXaAhEy9/4m0/b\r\nloQghSTFWMUmjV9TQM63wnLEHDZjV5J5avyC2Fn8fby4NpGF3h8w4eX7Dg8v\r\n9dFIehEKKzZDygme3v4Fd6FG7lyRuauvXDoCnu7/Lfv15OPwhf6OwnDyTT3o\r\n4wpPUqhkhZcc+9HUN4sCHbDFnrTmYDJcbjrVm874jZ1UmjldYshHVIL6E/c+\r\n83/Ba9oc9MKO4G5HBmdpCf25f0oKWDscchnzjJtbZHrcN7U3m53Pna940Nl1\r\nH+kMnK/Fpu+5xIhbb7/DEwx1FmgOmcVIU66GIAozOkLW0WzZ0B7DnzJNtFGF\r\nk3svy2xraMdOIvaa4d0RzT8BUY2IxqXBYarshYvSG9z8ka26iTmnF7rmxirW\r\n/+VxxYapxFLB3gk+2gADSNdnJbZu/XNdiWWRCOjJR59YLVBV17sK1/HRfrCz\r\no44+dI1NIZkUEGPSuWOnx0K0x1D0DE6t7n/3HuGSkduDknnD7IqPhOg8UDxD\r\nXkW6Ip6NDXEiCoqBj7/Q7td4m5tcdrF0v5e+eXWMf7k1ltIxV3E5EPpfkWE5\r\nAnJQdY5jso3ESsADgy2Qtdc9ou88C81KrgtMlUqTZP+rb+YNjFVsqmyEX6cr\r\nTO8gY6DvlJw9EdP/Cq1LjD0Zy7q7XOyDZl8=\r\n=7+Sh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.4-next.0_1658398695231_0.22147768526244938"},"_hasShrinkwrap":false},"0.0.4-next.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.4-next.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"readme":"# shader-composer\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([Open in CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer))\n\n## Documentation\n\nFor the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","_id":"shader-composer@0.0.4-next.1","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6R6FmYqYgPKV4V1yyuPcE5KUvU3iQ8uWTxeYPxPfqBLHn9w5qlX6htMgUSPJZj4HGS4QC2YGN/0u4CAS7GBmbA==","shasum":"22da8aab5abbbe6a892cfb9c7f9c1c9f4a04778b","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.4-next.1.tgz","fileCount":26,"unpackedSize":117919,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4dyAc3Q9+u7XObgGgRMXeyJ96rLZrlCqVjxgEmqa5TQIgIPHCoIWvOAWOtvzGtHYJlM063wc/xHnmdsnXXuKnsGs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2X8nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqdzw/9G1jJR6PrEiO/pZpEMTGRudHUvBun2ZPUvzZRigELdr7Ejp1b\r\nmvDXBP88JVDwiSC9VeBhlPcMstq2vrCZ1JUm+4CeEJK9ogdj76XddtDQz0kQ\r\nqhIkqpijLZ9O5urFPWZZyzMMfZG4wxOr+fDcY3uYx5nZOt756ayyORDZF7RA\r\nqWgsk6G7Qp6Dv8WwzoIJA4hOpMOmI71t5UWa+S/wQB7COb4QDQsyektyzg+2\r\nFP8J5I9mfdVXPT5z2N7vl21+hd23WexnzglnQZHGz5aWobc0eM1foZciENUi\r\nwodyzkK//ccDnKJDxzEeiEtj6D0B5wTRN9kXDNbM6rfPajm38bC+I/OPps3K\r\n/2MMbYaWFq+2J2OcFNhuSFkVwXe1xYp+uzL1h0ZA/ZMyjCv/S6nwTcaqE50S\r\nA57A8z9iRcl2pmX3evjMFUDRkHHmoq78Myzz2seF5MfFqwofRvJs8RmLIqSq\r\nmlBDrLGTf12ls7ZpuBgHXdEUyJWREZOPBpeCakeLo3u0+/9qiMcuCatvgmdh\r\nxCvBWHQAAQj7XO4h+Vo17LuE5N2fGex3zU35EQxyMZp/ActcjcW52v6G6tKI\r\nEQjTNkuGF6qzBZVuFCT2rRiPvIOT3LuXLu0u/hbJAVejNwOt2INvZuUi5DIS\r\nBE7/gNo0mckkSK3KzGkKEs1RtlcQblwvPNk=\r\n=MkqM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.4-next.1_1658421030847_0.3534481019520177"},"_hasShrinkwrap":false},"0.0.4-next.2":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.4-next.2","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"readme":"# shader-composer\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([Open in CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer))\n\n## Documentation\n\nFor the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","_id":"shader-composer@0.0.4-next.2","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-KsKroIHky8ryQo97duN2hpzh1iWELjppBwQ96FYP/xcmVgmfRtQQwemcqNDhhkaVF1AXA/+eWXavPiQBzFp2qw==","shasum":"5d42e5b6b0154e88038e58f84d88b6a558cee659","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.4-next.2.tgz","fileCount":26,"unpackedSize":115249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEZB8xMdlaNaL0SbUNuQxWQsQn2XjfdxR8JqDHu4YlVzAiASmHuEcxedv1+YrTkjDydiz3KpJmL7XsOhKiBRtGtwTQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2YnuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGhw/6Ah+82NQWqQxcfaHXrhW3u5ZpFbiZrZ0zNa7MPQd8ZukDqwpI\r\n89dNzFHxKi2z4Qul3Ovsge14NKu+ctYqD6N2qOVWHSCubarcpJCfKtv1y73j\r\nQjbDnvpakdnFIZ2eGGjjtzD2DHUUSehbrHpJZ7UsJwPEkah53SefYiQFrVoT\r\nnZNvcnB3r3sm/jRX5Eo7pmWzda1F5j3ONR3o5ZMeWNKJ34RKNEJusVvNzJKZ\r\nVPa7fkBWW6rCIlv8QBg1tqs+DeSh5n+NI1/bJm0BwRpkh4hQY/SsvG4jHMBi\r\n1iwQzvdnuB4Arrr2tjnzjBqMoXgtj7DcgQy6+vV3SS4hKbOrAJ3qemC0I8Lz\r\naSwMdJ+BymF+4+WCNNFUDUd39hJY62yLo/doQiihwhMvcVkc8pJ2JL8JKriD\r\n8niA77UCgSITub4DviWP2vz3DK+Oufvxc9ick38pWzj53cQwYOFQqINZ2Z1H\r\nnCKYIaSVy8M3rgfLS8vSSHBcipws7078chQI6mU0K62hVjDHWKbA6X/ZWnfT\r\n3LA9DCTdwX8Z4fLuIC7l6wffPk/b5yw5npx2LSZeD5Rwa8Itww4QmDTZNavF\r\nxNdTM2ksFoklbuvjUhGgHIMHESMC1yVsRLq3AkF4tYgcYkyyRBJsAhsA3sUN\r\nGsIqNlt0ulq+w2TmuH9JE84fvo/bfPudm8g=\r\n=N5Yg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.4-next.2_1658423790146_0.2578201352682996"},"_hasShrinkwrap":false},"0.0.4":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.4","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1"},"_id":"shader-composer@0.0.4","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-zyMsMK4Mu6hBkvCDQPlwn8c19sf3+OXNo3GvUXbSe9zJJG4VyZGJ+G4+WtMcZJ/D64A2ZxlWiWzAitBWJnFCkg==","shasum":"b376bbac24f628497b1175d3343bef18d162d4ed","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.4.tgz","fileCount":26,"unpackedSize":115795,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvDmCTTPoRP24k/ubBd8W0e/FERKnQmlxUVb6cyJRM8AIhAOsY+ccfHPDQEfnazq/Q7SAjGgNmMnhCDO2kyRl3KPEE"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2lpqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpI7A/+JhDsIo+pHVdczkR+c3F6jAelu6UcjbbbATt/SWgKnpd6THYO\r\nWbs09/JX200OrNzgaPOq08SJIMeu2yY51sogXBmEN099Mms30HZmC3BHbipB\r\nXzdE2Ich6VKWPs6EGtd2WrvfmINRIT7UK6clqSl4nWHzpBrFpTdtRQ2Sfaa1\r\nIDg95hT9T/Ay4kexIB+NGi5x1c1kl5ZAUkJgLE56kjLzNCjFAx1ftxcIAqdY\r\nkZ2f7Ww0Ca4PbgvDPvHs2GciRbflS9JC2mLErxOBPC5Tyjj9NyiIY2fDNjuo\r\ngvMtSfFUvFiT/7dnsI13sHVhd1dHENmlv00Vb8ER+9PJ3A9GzeBGN9NoyYRf\r\ntEgsSr0P9qXWzOV+L17ywML1i8c12UgpQJ90zsQqyyPIVna/C67QlRGxD83P\r\nUHbLFiBzK35yMek7hiSr3gUcDP5iHnewzx3EOZJcS63qET10LAO0pSOsIIhU\r\nhPgqsLP9b1kDY0ah7pVee58hdWEFlwreznaBsNQNcQkqDgg+P5fTPpa+pUXf\r\n0my1lbJLxifvDlJuK2ggA4uoLXWKZS+Q8H3y9lBCFeQbQ00Hv9jaja3FcB2a\r\ndlTtlg6+7QMN3O0IjnaZmpq4EXPoxXOvklitDLaXwA4NYGjfmRI5zD31L/IO\r\nsCScxLTX2M9VnWXpWBgZGiUz+A+IAxEfqvo=\r\n=22Dm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.4_1658477161326_0.8514359784910659"},"_hasShrinkwrap":false},"0.0.5":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.5","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.5","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-wDvPbcO1aUySCdEbJh1r342ayF7gdfpMUe7imC2GERgIPUVtO5NLXSgWfmLa+4Mp4eWyso1bM7QEN+EhsaCQRw==","shasum":"7ba050a706257f398425716cf084bdd2d32441b8","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.5.tgz","fileCount":26,"unpackedSize":121070,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICbpOdKseT9uFBx8CyvssZ80D30AxHs9rBSCnrV5MPY0AiBrvvKwuiJKuyb+Ax+3IIjZw7C5JT5XZCvwjCKIPiiERA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi20/XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpi9A//aN59rgq8vFVY9BcVn/ZEOIXsGkEF78MJ+iwlg+0IZRf1hfIx\r\nNaHP385ooRwM00p1qC65AAMiHDRFef0fVM/PQqhqQDgeXQS8t+nzd3+fuG5v\r\nqD8z21SbZYwezAQZV25MBxwDkvVJCjQ9S5TUI/jSoPt4ztM+ug5Mzcro2Kfy\r\nvVB42EwpeF/0SSrqQDLLZA1ZZR2maglH/5knhEzs8O+KSTyTIvq8AXkeuF4a\r\nHYhy7/zROdboA6MzMq4r1+bWHisKjxJfw2Fc3Yqmyf1F4cv4AlfI58Y5HfZB\r\nZBDiBEZqBslu+YEM2ZueljCpoeh001CbgAerfcyjtcfyGLtbevvN/cE3cqRy\r\nbC7+aTppVKMtSVpQIFdLpEq0NT/Rld5bwf6KKux92vIfu/xlQeZQHlaiq6f3\r\nB8bW7pyJXyRykZtCVGLFNlD8Gws13bOFWCun9G0Iui2HyU4cXh5hO9doY4IW\r\nHYJbpDptYJbXQxDEpauLKT+NlcQfjbe3zyKkJrwh78jNuW21M955DttuSgt5\r\nEFumX+GciQpcnFGGHuPoIk5mbcsFlL3Czg1A7shFdytpkNzpH6FjdypHrCbh\r\nS7t6i95ufJqaF1UfgUTsIQn5SftWP8OjxySXfe73A9dFdlLXbAdt1EK9j6z3\r\nwkgN4NOiUQprZLiauVkf3qQAEz3MOC1iGuE=\r\n=sJ+N\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.5_1658539991166_0.3496981640709691"},"_hasShrinkwrap":false},"0.0.6":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.6","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.6","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-z4AXLljx2Zrglr92uxtAsbGuZ2SK7tumcHhHQ+SXaLq5r50NpS3tWWlYaoX3n4Wb25gelzNUC7W3VIuePQySpg==","shasum":"6b13ab775aea5c855789cd0aa1927cb83779d3fe","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.6.tgz","fileCount":26,"unpackedSize":121295,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeGldcEx2wXcsNk1oAxdwbI5N2Osp/aDlhff+1BgQvuQIhAMP+8fKDciTfrfMVMaAdOhzLWj7XZn6VKo5Y32qfhfR7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi21EVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGhg//ceOYgGuvU+jzHawDheWnXtp3OnBAcPPadOIbLhfQyWiOWaxk\r\n2XBUlvpXHGCh8K6UjYE+2j4r2CuzHcMW79WOREKmSfBZ7tf1EnLdrYl4u1Wk\r\n/nhRy/W9eu6afUAXEonx1/yH2VNTjXvcl5L68S1Zxaw+NUZP3vK6JKropVmK\r\n4vq7bLnG+9Y46vwpUhQCIHA4Jfu6z/EcT/3biii8Hc5kgFZtA/nZhk4JU5s+\r\nw7ThiGcnX+86XmdGSQtGww5XuBguqL4gFmzC4x+KHefK3dSWpHf+Zq4zGrMO\r\n1kGfYYOcVj0pHEPCXOazcmfbJg/EpKd6ZZoCFQMMe9AL6Az5a+cWtctYKNmb\r\ncWSoF6rtvmDmxx+u5AeyEqrisFodCualn6I/6F5ud8MwoKwsv3yKyYvuyink\r\np1URLJuN5f/vy0Oy8rfG92CbWGzKPWRMT76m+HVy4ndhSRXqO1fkGizl0DHd\r\nsOIg5woUOfDlD/ir3vGiyBAkRdw63iKkcl2xM+7B8KlRKh/6dqKSzquNI8En\r\nIePXhbK6DQVm4PNxOXQ44sAoJHni3nHqjITvGBy4m+xpS83dd1ZBoc9NxR9n\r\n+XnPdwslAMGgClBxi2JM93jxE8zBnNnjEy+4V4rShBP8xGVPyKbjOMKSoRp/\r\nc2FSfckVqi+R4T69QsTzF8g7TjkQVH2jzEM=\r\n=xASv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.6_1658540309160_0.8729034689312074"},"_hasShrinkwrap":false},"0.0.7":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.7","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.7","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-ph9Qkcb/h81/SQHLn8PBM//YEWgoW67mywpgxbZWoqwcp3Rs5l50yNsB3iwWHT3Yz9f7CGnFOAYQnRhYWuG+pg==","shasum":"667210349973189614fce1c358d918b0119f32c1","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.7.tgz","fileCount":26,"unpackedSize":122639,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdxvrzoH+ifIiO5uVCvjbfsQKhuEXVWjeXv66PVW9ZqAiAvA2tVtoGIFqvk4MATBgxhqlKDOy5RyXXN0IIL2aw0Ug=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2+3uACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp56RAAgQE0hGjHIVjTcCOXQV2489aAnuyOxO3KkcZwoUzPw1CkzAbG\r\nrrhwJwk4bwfmnjZk3JF1hY2fNZRYBEHgkFjDXXqkG6K5ANT41VY5ABe+N1+Q\r\no+9TCnoF2v2M2KySsAiWdi29qGIMuCdXVBcc8aUgk2zST/un1epBuM3IKn/b\r\np6FDCVYFUNIVFitvSx9+or01XNi33rUKtqTg7tTNVuGEuYD0lON+mqXJvzrZ\r\nVBM55yD0hOaOJRaGF9dwTU7Pa12Bbz7dF/z+2d/0lrFKUCX39vgldFs8QwMG\r\nyxCRuQh/Rnx2XUjZWzXZVDtFYuzAnu5XmzfIKD4iyyVgR2/X6O+R2lsFLZBW\r\n0+FmyO73uXyuGI0zAwRIAPPzOp6JT3TZoZ+gYVJCD7jlvzeUJ3yrH9aFD50R\r\nYw16Rj18L6ngQxDAS/NgMiWn86rhaph5KAn2AE+nSA5OFxwiCwTKd7touWMm\r\nscGd0W1qTccdQtKndFxkz4vbC/tfA/YsJash8Lbkq4c8PAYKiinWTteRH9qx\r\nrfPzER/0Ijc/r6TglP1ZiCoURBX3cqrmlFz+DUjkrK89K6Pk4DJBCZLVPfo0\r\nIXrMwKhoAoMRDj1jpBOEsdLvyOICnhAjRKkBtjDDT/LvgiLCXFJ8Uqxrj146\r\nz7sq5Ni+XThcPp4LvNL4HDawMzfYi1HvRrA=\r\n=JyIh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.7_1658580461859_0.02749887004594087"},"_hasShrinkwrap":false},"0.0.8":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.8","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.8","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-5UMErXRHnIBjLh+rVuKFv5AKOy7OrebK59FD+7Fey+n8Yh+xKdSI+0f1YrgvTUZtibwKUA9GTaGZW5cCOP5DoQ==","shasum":"148c051a88c89e0a20c061545586f611f8a41cea","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.8.tgz","fileCount":26,"unpackedSize":126484,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/2L3cGW6CB/+ZEkntE30JxPrIykiRzmn1K81CkRWM7AiEA1Zr4qzzn1VabHIoTIzvjAVe5kF2Wd1UkTNOA3aO73kw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3EZ7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkyQ//VjgY1p5xcOTpm0Pkuk49rZ+gXeKC4Gn+uLFgeAZS0cJhgDPq\r\n6iAuI+94mXrzn6CvcaImytMAESv7MSv+ZbDR2O2PSoADvw70aEoDedzL/YOc\r\nPATRUX4g9IzHqVBXcxyVQWgU1Byy14jPSJhZ+sNjHpUm+mEEVEYFDPAxa6x9\r\ngSgnfuGKqtt7bQuqho1KQOyVERla7fyxrF75KbTGKF6VlTy2xbVL7RVQ4umH\r\nPXfTgVUzbD0bn/tbuSRY6Au+5yp5dIlJMIpCB/MtChX70x0IJvtN+9DsIBNA\r\n8Xqh/dC0JrEj/EGHCE0uZ8Eihn4kjo6pYUBLUAwpM4PmbjzaDP+pCPzhqTov\r\njYEjz/eHd3BrFQqUHfU2gOaNsfLzaIItCUJmdlKKqIwhrAxagLAbUIJnBwD+\r\nvqBf1OphkSneFR/Tg7ba9HDFPFRWcVsB1pM0iSHQKPLP4JAZHWXNiwrtMART\r\nR1vSkI7Xw6P3YxjVTUUE6FdyyHANDfc/8gcv2ewLiRDTRDWpTYlPt+eIQpTS\r\nGD6EDoKFH1Sy+HjwoGH/WNxACnQax7vjTGJbMJUB6RSBAxpQgLh8DUfZMnEX\r\npehiJYBkBvCsSdKzyCQQO08fJB7QkFBinWNOhRl1AeoAxYK+20tXd27nkxk4\r\nBFQAxHZBPIz9pRj6/vkXfr5dQkCmjbDvdgg=\r\n=eE6u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.8_1658603131407_0.028147232353446183"},"_hasShrinkwrap":false},"0.0.9":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.9","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.9","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-S6NAbl26ym4oEglwCepG8GTZufiN60w6E7JieQPWnB+lEWy1pTYj5u3nL4m2fbaR/NgTdVHihjtww8XPIbIcNg==","shasum":"f5034d7831b2f64bb323f6473cfddf05edbc4a8b","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.9.tgz","fileCount":26,"unpackedSize":127463,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAMtqXBiKhVboi5+01fxAVMdcV3Q63D6O/nwi9lV4Pk3AiEAgGxfp4TuvxZhBeyDSGYMcOZK6nhl36AYZ7ViRUe6DWo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4QmiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/chAAijDcws/w4V8l3CM5RlnY3QPvONppu9mzb+fvXu/X6mYmEKur\r\nSkOwla/Y5B18M1NRl4BRvtAe6TsT3hxglmGFbQnbtwhxfTzaYR7rUG9umW8T\r\nWYDB6pVh0HRaPVqKCa48/MUM2Zq9JzAiHGonJ+CrNm+bh735I/+mIm99TX9U\r\nkPITYe070jtl3PNFPhVwu9O3k0yt7E+kXFFQJ940arLW5kpMKkzRBE58YzMb\r\nv43lQsk1yAl7RlxWRSsb25JthnaF4HBMq9ttxDZgdlzncj8GDhSXJElEEMwO\r\nma9klIeBlgwADhWHvnuqTcLIWuI82sIy65zaKfxE6kC/lviHi5fgy2W8TVgJ\r\n7oGw5Mts4uDXwQkvJu9+Tk8aUeR+dDSL+wJHddk8xcv/JhG14GqExolZVvPc\r\ngTlamq5hgo7AIYtYK8YCa6uAU7NOBK11Y/z0W0a/swzTNOgdPDjI+dBiXgDP\r\nAJE8RSv0mZn/uhpEsdnxib8lmrlYR6Xw/cw4/nqmHiQfYzz+xR6Ibst6bbKk\r\nmr6Vyg1jCojVYf14JtZYXUsjbDjYbqR3ClG9iUkZtrIbF0MseK+BpP2F5qk+\r\ntw1Ex8rWT49BTk1k8WI2ry77u3qx7mgwUFwnbyhLQQoFwpjh6lndUr6YJCzn\r\no6By9DYANhcpdhbd7Bqvm5AOxgEMvfrlH1U=\r\n=TYza\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.9_1658915234468_0.3881156089444293"},"_hasShrinkwrap":false},"0.0.10":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.10","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.10","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-tsanIhXPGWjaxBlcLXmp7z0Yp26hjWm8thh9BpLFn8FGEIWdL3A4II9JlWigHtpjZZx5EyoF7BhdQ27tqXrJ3Q==","shasum":"6a2e62edbe45b85ed9e0b140f83b95e9725754d4","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.10.tgz","fileCount":26,"unpackedSize":127622,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyrhW6XWErC6XyELIJtPvg7DE5GZxvjpZANwBfeLcJsQIgdjPaS8XT8AEb9YPDJ8J1nNvIn92nGQ5yqbCQphAQiW8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4UwYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrulRAAkb9hxPoVfjgB8cPYrze0f0vJL6Eg2/YOnjCyArD+BwR5JdlW\r\nHfE4oG/CWPXc2gQrUWNzoHBq8inn6OJSgKCEgZ47PuLhVCi9UVBFf61VvXCO\r\nHimGbV8ZBWMMUu+Tg/zktP3TB+8yakYZfKXihSwbIZG3nBOia02Wn4otdj0+\r\n90C9oaLTNvxFjl24zwlPA7MzYN2xYLFYbo90i8VY51FRF1UUR9PAvfP/LhHJ\r\nuVr0u2T31yKzMvzBqG6jjKNWO6SSdTd6STiKj3RfHSgYytxN8bz2GIItXAuB\r\nv1b9XUNVXNMH8Op/4ONKOzCh9vawJKhNF3mx4af3T81A2P6CQYumzOZVCgp3\r\n43YXkink9kS5zT0p/7zDnyGC4Bc03Jmth0Zf3QAy+BFdQ4xPFH/krImSWmni\r\nX6PsiH/39Ynll1/cr5ti8SG3hd/vcp9zhLEsrbEJtF0809OHwolBE7a8kdb+\r\n16p3foii8ObtTSxfIc4bbWKRCNeVheS1tjJMmGCE7LQLTwWFvohKl6/MtIQz\r\n06bI52uqs+UnljPOkaRUGzouLn1zXkxShjfjplXaw/miKcrvQp8PWNcuh+hi\r\nffCXijotlCjefsO+cv1IvlxlzanYgubiEKQShC5LiWZC9eD3U5JQIF9qCDHz\r\npeCy1jcTJiAkPbRzbeBEV1t5S9uEfgNayc4=\r\n=PkrO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.10_1658932247718_0.9760702270394852"},"_hasShrinkwrap":false},"0.0.11":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.11","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.0.11","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-5wtYV/azLj9C2MtLbQn+k25hHmP6Gw9kYIo7hrBuiNwIAmzmXrLdhf+IoLUz2szA0asudIk9Bxao82cH2wlEyA==","shasum":"3f938905b1a4e593921c7b100d0e6ad2fa53e90b","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.11.tgz","fileCount":26,"unpackedSize":130099,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrBeW0dtvU3kpKJ9da5DsrHBXkdxASyvLjaHfUyFCuYgIgOuqtx0p4bf0pmCvJkI5zr4yZM1Dzl547tZUzAcDI/Dk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4ZhGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrjng/+PFpzaChQN9TwOQ1cRU5HF5EVkL1ymiPBNxmtx6d4+QrsjiNX\r\n/PGLmoq3fKiol+ZJ/KNwl//40lDDBJD/HXa1FiPi1D/YdF1KoXzQZzP1Xijc\r\n/XLTV0dho+h8VW8UR0wR6i4eflsVxF99nnhGwfF0iaSyZh4s/bdPvHQg5ndK\r\n45bLDfakL/WKp62GO8XEK6jRBtQ927eVhOsycuUJPf0hEmGY0BJ8V0eRthaY\r\nDTYowRUgggGFI1G5lDj9oxDols1ivZeg3ULQph+zEBQaAAjVKKrXxsMfiYgk\r\nRd8XrIVPIu8+GvH4j0Kta7Ifo4LNnC7/rrkGVMkuA7xxjcsNBeSkGMVzWYK3\r\nPitFX9RlFnBJxmEueDzyG1cv8tMNelEZm6U2nEVg0gfbDDyHbGSkwOvS0IDv\r\nu/evKV/8QHpSwRaa0dZLWRiuDPKe6B4v9sn/AYJnfhwWTITIT8TVr97+wupf\r\nGmlK4Bs3JklTHw8MEY3sq7cRxZZUc9b+hb9Lz0oU9vI8Nz9335RyUO5pQxMu\r\nGu13FnrNOJZedgtVKQcC0BBK7ZYzT1XI/bokFePV5Txgnj6VvxIDD32tgGZX\r\noEN2hWIfaMxifv8GUyzx/dkkPdbsm9hf2HOIO8N0LI2cu+atsIF+Gp/nvnzm\r\nyaZ04+Mmqz4hKfrnjPDRM5aqSt8D2PiqXbA=\r\n=M4Ur\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.11_1658951750668_0.20919215258271207"},"_hasShrinkwrap":false},"0.1.0":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-M+ShTmMUmjKSx8tCB6CSO6M8EG/eojdAkLRXS8CEJYMlhQrclvmu8yvu0ip9Rhqq1eSkfYeex2by09MEkYS44g==","shasum":"c3476b893ecf2842fce390c99fc0335e5642bcc5","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.0.tgz","fileCount":26,"unpackedSize":133701,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6QPZPIrftH8qR7o1Iq8RZk6iREgusA8J9hBkpWfB6GAIgILbz759l217TuG6m75JTD2ERewd6bHaE0S44f2CnAOE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4nCUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/UxAAhOVL0bmZwd/QYh8w/4g9+5DApqHnL/3BzsbLpkbnCEIpij8E\r\nE6du1YIBTLooiU8+8TKT6WC6hRVxOwflhiHXKqo1VPRv/Bpt1KQI4F5kfr0G\r\n9ArADwUbAr9Cp9KPlrlv1LtapgV6auYJqxkncu1QQQMmAwTn5hWaiErYVT9j\r\nNGFDPvVFJb2ENAA5W6rDBOp2kUXPQOAa90P/tMFq5ZMsj4kpHEb52x5+sun1\r\nU7q5wz4gVDhJUY/5wodvMdMjsW5GKRPA2gM6U28gaJo3D0ClHO6rybGFdsSF\r\nzFRyF+GR/rlp4bu4X06qeOwo9w5xpT17yNMeo4ek+JxPTrM8ZmnTMjn3wNHz\r\nMJcC+jHHYcMs132UmYobswoAiIU8+j53BVsZQh61igpfRFZ5q7pBFmGlqVt2\r\nbmVcOX4ykUB7LrVJEJECbiIj87XX0+W0Q9BRVwMviPbAq3fFFmx6ImNd1gi+\r\njtq8lOfhoMUyTk9RQyuKfk/XoeloEkJYm2TzPkOn0suRu5qsdbsJ8uHFLiWs\r\nA3JzN2WLn71Gs1Ai3L0xwIo9xM+snjwZZJ5thwu21VZFwgDjIEccNbiQKuDd\r\naODB5N+bf27qXBgQ6byV3+lDnnbL1etNRLWqKUVKLKs2dVqJC1fZXA2eYf71\r\nky2KU/OuC9fqyc2AuBvV79mhMPm/+fIQNs4=\r\n=HaS2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.0_1659007123883_0.5558271196518783"},"_hasShrinkwrap":false},"0.1.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.1","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-oVxMtG4MbMsPFfoG6Zjqmozv+1N89nosuHCM9aA1m91TDu4up3ONBIZ7mTYbbgGltdGf9WJzhhALxejBjK19zA==","shasum":"881e2a6a4ca4e22b3f6e2890205ad5d461ad7ff5","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.1.tgz","fileCount":27,"unpackedSize":142276,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsathyygf1bZZMAlfzKI93tOEYny1qHQ7ZNhdb86J71gIhAKuhre2ZCHyOgkGgKi2R1GZvD9ATF+y4be0o1hRTyrG0"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4oJ/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqr/BAAguX4aUrKUoWqYDJckYQHgpmxb4yyAUa+Hs+BWfYTOI12TcGs\r\nIzuOYmy62EvG8zWqrn7GvCwyzg3xIgDLfxS01IMeG2dzhYy+C3OIBFZ/bDt2\r\nQ6GCEGmzeeuGXyhkLJ4C+u3KFGwhcGgmz0TxnYnl7meZ9D6JI1D8sxh7SIbq\r\niLZ0EodTVZr3s6J+bgrY4aHvyafcCC80dPCpWR4VC42gd8dq3pa9hTSSCcYm\r\nosxLjG6rtYN3Wyv6D7vQFlBwDfhRXSlk/Gjo562X+cj7XzqQvB4cX8uKLHuh\r\nrxxQCD/GB9/2lQxhjEG4KQCnhEqoLhymNEw3oo857imK5IkEFFCnX+80YSa8\r\nEm9TwW8zpmwgeCUa+7qKuE2N3M+0+genWC72oobh1DwWaNKIkZLc2pU3lwIj\r\nubufjv3CVERHRg7ZJhz5tS0dTt08euluLGawua0riNr+gQ8jiYCujkypYP0y\r\nAyiiJ4IjKKbH8dZ6VBONpPrnt8cfwf3gzNj07nVjq0Zqrn1+Ys2nPi/P21TA\r\nVY8kcKakn1QoWTHTDVTsiXGAoRIDh0fwVCHU2VSsMfc9Ivo6BF1/lp7VO2yB\r\nlRRNqxhbEwMcfrrN44bhOVHVSAo+AasXxmDDzolUfCCxc2hmIaLc/ny2fjCN\r\nX9tm+6l/dkiNF9Lwtt1mzEetUabKZJh95lo=\r\n=OF/U\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.1_1659011711420_0.24174633569907522"},"_hasShrinkwrap":false},"0.1.2":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.2","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.2","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-5uHXbHCBjRUy/kUpk214A6nOUVPNM/g2VKyh6dvY3mvhIhU6VixkeQFhxKgcXtAXosSGyMkRYwi5uUJf9TRWSA==","shasum":"78ee16bed0a9ca69846a5dca4ca0ce425db13e0d","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.2.tgz","fileCount":27,"unpackedSize":142587,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgklyU0eY/ONcrvd/ZMdkdulFcmYKyMqUk3MKOl71D3QIhAORzwT2IkkregGcw5U28KAfY4LcOgWQ7wltD4abzTyyx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4oluACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfdQ//QLami+jIsGe8aMjOrA1HsYHDw/tMNfJkUltHBi+8IO6/RAYW\r\n3Bpxp3lHyyh4VXxgRS1rYMG5i0V3DbcSbiQRgR3GVQF15hH5vnNAdzYtZwlV\r\n43qozXxkxrVA14tOG1ZNk9n7eW8J8yR3wylghT3Ov5RnSw+U5lzUdbDd5gVM\r\nBHXV9SgfjFzqJ1SRRufEFW+350jMuyEpcgXvi8fmjH8HeTCA4qhEgZB9tWyA\r\ngcEP5Yvapw3NzD3cFI9pCxgg4cdNCJCIz4tYgensn+73F/uzLegLtw/2Ou/A\r\nF4QUTDw7w9ZSjflOXHo4EawnRdXTRD1w0fxRJPgSNhXLq0amrURlDbmOHomO\r\nYOMOfdT4Kr+KbMvhXsvHI+VvjgsWgX8y6Uk0rnB9d1Bj4sAmHWrC9jC2hSLJ\r\nwuz9Iwuzt7Ik2SXTXNmvxq+GfKZ1ZEAJwgWncaKUGbfkhIAKzuO2hpb9P9uV\r\nBQI5Gm96/CmQCjE31FsU5sE/YnofkpLYBicCnMGpucQwHZabVL9YwWF6QrcJ\r\nrY3gaPqhXwQfTwuWFhadFY3y84LmcXH1R1/tfwJDZ7oEhv4nQzFiqayarJCq\r\nRKuLTdhmfXqZKGEiqS7oHMrpt6/KlIpuBLR+28OaNW6rGECW9LpAgcR7h5wZ\r\nyQ4xhok/gS4c1vGZR5oIS47KOWZfDif2yMg=\r\n=7LX6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.2_1659013486383_0.8926329369559087"},"_hasShrinkwrap":false},"0.1.3":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.3","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.3","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-hBQ+ymtIfCPveK/8mE9p+aswDi6X8kK4I7SnXdM0EOHBax9T6Rqi0Foi6OHDp+gRzS6Y0Qj4dGOK40hxV7sxpg==","shasum":"486db4089ee911a65231050828e5baa9c6913852","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.3.tgz","fileCount":29,"unpackedSize":154419,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+xGBFAktwJww+UXx0L7Z+bRX+3agPfBTvVa0qf1hfyQIgQn+nIsFjfcdqBDIddslqeE+dcl+1Ygs1ura8TqMI2J8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi46bSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3MBAApSPRe79OxYwmxxE7HdNf+z/0kfT/sW0qvIgAOZJCUe7xmXhF\r\n1rkonTszRUj0LL1MK3RmowrbIsZ/mxNbLxdLDf29QEq8e2oMq8vEMaY4ZVJL\r\nRPDeiTx1sewVqCQYWC/FyoGsuExBoKYMiYlDooc8/EU/g8495ffckrjSRFjO\r\n3cWxWcUXC650H0eujIpFqiHcjyyGrren2Jm7NyqIgrD/T13uohPSaArfqwtg\r\nhX0ouFHeu+A4Ebmmj2Harp5F+KQES1baQKomsRq+nIkPhskBR4B+EY0pS+fA\r\nnzxiCfV6hLxo514vMWATI8lAbmVjTWlVFPU5QIcDjcCwoL7dwlkOyovdDOlT\r\n7XvsnnaDi0kKZ3Uguynf+WkwhPb8UsxVcePjdu2TeFs3ShlvezG/OqYh7X9N\r\ncL5uqjq24xCyk9Ncqa7dQagykri2rijh/byvg7zKLxSPJGMJ+Efpk0N7oTGg\r\nRMUMQLpV5i/QVSlLzXThPw9a4RfCWLb7mE1ktxGpKICEtZ9hQS07BJAcJVLt\r\n8GXEcqIsmzPo0N0zg+XwV0eP8ggXJfirTFNysC1gQh/sSK32FfTkJme0bGOX\r\n2mUHNEWUPJmuAG7GE6UImFfMxFuqm59WKGLHSyPuCPnC7NCoFUNvXPoKz3c5\r\n33o4FsmbRMlPDIY6HZWFGxqPOPgCRMy1T10=\r\n=TSmA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.3_1659086546671_0.11744995185735108"},"_hasShrinkwrap":false},"0.1.4":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.4","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.4","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-BGNxmbmplx2G5ecMuxVlNWLJnW/i3VRGcec69U7wm9wsTK9VSLM1sLmOFR5ar0kw3nCSVf8svC53I3260GcdtQ==","shasum":"3c1ee551d7bf2571c852a7897c28601bb6554d0e","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.4.tgz","fileCount":29,"unpackedSize":154715,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsyNzVAEoYD4/8UbWcSGu5TmgyNKp6MYJzVgj/A+R1HwIgX9vX6dmXPvNfwDf5VIGfCSBrCJKT6LXu1efC2WB1cSk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi47gIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVhg/9HQuu7F4bVKSlUh6QVxpfKdS8vkChd+SGDhrp3wWekJAA//6Z\r\nK7WXwcXxvewtr+nIqRDU7l7j0+AOgSyPm9B2am5jBQvFZl0G+b4lzSzmSPMQ\r\n5oQ2TexIpfPH1yfZv9AVATRdLj3vM0Yl5cX+b9tF4Y3OT+Lt2K/9T1KIj0Xi\r\nDs6E/3ptXb0TWFTrQjDhNGNUy9l/TG3yoS40seSJiJXBf4qtSQWbpW1QhSta\r\nbE8T0J3dtEf2dk7l5XuurmD3XA2G0n5qjgn804kVW4/VjpfkM0qmIXjOSKLz\r\n/6KfV76vEOwjck56CPpT9ccw+T/m5DqSjd4VemWpbj6HfyPhNckf1iDq+mFD\r\njPTNcWNU/Yj0BNvcMwbJ45mDRuPjxvP9YuvqAism3TnHUVlH2j2sq5BTp3+U\r\nO9UA5uHXAJeLHixDT4P+oHXoLfgYaQRTiuAAqGpnVdTfpiQj2dNjZNJnwyax\r\nAIJ1d9hxcYjYfj37RygAEV0NN2G7HAqS/eGe8LFqdabjmCqs89UZzdqq0xhJ\r\nzeDmR9levYuxaWXMa8i0Jrdrp8GVh8YfDbTXXiiY6ADbXUK4WjeQGCTPeWY6\r\nag28R28OlR16OstHRwVzIvwlunZHqzSxkqJzACXSVwDweWvyqBm5jS3hsxaN\r\nPiauQ+pS9/+dk+rPUvOvwd+PpUXUPNIW4NE=\r\n=wNBP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.4_1659090952022_0.3760766748933142"},"_hasShrinkwrap":false},"0.1.5":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.5","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.5","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-mC9Ktw/tQGvCaJQ6dFUow8sh+puWkvFzxQI37IZ+Hwae8Sq+NQyDezh+MwD2D4ZvAdMzrRSguzxpViz5meYApA==","shasum":"1bf32af580111295e25de1998b76afa2db94de9c","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.5.tgz","fileCount":29,"unpackedSize":156524,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgF9764VieyMZ/0jEcApzPODz0k+LT9fWL/EMATEKteAiEAlzR9zAlhkLj2yKPT/0EttHazgEDfI+SaEe/SdN9mViM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4/MgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriEQ/+JoVWWv6P2nxbnmdOr2CXFQSbYGNqTByoXfPvE0g5eQfnzU5f\r\nftEjkM/4029S0VCYKtn4dO9TRpj9sISrCQYrUrnqtPvDrFhNTtbKEA6W2ElM\r\npAKWDWYPMiSvgKf/DfQqmTOdp1mQLCKBZ3Dyde6MuLz1kGArt3qouGfVriFr\r\nku5LTNNLyVjSpIx26ryJOlW0XWvWKdFPFNzcRkKQNtJ4IUcMZ7D1Kbi+VKG1\r\nP9g8nol4E9vSN0IcAr5yorLqp1Btah1yLG/dOfh9fq64EcncY/SSWqoYo7tE\r\nxPJlmJCVzBFXtO9xmlrFnnOjY0IgS8bDpsmhTkVKDD9jYiwaqRmGrsB7GInj\r\n445D/9RDi6ajzh+uleiHiHJbwPcnXIE/CEjCjVJ1eugxcKFOB/GHC1PZxicS\r\nuoWDnKy1jwBjRgjv7H7f8EWvndjVxbjIhYDnPycEeUddjJOaOj7XoFLH649d\r\nwpaqR4B7JmCBAGB9G7FuL29JuLN7BVrswUBTCYjHkAvKOaymqHZaOJu5k+63\r\ndwvLRgeDopaskqB9LbfKcmAxs1nfPFsPy8+1jNjVrEVXU0/BF9T46vAOOZHg\r\n1mT89+lgKtN05F89Xveizq31+m2mASLS2/LY2Ihn9NUPhdpGUqi0egKfmRAx\r\nfQHpBmDqzCR/ik0Nmeqpv4FRy3J806CaDTE=\r\n=NMS6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.5_1659106080071_0.18905620668809786"},"_hasShrinkwrap":false},"0.1.6":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.6","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.6","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-3TLB6sqmlj/iRyAMNvDfXw5YgwKlc04eqWWa32By9O5ALdv2KK4HeMzi/XtOy/8O0ZLdmSxSXnjbRIjmu5O1bw==","shasum":"4ae38454c073b96d2f3c99f9a360db67dbe060c1","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.6.tgz","fileCount":29,"unpackedSize":157131,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCfxrsqhCelcH64nLaNBOva/YgxPY3r6ALXNQ7KMU6rAiBod7Jb0LJHAJtMyj/LljB6tQttgEyPFxG+yIewqesAbQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5AjMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdkA//SpnaUL8TvYAivQWnvOz14t/fwkxhuAQ95W+B57AyfSScUquO\r\nXcrxkj2S+irjEc1NuUxa+web06QK8mlMFVYCKtUilHt2DGRvs64YlScavG3E\r\nkMX4/eiFOAMWEnOA+YNP/j5FxEEKrNkYjsW+96WS3pq+eQfyi+WtyYZV2SLG\r\nyxf0Ba4n1aXmeB7cZROF8Y6tjO8mveHUYsmYGkp1Bk+gzUscsP8meRgrAa4R\r\nOWIiaijl4Wj4HcRjjMFX/UTOcfpEal8Z/XVVOE991Ihh492aFEAImGT0TXFb\r\nE+sBSbh+SGxXiuccXDZ+t/XqcVZMVto7T+skaSnkMIYLs0ASWAiNPnFW0OtV\r\nV237Ksi4C+VfNzOhtRa/9khyxkKl4cfCL3BDt9DmPxvvFee1ROlLtAqHImZe\r\n9i90sQhAj1CDVYjs+Pq0kBpQGNW/NdwsbVqtNAG6ztzBsPrsqFCv1aPrLwb7\r\nYqnEYh9gNuC/LnfHshca7YjV14AF83Q665sF4AN0ypE+Ly9d2FCyycfPg5n/\r\nvVMKs7CdJCEUTN+Gk7FPh00QoeVECRnXTd45Q1YoNgXPihiMjo6DOoX/KOfk\r\n0Rav7CMt/SUICNKEIkvL/mHwnjqElpCZM1D1LUjtpkLOTv4vAXVa4Qb0tEbB\r\nsWLRLDO1aHi7Sivwh0aXdM0ssl5FGBBa46A=\r\n=fQ+Z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.6_1659111627756_0.9394334952996006"},"_hasShrinkwrap":false},"0.1.7":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.7","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.7","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-RUyytjn417oFzQZWEe4SeRih5h/6SwDbojt2FeQjzwni7Bso1J8joampEvau6nrmUpDerdccFK/DNsapdytgGw==","shasum":"38b1b89887f8ce7b1b839b664f3891c6b67423ff","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.7.tgz","fileCount":29,"unpackedSize":158251,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzVzY2h3xfdgp6jyHAvgu4hx/wuNUmJnZau0u0i28QawIhAI5fKSG4ODZWVfvijHqmN0ucrXc/2/54fA6RTP6823te"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5BNQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpN8A//Vbrf6vVfw4RZ1MbAsGwYoI5arYW/uKh5VGm8xPm4snXYyfnC\r\nKYzweel87YeIuAbjfDFikgWKTF3zj42dQ+jmLRwCSiMkDHy8wALr9mGzcWC/\r\nwUE+FIQpqMiC7n5RXsq9/99qKKfNxs+h+zrTmq9SD9N8r3nfAPCpdKqmmTVg\r\no4TXJqlDy87vfvWNbbhdoOG4Y6RPKRn9SeElpRhF6Us/KyMQL7x8uXm5myRd\r\nTqZaAVZc0KDndFUtld9lOFCrb8Wx+7xkwp8FONdHqHgTvedgzhkPY1+Uiv8I\r\nUf91cccwnqrUud3YvOh1AXeP+IpSiG4Am7JwT2TueWbnN9bwnzqSNobHcY0k\r\nNcqQR0AnyiQJnq6oWLF16viEp92HtWnVgPa5OFoN632I9MJqTyY9kWrn4sME\r\nq+a2wo5O5Bo8Twz3mXP+zs9xpggzxlyNWTZJ89uh58qX9eRo/SwGy3xc45pC\r\nf73Eq6e8bS78e3YNvff2xi4xc/rkGOekGTZLBFW4a2Ot7LHR0F33WKAZIHzj\r\nJX91Jw3O45kQnHW5RDa8d68Ls7uEDgjka8BKUCGDHmD7oszK9L7QKTYq4+P/\r\nYAfk+2wnis3e9OgteTY4VISV2Dw7AqY3rFJFlFnHdrAb4fhfPSRZ7qce4ipe\r\nlxWe5PNZU5E0YM8yC0A7hhtXOGgOTBYcn7k=\r\n=Se4x\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.7_1659114320514_0.8127141852015183"},"_hasShrinkwrap":false},"0.1.8":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.1.8","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test","docs":"typedoc"},"devDependencies":{"@babel/core":"^7.18.9","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.142.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.142.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc":"^0.23.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"crypto-js":"^4.1.1","fp-ts":"^2.12.1"},"_id":"shader-composer@0.1.8","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-UzsUfr4zmt498wG6FswdVU3vcKF6ZkSkmjVZ7eOgeiqggQJzBLNnym7veQ7XujWhupKAfGIv597w6npnzKGl+Q==","shasum":"293410240f3a33c72a44d916726b659ae2f4a922","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.1.8.tgz","fileCount":29,"unpackedSize":159560,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQnrhP5pxdcWfk3Wv/egEA/bOMUcU/3kW3AL+BABo+pQIgFbm/JOXQ57NrGgRtQ4+tgFiVXVc5YeLcgQt4oS7Lib0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5ktiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBuA//cR0fCRW7N0TXb+FV3nK8vygZn8RjkmaQ1CVba2mOejgwnwP9\r\nwKZXPSpjrvB6vxt6NohcM27gJV8gjseiNsEs8wXtkhb22WD/naV2a0WhGTyK\r\nHwF2yFr7PmOZ6ZPd6k/tYHFqJY5vx78v3AAqrEGiCqo8KF9+F2jsWU3Q2wl0\r\nP/vC1s7MQQWaI2uSeg4kr/6VK0d05f2JdcaF3E/Ng9lU1BTMkscG1xp5vNtw\r\nThVmcLyiGmCsjvzZan+YYr8xvHsUWcUQTX1KznvLvAiskAO9ZO9EkVFnOUNm\r\nRVtPKjgT5BRIekZpRCf7FiWvWNzU8B/X/K22URx4JB+T1qTPq6DWkeBGLM9h\r\nFUORLn9WASyJbQqmzsiuEiRBIvvIf8dMSF3w2jBqh8iT1PcEOAkLOeOs9q2E\r\nN9BghajWfDJz0k4r5WY0P2yKxskzGw3unoft3DS2J7k+4ciw0bZGhn2WlIkM\r\nWyy6thIg9AbrKFBQI+5S2C6XwgTm7ymQoCMilHJkAicm4nooUOylbrcCtyE/\r\nXqkoR8fFJH/eHXbS95BWVgQEsK+6wOwn213fW0U5rCatTPUhNpbq5LRmf/G3\r\nEZA7nVjn1Wi9r/IcBrKgkws1gBekqDoDW7bChj+JD0ESekOF+YnOpKCQN7Xe\r\n76MrdbOIEytsKmBYXFSrrwrjr8RxOWerRrM=\r\n=5Jq1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.1.8_1659259745863_0.7249442007084554"},"_hasShrinkwrap":false},"0.2.0-canary-20220807131912":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.0-canary-20220807131912","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"preconstruct":{"entrypoints":["index.ts","pipes/index.ts","stdlib/index.ts"]},"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three's built-in materials?\n\nNo, but you can inject your custom shader trees into Three's build-in materials through `CustomShaderMaterialMaster` and [three-custom-shader-material].\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor. It is definitely possible to build one on top of it, though. Any takers? :D\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"e28a407081285eca16fd559c31dcf179f89ad50e","_id":"shader-composer@0.2.0-canary-20220807131912","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-NZ6F70qv5aL4Se8wJCWyIV0LRDlkcDENZtkH3jRzjd4OD8qe7RqmQ9f+YEpxgjOr4xnEZmpYhU1zf0ZqJ/wxEw==","shasum":"a3037d3e503ed28f76b4412260efc0b9418f66bc","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.0-canary-20220807131912.tgz","fileCount":52,"unpackedSize":175058,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR7ER/g0NN8K0M/MgvKyQvwIALLbZNy4upxfcadUoqAQIgGLOPhI6T1VAFeEwrBV5DUB60O8x8HYkdTADN+gUCDAA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi77wUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqbmw/5AFkxz8gebTuobLJV8pCUsPkuk6LlvnNbMaCBY6qMAmJt62GA\r\nRMereCtguD7jB8NY7GJs4Giz0rDg2WZQHKWruXRPEoCVhW+OyD9CO9vA/t4r\r\nZbvwv/2l6RN/yQwL2/diNxFk5zkO/VxKlRuFxJzn4hAi1TymERqqFGr7Bz02\r\nwPBkS3cmUJUL2kn3smeJX6GxpQ1XZmfINCumFqKY0CR/Ch3KzLH414II3r00\r\nF6aM0jIWv718pBRv9VIAcRLlIUaoHLuE0HlNwj7wtQ3QbvY67JURIauJhr93\r\nHIh6S55KE/rpSdSZq8dgsj6wauvLWipsLas4rRgWFSOXRRfLXbo2yeZoIczt\r\nH8xQbgl3BkTK/pkoAoJNQsx7cSbrynMEFz8dVOj6zJSqJ1CtAiFo4/vasUhz\r\njHNmGYPoCakCV5pXFjg+NvVKG3LjB8ZbK/jph4I+xJr/TlJZHTCi/zpalGEz\r\niQ6OEubY+73DIE4Mmc1aAYi8Yl7i6CtvYvjlhdQRmB/rh7NjHdYEifrg/Y56\r\nlg2iTs6Lh83hbsOHR8ky0tKvrkzZ/jTaGNjLe7jCQaRbNVp27w/5FQCQjZxA\r\nuu72UeAfRn8g9bd8onjs1OzoB24Mq2MaDynonJreqT4bcFE5oFymSyAApnBe\r\n82K7Jki2SIuV7CTD9Kb1oZGovaC/BoSfmuo=\r\n=S9tN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.0-canary-20220807131912_1659878420052_0.7877349579641741"},"_hasShrinkwrap":false},"0.2.0-canary-20220807140759":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.0-canary-20220807140759","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"preconstruct":{"entrypoints":["index.ts","pipes/index.ts","stdlib/index.ts"]},"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three's built-in materials?\n\nNo, but you can inject your custom shader trees into Three's build-in materials through `CustomShaderMaterialMaster` and [three-custom-shader-material].\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor. It is definitely possible to build one on top of it, though. Any takers? :D\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"7227e76e24dd97a68edf85232b9f356e72b536fa","_id":"shader-composer@0.2.0-canary-20220807140759","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-tA3yxbqveAdQKlkKWKanf3a8tEUxrDb7ZBkFdbPtS3MSngjCCV2xqQrEjRfgJLG/XynbZEf8eF//UHtQiMRSIQ==","shasum":"a00a146a5cc1e48a68a858094034a8a84ec2dab1","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.0-canary-20220807140759.tgz","fileCount":52,"unpackedSize":175582,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEPaWX9AxOqp6Vic6g9+zQizmP8NS+savzHOFeM+aodBAiAmcHXqS/nOi7p82HmkHsjq+SlHJOOIKiruqj2PVwPGbQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi78dIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2vw/+KUE7GOteXERq47UWbXN3Gsw/zKBIHj6n5O7l+RcB492tykWv\r\nWZqnQNgStxkuhbkBB2pYb/hCEIyMJfvgxV5aHdZsqZ5wmwKpz7zanZC8N8V3\r\nB9eEXPC9R4Vm3dsAJWr5Iw8BEAGKB7NQ8N28A1YNGingCONBz8mgnj8PxHl4\r\n9dhraNhB4SK7x0t7HjxxMlcqRZxaw1mz+Htoljb2bRDLpbmCMh7oE8eJu4n2\r\nKyMMHz3V5mnZbHOwxcEWbi+omoms5Do8Mnp156ZKrDW4xOc7inzWmWMNsrF7\r\ndw6VoPmWYOOKrm7EZR9Adq5bSF9S4iQWr19ULtmyQRGZA4U9kOJgsSEoep68\r\nYLJpZbUvHHvCXXw7bMraZikogb3akoO3T9PRFNnAXJfgE7gayYaUF9B6dD+u\r\nGVJD6AQpGnXNm631WuMahmMLc/j2nHHZUyt2SFHsPXv7gVeAVBupEEZRw66W\r\nhgXD0jQLGh3QUVFLL3xdwLQpNdruZnsQtOvlN9i5+xRkc7XukDy1R0n3h2bP\r\nrX6MBeLSuVghLbOjFCSEf12tU03r+9PHK5t8hRQP0yb6yU5t3nt4c+Qsw4gc\r\nG98s+vOvQUjhbPK6al9nREZyimr+dugzuilDwovh389EngNTfUwZlKmDyfFl\r\nDi6hWyTsWGz2wbrEilG0jOWKdtKmEBjvWV8=\r\n=VXCA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.0-canary-20220807140759_1659881287908_0.5051728481671185"},"_hasShrinkwrap":false},"0.2.0-canary-20220807144252":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.0-canary-20220807144252","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three's built-in materials?\n\nNo, but you can inject your custom shader trees into Three's build-in materials through `CustomShaderMaterialMaster` and [three-custom-shader-material].\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor. It is definitely possible to build one on top of it, though. Any takers? :D\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"604ee1dacf0ed56b486b21f16e757b514c0ac67e","_id":"shader-composer@0.2.0-canary-20220807144252","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-IhprCUiUB67HOBrH31/tu4nVOTJ0mIs9dNI6LHCBMrX8TpIMnKl7jjsEh83P1XnYsQspMmV3nqE7JCfjlMEYkw==","shasum":"8cac5c68c8c448a5a0e7aced267373ea063ae6ed","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.0-canary-20220807144252.tgz","fileCount":31,"unpackedSize":162494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvw7Wq/AKVZAySxtUgZDdwRi2WpAtyUCHdG158JquQKAiByJk5c+qRQsof1hTCecWLAJEu6VYxBY1PL2SApHmzAzA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7895ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPNg//Q0R/oNQTY2AGlEvxO6oN38HQrXDMu2S6hqcLRH5+IDI4el2x\r\nx9YsXQuxJzn5kY0pZZ3D052bYjydKzq7tK2IsASLj8EFiLuRKcxk9buLB2oJ\r\nQwdfSf4tzv7PuGVAt2Z75LK2VUrDc2CcoOAXAenj1U+zUlk2a6o749jUPoyf\r\nqRmoKMXepv7/qoOGH1dATRyY8qe6BHmLj3ZSac8VjYAOwJzG71BY9FIolLLJ\r\nYG3oLFtm6KvfoELLCEj/6clw2DlwvV0/Yd+XawsZeluzQ6+XCpMzXzgC+umE\r\nhsHkPnOG+mGzAaptUe0p/TBnjQkgppDr9Bva+VuoUviP2gXtbb7emg8WoMI+\r\n7DBn9mRivvmsI/KtfsCgglZsko+jaNP8Xf3Y1pbahun8GuM+o36yfmahYHI+\r\nXN1SFjboSASsTk5QCeZ49lpQNd2CVacr9K1ZpUWKc0OQYfQh+MhIGNJuc+SJ\r\nJX4y9lRoLBypGQYRrLAIWcTpJKpi0EFr25I/e/iACFdOHqkIa/vSykYWBrRc\r\nyBVVTkbA0xP6dJ4PApGz/cu8d3EfOkqS/nZwgVclKK5gv63uLYthvgCT1XlM\r\nSI9gGtsHT4HdZ6fyhjW4AO8csG70QiAljcC/lR0d1wdL4s/sBwmFasNIwpU4\r\nM8tVM50zAYUUh1A2i4cHmUF4fUA7St3kpOo=\r\n=BBT1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.0-canary-20220807144252_1659883385224_0.9696542792748923"},"_hasShrinkwrap":false},"0.2.0-canary-20220807164644":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.0-canary-20220807164644","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite GLSL shaders, but with JavaScript.\n\n> **Warning**\n>\n> This library is very extremely new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three's built-in materials?\n\nNo, but you can inject your custom shader trees into Three's build-in materials through `CustomShaderMaterialMaster` and [three-custom-shader-material].\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor. It is definitely possible to build one on top of it, though. Any takers? :D\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"0d9261f1e9323dbf068a2a65628d8d37263c223a","_id":"shader-composer@0.2.0-canary-20220807164644","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-BxvDaCd8orZpOmJ9EXyqPtk4khVRcaLOQvOGFKgAcOinhCU+eXl9mnGEcMoMZoaCSaY0I2Yi6HzdF5d5Sgt5tg==","shasum":"9858a6178b48ee9314d62494a074db97762a9ec9","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.0-canary-20220807164644.tgz","fileCount":31,"unpackedSize":170122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLA4mXBo73+CyktQMoOkHlfcEvnVMogkXTeu3tBOk7ZAIhANwTHUGIlsz89uW5M4mfAEgC9q8iuioxUAqiVOCJoNrg"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7+yDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSTBAAksyAqBAmDjxs3WEJhSx3mELOGEZi1O2kIdOFlB2aUPZdMcze\r\ndwlIszDJluX1QHVx1ZTU2pA0MCaKnfIBX5glhCPwww1aRu+uJqkeTbQIHIZu\r\n9hUlCe6OSWn8dea4pnmi2/q3aVqg1F3FpNsST7WnNJQqYYp70TwQuDd6nb1R\r\n2TObkcZeLXBI3xqnwuSLPSlaWeAcHR0BIyrPB/8P5FseKZCQQKAEbHjAqWKy\r\nvEYqREIpcqA+ggWNUqtWML2PDQF4PpQgNHTs8++1dJuXPmXrEzEawNOB6Y79\r\nUV5e1QB++jThl3iE9cQhB/dhvL+cyxOllLmSY7VMFq0fYIOKVP8c3hZnh5m2\r\nw7wIeCwFHWNb7DRb1SrTAPiBWi7MHAGuB6Wnxh+WBTIImP4XmgP67SheHdea\r\nIXBioykHhifcKJxRnJiMF01eV+6pw/RfaIDdgYiqbw3FMS0W2NDRetniC9Z9\r\nlBaiJnIOX4IFphdIi7NPu+hFuVNGtcUn6FiYOkzV4KXn0hno/3XTNmWOmNZu\r\nfTjh/CPBK7xsBilbgz7cM5cSZcqeRqBWx2nXrUq/m1I9kPNAM+S3lJAp6yhh\r\nNVN9MwBSPWlOKLDAEfZH+Pvx7dhWeFeL4/lstQLvWlr1ynFTFgS3zD9Us7mJ\r\nPobRnlNlkm5i2M0U36qBjl4ypXEs511lio4=\r\n=5bb7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.0-canary-20220807164644_1659890819584_0.1702369234429426"},"_hasShrinkwrap":false},"0.2.0":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"_id":"shader-composer@0.2.0","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-/aClZANDuYneqG89+2nj++2938EGZ0olH71GcumoB8scQPntTAiGCDM91WC8i/1+jtQIV8WFc0WuHCz5pJcs3Q==","shasum":"5f366f3f259e5506f618636c26d78794ba719293","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.0.tgz","fileCount":32,"unpackedSize":179272,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEVkWZ8iaGXyWVjYKVnnpYHrFYwbrarcMX1dpPsjzsOgIgYRx+s2fDzDjncqMgUmiMrjNu10F3s2rHLHNCJ/aH5P4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8JNcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqphBAAiH2MOin4kyxSOhY7ldbcLyX+tMkaORWk37JFMJJrCjwRe7cl\r\n8wnQwRIxrekVV41TFgV/ghM+IFFJQ5E1X2GAifhP7LEijmwwSRrUd8J3w9ZO\r\nZVU4XUBBOQcg6QdyCm4VVib+15N+BT5nylF5AvHmuKlbx6dg5gnNG1SwcuB4\r\nqVMOuAgavtncNROum5h/1MZfyAWLMvV8ueEM1DDPGFiSjcfn82i1HEqvtdQs\r\n15RPcvyT0kTFutaXilcU+kujhD7IaVta99FImwXp3bePZAsjzZqHjwbuCxEU\r\nDq53NxpkxMOSF0CrW3a+re8TH+brLsatMWSkRGD16HvDuPjgm6R6c2ReANe/\r\nlKVUMY+dKQR3TIh629yFC0kvkaVTHIs/hi+b5TUvVwchsPuJafMq8R26nRg5\r\nxGa6v+ovIBkqDuGDoXejnvYwzwC6TDYfXEa/OFGGIVeQp6aCtr2evzN/jZAi\r\nNNVpSw9rusrIvJm5ARyGwzaefO+sxJI1wAO2GorB+vCnAp4EFibLciP0SAPp\r\naDg1+U2JiZJS1wB2BXzfqg+HaLePcVp5UdbpKYEhVmTzQGrl2/evZjGf9/0y\r\nY1BEboSUUtp5o/FCtGy/mTPg1wvExOLAWRm1pD+aQKEB1qENjptxM3DloWy1\r\n2nB1+mnSfo1r72j4LGfgpA3Fou2VQO7L9Bg=\r\n=zi/j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.0_1659933532544_0.5523386384454094"},"_hasShrinkwrap":false},"0.2.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.2.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"_id":"shader-composer@0.2.1","_nodeVersion":"14.20.0","_npmVersion":"6.14.17","dist":{"integrity":"sha512-3/sEQ5vY/D/Q7GMLgrQkl/KNJtixY/MPmJEl8vsHfM13provgXmmkh2tNGlxPTNBRJzXSi91d6Qn06ZI808Sog==","shasum":"70ee32538b2ca2fc03bb9450991c558ec7816592","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.2.1.tgz","fileCount":32,"unpackedSize":180106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7XGw8/qw2rR/NDfoPm2hwLpdRNblnBJLfld4wQNrM8gIgRULTvrlCKdjbZ0hRzERI8nMCPes9IQdZyrcWZNoXQ8g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8TkkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpfig/9E6d95c137IR7b2Rder/CNsKSrCfgYoFmhc8YAv/16RgHHOTi\r\nRNJmf4nuPOqdFkIwtY9uP4gZhfKrqREjrnENfQfx28H/nPq6gsqKeLKgbrHv\r\ny8H/M10rZPGEhRt5T+8quHL0Uyh0WGZqaDOmjioO2lXkRBL9nlJDF4GjPU/d\r\neD8RXsomVA14QRMSnofWy941nlpnyF80SMUoscsTpm48jHvHlz6XLxOdZWaR\r\nW40LvJIpMATVDhTH3XQKB3ug/BwnD6ZjMA5kF02Hht2M5/fnYL1HkmrI0iq+\r\nElsRH7P/kVEcpXoX9OeTBF1/+g5H2M4B/rc01OfTVhCQ5AIRvOg5wBJVmv5F\r\n332Nm5naW1tBe+DqxckORl14Y9Ducz4wYSXU+v69ecmsnZTbU/yq9CpxIuQn\r\nZrkH0LaUp0OOg6Oks1PO8+OxUvc4pWImND9juJDhE86ya/lf8KFBRPLryyC7\r\n6eDoVB/6tG6Kb2xHoxP2gHXh7fsR2e8CeInHB7qIXBJ8s4DvYw7d2hRusFAn\r\nW5wLmXi5ln9CnUVpaCUeOOLjP6S1PkOOAHOh97T2X0BGAv3yCopt2ObpXlAD\r\nejO0MxaN/Jc7HAKoIO46T9fKA6IvxnBZxjNYh4Vk7qYzBoAsMCsVZaQ2A+5Z\r\nOzYzU8mWVGUazw/tZb+dy1gcbIIYVf7xKXo=\r\n=dytO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.2.1_1659975972243_0.7990703826160215"},"_hasShrinkwrap":false},"0.3.0-canary-20220810115344":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-canary-20220810115344","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"c83d3ae28549246084dc357c206020500cb7fafd","_id":"shader-composer@0.3.0-canary-20220810115344","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-eE7CZNivE2tllPlYGX5mJi46ktPAHQf2ydG5d4aiSCx/cWn42apLKQq+XEbJoEb+IK5nRhZ56+SF9aGxHApRGw==","shasum":"0165b0e30d835fd497e0785679925b8f5cd81966","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-canary-20220810115344.tgz","fileCount":33,"unpackedSize":190103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCM0SBpxd/FMPg6Foc0DBu4gxOpbQJmakNba3uiuVb3/QIgPpsi9DigJWubu4o/VzLL3RySOdLROg8bl40BVKBCg2U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi85xgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAQA//etX0JBKfqCE18tk6wTw8rwJqYGR4Y5OOQlVisz/XR0bZ4j9P\r\nezFBQgrJdWEXszw+5ckX3shZnBwqsOu9dw05TG2JAxHfP8Huh16pWJygGOSY\r\nSOuaWfH4//U7WPu67lSVs9piuoIgC1EPxFOpxCFCbZ+DP43wi3wYY1Z1AFZE\r\n9OW6InS7V6Wm9LAflus+ZRIyyEDPiGs3TRkbU7xyx6zmY4GUvintV884uhw+\r\n3X1cAdQxaNsfuJlKTfZXo4ReDdyGXdDNcTntJ+Q+3lnJppzCg8YLP3uBgCtd\r\nattaaIi/6DCLVX3Y0ecC132hmrUumxCuAoMM1RGVyTH7ClzarhWkVhUnoYY3\r\nDukJe84G1tl/WFuz+q6E8tOFPxJblZsMlKJjhIzLTSNAUgYhNxeWDOFPccM4\r\n9bhLjwAOcnfTg1UF1H51/L6nV4OQeoXOJZrqFGgQlDPx5gdcF0sz1Lp6V5qe\r\n5KQtCGOxq6wtbmha3ev4LE/dsbxbbBpS28RcL+mEcqijLJb5NC47yBIXi78g\r\n+CpccaWJ8OW2+vm/H+eUC+6fMs2QDX3y4SVEHxjt1bVV8aimPkTExqW9iYI6\r\nL4DDDe+319SbDo4cVsBnlE6Ihc2fMqZ04qfCdXg8Fo0UKCTzT29ynBS56oJ6\r\nMmhofw9mNQZMYICbQ/fmrGfr83ag/ZECUAY=\r\n=UDi8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-canary-20220810115344_1660132448040_0.9920757326463858"},"_hasShrinkwrap":false},"0.3.0-canary-20220810115525":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-canary-20220810115525","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"7822988a6f1d99aa18a25f601d0d3cc157413cf1","_id":"shader-composer@0.3.0-canary-20220810115525","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-P3JtIf+mDzrIdWz8jSFOtTxpLwlNH+8J8BZOK7LO1YFXRXULcWLA1I8OBHHggUCAR3TbPME4vy/5WdL810L2jQ==","shasum":"c585f01095abad3f5baf51dfae71845626fc4817","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-canary-20220810115525.tgz","fileCount":33,"unpackedSize":190103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvP5c4GQHSKzlIKHBRAjPgsmylrFNG3nh/yeMpXXJj/AiAi9sXRVsc5V0j0zlSrMMENb/UkbF30ODa/yXBaJ6gdSQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi85yzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1Zg/+I0XILQIZf9jwy/xDKeO8jGo9qajLUXz6Ms3d3A/VCzI3a2/1\r\nqD2mSYd+dZ0Sfvxwa29sOczM2vUhY895n7BX22skerqCw6QYhxYdbkhnHD2t\r\nil/O0Xujtz4Ld8L2viGQuZMY2tsJ9KXLgirpf0kKAsN2JvOBbiNM4/D1moGG\r\nF51ZKs1CpAI0YRD6jQ7j9mIdFtnBzmKdDoBD+peMRhG+bkoSOBfLWitprIyz\r\nAiuwG9/aaeqp1wrUUaJ9Uw7fO0g5ezvj+cNS/cBK8je3raEvs7bquNk1ToX2\r\n9szqzWypZDavOz8LLSrWM1UWasyDaQZqEoIG9ZGFuu7RXOVvRXbqjuYopH1r\r\nDdbNkLjLRXgtB88JSBlVdz4uUITjW1zR+dWHuUxkMCs056sGcrqzAH/b/D2W\r\nO/+DLAne2+kid/1bfW7JcHW4f2c3oLqUo4y5BLxJN4dTNWDjAAhkDThCI00H\r\n1Hln9F1z/prBtwkK+8HHIF2iH6Cterp1yz+Wn2hZdytQcuL9F8agDl6yDlxv\r\nz2pwGXCvisI1SA3y4NZUl5IzchKezREqGKZa9HVSrWgph0YxVzw/OG4fnnB2\r\nCzpgxP3zQxVf8QYgtJAzcVPAcFoLdFpo5WqYo0t83qsqvhpIGlMK20QsIsFE\r\nXsZOehXmUHW3+C3+NmRXbz8Ein87mdrASpQ=\r\n=OdvH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-canary-20220810115525_1660132531332_0.7283905877284358"},"_hasShrinkwrap":false},"0.3.0-canary-20220810134637":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-canary-20220810134637","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"4a45089c7085ebaa75acd44d87a95bb6f2e2cb21","_id":"shader-composer@0.3.0-canary-20220810134637","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-FMrlDe1cIFd+l5n+a+1bOdOwQgpZXKiG6jlN5w33Q1G4pt5lMNIonuld+i/qp/Xff2841c0oypX/UKh7kgdbzw==","shasum":"a6f879ab83c650ae8c80051cb36739f4d920145f","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-canary-20220810134637.tgz","fileCount":33,"unpackedSize":190550,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsWNpYboIpHO+GDRpW5C/ij0UiIG1LIaYA6rfiC1Km1AiAUyqwdZgN/RcGWna74iXGaoRafx7Qs42S3hYvbOAM3Zw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi87bKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFVg//b8dqB/c6hra3+79UjkQUGX7thOLPJfJN9kIrsi5Uek290KRm\r\naZBRqjY3Yash0oANOX27YwY5bZDqhjP81M4vNIGurO2nmSrp7/QimNT7iWVJ\r\n3OjyPwugJ1rp8lOTuSbQg4m8SAesNnMv5QDTlhHcWDFjGLvg6GARj01kpTJN\r\nz1Z5CDnPNRvoK3JZl/t6vIfNwBMyjDNU64FDq9vzROzk7Tspj/D3PP7V4FxM\r\nzcqwfbPkDumaBXqWqhZuUokFr7BZi0v5yp/8DHgIFWYVjsQMeHqz5ModEves\r\nbFawyh9s/NSZrsdkkyugN9ehoWE1RK8z9jwyZN52OD8M9hezSE9wywB0tHVy\r\nsVABrce26qmpljZ/aqpYGZnb/Im19xrI3hqHpBUTHa7lcSgthblYJgIU36L2\r\nhlpI4iNlr25bzPxAbDZC1ac4snY/aYju0xOPqQyRfeIF9mccrJZaZ+uWSLKQ\r\nXWaGsSROB7u1iy+lbPvEedN0Jr+Ij/tNr1rPErwlCPufbdWI+bHBrd6EZyyp\r\naCH8yueXl5phULu1jwE6Q7XDkL3ElAsY9do36S4yG4hWhpQjALk9lhtnwkm3\r\nqeo9c3kApmyv+6SgwefJxxjo5TRz8YGAaL0K+DZM/V2WSUlCv6JZ3QuEdIs/\r\ndgBkYQWBgeruacLts8Tip6FCqnRyZVbIcqU=\r\n=hDoH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-canary-20220810134637_1660139209992_0.23504815778470078"},"_hasShrinkwrap":false},"0.3.0-canary-20220810170700":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-canary-20220810170700","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --excludeInternal --entryPointStrategy resolve --name 'Shader Composer' ./src/index.ts ./src/stdlib/*.ts --exclude **/*.test.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"104be03196a087eafa795d9c41bfd3ea1fe066de","_id":"shader-composer@0.3.0-canary-20220810170700","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-BKjD0V8kV52EUj1y4bWFkgaSX6bHV+iGQiSfsI6uSuYrM8KPTDc6JxF4S4tjWfh9hZ3xRkMjX8trfhbEJfJXCg==","shasum":"a06a1c9e5cda71878da9c811121d68fa3fcfab37","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-canary-20220810170700.tgz","fileCount":34,"unpackedSize":189093,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnQtpH9LttdGgOB1CppjBjZLVfFCsQeFR9jtfmIWxgGwIhALRj5dzC1CkS0hLN1cjuuy8Mr9Nx0OreucfoaJAYubha"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8+W7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqmXA/+PSSXf7iWuNmilyUBW05grdIXexFP1vKMokvSpD5Dpc6UMaTa\r\n1p7Q132HYFmhwW7xVWweHYow0bjYqzmIwztHOlqPLHCSM/e0WwZLalV9bf4r\r\ngxqhKTUKRfH55DV2RINClUm2CFFTZpIM5vIQdeW30+ejRylPpQcB/QupnG9U\r\nOQMGpowgXhoR9jFsjdqV786nLpkGP0tDNgNOfFBZcPea6RKTfkqvKr6pyclH\r\n6YMFDPT2QbFJkjgcjwgoepLpZL3MacNSAqJXEYcP1VsnkzOp2L6dEBRcsqxM\r\ncoeT+DBkjlNCFw0BSTD4J1DxKO2TTqOFwv67kZc4dRf1roKHdTNhSRp7YfSy\r\ntusgYF0Uqi9A9PN3HTFWUISdhKaipc4E9Aq/tyIFA53jVxeUKssAIN5X1fPg\r\njG6dROaenVlX9Dkp4FKIMlyfljggaUusSKerA4knUtniXtsxyCIqsmib7jdK\r\nDm5q99VkrcOHsPhC6vzT5BKJcjZyA6bjY2g6tFhkPBoDoh+XYIXO0FrJzyUY\r\nee8nKikUEmVlV6tl4R0SVtrySPSePyCQc61pdKE9Khrzihfnd2Yu7dsT4QSO\r\noM53PDWvShvfmVVCwhZN/mCw7wow/G3e7wnHzdV61/BX9umVvBmtijzkR93f\r\nL3EHJtrxETgAAl5/PL83ueEwt1GfksZFssI=\r\n=Xlcw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-canary-20220810170700_1660151227803_0.17306529277503024"},"_hasShrinkwrap":false},"0.3.0-next.0":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-next.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/crypto-js":"^4.1.1","@types/jest":"^28.1.1","@types/three":"^0.143.0","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.4","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"5a5cdd9f0a9d09adecbc8108cf8384936c79f5da","_id":"shader-composer@0.3.0-next.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-q13clS32yAzHvNxlcZBsfTGxbeK7ZLWy4I6MqMp3B+dZPUz6jvv+U1nyRb3QoNBbtfaCTeU0Qj9TeZSsUbZoKQ==","shasum":"7236115fa3b58ee20809e31a7796061b8b447c6f","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-next.0.tgz","fileCount":35,"unpackedSize":199125,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH1rle02SqhywmHZEzn6x6Fy2mbyBgt2o1V/yb1vBaxKAiB8aIQtNwkZlREelBQ57v3GOQOsJb/bkAdN9ZJ5Bcd3+Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi+RQoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrntw//WL8jZZekSK/0HnWBDGXLIw6+v4VA+5qrsgFu+D/fNKUp7/3/\r\nOjKdRQ+5KwlaLFy3tmVh8XMveiXGG/zkkruebiiRalA2CENO0zAkF0vVdspE\r\nFBYT3T1d25COhN7OuAmXnNaBmptQQDCzwoV3HlWUSW1N9WwrUv+BKavPqV1v\r\n2rpfzwAm75MZ2cMRvEXGvranWj/MV8NqGIJt/9QxZIiCzocHUmT08OHm5wfs\r\nlj+YE0XWEeGK51B2eXa8YJufvzsHLRk8cWMLaqYOFi6kbAtjcRcFLba+erk8\r\nGs+LKjZt4VFxxAhaYYiJJOdMZfyKiSPh+KFf3Ke3OkL7/kruWiQckGsL8xLq\r\n+fwh0tGxqlPBjj9i+wqxby+iPMQ4n2bLczpDKyihWwmGDlC3VVBQ5HmfDrxb\r\n5PAOI73qOmhmpE9spAodOAZmZqKMpPQBXq0dUPgLNvQVpqUCD4CmW+3F3fNn\r\nlPzjRmTNtb+Ul+/JMa675RMR3zRLdiFB7bXzDbpiPz9cxIayZmmGIU3zI8qz\r\nJNmXEkH2nBv39TD/lEtnJXja6fao7wOmOavVko3dVO8RU+n5pnVmnSy7JF0b\r\nCYlDiNfWUBYK9fihbwctanGVs7c1hHGxWyFaYPH8iwD+i2ypu69QfvD4SJRc\r\npoUv5iO5T2EDDBzd2xVYUcu/x6EtA0756Ks=\r\n=5uZT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-next.0_1660490791828_0.39778747595070674"},"_hasShrinkwrap":false},"0.3.0-next.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0-next.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/jest":"^28.1.7","@types/three":"^0.143.1","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.8","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Summary\n\nWrite Three.js shaders, but with JavaScript! ✨\n\n> **Warning**\n>\n> This library is still relatively new. I'd love for you to give it a go and maybe provide some feedback, but I would currently recommend **strongly** against using it in any sort of production project, unless you're ready and willing to keep up with the changes every release. **Use at your own risk.**\n\n## Projects using Shader Composer\n\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## Questions and Answers\n\n#### Where is the documentation?\n\nI want to wait for things to stabilize some more before sitting down to write documentation. For the time being, please take a look at the [examples provided within this repository](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples). (Or open them in a [CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer)!)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n","readmeFilename":"README.md","gitHead":"141fc4cfb9a7ec2b0805911263c8a97054d67801","_id":"shader-composer@0.3.0-next.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-pY1vTY8YMz5oar+b5m+QEMOn0oyyvX0mP4ItQPK3yRMRi9nP9fpYMbFOYPyPMm81at0KVYAXJgUQSkibYhnKsw==","shasum":"b0af51a57caea72e5dee32a181863810e1ec93d2","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0-next.1.tgz","fileCount":35,"unpackedSize":200608,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQ1aHd+43b3tWYi+3wICJmmNU0nMe+RK8jD+G1N4pBOwIgK2mvCRmxUfFN8W4pPok0X67E+G+YBsSZB40clMCp8eI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/5CJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdQxAAkm77mW9qfMeq/4GjHBQ1+He02DnaGDD66qzoaFnpTazfX6hr\r\n9FhOeTULeILOE3NYkf5imqwGzWFccHxjnkSyLVAY2E3si28waidc9ZbovCb4\r\nPt3VGlrQ2S0ZYX9lWNbsaHPwxjIKNnPzr5xMRsnfMkvOzqdRzcTppoSjffpD\r\nJtjuJOI5mWXOLIM8jJ2ui4VLdwCiyd2SpY9OWXAPFViqV1vTT/2hCcLntXOc\r\nmv8ZTVU1Rix/3W+Ytxv1cyUTU83I2oFowrTD1/zD+C+D5R9DqOthK9m2Mg1k\r\nbWniNwVQcFxmDFKCo/JzBBY8k5hP2jEd+hFqnsVNOR4odBjkdmlCT0M4U4Fm\r\nL2vZKnSTd/rBCyjgeXyqwNDkMr0F0/rdHwe8f7hSfH7vO74DMsKD7yOPpKcA\r\nLoESxkDw/ti6UV/UrgdxH98DVAtkl3PSIJY/5PjXMdr9Ms20Zm9LvB5721hZ\r\nfArS2cwQGcfT9mLQMxevVEsLs36jrksr+ElWMXmvP8+2Xk83CdwKMEOIeUWd\r\ngntjAFqKxqBmVm45lWONPj57ipAwmIL/fTBUCCNyonmO2ivtzHsTeV0R0JqR\r\n5HOYsjpg2/BErWo3w08RrO+hiT2w/z9fZaoHVIKfkP1T5F1cd1oDMaUsRI7B\r\nMk+r3/9UjwlqUdsV9UGKbGAz2BgaD8SudeA=\r\n=4Uvs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0-next.1_1660915849203_0.41228105638836277"},"_hasShrinkwrap":false},"0.3.0":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/jest":"^28.1.7","@types/three":"^0.143.1","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.8","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"gitHead":"94cbd6c426f2927486c4720fce6bc8d35361b6e2","_id":"shader-composer@0.3.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-j303C6jxST5BhyTMqKz18zvZ9IcFe56eI2uL4T/Ami8OoOoyy/drIOSrusC3HP/bp8pnwZTYE6J+Hi3mL8eAiw==","shasum":"3fe5b4076be0732328e2be0801b11d0ff573c3b3","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.0.tgz","fileCount":35,"unpackedSize":200601,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfnPh759w7S0EuRoqFzrR4MfIdKVfT7k+Qjw6bsZ6W4QIhAKUsp+gVuhe0NkGA8W8X8ee1xzZCtw/9vXFdvZ/KGK8D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAGf3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqdRhAAimc6O9FTlOGoh8agPyI4oXYSjE0C9L7Ba6/qSspluYTMann0\r\nIqLXSOWvxV//0CPpAGk8JpflzNXob+itCMxlIp91ENhwynqi3yno9OLyBcWt\r\nG5/C61OwM7wjjR+a84vJOaYta+Jh2DoWwsi0p7RS/SNexcpkBtFLaRlef64n\r\nHZ3qVW1r3R7EQ0FbxQqfmoF7itaoz8DwfqBN+Trb+MnzjI4fIjjkq1V8CP+E\r\nrV4CEXYgc1Izxye0iMWMn6GqHLJiudpCntUp6RwDG42Do6d595tyjFRdS7rf\r\nP3Qg+xvSFoOVxj6PWap1KNJ/LLEiooAn1ACq/VfeacfCSJNyTrOFVeH8n8vB\r\nmwMMF5wtiD3EVog8IU9j4yn8XjEynxdCb7kfZ5u1VyIDs0BTqq67P/YER0Oa\r\nQEmd0prMbSq1hBTIkZsLiLycWWN1D8+EhcjrAHNP9l0FdPFUEEJ6uHenAfxb\r\nTgUk4RfDY1G7T3hjtOtZRDdrfEXPS8V0yW8wwlQM4ujoVptGLX97KWda/Bq3\r\nv9Wq21VKoKkb09lqXJ6kihIQ/qN0AooBaLh9771P3AwUc2P8Jnih+2nQJv7l\r\nCU+WEWLbjMVHSc+taAwD7QS5+u41l9XR9VxYD16u/gimgNlJ6rASIMhTIFsl\r\nhAa36Numx+bA/haieLKgs7IW/PXrJRxa7yc=\r\n=XCox\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.0_1660970999353_0.5816547994930918"},"_hasShrinkwrap":false},"0.3.1":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.10","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/jest":"^28.1.7","@types/three":"^0.143.1","jest":"^28.1.1","jest-environment-jsdom":"^28.1.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.8","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.4","typescript":"^4.7.3"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"gitHead":"dfd295de89758e4add9f9cd21dbcdf97c36f0b15","_id":"shader-composer@0.3.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-UnWE7k1uZZCGFcIL47o4AF1d7jGIovxpxfeAACiwqC6NiJvZ/DyweLSVEhnvKL7HGooBBq03aMI2MSiLIjos7g==","shasum":"548807f2694c2789980e24b54672f81796a49ae3","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.1.tgz","fileCount":35,"unpackedSize":200426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBc4Oz1wsw4lhi3oAvGOdWCmyNG1ZLeJIGYe2KmxTRhEAiEA+BDRilmgdvqZYtJO4IgOTg0iWWw6lrkEF/Ywif59oZg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBQASACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1QhAAgCxFXscSubXxsGga84ADITLCkTX3r+Yhu/YskVNKNIW8s0po\r\nRKjAtMEnJLJo2VMYjBGuvVBitg3t/bm1wSizq3r37ppOYU0Gq7cO19FjoDd4\r\naDh8wOBq210FoEqVKHX6tBJoeQULrLX9mO6TpMf3HEBpPXHN+LEEeOIrWOqv\r\nB2MMVwMjDCVKkeAoN2t91jx6W6NtEM3gFuhZ7K+Si4dgGYiUIXQbDKfBesJK\r\nqwOUAhD2rTVhp684DHhH4x0+I141/tgfHWOZ/qIvTVROvFM//mJo2wCiubEK\r\nvR6jKkXxpFwGCKxk5Ki8wi37S027vIqbBD9S+Q637+zfZAnZcTOSZzs780ji\r\njpt7SAElKDmJG0dFbhgFm77tvEJWhlfxFZ3iiqkMsHI6XKd58QMqC9qlnoh2\r\nkEjVfUaTjfhH5hyxzi8cbfYE60wjvCflGqOm2G1H1pG5QoQnMlEyiLchFAPU\r\nmKFLor9rUBz/H2j3yncD4MwWlMmwxeK0gA55EsiIEy7SXF7nvJ922UMEBc8T\r\nq+yDYkq7Cl8vwbmcnNNzdB0hRJdQ92ojprtWkHxyyklgMPm+99ogUqPqtGFT\r\nfX6mB38wkpNlILdMAn8slpAJ0VSoDx8zT1RDEVZ++v8/GIewB68IOtoZ0R2O\r\n9wBTXI3z/Vm/R/eSNn3co6zxYU00/K+LUK0=\r\n=0oB4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.1_1661272082244_0.1097720676076861"},"_hasShrinkwrap":false},"0.3.2":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.2","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.13","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/jest":"^29.0.0","@types/three":"^0.143.2","jest":"^29.0.1","jest-environment-jsdom":"^29.0.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.8","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.4","typescript":"^4.8.2"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.1"},"gitHead":"db1917c7ac0c7e93ba4861e6b766fb11af9f3d12","_id":"shader-composer@0.3.2","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-l06/hNLGEdVW1PlFUatk1axdeOvY3Se1zBulHVxBbucXwtWgX13Hx5SuHeYOe9ahk7+S2fzK71QlRjUDhfAEsQ==","shasum":"7d043231bc3b3f939abeed5730d1bfd7c294c763","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.2.tgz","fileCount":35,"unpackedSize":210353,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC54Vbg9VaSiVDaXxkicwKwyq9s8rE6uIk3DBHLPd0sEAiByEHBY2m+Xsra29gBtZCjTi10WV7SFnWGu39/AfuNKRQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDiIFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprYw//SSnLN8uUzEyj3RhL8xbXZMWgBMT0O7732gZN5IN/uLBL11Vg\r\nI9vEB6AZbh1GpKMwJ7mqGnkj5kzb5QggJtyjK1eACK0Fz67CHxTxSqlz9a8M\r\n3w4P/KpobczFc0zr8N4etREluZvgcBNL9/y5Qcn4YbFMyLIrbMvZhYo47+yj\r\n5cun4AngxPENAEZaIkqF8f0KGr24RPU753yjRvd9ACJZRCg+2fX1xtYSSnB5\r\nygRgWoPHkHoBvLbwb5KolEoPR1NopJ5qWZJt6TVQe3MEXt3ahvbYB2Ezpk1j\r\nLKvvZORP7uOEsaKKbZW9CEU6FJv6uRosCSOW7bY/xgvPXSMET/hvFpNTLRKJ\r\n+YfWyrI1jqt69evuUri0BuhZHg7/Ts2GH0vUl93a0EnZM41OmzkFsK5Ms/z5\r\nhJFkLPBLZYKguShnQmdS8YMrnB9g37qI8s5loCqqHPcRO+/ndCSnenSA3XP1\r\ncZhHbnuDlCxPCdU+CW8xSLi59FkaSjEwM0OTdV6zFQZRZ4sNzq5ey2+rr0Z0\r\nGNpv9XgDaRYN1a3bvWyvOeIHDgJYm8SBltWpdOp4uIzPHlLn59RA7iRoiG43\r\nHnMkNhPNBcH+tLjdCUumg9OlcgaYy9m3Mc1ISe4/jPYljCjn2E+g7k1JU8jk\r\n3lEKTVN0OfLGWLjWUOL0+XN1fwCS+hjWPKQ=\r\n=A1gV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.2_1661870597431_0.8037232868359308"},"_hasShrinkwrap":false},"0.3.3":{"name":"shader-composer","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.3","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","types":"dist/shader-composer.cjs.d.ts","license":"MIT","sideEffects":false,"scripts":{"clean":"rimraf dist","dev":"preconstruct watch","docs":"typedoc --plugin typedoc-plugin-markdown --excludeInternal --name 'Shader Composer' src/index.ts src/stdlib/index.ts","build":"preconstruct build","release":"yarn ci && yarn publish","test":"jest --passWithNoTests","ci":"yarn clean && yarn build && yarn test"},"devDependencies":{"@babel/core":"^7.18.13","@babel/preset-env":"^7.18.10","@babel/preset-react":"^7.18.6","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.5","@types/jest":"^29.0.0","@types/three":"^0.143.2","jest":"^29.0.1","jest-environment-jsdom":"^29.0.1","rimraf":"^3.0.2","three":"^0.143.0","ts-jest":"^28.0.8","tslib":"^2.4.0","typedoc-plugin-markdown":"^3.13.5","typescript":"^4.8.2"},"peerDependencies":{"three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.3"},"gitHead":"aa2faa33ead43fa5c181b68fafe2ff7daebba877","_id":"shader-composer@0.3.3","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-+1c0vK5qiuyX6cj9yKyBNRd7+G7gguTKvFbyC4qwA/9IYim9rnol0yEpkIWG8bT3XlozL2fk45+fe9KV0PpLng==","shasum":"8bbe3b294fba7a66940923ab4ad4df8056f5c039","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.3.tgz","fileCount":35,"unpackedSize":210380,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc+5OIg0xuI7rprBQMA2blTYAKQQnukLyGo8mU/RmysAIgfiAyIIanFaM9GITZv2DH6M4HgeFH3zmwmXJf87LiVnM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDyi0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoojg//WqMGY74H+spHMeciphzjhW41sa1t231425DbmpYh1X8yBMBy\r\nlt4vvHv2CvdjS5iTe4RSuW3nC6uQ//UxXRR/GbjnBen+J65zg7yMqOk4muEs\r\nwz/X55Y3rttzNMiosc2FitnG7R/9W7+Cq2RSjVqgStRjdDfOTVc03UMj+jaJ\r\nLm6Fwb7DyKog2AdqSi8PvMlX0YPUPKUc/fNEM7NdR+ezVnl7rgb90Iw+VORJ\r\nBpV+L42gHni11qksH7c2MG+pd5NqmN5PGrdjQ5lj5b/WKJ1Sqefh0LA1QIja\r\ncOZk9cBSzPCQkz5C4eFMYCgxBSSjAj6KuO2z9ktFlpYiMigqQ+3EFUKdwtsH\r\n+ilvspz6RTk2xqf5D8LSfHiPuVuwgh1MpiApVBB57RuoCtuxQxkNuTBJLiVl\r\nVdgjXAHW/qJBJG1VuYfD1CaCiRJx+4ZV/cMdhMvVRMJ33LZUUnCciccpkke/\r\nYXDwQdde8MS6nFeMkMQmkN5azhGspKVtrxQ/OzA6g9StRZeMyYZ2vkt6TJa1\r\nBhCYQ5U3RyHOZrp9IrhWqmtEdneo5kx5DUnB13UwFTZ2qDfg+FxJ7St4Uv9Q\r\nnruAz4J1OzXt7ZFH8A0Zw1cIQty28/b0bygvB6sVJRw2N0N2b4I8KBwowGiY\r\nZPPEij3pZ7O2yg+pwFY6pS/wL+kYusa54Vw=\r\n=lzuz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.3_1661937843909_0.13320785643781807"},"_hasShrinkwrap":false},"0.3.4":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.3.4","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.2"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.3.4","_integrity":"sha512-Hre1sjesUIDKaMNLSBkD8X+Cn3bXAhqTM9GsAH/Ovs9Pun3lA7BX27fVdS5+2+2UIh7gxCbvv3NAobx0z84KgA==","_resolved":"/tmp/8f797b9673a5b3e8d1a1a6c3b793f478/shader-composer-0.3.4.tgz","_from":"file:shader-composer-0.3.4.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-Hre1sjesUIDKaMNLSBkD8X+Cn3bXAhqTM9GsAH/Ovs9Pun3lA7BX27fVdS5+2+2UIh7gxCbvv3NAobx0z84KgA==","shasum":"4c6e363257fbae4ae0a3d69e45ccba7bcfa695ce","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.3.4.tgz","fileCount":35,"unpackedSize":214486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5AdSiPt4V3l1d5TBjB7321LJQY9jacmc8cMCHsd8rtwIhAJCIqTpSq/t6+4fJVTWdsKLOBbyqqvYHAZNBz7dyML76"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjEb+SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9bQ/+LoHt98IaJp0KTK4IeKOJY0ygmsMespoHJDSZdhZ1XKO9ZfPy\r\n9ofqNmW4yT6iJbONt2jB6a3Acbs+nPDAhN+xJuKEL3G5dl32cdkLS4kfxpZ1\r\n++QsH3k6INE1LZsXvpCFfb6PyOHCIXHe/0CFxYOEuYfmVt67CHjDrFnzKM4j\r\npyhx5+4B48FIAh/1R3aptr+X88CuPZvyvE3woRmObefDc8qnjyJGSnoonQmK\r\nlGMGKCZ3SucFRn0oqpuD4vVXdFd0+wvIVQaEgsJc5t14w950XQ+Jnf8p0CoI\r\nN076EJON8kaQq8DqBFygd3NbSXgFFg61qdLVh/2IB6TVep5DZfKxxo9Egicu\r\nmSzzaV+M82vX4qQaEEUe4U7SPkLIj32lSu7l+HT/XvhG9rWwe06HR6XB4NNh\r\nbqRwvKUsTzSAvaGJeH+5oxLZHm7TgM98XR7NHDXbdKb3pnvGrwu77BccAYo6\r\nzj04i7qxKw3EDyketMib5tkqRwne/QJ1UjOC2z9SMnrwXIX2HoUyAdCkjYuv\r\nv2+vH1twxDQBoCANlj6+fYJrqaKlzwaw4itACRnzgDvbif0KIHin+OJ+FlyT\r\ngCTpnq91JfVZkcllRjM+X1cLxMQ/eiUIj/4Me1MPmRVsv3OT7k2P8PHAAF+N\r\nOJr/Clvz1SYPXGQJ+4zMVihJDa8/BZ9ucJY=\r\n=5l3W\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.3.4_1662107537802_0.8043902375733742"},"_hasShrinkwrap":false},"0.4.0":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.0","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.0","_integrity":"sha512-iEAe7sTzlgo0GQG7UM5laFle3XPFYwYIBjU6tS4M4sEmIx5tx8/+ePg9OpwRxtVZDwOIv8pzHOIYGmNI9K5Hpg==","_resolved":"/tmp/c205f48d04aa30e28df9df8bb614ee6a/shader-composer-0.4.0.tgz","_from":"file:shader-composer-0.4.0.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-iEAe7sTzlgo0GQG7UM5laFle3XPFYwYIBjU6tS4M4sEmIx5tx8/+ePg9OpwRxtVZDwOIv8pzHOIYGmNI9K5Hpg==","shasum":"ff4e057f8107682819bb797318548c88a7540fee","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.0.tgz","fileCount":41,"unpackedSize":231960,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYGRQYKf1X/Ft/NeUZzQYiASR2uHz1UX5DNK9WmJpMpAiEAlL1t3r4rld9NcvyTz/E7//xg6chctr95mvomWRsUzNo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFwnJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUzBAAgp9PFFthQI+lEVWT+mN8x8scNhOfu0+6bLb0Sy94yIc/9Cee\r\nkggZ/+Zij8q0QUMLHK5KPq9LUHhQXFtRb5LQutEx4NLH19tzwXAL4Pye46VU\r\nu9Rvrd8cAcG2PaLAIMy900vWAj0lLDpQIQ7rJHsooUlgJYdzdJ+naYeKTBfv\r\nBbKd8gntwIlqa6CWHgjgXl909V99SzyowOtKkGAa+dKbQKz6jLX+XU7S+pFB\r\nTNB79auPwJV/xGTjp4hbb7AfKgofY2zrYwR58YR5eBZ/Y0Qu+UIi0pLSd9OU\r\nSCUf9MNGH9EsNMlMlWkZhnt7vlJo9YQ2GU98+4kxIKH9jUVZkYS/0uYwxG0o\r\nNkivNCWL58UCqAUJiAZSBqXZM3jlHIoIvabRaxv1miAjV+cZIBN6g+qN2JrV\r\n7iUSbHVGw+V8jRDN9NSQ7xQa2P38evrVNGdLWFPi20QaGooz9anMO8x9x6xI\r\nG8bUWBAmcBfd+a7NWSw5YojDzcfb0uIp1Qh7NYsxkHVsHRfGAJff2fhmZF9D\r\n/mTPAeZ2n8gNrdi1x+a0FhD3n3DQFVi+ezEjr0QywMbu7hKT4k6dhvvRcA31\r\nyQfAqMQL47DkoOey+EisNpsBktKmiK/6HtWoe288iWYKsQdvDvt8tDLya7UO\r\npUrJe1+qtYJYkOGMq62T0hgbSWI/tarLack=\r\n=1+sy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.0_1662454217483_0.17942884636944711"},"_hasShrinkwrap":false},"0.4.1":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.1","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.1","_integrity":"sha512-dCA2NfIKlRS4PIqusAmDz+s82MhTp59A96oxtgI3erhpP6I5O0Kkq1QygxMbNcNP7nZ4tvBKp4jqGYvOzmIB8w==","_resolved":"/tmp/2bf784b8da27cbd37cfca043b6b180e0/shader-composer-0.4.1.tgz","_from":"file:shader-composer-0.4.1.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-dCA2NfIKlRS4PIqusAmDz+s82MhTp59A96oxtgI3erhpP6I5O0Kkq1QygxMbNcNP7nZ4tvBKp4jqGYvOzmIB8w==","shasum":"aeb2102ceb715e059bb193a10c72f6e96fd6635c","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.1.tgz","fileCount":41,"unpackedSize":240744,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVl4wEs6KSZvIFWr22isc1hbEt0G0zHVF4xAwcv9Tr5AiBPpuVklCHPh8QBncEMXVOubaaA3g8iqF6bfrnePbap6w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjIdq4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrkPA//dibPRecCTmCvCZDfZf63/F1krs3WXEXpRNHAc0JsoMRwz8KO\r\nGWzZSj+RHKExtlgcxEniDw5ap5IW/aGhjdReOgRLl57fTvlu/JKp/109rOxN\r\nA1eMjJzMDOyenqfZbJ/kpeAWtfQWYagRZu/UkcNKkYrYD16XkXZFd87B07jc\r\n74FAWaR/oK1GGo7CACHGoOvFXUSrcWBzd1CVnI9tqabMcW8Y5AAqEKWh0jRy\r\nFumv3kWNt+aW9H5Ps1TnikS9FiK21Kf2mMA3z4oHGs/EEBq2k+K0d7+v0164\r\nQYVrulmdVStrDYAOGxO8bh//qVTsfRZx/i3zWIx4Bp0MOWv61RWlRnztdihf\r\nupUJgagDUcH5ujEaNvayIiXdZOBRAVbW+oxux94iYN727WJZH6w4xHeM+Av9\r\na6tIt+ah8SIU7Tou1OsSlu8mOy1h7BlNZbf5bf/uWAt3yWKdZmKhqnwNrsiE\r\nN2NADREgxE6R+cx6j+1DRgZFG2l9FU22CeYeiRFGfV0tTUeWak7WVuHVjvQZ\r\nID1nz0J88YPrtBsJLwQS9jaUTK32FhnvWlXnqAfNplG0qqAoHDiFAxbA1ORT\r\nB1ZEShh4qJwAeCfC4Cm34F8CMZ+IOSYqEd3u8e4xnArb8wbKEInNqZCPisju\r\nb33XoMwJkAiTxIPu0B+TUU3HsqBI1iqZ95g=\r\n=2Gca\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.1_1663163064159_0.45659352277304066"},"_hasShrinkwrap":false},"0.4.2":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.2","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.2","_integrity":"sha512-pMRNz3Qs0G9l4VzIk+GlsuTLQQqtGZL/NGvSCWb1FXv7RdrmYnzX/LW1KM1TC68CofoE9NaDpWEmJoj9HbVEXA==","_resolved":"/tmp/3d4150e725e8eea9df242f9433ee5014/shader-composer-0.4.2.tgz","_from":"file:shader-composer-0.4.2.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-pMRNz3Qs0G9l4VzIk+GlsuTLQQqtGZL/NGvSCWb1FXv7RdrmYnzX/LW1KM1TC68CofoE9NaDpWEmJoj9HbVEXA==","shasum":"c3e19eb2a561e8cc91c893af6605dc8a9e53d2ee","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.2.tgz","fileCount":41,"unpackedSize":241079,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZzI/xO2Z6oSqi5fqvzQa1gdEO8qEIRqwZ628ckNo1+AiAdiY0N03PNV3fUMJcLDYxLrkU4mOB3fXjCHghD5xLh1w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjId8bACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpb1Q/9GkjyIXX4AgekNeYhfVnqXR2lwtl+vbogSMlMgnvjxCOZsV5v\r\neIO7RUlOwhNZMzhdA4nFqKVbOAtahijhr3K4CZVudHar26mBlT4Mb1DoF/bS\r\nhKeC5vNx1G8oJOFhmiFmSEdtvfa9UDzngB99QzbkElBE29mdquH3hDGrx2TV\r\nj2JrUwlZpPz/sNIKeE8GGe/wZY8SO4rikVlPm7sUTicAw+8OgkXfSf0CVJjp\r\ncJJP1wne02Dgiz5IiJ88kybWL6lDjrygR/oD548U0Kxqarwvn9I6M2j0KxNn\r\nUtf7H8aKFRWhNUytEUG2yAKXu/GXHpSOTtuSDSiynK07Wz2FBvVWoW/fRV2i\r\nHdu9KaBMIvH972Ffr86c8yWUse+St52Q/lDmvYPmPQhCdHplUGSFJlc4mLn8\r\nnVAI9JuIYtH6HsYZuwUoEEWaXXMfRHkRdmL0/+TKKvLvtPYIQ0udTKfwd1Db\r\nXCTmlvkksQopaNmD9WJwqXxBsLVzfmdNIQN4tvH8yK0JCuDCv5+4w3io3u5g\r\nAwnzEq8P6mjcygmBXReqG2ZlTmt38dp8rxjcYqBnJKwWpStpfPwpbrfJF3dH\r\nxaD6ORK6KY98LZoVt95Z855HFZzx/5+BU1MB6jq5R6I+Lbjf+A3N0pJtdwLz\r\nBzIP3r67PDSS3NSHi7n3YZKrv1Ux1FjOeoU=\r\n=4AJz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.2_1663164187437_0.2791226544656651"},"_hasShrinkwrap":false},"0.4.3":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.3","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.3","_integrity":"sha512-BwV+LH0+gQxRchBjmCPC/PzL0S1vMi3cmA2BUyRXsa6yrGWDV9fCDXP6lVPHE7UqfTG1R0oIJoSMVQhULIz1ug==","_resolved":"/tmp/480f9cc2e46c96f3770a2e7017963d83/shader-composer-0.4.3.tgz","_from":"file:shader-composer-0.4.3.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-BwV+LH0+gQxRchBjmCPC/PzL0S1vMi3cmA2BUyRXsa6yrGWDV9fCDXP6lVPHE7UqfTG1R0oIJoSMVQhULIz1ug==","shasum":"8311afd1a7306f859e7a612a873302dc30bea7b5","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.3.tgz","fileCount":41,"unpackedSize":241214,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGjVFx+RwyU8qcPOjJNZpejr18dlYqGB8734YTgNBA/IAiBkN4ceRWWAO6bm02lFDhdIJJc+pvRcLHtm9XP3phF6Rw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJaV1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrABAAjz/cn/5gxprHPDnndUuhLFeF9LQAV9xC2AVZkh11JSv/7MZA\r\nBOxXFwS+G+9dHXnwmAjFCcihzRIgoVONAtHmfRxiZvfZx7IZxesQxc+UsiQR\r\n98vb3sZ2OqL29DkPq6+kbcDvebUU5tKr5nPCcmszJ29TMyZqaDtq5KEYJwYo\r\ntT10jb2Az7BL1a9MFgyP59v6nvhf2QxnyyW2cPXouaR3bzbWy1eTeOh2mHVT\r\nL7QjVXU4ATGY1CDRZd9kdN3LGDti4msVRJv6qVLrXonM4iQm2/u58RVpGtKo\r\nwoueYPBC0sfoczL0jd13BYYkQ0yTOEn0k4TRfzuSP+iZQODfodBbcn1pRLKv\r\niHVLJwW6kPAL+pvp4ROjfu1iEj6jgK/tm6h7zTAedIz807Fc5RD6CZSSsI6X\r\nzmzmYgSMxTR9WTPA8xIVyyIokdOcvN+P7U+LfcTtEaMfowBF7GTp4pvzKp/M\r\n54G2gymXZrNO1M5Sfd0UfcXsEJU70N5h0SruMg47aarTgywtRqJZLKtSEd0G\r\ngFXKjyvqUrilITjBscyc88Htx5YIjfckbE0rbaq9PX9CvCB6rwLVxj9SnN4R\r\nQuuWoDxlynoJRYV47J7ZgPzw5FT1fx3i6fr6Ug31qmlp3u6rDy+xmMPdH1wE\r\n2Abm6kNT+0uhlbRQ7gbOt8rAC9MKiqHaoA0=\r\n=/Ced\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.3_1663411573691_0.31889079921522456"},"_hasShrinkwrap":false},"0.0.0-canary-20220917133533":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220917133533","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.0.0-canary-20220917133533","_integrity":"sha512-Z/2BJ/xATEda/7kpIVrKMnQsS2DW4HkOdan2KM7rrm77rv8+Qdy1v//ldT4c1y/OfnJkT+GZrJXNfVDPvIblGg==","_resolved":"/private/var/folders/j4/hnqh_70x7wnfnqz19p_s_mzh0000gn/T/577aad44c7cc318a7ccbaf37d851fb70/shader-composer-0.0.0-canary-20220917133533.tgz","_from":"file:shader-composer-0.0.0-canary-20220917133533.tgz","_nodeVersion":"18.9.0","_npmVersion":"8.19.1","dist":{"integrity":"sha512-Z/2BJ/xATEda/7kpIVrKMnQsS2DW4HkOdan2KM7rrm77rv8+Qdy1v//ldT4c1y/OfnJkT+GZrJXNfVDPvIblGg==","shasum":"87c1e26860996a3b58177d05aef65c7e98498fcd","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.0-canary-20220917133533.tgz","fileCount":41,"unpackedSize":244112,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC3PSFXw/2fYUqkNNN+pKvIgs9RXuhhfDEvkJjx04epCAiBW5/U41FC7czSZTHVivlnxteHYQkBBQ5kDHL35oqPjYQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJc1EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruPBAAhIuRU+wgj1XNRx4HhMf1n3SOB6TLcAUf+7ClvFzykLB3J3Ko\r\naOWgJ4VCXU1g81Vsx6ipNVXM0SjZw/zYvBYLuCeCbPsSuAHIg0A8ROzYIJ5C\r\nQnZ79qz4jYUl64uBhN1Ignrhwn1e1Ie2QX4tjzoZ6ik7xlhbqVIJfMtlv8te\r\nBaDnA1dRTAjujSEFU2ZSqfEhSHgrqArMtdrhlhFU0mGnZW+QVsbew3Wpdf/S\r\nGiBaRKK1BQTG56umCOk8qN1LUlQKR7NI2Oteo06TAri4+MI1GXTWLo+Lnpqm\r\nuSDTR1mGjbrey2kswoDiUx8L5w7KV4+eFdJltsG4TYC4MFdmG9ObL7Ynbqw8\r\nKpMSHgAmNhzVMMPHCqsWTE9EKokXIL4N0rX4QJuqnMdC1I/y+42GFG8CdWUR\r\noPOltLJWvg7X5oSH2KaSIza/kHORaRz2LoSbgyDO5/UrKTwzSUNDc/nYqMON\r\nnRuRYrb3eGZk9twYIlZi1zDMfZcYwUexMANg17m85VWqhsZr64a2ZqfT9vWm\r\nrwng++FLepufL+9NfY+w62w3i/ea8JCR+8lpv+87/lWyjWOS/hwBpuroFm9O\r\nGZ9rKP/SqTkX2Zr0smLMN9RqUXMbIwkCuLQl/1S9aS314FYQ7ZckYjX5bfW5\r\nSLLaaJC/E8qET7COGREg4CkPFTCATZimvhA=\r\n=1WJF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.0-canary-20220917133533_1663421763774_0.4998823826880767"},"_hasShrinkwrap":false},"0.4.4":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.4","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.143.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.4","_integrity":"sha512-m+S12Ecfw13mavetiKVAEJNVaIZBSaUTfpybL8poSlbhYZz6R99RzdonBMtmOf/DBidAoH0r87yTGmSIfQe0CA==","_resolved":"/tmp/d2cb8e60b7609e1a675fada51a502ac1/shader-composer-0.4.4.tgz","_from":"file:shader-composer-0.4.4.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-m+S12Ecfw13mavetiKVAEJNVaIZBSaUTfpybL8poSlbhYZz6R99RzdonBMtmOf/DBidAoH0r87yTGmSIfQe0CA==","shasum":"a9d554644746b09aed76cd985b43217a4eb61c3b","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.4.tgz","fileCount":41,"unpackedSize":241945,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYKFbkrSu2pNeKjNJKMsT39N5jN6RNx9xDSJ7hPf4KlAIhAOp6VVJI7dZQd9IrFbsCEoXWTzZp31SADddyHSl1xB9L"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJeovACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqA2w/+OvI0LO+IbwhcIl1kSJwG8geEDcZ3Hs9+Po/RKgHOKsFZvNHg\r\nalbglvXGFo7wK0HYbODLtwsFEOeIM4r21ZKRIKKSK+M5c63PCMcci6GMPoh9\r\nQsuAz9b3paBFmmb0fwM/RVF/mFY4k+oLIlc4QQ+psjCeVl1x2HGtSzS8+1oT\r\n40qjwuJ2KL/RBNQPIS2Vou+VmPH1+OzDlCO251ABQ35UrpnuwJN5Pp30ANrw\r\nir6Selk9NOR17hoPrL7AZrXNHiA2auSmAsq2f+0MhnSaQGzRsIxP96uMy2Zi\r\nBpUACzgVMbuzrzTOcn+oggQ5syDaEd54YI24Zna6ypJR+miZIKDH+zhSdbRL\r\n0evhs2kKn3qwzk2oCGKMf6cQiukQmeN7Nb87QNv4ZURl2gjllnU3H3/EHBZK\r\nm6sez/RbcbBvLIEbajkL1ICN8KB6dpx7xNmTQaF7bmoXKPoID9bf5v+7lXt0\r\np3Rtj8KJvySYgyUUpXnpTkmyQICBN3UvwPc5vzyixk2SuzA4mWkI9ZXy6l97\r\nsqKIyrdJ7ieBSdgZM4iS2h3IhVFcyP5ssp45NxCsd2I7V9LfTqn3TevEVOS2\r\nVUh31tcChTk7q3Iasva7hPeS1l/AH7W12wAvX9RkrtaSDZBFRRqURsqRB95N\r\nUSVbQhYxcznM5hn02skIC8gDSGeByO6YBq0=\r\n=Xwwn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.4_1663429167652_0.1586118066427762"},"_hasShrinkwrap":false},"0.4.5":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.5","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.144.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.5","_integrity":"sha512-GnN86/iDfM7KGo2lDRY0zzJbWG7iP6F9WOCHq5xEEPC/LUXc9aBg4odYLF9AMzXtec/25XAmfDoWAMqGrrqIGw==","_resolved":"/tmp/341186bc803b9cb4070cdaba303b9ad2/shader-composer-0.4.5.tgz","_from":"file:shader-composer-0.4.5.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-GnN86/iDfM7KGo2lDRY0zzJbWG7iP6F9WOCHq5xEEPC/LUXc9aBg4odYLF9AMzXtec/25XAmfDoWAMqGrrqIGw==","shasum":"c0110f3838d238d820c8f2c9a0202e18aaa290c4","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.5.tgz","fileCount":42,"unpackedSize":243034,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoBaoqGeMAy+0kfK/k05tXlCzZgMVoVOZLi6aaCOxSCAIhAPaFt6sLztjQHfVL2ClUd+fl3RTNUgysb8mN2V+At1VC"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNIThACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOAw/+JS0NR9pYU5Zimriidn4MBkdqyMKhyWIDhvgWHyMQF38aj93H\r\n6KV01jMXkYI7g+860LwJ7Fce19HvniX8T+SPKeRjNkiQHkGHn4UIv1E9cz1/\r\nInUOOkbUakIe97KDJTCWpMH01QhibOJym7nCA+UJxHHucGudMFomzJ/wiwco\r\n0V2ghP39wHDd9icoECfIaY8MHNgx4mjPO23vybyAiBb7uFzP/XJxclhE0AmE\r\n2LVnq1klW1tl9wZwdVRFN9hlFOOpC73kdj6KXOTVw46XFUzqtsPV3diYsiQn\r\nuGQeDttVkw8bOeTC1YrmMOHiNROr+9ZXpBJkJ0gdf8bX3/5DChflirW84D/P\r\n90fcGZU9l5REFOsVsDnVkS6cD2nzDvt/GN/wZwKMbP0HvrLl2b5WBm189Zxe\r\n/IR40EpkeubEY4FboHTS7WGeEhPbbd6gIAvNj4cSX+kr3FHXD92oWx6kQ1w3\r\n1pE4TKLU4JliPfr3svrhJohadTga1K8r26yjOuu+PiKKgNJLtPwpyxgedKqK\r\nFLlNXgm4V21bCrCah6o44WQ8HlIxdBQ1nf7PqkE4jn20pa1omZSh5rzczmbm\r\np+rNw1vd5cyd1e0CKJOaipy+YZz+js4k06QM+m1EamPUjXOK4ym/OXDFt6yw\r\nNQcZanywlbzoS9Knk2VL8NTg/t++Ndmwt5o=\r\n=f6PO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.5_1664386273096_0.05323483872452117"},"_hasShrinkwrap":false},"0.4.6":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.6","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"devDependencies":{"three":"^0.144.0"},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.6","_integrity":"sha512-HzZpO4WZbHoGYKEFcDjxgjp0zVxw7aAYUGhgUhMSF9gY3CHBBm/v2fm4l4N2TdJWo/rzgkxdcnBi0FZ/MJDx2g==","_resolved":"/tmp/4427f768297ff4612a9fbd85eb17cf40/shader-composer-0.4.6.tgz","_from":"file:shader-composer-0.4.6.tgz","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-HzZpO4WZbHoGYKEFcDjxgjp0zVxw7aAYUGhgUhMSF9gY3CHBBm/v2fm4l4N2TdJWo/rzgkxdcnBi0FZ/MJDx2g==","shasum":"849d273f81c8890b6bb343ea65e01ed3e8a748b8","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.6.tgz","fileCount":42,"unpackedSize":243477,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvkbVtdZRMTeWDQ17+yyjXR7SrNO7vMVTZy2PVlCrdSgIgPBk0fQQTAYGauaWdVubWNI/SYJSvvq7NCnCKlyXanZ4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOuQrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3BQ//UsQ8mvzo1AVhXaEVXsQ3AtlZnkdeYYuZ3MwCDEhjOcfJPKJ9\r\n/KZrv5iM/r/ejVo2v1mmp9rTzDCvWszGeN7Qku87+NrvGRLnfnN/K+Nmaxoc\r\nfuHw42ORd8jS7mmaTDa8Kr4yFpH3HfTCiDh9e3suXkTXBZWpqtpNDu5O0fjW\r\njL05eZ8HHS7s6+rbKy8CDT02z7adh+8PZjX/A4wicF3WwODZMgry5GeIEVRR\r\n/ssLsZDbKv769s0dY3FXbuN05zI6bBV20r3qPQZJ84N9emxWIwyz4944PQXi\r\nxI3NFpdVMZL2g5ZJ/zkfngQPDdanV0EDBIcW/ixJOYAZlMRlb/+YFnQpkNrl\r\nL2ooywrrWd44WUOiF8sJhJMD3AVaXEHTyh9fVR0CZAwKVVtvgdMOjoJbVEQt\r\nyz1qzvT6bZRyaEkpBAGRxe3dy3BKssl7kNkxlt/Oq19NbE5OLa81Edb3Hyru\r\nizfAWxO7XAYKI8QT2rPyOwkf95fDCEGJ6ewp/5dcrhcflPIMEVa2Ke5pjN45\r\nt4/nW3K2Q/3R8NGNGc8OLAGYTktJhwiDfzj8GjYRogshwMMa7biXQY/1CE6l\r\nPXDt71x58X3GdmvCEO1/aXM4LVqYsA6bsngiDaAw8rhDIj6p4B85dETX/XHq\r\nM5eXDCxNRi6RRTdKbIy32axjHxMweu0zauc=\r\n=Cnu/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.6_1664803883220_0.29431209274104875"},"_hasShrinkwrap":false},"0.4.7":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.7","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.7","_integrity":"sha512-urjKmEepbQCzjiaxO4eIVhxnI25NnGk68nvVbMWWbv8YqYZ/LN44k2Ewte2sn51jZZ5MGQ0T4ktjA9tZVErUyQ==","_resolved":"/tmp/c57ca9eb43c2018bcbac24f82733a8a5/shader-composer-0.4.7.tgz","_from":"file:shader-composer-0.4.7.tgz","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-urjKmEepbQCzjiaxO4eIVhxnI25NnGk68nvVbMWWbv8YqYZ/LN44k2Ewte2sn51jZZ5MGQ0T4ktjA9tZVErUyQ==","shasum":"d5d753c1f1035a8edf02902a916ebe387a0b8ca4","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.7.tgz","fileCount":42,"unpackedSize":246533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCH1NNpHCRM1ofXV50Kd9h41StYXAn9O5mlxmRG5pxfPcCIHR3ja/Be6KJP9h9CJCuur/3471HQ+e+P7LGi61mw9u9"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjV8yUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovYw/+MP1wbtoUJ0INwuBQccH41vQoSI6y/SNu+7+czlUsXMcGn9WW\r\n8sTEaXlXvDa8vsU7bVQdRL22fLINfOozBSkfCXQ5X/s+/oarppfEjlgMRM+f\r\nz0KWY3NyZ3KGjy017SiKH0e/GXolWczoNe1QEQ172bGoj3h5ArYI0KZJa9vr\r\nBdL3/gchqctJpGMFJuL92dysMwHlbxd26thvrMR3tesJvnxsUHffDxCIXJdt\r\ne5vWOIECZnXT7f9s03GRNs2egnHOwUyGHUhChxLwy4mur07yYt77T01Odot5\r\nCEOqFwD4HAyZxlZ1cqv7F5LJF2r5Z4vI6hgiPEq8qtK/g2Nmp7QBEFnf98dS\r\nuLS+9d2CoeXt9j6GVvw1+AWuGtX5/6c7OjlmJIy9xqp7Tb+/z08fSdX5D+sf\r\nRI8HbtFl0eBz2/yK8KcDW2TnRCc+WT6T3s5lgcX5b7OEsidV8JddMq1ODe9+\r\nZCWEDp99X42mDNIgGXt4tGo2RyhJGFXbkZ3G+cEvVkQg5iQ+5ktxpOD7Pv8X\r\nuE6NL9SWO4Am/elO9mx+a10I4/awWQeyXNwT1L99imVSdese1eP16tlR6gKc\r\ngz6GVN1uJtjZl/2khX+UBQuTfqyQSE4mgis9A5VtphiHSEg57V6b8gaz+F3t\r\niGweHzJhqp2FFk89LyuYFx6GMRdzTw3tPP0=\r\n=yYy1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.7_1666698388452_0.10151139009303756"},"_hasShrinkwrap":false},"0.4.8":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.8","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.8","_integrity":"sha512-9zF4MWb4YogzOtHoQjVSdkyUYrQHM5amOVn2G2ohloVRp0pofyOgq8iCPgbSvIaHChg4tJ9WW7fMLgIRb9HQfg==","_resolved":"/tmp/cf346c871cb983ff51ece09656d054a3/shader-composer-0.4.8.tgz","_from":"file:shader-composer-0.4.8.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-9zF4MWb4YogzOtHoQjVSdkyUYrQHM5amOVn2G2ohloVRp0pofyOgq8iCPgbSvIaHChg4tJ9WW7fMLgIRb9HQfg==","shasum":"5566a3f5874715e1f3e06ea40ce8e8f6b107525e","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.8.tgz","fileCount":42,"unpackedSize":247225,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICj1iAkMYpGmiDLhtL/MO+ApZCM0a+SkN8jvWvyjA06aAiEA+oo06Lpc+C/T8/xQP40dgDk9Aa3O6nZsFRmNYBLleTI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjbLf3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolHA/+OJ0WV0+J5XEjav8YL0JvbU5jx68p+ejQceBvmz0/5iH8MCdN\r\ncqhfl7wB/6oIf3lgo1uhhPYsKr83fdLe+/xq6hL2Kfoq5Re/EkZoxXXVhm00\r\nQfBWedv9w9J0CkTrboAPAr5eeZkI1PK3NETSX4xB0SurlU+1dhRJFNJv7HE9\r\nSKahsmqX/u0z6BCbZHiysMxVzdUdBdWuCeHTGnYsEK51G9+wZGqc1oeWGWAE\r\nyHejZ4WjvaZblcmJ2NVoD/yKCA3yD5UUCaa1uWwATnr3ctGRzcuK5UlRZMvS\r\nwYID9JoBQYS62YvlhEggiNVnXuwPpqnbl5j/lyDTdrtQUzErYyJ1s6fzDY5G\r\nWbn7sra292MpJYraOHpQL1Imx1O2SouP/ohiftvxZNMMCVHdA1KOQKXFixK3\r\na3fXZeLoCyHiChzMhHDq0gNIyPHjziycJ+P6vth70T3d5aseLRyBKLdHZ615\r\n14li7O3j7jkgY7ZmzaQHcz2oizTXlYn6gZ90hgdSxSbxwtkvWs+jInQg5HaW\r\nQ9q2hcHQXgMAZe0EAWAbMdbtMyUJBz+d6dS390pv+zAcnAmK2aKiKYtYYiSU\r\n4gVg+hTRW1GGd4xVG9/GuSaf8k02HPwfOFvwpOv4YB8+4bi8MYVzwb6HgZil\r\nvzM6inijyWm3OAf/29Q1j0nWYknrfRUT4dQ=\r\n=FiTK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.8_1668069367337_0.9826121824940415"},"_hasShrinkwrap":false},"0.4.9":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.4.9","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","_id":"shader-composer@0.4.9","_integrity":"sha512-GZaT6Ky6rXSG7vsl3fFSFgRrB8mmVK0JBPx0+rMi6+gp0KSnpDAaLHmrkznmRD2Jfdm9RD7RpZ8aIAOqT3gvUw==","_resolved":"/tmp/95fbfd51e5c6b6c8df5778756ac9c6e9/shader-composer-0.4.9.tgz","_from":"file:shader-composer-0.4.9.tgz","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-GZaT6Ky6rXSG7vsl3fFSFgRrB8mmVK0JBPx0+rMi6+gp0KSnpDAaLHmrkznmRD2Jfdm9RD7RpZ8aIAOqT3gvUw==","shasum":"80f08df2533568753f0fbd2b343b4fec85c0892d","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.4.9.tgz","fileCount":42,"unpackedSize":247186,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF0TgpnpPSEJIeRQHz/nCEnVpjip8xcQH5KV/EUZJvpYAiBexexU2H2ZzDf/frjiRYF4t0/LegsVMPH4mWMZDwkxDw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjeNFDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmohbg/9Ed+MN2Adocf9ZNCsIiNeh0EFCGc8jAO1Qdesft5hN7maRtDs\r\nqmf8B5C0nv7MjO9ZQ6h4zvlq4Xk5gAtg8BMxkNelBioVQSVm5zu9CFk+qpjV\r\nW0GMhbIVV8YLFWrkLX54JW5Vdftt1DcaXw06Hat9K79HBis2m6W11RArLICE\r\nnLTMg46IA3Y4bYdqy5d71knh2olC6gao7YbFUlGZzVov5/hhBGYxOpPP0cNH\r\nSEnU4R8omDLuGSTJolywOSY8EiO5SYNEJRqgH87cQMAEhu1vxvX2yvjdCTLA\r\nBxyl7NUnGGwA7TO+z0XDELWyds94lWlNZk8NNusyFuXCmsYoXGVcizKjJ16T\r\nd7yLgDB9LJ4OZgR2oKXYC407CksBv4ekloCCPwpziFhGKaDrlWvpImmlkUPV\r\nsxIQN4bYisDr/F1XqwBQnPbSNzXXtk5Em4k1OdGB2GMs3y73ciJqOq53h2ho\r\nUVYQrMX1JqdgE8n/nRwqTlMz9Bsc5BdyUGox0JJX7xFzXIXZaaO6Xa5ocuV7\r\n5npW5KaRGhD4Zqz7OwJLOX6f8BD0PlkHXzejUQBeX1aPsvwRCxGhjqM6XxDR\r\ngza5HkzSDXHyAI+52iZwUQnilaDFYjZ3Mlao//HtcrKPJEEIpLgTClYGTzou\r\ndZfqyv6gDkTiK621A0s/8XCFKVaio0nUmvw=\r\n=3mqQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.4.9_1668862275373_0.9340626949020407"},"_hasShrinkwrap":false},"0.0.0-canary-20221129141308":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20221129141308","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"peerDependencies":{"three":">=0.141.0"},"dependencies":{"fp-ts":"^2.12.3"},"devDependencies":{"gl-matrix":"^3.4.3"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Write Three.js shaders, but with JavaScript! ✨\n\nShader Composer is a library for authoring Three.js shaders with JavaScript. It offers a lean, functional API that makes shader composition straight-forward and fun, while allowing for simple, low-friction reusability of your favorite shader functions.\n\nConceptually, it is modelled after node-based shader tools like Unity's Shader Graph, but fully commits to a code-first approach.\n\n## Who is this for?\n\nShader Composer aims for a sweet spot between the ease of use of node-based tools and the flexibility of writing shaders by hand. However, it does _not_ entirely shield you from the underlying Three.js shader language, or the way shaders work in general, so ideally you should be familiar with GLSL to get the most out of it.\n\nIf you're _not_ familiar with authoring shaders and are looking for a quick way to get started, you might want to check out [Material Composer] instead. It builds on top of Shader Composer and provides a higher-level API for authoring materials from modules (which themselves are built using Shader Composer, and can often be customized using Shader Composer primitives.)\n\n## Projects using Shader Composer\n\n- **[Material Composer]**, providing a high-level API for authoring materials from layerable, shader-driven modules.\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## How does it work?\n\nShader Composer's central API is the `compileShader` function, which takes the root of a tree of so-called **shader units**, compiles that tree into a shader, and returns it. You can then plug this shader into an instance of `THREE.ShaderMaterial`, or one of the other built-in Three.js materials with a little help from the excellent [three-custom-shader-material].\n\nThe root of your shader graph is typically a so-called **master unit**. The choice of which master unit to use will largely depend on the material you plan on using the shader in; Shader Composer provides master units for `THREE.ShaderMaterial` and the three-custom-shader-material library. (But it's easy to build your own in case you need it!)\n\nJust like all other shader units, master units are just functions that return objects. An extremely simple shader graph designed for use with `THREE.ShaderMaterial` may look like this:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n```\n\nThis unit can now be compiled and plugged into a `ShaderMaterial` instance:\n\n```js\nconst [shader] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n```\n\nThe graph itself is pretty simple -- you will have guessed already that it merely sets the color of all fragments to `hotpink`. Let's make things a little more interesting:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), Time())\n})\n```\n\nNow we're multiplying the color by time! `Time` is a function that will set up and return a uniform node that contains the current time in seconds. `Mul` function is a function that multiplies two values together. These are just two units that are provided by Shader Composer, but there are many more -- and you can, of course, build your own!\n\n## Shader Update Callbacks\n\nShader units may optionally declare a JavaScript `update` callback that is expected to be invoked every frame. (For example, the `Time` unit uses this to update its uniform.)\n\nInvoking this callback is the responsibility of the user, but Shader Composer makes it as easy as possible by returning a single `update` function as part of `compileShader`'s second return object:\n\n```js\nconst [shader, { update }] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n\nfunction animate() {\n  requestAnimationFrame(animate)\n  update()\n}\n\nanimate()\n```\n\nIf you're using React-Three-Fiber, the [shader-composer-r3f] glue library has a hook that automates this. Please refer to the documentation of that library for details.\n\n## Functional Composition\n\nSince shader units are typically created through functions, you can use functional composition to build up more complex shader graphs in a manner that keeps things easy to reason about. For example, let's say we want to create a shader that will multiply the color by the normalized sine value of the current time. A first implementation might look like the following:\n\n```js\nShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), NormalizePlusMinusOne(Sin(Time())))\n})\n```\n\nThat's a lot of nesting! But we can import the `pipe` function from [fp-ts] or similar libraries and use it to make things a little more readable:\n\n```ts\nimport { pipe } from \"fp-ts/function\"\n\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n\nShaderMaterialMaster({\n  color: ModulateOverTime(new Color(\"hotpink\"))\n})\n```\n\n## Authoring Units\n\n### Composition of existing units\n\nShader Composer provides an extensive collection of built-in units, and authoring your own units often means combining the built-in units into something new, like in the `ModulateOverTime` example above:\n\n```ts\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n```\n\n**TypeScript note:** the two main types provided by Shader Composer are `Unit<T>` and `Input<T>`; `Unit<T>` describes an actual _unit_ of a specific GLSL type, while `Input<T>` describes a _possible input value_ of a specific GLSL type. The `Input<T>` type allows some extra flexibility in the way you can author your units, as it allows you to pass in either a `Unit<T>` or a plain JavaScript value of type `T`. (This is useful for things like colors, which use the GLSL type `vec3`, but `Input<T>` will allow you to pass an actual instance of `THREE.Color`.)\n\n### Creating custom units\n\nAlternatively, you can also author entirely custom units. This is done through the `Unit(type, value, config)` function. For example:\n\n```ts\nconst color = Unit(\"vec3\", new Color(\"hotpink\"), {\n  name: \"My favorite color\"\n})\n```\n\nThe first argument describes the GLSL type of the unit, the second its value. The third is an object containing configuration options.\n\n### Unit types\n\nEvery unit in a Shader Composer graph has a specific type, and holds a value of that type. The type of a unit is a string that describes the GLSL type of the unit. For example, the `Time` unit has the type `float`, while the color unit we created abovehas the type `vec3`.\n\nThe unit's value must be compatible with this type. (In the generated GLSL, each unit creates a variable that holds its value.)\n\n### Unit values\n\nThe second argument allows you to specify the unit's value. You have a few options here:\n\n- A plain JavaScript value of the correct type. For example, a `float` unit can be initialized with a plain JavaScript number, or a `vec3` unit can be initialized with an instance of `THREE.Vector3`, an instance of `THREE.Color`, or an array holding three numbers.\n- A reference to another unit. For example, you can create a `vec3` unit that holds the return value of a function returning a `vec3` unit, or any input compatible with it.\n- An _expression_. Expressions allow you to construct verbatim GLSL code that will be inserted into the generated shader. They are built using tagged template literals, and unlike normal strings, are able to tie into the compiler's dependency management.\n\nLet's have some examples. Here we're creating a unit of type `float` that holds a numerical value:\n\n```ts\nconst number = Unit(\"float\", 1.5)\n```\n\nHere we're changing the unit to hold the return value of a function:\n\n```ts\nconst number = Unit(\"float\", Add(1, 0.5))\n```\n\nAnd here we're using an expression to directly insert GLSL code into the shader. Shader Composer exports a `glsl` tagged template literal that can be used to create expressions, which is aliased to `$`:\n\n```ts\nconst number = Unit(\"float\", $`1 + 0.5`)\n```\n\nThe above becomes a little more interesting when you turn it into a function that produces a unit:\n\n```ts\nconst AddTwoNumbers = (a: Input<\"float\">, b: Input<\"float\">) =>\n  Unit(\"float\", $`${a} + ${b}`)\n```\n\nWhat the above unit does isn't terribly exciting, but there is one noteworthy aspect to it: consider that the two function arguments are typed `Input<\"float\">`. This means that the user of this function can pass any kind of value in that would be compatible with a `float` unit. For example, the user could pass in a plain JavaScript number, or a reference to another unit that produces a `float` value. The inputs could be entire hugely complex sub-graphs of your shader. The function itself doesn't care, it just takes the inputs and plugs them into the expression.\n\n## Chunks\n\nMost of the time, you will be dealing with units that hold values, but sometimes, you may need to create a unit that holds a chunk of GLSL body or header code. You can provide these through the configuration object (the third argument to the `Unit` function):\n\n```ts\nconst ImperativelyDoSomething = Unit(\"float\", 0, {\n  fragment: {\n    header: $`vec4 myColor = vec4(1.0, 0.0, 0.0, 1.0);`,\n    body: $`gl_FragColor = myColor;`\n  }\n  /* Also possible for `vertex`, obviously. */\n})\n```\n\n> **Warning** It is generally recommended to _not_ use chunks for anything that can be done another way. Chunks should be considered a last resort, and be used sparingly, as they can make your shader graph harder to reason about, and increase the risk of namespace collisions.\n\n## Snippets\n\n**TODO**\n\n## Questions and Answers\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\n\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n[fp-ts]: https://github.com/gcanti/fp-ts\n[shader-composer-r3f]: https://github.com/hmans/composer-suite/tree/main/packages/shader-composer-r3f\n[material composer]: https://github.com/hmans/composer-suite/tree/main/packages/material-composer\n\n```\n\n```\n","readmeFilename":"README.md","_id":"shader-composer@0.0.0-canary-20221129141308","_integrity":"sha512-XOln19+cxV2hq2SkhhbwmztVt2M1Ik0ua8X4aU/anENcwNjchfrJ2oo31t93saSn9Uf0T370rKatt2SQkhxAAg==","_resolved":"/private/var/folders/j4/hnqh_70x7wnfnqz19p_s_mzh0000gn/T/10934b15ba653f9acc1c69399398ac4a/shader-composer-0.0.0-canary-20221129141308.tgz","_from":"file:shader-composer-0.0.0-canary-20221129141308.tgz","_nodeVersion":"19.1.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-XOln19+cxV2hq2SkhhbwmztVt2M1Ik0ua8X4aU/anENcwNjchfrJ2oo31t93saSn9Uf0T370rKatt2SQkhxAAg==","shasum":"c17d7f5a710e3bf7102af2be1c11e53e759b46f4","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.0-canary-20221129141308.tgz","fileCount":42,"unpackedSize":250562,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCliD4TvKApHFAjHyLQf33+mdVcFYSliZbM7QQ5oVUhvQIgGuvVoM4S4C9fcPk4ouJo30HEX84vMqpydE7LY7lj5hE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhhOFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWPg/9GMNPST/VolOMVWCRk37ixv9YO1Ip5MkYHygHBX+YRCvijZUn\r\nG/dM8zqG1qmCPnaum2JWj7lWUGLRVaqZr75e0CSM7ToK50pxV+hIMDvjEKho\r\nBy8/LiNkV3MoYW+qvfZKZgTEp/lQ1N83nG9WGvlPhzJHdhaqjGbKRuhvIfVC\r\nSzm9hILnq6+ceo4m9rIsgFfytZnsFAm4n6Gq8sgfuHNpAgQb38ZmYkQd8hD/\r\n1Iu9pvKO2ZOhnFvi+wviw9y/Ac00DBqlbHDtCogqconJfG+vayQCmPvyVCbd\r\nBY/LjzI8Qa+ZDMc4uxaHx6SmNQJC5HigcSEgaAaJ31mXKVzHmyqhbHzzyW61\r\np0prFlhthRluXTGZPfAJJQM2uLI4eVH94iJxl1CHecZNzsi99y239LeRFxZb\r\nlaB7AK1EhdTnG+B/Brt8C7XSPmMXb4o/WceHoQVCisooFtvx0ye6AHqDwNVx\r\n2tA8L+AfOuGlXbwENdJgYj54Upc2LsRZtGpPudCP6RljxoJshkyRykdn7NEY\r\nV+vPd2FLtCmIkH3Gp9S09I/YjwGJvvaS1kM/55dX0e8DBpGh5usraXdNCoI2\r\nVQ2h+TGaymFUa9lQqTRfxVSQcBYZnxvvFT4aZAeEt41zeCnAjBR8jFbpIjmQ\r\nKNjPXdt1XVu0QyKyEe8i6owAgf8wTLRdYXg=\r\n=ePN1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.0-canary-20221129141308_1669731204892_0.8988703303167811"},"_hasShrinkwrap":false},"0.0.0-canary-20221129151046":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20221129151046","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"dependencies":{"fp-ts":"^2.12.3"},"devDependencies":{"gl-matrix":"^3.4.3","three":">=0.141.0"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Write Three.js shaders, but with JavaScript! ✨\n\nShader Composer is a library for authoring Three.js shaders with JavaScript. It offers a lean, functional API that makes shader composition straight-forward and fun, while allowing for simple, low-friction reusability of your favorite shader functions.\n\nConceptually, it is modelled after node-based shader tools like Unity's Shader Graph, but fully commits to a code-first approach.\n\n## Who is this for?\n\nShader Composer aims for a sweet spot between the ease of use of node-based tools and the flexibility of writing shaders by hand. However, it does _not_ entirely shield you from the underlying Three.js shader language, or the way shaders work in general, so ideally you should be familiar with GLSL to get the most out of it.\n\nIf you're _not_ familiar with authoring shaders and are looking for a quick way to get started, you might want to check out [Material Composer] instead. It builds on top of Shader Composer and provides a higher-level API for authoring materials from modules (which themselves are built using Shader Composer, and can often be customized using Shader Composer primitives.)\n\n## Projects using Shader Composer\n\n- **[Material Composer]**, providing a high-level API for authoring materials from layerable, shader-driven modules.\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## How does it work?\n\nShader Composer's central API is the `compileShader` function, which takes the root of a tree of so-called **shader units**, compiles that tree into a shader, and returns it. You can then plug this shader into an instance of `THREE.ShaderMaterial`, or one of the other built-in Three.js materials with a little help from the excellent [three-custom-shader-material].\n\nThe root of your shader graph is typically a so-called **master unit**. The choice of which master unit to use will largely depend on the material you plan on using the shader in; Shader Composer provides master units for `THREE.ShaderMaterial` and the three-custom-shader-material library. (But it's easy to build your own in case you need it!)\n\nJust like all other shader units, master units are just functions that return objects. An extremely simple shader graph designed for use with `THREE.ShaderMaterial` may look like this:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n```\n\nThis unit can now be compiled and plugged into a `ShaderMaterial` instance:\n\n```js\nconst [shader] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n```\n\nThe graph itself is pretty simple -- you will have guessed already that it merely sets the color of all fragments to `hotpink`. Let's make things a little more interesting:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), Time())\n})\n```\n\nNow we're multiplying the color by time! `Time` is a function that will set up and return a uniform node that contains the current time in seconds. `Mul` function is a function that multiplies two values together. These are just two units that are provided by Shader Composer, but there are many more -- and you can, of course, build your own!\n\n## Shader Update Callbacks\n\nShader units may optionally declare a JavaScript `update` callback that is expected to be invoked every frame. (For example, the `Time` unit uses this to update its uniform.)\n\nInvoking this callback is the responsibility of the user, but Shader Composer makes it as easy as possible by returning a single `update` function as part of `compileShader`'s second return object:\n\n```js\nconst [shader, { update }] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n\nfunction animate() {\n  requestAnimationFrame(animate)\n  update()\n}\n\nanimate()\n```\n\nIf you're using React-Three-Fiber, the [shader-composer-r3f] glue library has a hook that automates this. Please refer to the documentation of that library for details.\n\n## Functional Composition\n\nSince shader units are typically created through functions, you can use functional composition to build up more complex shader graphs in a manner that keeps things easy to reason about. For example, let's say we want to create a shader that will multiply the color by the normalized sine value of the current time. A first implementation might look like the following:\n\n```js\nShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), NormalizePlusMinusOne(Sin(Time())))\n})\n```\n\nThat's a lot of nesting! But we can import the `pipe` function from [fp-ts] or similar libraries and use it to make things a little more readable:\n\n```ts\nimport { pipe } from \"fp-ts/function\"\n\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n\nShaderMaterialMaster({\n  color: ModulateOverTime(new Color(\"hotpink\"))\n})\n```\n\n## Authoring Units\n\n### Composition of existing units\n\nShader Composer provides an extensive collection of built-in units, and authoring your own units often means combining the built-in units into something new, like in the `ModulateOverTime` example above:\n\n```ts\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n```\n\n**TypeScript note:** the two main types provided by Shader Composer are `Unit<T>` and `Input<T>`; `Unit<T>` describes an actual _unit_ of a specific GLSL type, while `Input<T>` describes a _possible input value_ of a specific GLSL type. The `Input<T>` type allows some extra flexibility in the way you can author your units, as it allows you to pass in either a `Unit<T>` or a plain JavaScript value of type `T`. (This is useful for things like colors, which use the GLSL type `vec3`, but `Input<T>` will allow you to pass an actual instance of `THREE.Color`.)\n\n### Creating custom units\n\nAlternatively, you can also author entirely custom units. This is done through the `Unit(type, value, config)` function. For example:\n\n```ts\nconst color = Unit(\"vec3\", new Color(\"hotpink\"), {\n  name: \"My favorite color\"\n})\n```\n\nThe first argument describes the GLSL type of the unit, the second its value. The third is an object containing configuration options.\n\n### Unit types\n\nEvery unit in a Shader Composer graph has a specific type, and holds a value of that type. The type of a unit is a string that describes the GLSL type of the unit. For example, the `Time` unit has the type `float`, while the color unit we created abovehas the type `vec3`.\n\nThe unit's value must be compatible with this type. (In the generated GLSL, each unit creates a variable that holds its value.)\n\n### Unit values\n\nThe second argument allows you to specify the unit's value. You have a few options here:\n\n- A plain JavaScript value of the correct type. For example, a `float` unit can be initialized with a plain JavaScript number, or a `vec3` unit can be initialized with an instance of `THREE.Vector3`, an instance of `THREE.Color`, or an array holding three numbers.\n- A reference to another unit. For example, you can create a `vec3` unit that holds the return value of a function returning a `vec3` unit, or any input compatible with it.\n- An _expression_. Expressions allow you to construct verbatim GLSL code that will be inserted into the generated shader. They are built using tagged template literals, and unlike normal strings, are able to tie into the compiler's dependency management.\n\nLet's have some examples. Here we're creating a unit of type `float` that holds a numerical value:\n\n```ts\nconst number = Unit(\"float\", 1.5)\n```\n\nHere we're changing the unit to hold the return value of a function:\n\n```ts\nconst number = Unit(\"float\", Add(1, 0.5))\n```\n\nAnd here we're using an expression to directly insert GLSL code into the shader. Shader Composer exports a `glsl` tagged template literal that can be used to create expressions, which is aliased to `$`:\n\n```ts\nconst number = Unit(\"float\", $`1 + 0.5`)\n```\n\nThe above becomes a little more interesting when you turn it into a function that produces a unit:\n\n```ts\nconst AddTwoNumbers = (a: Input<\"float\">, b: Input<\"float\">) =>\n  Unit(\"float\", $`${a} + ${b}`)\n```\n\nWhat the above unit does isn't terribly exciting, but there is one noteworthy aspect to it: consider that the two function arguments are typed `Input<\"float\">`. This means that the user of this function can pass any kind of value in that would be compatible with a `float` unit. For example, the user could pass in a plain JavaScript number, or a reference to another unit that produces a `float` value. The inputs could be entire hugely complex sub-graphs of your shader. The function itself doesn't care, it just takes the inputs and plugs them into the expression.\n\n## Chunks\n\nMost of the time, you will be dealing with units that hold values, but sometimes, you may need to create a unit that holds a chunk of GLSL body or header code. You can provide these through the configuration object (the third argument to the `Unit` function):\n\n```ts\nconst ImperativelyDoSomething = Unit(\"float\", 0, {\n  fragment: {\n    header: $`vec4 myColor = vec4(1.0, 0.0, 0.0, 1.0);`,\n    body: $`gl_FragColor = myColor;`\n  }\n  /* Also possible for `vertex`, obviously. */\n})\n```\n\n> **Warning** It is generally recommended to _not_ use chunks for anything that can be done another way. Chunks should be considered a last resort, and be used sparingly, as they can make your shader graph harder to reason about, and increase the risk of namespace collisions.\n\n## Snippets\n\n**TODO**\n\n## Questions and Answers\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\n\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n[fp-ts]: https://github.com/gcanti/fp-ts\n[shader-composer-r3f]: https://github.com/hmans/composer-suite/tree/main/packages/shader-composer-r3f\n[material composer]: https://github.com/hmans/composer-suite/tree/main/packages/material-composer\n\n```\n\n```\n","readmeFilename":"README.md","_id":"shader-composer@0.0.0-canary-20221129151046","_integrity":"sha512-YDpIKSPS2Qm2lG9Rkm66I56Ii7jtgd7EDLhnOwDYuo+ygKc9gPbRR/S2hyGjlyI5wWeuaNQpuYuKTGSLxbyE1Q==","_resolved":"/private/var/folders/j4/hnqh_70x7wnfnqz19p_s_mzh0000gn/T/431fa5d1ceeb375961f4a36d71119192/shader-composer-0.0.0-canary-20221129151046.tgz","_from":"file:shader-composer-0.0.0-canary-20221129151046.tgz","_nodeVersion":"19.1.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-YDpIKSPS2Qm2lG9Rkm66I56Ii7jtgd7EDLhnOwDYuo+ygKc9gPbRR/S2hyGjlyI5wWeuaNQpuYuKTGSLxbyE1Q==","shasum":"6b18fb6801d14794f66323bc658d2e4928a62cb0","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.0-canary-20221129151046.tgz","fileCount":42,"unpackedSize":250061,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6u3BsGLt3pcQgUg+Vyvsfe25PkG6e3eOPaUVsivjArwIhAMe57R8CjOObuHAUWZlg5RK0CtjRydwG6ykmA69ZhnMh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhiEFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYoRAAnCnIJmAw8wd3vdTDc7zuj6U8h9oJwx8SpiDCaF3ZlIQf+dG2\r\nS4OfXc6N0L1qXKkFpQO98CGOqGqy8ePVb/rIHrjvqSA/ixesAJFvNLMRuul7\r\nuGEFVYCB8xa4d9wjA2J9L25CB5k7SDUaXmdQslI3/nLVajJdczWeB0Atifj6\r\nzlnwe/5h7jmBC05Wzl4hU5BzJVCGnEbbqCc5awSOm3u/Km9wu7SQqs2/Hj/4\r\nHZ1xpfeyEQdNYuLuYXfE73G8ZBX1LamBFXYTRvKVvV/w3Ti9BQ1Mpw6RSEiq\r\nlnAbJlVYVqK+iz+99e55HNzylOHJKqrJJpTfQjnRvL0piwSCkMlOvxmuxGaZ\r\nVhZLUh8Vj2c5UzXeUxJXqyzJRWp7awXgKtEq333vOAN3U1trQI5EnDXBAmgs\r\nVsvZMx95v1tkDb3TxPCF6MINcIdy3iTLSrDEbfkWhzFQReeH5HCqcQqzKwq8\r\nElmmzNL8SLHQMoCpEzz40796K8PaGRdgpAkCQCPNKgNtU563ETqbHJeHLzZJ\r\n88pi9fw6WsAFMkxCJ543/qrxdnX046jvtP3tVsAZ2Qh3+7/pktidovfsO2Zx\r\n79CpCCgpTmS8HYO4T0/VyqrDHbx9C7+x9YEK1f07YdQUGzMHN2O+VS1xOV5J\r\nDODhN1sOiU3Iyz4W/KMJRp5XS31aOYHkdIw=\r\n=iAt9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.0-canary-20221129151046_1669734661288_0.31492014382287015"},"_hasShrinkwrap":false},"0.0.0-canary-20221130162026":{"name":"shader-composer","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20221130162026","main":"dist/shader-composer.cjs.js","module":"dist/shader-composer.esm.js","typedoc":{"entryPoint":"./src/index.ts","readmeFile":"./README.md"},"preconstruct":{"entrypoints":["index.ts","fun.ts","postprocessing.ts","r3f.ts","three.ts"]},"license":"MIT","sideEffects":false,"babel":{"presets":["@babel/preset-env","@babel/preset-react","@babel/preset-typescript"]},"dependencies":{"@shader-composer/core":"0.0.0-canary-20221130162026","@shader-composer/noise":"0.0.0-canary-20221130162026","@shader-composer/postprocessing":"0.0.0-canary-20221130162026","@shader-composer/r3f":"0.0.0-canary-20221130162026","@shader-composer/three":"0.0.0-canary-20221130162026"},"scripts":{"build":"preconstruct build","test":"jest"},"types":"./dist/shader-composer.cjs.d.ts","readme":"![Shader Composer](https://user-images.githubusercontent.com/1061/181591252-3bf47e47-2f66-4a7a-bb40-762ff6141248.jpg)\n\n[![Version](https://img.shields.io/npm/v/shader-composer?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Downloads](https://img.shields.io/npm/dt/shader-composer.svg?style=for-the-badge)](https://www.npmjs.com/package/shader-composer)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/shader-composer?label=bundle%20size&style=for-the-badge)](https://bundlephobia.com/result?p=shader-composer)\n\n## Write Three.js shaders, but with JavaScript! ✨\n\nShader Composer is a library for authoring Three.js shaders with JavaScript. It offers a lean, functional API that makes shader composition straight-forward and fun, while allowing for simple, low-friction reusability of your favorite shader functions.\n\nConceptually, it is modelled after node-based shader tools like Unity's Shader Graph, but fully commits to a code-first approach.\n\n## Who is this for?\n\nShader Composer aims for a sweet spot between the ease of use of node-based tools and the flexibility of writing shaders by hand. However, it does _not_ entirely shield you from the underlying Three.js shader language, or the way shaders work in general, so ideally you should be familiar with GLSL to get the most out of it.\n\nIf you're _not_ familiar with authoring shaders and are looking for a quick way to get started, you might want to check out [Material Composer] instead. It builds on top of Shader Composer and provides a higher-level API for authoring materials from modules (which themselves are built using Shader Composer, and can often be customized using Shader Composer primitives.)\n\n## Projects using Shader Composer\n\n- **[Material Composer]**, providing a high-level API for authoring materials from layerable, shader-driven modules.\n- **[VFX Composer](https://github.com/hmans/vfx-composer)**, a visual effects-focused GPU particles runtime for Three.js.\n\n## Examples & Sandboxes\n\n- **[Official Examples App](https://shader-composer-examples.vercel.app/)** ([CodeSandbox](https://codesandbox.io/p/github/hmans/shader-composer), [Source Code](https://github.com/hmans/shader-composer/tree/main/apps/examples/src/examples))\n\n## How does it work?\n\nShader Composer's central API is the `compileShader` function, which takes the root of a tree of so-called **shader units**, compiles that tree into a shader, and returns it. You can then plug this shader into an instance of `THREE.ShaderMaterial`, or one of the other built-in Three.js materials with a little help from the excellent [three-custom-shader-material].\n\nThe root of your shader graph is typically a so-called **master unit**. The choice of which master unit to use will largely depend on the material you plan on using the shader in; Shader Composer provides master units for `THREE.ShaderMaterial` and the three-custom-shader-material library. (But it's easy to build your own in case you need it!)\n\nJust like all other shader units, master units are just functions that return objects. An extremely simple shader graph designed for use with `THREE.ShaderMaterial` may look like this:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n```\n\nThis unit can now be compiled and plugged into a `ShaderMaterial` instance:\n\n```js\nconst [shader] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n```\n\nThe graph itself is pretty simple -- you will have guessed already that it merely sets the color of all fragments to `hotpink`. Let's make things a little more interesting:\n\n```js\nconst root = ShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), Time())\n})\n```\n\nNow we're multiplying the color by time! `Time` is a function that will set up and return a uniform node that contains the current time in seconds. `Mul` function is a function that multiplies two values together. These are just two units that are provided by Shader Composer, but there are many more -- and you can, of course, build your own!\n\n## Shader Update Callbacks\n\nShader units may optionally declare a JavaScript `update` callback that is expected to be invoked every frame. (For example, the `Time` unit uses this to update its uniform.)\n\nInvoking this callback is the responsibility of the user, but Shader Composer makes it as easy as possible by returning a single `update` function as part of `compileShader`'s second return object:\n\n```js\nconst [shader, { update }] = compileShader(root)\nconst material = new THREE.ShaderMaterial(shader)\n\nfunction animate() {\n  requestAnimationFrame(animate)\n  update()\n}\n\nanimate()\n```\n\nIf you're using React-Three-Fiber, the [shader-composer-r3f] glue library has a hook that automates this. Please refer to the documentation of that library for details.\n\n## Functional Composition\n\nSince shader units are typically created through functions, you can use functional composition to build up more complex shader graphs in a manner that keeps things easy to reason about. For example, let's say we want to create a shader that will multiply the color by the normalized sine value of the current time. A first implementation might look like the following:\n\n```js\nShaderMaterialMaster({\n  color: Mul(new Color(\"hotpink\"), NormalizePlusMinusOne(Sin(Time())))\n})\n```\n\nThat's a lot of nesting! But we can import the `pipe` function from [fp-ts] or similar libraries and use it to make things a little more readable:\n\n```ts\nimport { pipe } from \"fp-ts/function\"\n\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n\nShaderMaterialMaster({\n  color: ModulateOverTime(new Color(\"hotpink\"))\n})\n```\n\n## Authoring Units\n\n### Composition of existing units\n\nShader Composer provides an extensive collection of built-in units, and authoring your own units often means combining the built-in units into something new, like in the `ModulateOverTime` example above:\n\n```ts\nconst ModulateOverTime = (color: Input<\"vec3\">) =>\n  pipe(\n    Time(),\n    (v) => Sin(v),\n    (v) => NormalizePlusMinusOne(v),\n    (v) => Mul(color, v)\n  )\n```\n\n**TypeScript note:** the two main types provided by Shader Composer are `Unit<T>` and `Input<T>`; `Unit<T>` describes an actual _unit_ of a specific GLSL type, while `Input<T>` describes a _possible input value_ of a specific GLSL type. The `Input<T>` type allows some extra flexibility in the way you can author your units, as it allows you to pass in either a `Unit<T>` or a plain JavaScript value of type `T`. (This is useful for things like colors, which use the GLSL type `vec3`, but `Input<T>` will allow you to pass an actual instance of `THREE.Color`.)\n\n### Creating custom units\n\nAlternatively, you can also author entirely custom units. This is done through the `Unit(type, value, config)` function. For example:\n\n```ts\nconst color = Unit(\"vec3\", new Color(\"hotpink\"), {\n  name: \"My favorite color\"\n})\n```\n\nThe first argument describes the GLSL type of the unit, the second its value. The third is an object containing configuration options.\n\n### Unit types\n\nEvery unit in a Shader Composer graph has a specific type, and holds a value of that type. The type of a unit is a string that describes the GLSL type of the unit. For example, the `Time` unit has the type `float`, while the color unit we created abovehas the type `vec3`.\n\nThe unit's value must be compatible with this type. (In the generated GLSL, each unit creates a variable that holds its value.)\n\n### Unit values\n\nThe second argument allows you to specify the unit's value. You have a few options here:\n\n- A plain JavaScript value of the correct type. For example, a `float` unit can be initialized with a plain JavaScript number, or a `vec3` unit can be initialized with an instance of `THREE.Vector3`, an instance of `THREE.Color`, or an array holding three numbers.\n- A reference to another unit. For example, you can create a `vec3` unit that holds the return value of a function returning a `vec3` unit, or any input compatible with it.\n- An _expression_. Expressions allow you to construct verbatim GLSL code that will be inserted into the generated shader. They are built using tagged template literals, and unlike normal strings, are able to tie into the compiler's dependency management.\n\nLet's have some examples. Here we're creating a unit of type `float` that holds a numerical value:\n\n```ts\nconst number = Unit(\"float\", 1.5)\n```\n\nHere we're changing the unit to hold the return value of a function:\n\n```ts\nconst number = Unit(\"float\", Add(1, 0.5))\n```\n\nAnd here we're using an expression to directly insert GLSL code into the shader. Shader Composer exports a `glsl` tagged template literal that can be used to create expressions, which is aliased to `$`:\n\n```ts\nconst number = Unit(\"float\", $`1 + 0.5`)\n```\n\nThe above becomes a little more interesting when you turn it into a function that produces a unit:\n\n```ts\nconst AddTwoNumbers = (a: Input<\"float\">, b: Input<\"float\">) =>\n  Unit(\"float\", $`${a} + ${b}`)\n```\n\nWhat the above unit does isn't terribly exciting, but there is one noteworthy aspect to it: consider that the two function arguments are typed `Input<\"float\">`. This means that the user of this function can pass any kind of value in that would be compatible with a `float` unit. For example, the user could pass in a plain JavaScript number, or a reference to another unit that produces a `float` value. The inputs could be entire hugely complex sub-graphs of your shader. The function itself doesn't care, it just takes the inputs and plugs them into the expression.\n\n## Chunks\n\nMost of the time, you will be dealing with units that hold values, but sometimes, you may need to create a unit that holds a chunk of GLSL body or header code. You can provide these through the configuration object (the third argument to the `Unit` function):\n\n```ts\nconst ImperativelyDoSomething = Unit(\"float\", 0, {\n  fragment: {\n    header: $`vec4 myColor = vec4(1.0, 0.0, 0.0, 1.0);`,\n    body: $`gl_FragColor = myColor;`\n  }\n  /* Also possible for `vertex`, obviously. */\n})\n```\n\n> **Warning** It is generally recommended to _not_ use chunks for anything that can be done another way. Chunks should be considered a last resort, and be used sparingly, as they can make your shader graph harder to reason about, and increase the risk of namespace collisions.\n\n## Snippets\n\n**TODO**\n\n## Questions and Answers\n\n#### Where is the node editor? I was expecting a node editor!\n\nShader Composer is a code-first library, and there is no intention for it to provide a graphical node-based editor (although it is certainly possible to do so, and maybe someone will eventually build one. Any takers? :D)\n\n#### Does this reimplement Three.js's built-in materials?\n\nNo, but you can inject your custom shaders created with this library into Three.js's built-in materials through the provided `CustomShaderMaterialMaster` and [three-custom-shader-material]. And of course you can also just use it with `THREE.ShaderMaterial` like you would with any other custom shader.\n\n#### Does this work with WebGPU, WebGL, ...?\n\nCurrently, only WebGL (GLSL) is supported, but adding support for WebGPU and WGSL is definitely possible and has a good chance of happening at some point.\n\n#### Why are the graphs constructed from \"units\" and not \"nodes\"?\n\nBecause I wanted this library to be a little more unity.\n\n## License\n\n```\n\nCopyright (c) 2022 Hendrik Mans\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n```\n\n[shadermaterial]: https://threejs.org/docs/#api/en/materials/ShaderMaterial\n[three.js]: https://threejs.org/\n[react-three-fiber]: https://github.com/pmndrs/react-three-fiber\n[three-custom-shader-material]: https://github.com/FarazzShaikh/THREE-CustomShaderMaterial\n[glsl]: https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html\n[fp-ts]: https://github.com/gcanti/fp-ts\n[shader-composer-r3f]: https://github.com/hmans/composer-suite/tree/main/packages/shader-composer-r3f\n[material composer]: https://github.com/hmans/composer-suite/tree/main/packages/material-composer\n\n```\n\n```\n","readmeFilename":"README.md","_id":"shader-composer@0.0.0-canary-20221130162026","_integrity":"sha512-avivTXwPk4YGf/UGR7Fdb8awi9LqzmImSf/w3YpfyJnG04QrmFnwKdCMsJdn0D3xJlCEbbTkO5dIVtkG1uKKKw==","_resolved":"/private/var/folders/j4/hnqh_70x7wnfnqz19p_s_mzh0000gn/T/ac12eeea366b8179dd5f5a76ad33abfb/shader-composer-0.0.0-canary-20221130162026.tgz","_from":"file:shader-composer-0.0.0-canary-20221130162026.tgz","_nodeVersion":"19.1.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-avivTXwPk4YGf/UGR7Fdb8awi9LqzmImSf/w3YpfyJnG04QrmFnwKdCMsJdn0D3xJlCEbbTkO5dIVtkG1uKKKw==","shasum":"c4cfa8822e131ab73db3893206aab952165e84b3","tarball":"https://registry.npmjs.org/shader-composer/-/shader-composer-0.0.0-canary-20221130162026.tgz","fileCount":37,"unpackedSize":23419,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcixgq2ioVQoMWK0xmr6tSjJUpyqiLSJt180O05MTE/wIgNJyeV6W7hAxVxgsMQfnAj+FGTlQFsNdDVqpT9TeC5xA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjh4LbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNrhAAk23z+1nRX/KrAJRiDe5gZ0Da9TF9/1/QH1fTys9ijyI1j5LV\r\nKIyadzoe6kdSIXkH1CeL9PnaVz4aO0EmNlQJNGmqcgq7kOwBiWVkz7FSzpFG\r\nhOI4YRcSw57wlnw62KCJKrVMs59KrzXWREYSbTQUALjciiXDOJe4lPDL9YLE\r\n1Dj1NKzwgI4IP3wApr3ACosWqjuBDgapoGlaj2M5ec+xwzzzIGf0lQT6STbk\r\nHdtb5ZQOcWvZ+E3za6Ab4ngIO3LVPiym9dRBEytImbdJ2S+6ePOv8D1uPbyH\r\ndL4RrBJuqHXFDdg5Zb3Q9+2C30S48OzBLQ28N8tnZIGUhKVBvfYQRCxHXqPx\r\njml3NNzbHJgw9nBfBApZ6e7Bsncq2LL0EQblnpiVcpWI0WIXCulqPPOLLRB6\r\nccx4KLsT6jG8gplmp1PDE8Wfiot1EiTyadPZVaRXuC+7yGsoW/AeXxV34YmS\r\nnjQ1GUKHTO8iiCeabvxcPPmfat9XOp+IfilWvBOWubfkv4rP5vA0KNZ3Fc3M\r\nZv9+rg16SpYG9ZNooeM1/le3hl22mwg5qyXUcFNQxvlkjaLJqnPCjPnFIktB\r\n+egUmt77pcGk4u0lshD8oWO3SiaXnvMziPuJN5fM55rRAR+Opii3XCez23eL\r\n7J5CnhIrr13eZ1/0yz/v/dYVzN7VnPAwjQw=\r\n=pGtg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"hendrik.mans","email":"hendrik@mans.de"},"directories":{},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shader-composer_0.0.0-canary-20221130162026_1669825242928_0.8034048734140136"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-19T06:28:13.071Z","0.0.1":"2022-07-19T06:28:13.227Z","modified":"2022-11-30T16:20:43.279Z","0.0.0-canary-20220721091935":"2022-07-21T09:19:51.384Z","0.0.2":"2022-07-21T09:22:17.806Z","0.0.3":"2022-07-21T10:04:59.206Z","0.0.4-next.0":"2022-07-21T10:18:15.440Z","0.0.4-next.1":"2022-07-21T16:30:31.081Z","0.0.4-next.2":"2022-07-21T17:16:30.339Z","0.0.4":"2022-07-22T08:06:02.188Z","0.0.5":"2022-07-23T01:33:11.455Z","0.0.6":"2022-07-23T01:38:29.399Z","0.0.7":"2022-07-23T12:47:42.073Z","0.0.8":"2022-07-23T19:05:31.594Z","0.0.9":"2022-07-27T09:47:14.575Z","0.0.10":"2022-07-27T14:30:47.997Z","0.0.11":"2022-07-27T19:55:50.874Z","0.1.0":"2022-07-28T11:18:44.215Z","0.1.1":"2022-07-28T12:35:11.621Z","0.1.2":"2022-07-28T13:04:46.591Z","0.1.3":"2022-07-29T09:22:26.875Z","0.1.4":"2022-07-29T10:35:52.220Z","0.1.5":"2022-07-29T14:48:00.281Z","0.1.6":"2022-07-29T16:20:28.051Z","0.1.7":"2022-07-29T17:05:20.703Z","0.1.8":"2022-07-31T09:29:06.156Z","0.2.0-canary-20220807131912":"2022-08-07T13:20:20.240Z","0.2.0-canary-20220807140759":"2022-08-07T14:08:08.186Z","0.2.0-canary-20220807144252":"2022-08-07T14:43:05.397Z","0.2.0-canary-20220807164644":"2022-08-07T16:46:59.793Z","0.2.0":"2022-08-08T04:38:52.728Z","0.2.1":"2022-08-08T16:26:12.435Z","0.3.0-canary-20220810115344":"2022-08-10T11:54:08.228Z","0.3.0-canary-20220810115525":"2022-08-10T11:55:31.462Z","0.3.0-canary-20220810134637":"2022-08-10T13:46:50.137Z","0.3.0-canary-20220810170700":"2022-08-10T17:07:07.952Z","0.3.0-next.0":"2022-08-14T15:26:32.052Z","0.3.0-next.1":"2022-08-19T13:30:49.475Z","0.3.0":"2022-08-20T04:49:59.548Z","0.3.1":"2022-08-23T16:28:02.536Z","0.3.2":"2022-08-30T14:43:17.609Z","0.3.3":"2022-08-31T09:24:04.094Z","0.3.4":"2022-09-02T08:32:17.987Z","0.4.0":"2022-09-06T08:50:17.592Z","0.4.1":"2022-09-14T13:44:24.441Z","0.4.2":"2022-09-14T14:03:07.675Z","0.4.3":"2022-09-17T10:46:13.892Z","0.0.0-canary-20220917133533":"2022-09-17T13:36:04.012Z","0.4.4":"2022-09-17T15:39:27.829Z","0.4.5":"2022-09-28T17:31:13.346Z","0.4.6":"2022-10-03T13:31:23.443Z","0.4.7":"2022-10-25T11:46:28.657Z","0.4.8":"2022-11-10T08:36:07.501Z","0.4.9":"2022-11-19T12:51:15.582Z","0.0.0-canary-20221129141308":"2022-11-29T14:13:25.123Z","0.0.0-canary-20221129151046":"2022-11-29T15:11:01.474Z","0.0.0-canary-20221130162026":"2022-11-30T16:20:43.135Z"},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"description":"Node-based Shader Composition!","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hmans.co"},"license":"MIT","readme":"","readmeFilename":""}