{"_id":"shadenfreude","_rev":"143-2ac87a5634ff8c12e028e5bc311fe8fb","name":"shadenfreude","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.1.0","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/three-vfx.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"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":"shadenfreude@0.1.0","dist":{"shasum":"06505e9bddf177d8657a31942a7afde7fd0a53b6","integrity":"sha512-7E3G3ngKzbNfsHeZ+cKlJR6ZsX1QOZpzkTWp+HlMtWwJgPueQ/EjaK0jEOIgZgC8/HQKcAhzEy6K1LLhzLOcBA==","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.1.0.tgz","fileCount":17,"unpackedSize":48258,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6K9OTGIrKJL1r3fnDtcTjf6mJFZbW31dTcDziK9unTAIgQl2qGXE2aHcMNSygBHd4ucXymIjpi6dNZ+RInQw65/o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJituYKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+LA//W492s10Jg8Wdkt3bYUPchO8mGC5O4EF812ik+3GCZEAltIaS\r\nFc5eL9eabwocU1tDNZU6XHX78Wqd47b19WVRoFj5Nk7kNGGbTozgSb8/8c+R\r\nOoKLyEkTOImVXmTFh//iPUZCbZJLuZHnFuwY6L4W0fAj9ARINBY2+aBPybhV\r\nff8FqGJrX6Ga+P2bort7N/EBlxj6z8QAx/AeR/VRFB+8ANJRQjdZwIS3ephO\r\nYHCNjrI7ayHDg5/ilnlA63y1g3qghSn0ko6ZQSnr374RNdAOUzO0wZCSmSfX\r\n6SN8rAFRDnFen3KkMGYjre4HSdgkHrWarI3jDU6tyjMIwyIgFBjN0vNzs5QS\r\n5gV4R7/auOd+DQjnQ0Vg6bkc8hJbjLhi+6PiumxMCxfYuWjXvIolawINSHWp\r\nTOtAm7CFccSmcdhmydOIFRuuhvoCMC/Qq6Cnj5L33tbUEr1FOrqezghQJyLS\r\naMXMmfT0uBT2L10DouqUzc8DnTPZmAVT2fLXkfIKyy+EqdSIz8yAeWsLVisf\r\nQCpNegywmRjlC9sgoVxvSF/OJENoPjab4Gfj97QzC+++hgGRqC+9nIA2V4L3\r\naW5hYOli21mrsPRU6szrCjAtrkEdQtdea5O+cTCOjJgGTfwZU33alF6HNwJr\r\nhe7f206NQsetAC38+SfQ3oTWhduy+rRaKlw=\r\n=uZCZ\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/shadenfreude_0.1.0_1656153610007_0.9122660419071884"},"_hasShrinkwrap":false},"0.1.1":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.1.1","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"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":"shadenfreude@0.1.1","dist":{"shasum":"c980e29d03c5a721f9b12cd0a1637e2ecb01a54e","integrity":"sha512-hCLUH2jYKMlz++W+xt0PpgRnbYpMxojtb6euXL+G8+HuoPMFzWWegWYgBXJ/5eUua+IuqQkQpOI7BpU0/zj1kw==","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.1.1.tgz","fileCount":17,"unpackedSize":48261,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRowRKPKIToMoTfduFz/5XuNL3ovU+U6NSJANCkYSNTwIgcUJAFc44TOpkotNMZe2ykFj+LDFEOGBdsWwHxcXZogM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJituagACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobyA//ZVK5u2Fl2PeCIURcL83LWW7AV/uRRPCQMAQjncxzs5iyTZUZ\r\npmV4tftthUYzEx79zhYzC8GExt2RNyb1aTliCKqwf/gg+ymSLwgKgLeMyu9w\r\nNPeK6el3iyCriZbraNzl2uZLEQ//jXrRv8QBMbG9598NO5bDyLRYrqu0ncek\r\nj37Dlo/O5B7MzepQRw3TChijMRhH/gu03WGNtwvdmS4EcX6obB8qzO0ezwL2\r\nTuTV9qfzp59e64T4+JaSOUoJBl1J170cwCr4LLMe6TKmnP0PUhtG6vbeR2k+\r\nMNU69xkVvYE9YlW+X2tvzH7Lm+e228NxJ9dZn3PYn+U+0/0USvHKptbRoTV9\r\n5yBDx3A4GiHaFrBXamCIiWJQP/X5TJ0l/0u8HvOVVqc1yWKw6QCJHAnWiGXm\r\nAoK76/YV4jDF02VS7UXz/7h/tSPoLHi0sQ4g08GLzUV2fsWIsTJoDtEU7zyu\r\nfRa4iHTj9OiUaYTaNXgRCjCIbdKA2DJh3b1WFLWwELoMPLfC7mXsvNUuvTjI\r\nfrbHJf45X1YEk6jNxTFyvopqkqDGAJvPVmtfYNe5e1SysEBpYVaLn52azc37\r\nHPNBllKbkkAJOSMSQgaSTGwCWgdH+rDxZj0M7Zo+FNWbuGs4aGhjxUs2FDaS\r\n9ENOhrDOREQHobDSRlHrzR9U+oGIdZQuxiE=\r\n=nhtE\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/shadenfreude_0.1.1_1656153760458_0.1277417230902913"},"_hasShrinkwrap":false},"0.0.0-canary-20220627114957":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220627114957","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shade-n-Freude\n\nAn experiment in node-based shader composition.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220627114957","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-507DLao+7igRe/SWGqkehC+no9ASZECbEKux88CuoU6vM7Lpe4IUC8JKqJWVyrhieDO7KB1v0TXK5A5aU8VS2g==","shasum":"b584c18317f5a2361a5b65230b5be8e24d757192","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220627114957.tgz","fileCount":19,"unpackedSize":59273,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQE1xangGQxzDOKVxTV11g0ePGsxXrXkrmMcG5Ij1scgIhAIeaMLHXKSXJZhhsrs4vs/xXis/kwpZM2h1sy4pZh+Ua"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuZlyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBqQ/+NVY6pXBFO+UacHC6fUVyy157257DTXIvmKY766jOFcfO1mUj\r\neDzWObNtcqIi0tw9F3FgPT6ucg8QSyzAnYg9XPQRNqoH3NqdbmMh/1bwk0kJ\r\n6v8oiCTmKd8bbB57tFPKiwQGqlGIB2+uL40KRTOa8f2npbGhYlJ36ps72Vhz\r\nPIgfec+ciyAKvK+e1ngqC2+vTmz4jmf1MI1kaHtrCzfGYWeP36KWpD5aF42o\r\np1zBKkUyMZAW5nWsGIkOwdVy4lU4UAeP+ruBpROae0j1ogO+Jf0JAOUTi7B0\r\nbU41ZGbTMDTWNuhFHb2p7HSCPlfBxmxAzCfB/LaEXVxYdY+NMvKN2m0y4knc\r\nsZFyiIOk/NBCe+nfobOWDy5rLzDcqo5MJ4vaUGVkhWGS96Iwlb/8HHcN586x\r\nGswQXknFjKuBOl7McEs4dgCxReIg/HOdXop3ezUroCQt2gmBa2kk1MgTSlTz\r\n9cupKmmGT2JiM2zKfVTWL65f1NY7MapffHzPp0xDfX5aDatHIbsSWHkL/kQx\r\nTnR1Iioqn3MEa3TcSnAYS47GvOcOlXzqL83Q4nkoM8D0IhJazSoJ+hR5yDzc\r\n1pYBv62GWAKcRzrJFRdxZZy2sC6ftSytaWZRVcvqtSkfa6osoAURglDBxXgJ\r\nv1pTlfrxfwU82gqMo7RLwQZU9xiK5ZTArPI=\r\n=rP4Z\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/shadenfreude_0.0.0-canary-20220627114957_1656330610182_0.46337737813561497"},"_hasShrinkwrap":false},"0.0.0-canary-20220627144357":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220627144357","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shade-n-Freude\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220627144357","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-E5H58oyAgDKFSV39yI0eep3wJiJXADouA/rg+F7bNNLNa/Qyf003rLCEMLiKs4CfJ+QRCLLOGnJT+F55lLQMYA==","shasum":"53c9d29e24d00e56ff09df31060259eeb98c891e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220627144357.tgz","fileCount":20,"unpackedSize":67477,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB7jn6cQQ6mIuVftWhpbP8RD3DuNr+SFdjCNl5Nac/ZhAiEAsESkUE07tRaMmAg37FgOGJ8TeAKOZ26lCge6MLcrQRg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiucI7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpyow//VbAC6717EJSAkkHAngGRczzRex6Vdy1cieuxsGqD/uQqvqE3\r\nuKlJRFUJ7CZjiXDXd4jO2PqY9TF3hPgs5xyTA/6kwZwzkHu1/ZbormwsSGqJ\r\n4sPe/YncR7vz0n3I+E3f49iAT5GILxD5IeyE9eFi0zoSaWqhfwpA2H4JaIx6\r\naBsDwTrVLZCH9n49wi7q9kuXmbZeYLTbebb7SV0ZKdqhVoCnOuO32FPZDk8Y\r\nt/aAV/F/sAc7EnrKzeMKcfkulkWn2XfZ1VKtc298VqyRpt72WE4lVwNvlYr4\r\nhvu1y0T0M0eYbzams5r/tyX50yH5P9Hof+Owq4y1+cB6HG1YSH0ik97ermg9\r\n/1G9uHaGiiJGTGJ0HS34kCnBVqAmGyvPpD84ykJcYzx7oGZs9cgkw1L/QtAO\r\nHfHP9tH5p8PkHLZsLUUrL5/WP4Y6i8p92g+DjcBShAADF8VpfVo1/UBMH66R\r\ngs3szUuX/B9VaJUBFTpDMKryZGAjFVHIVI8wq8TwD6c3rHKfuz2egJdO5isK\r\nR5r6MoS+HcPl511XxhIbD//0GeWYp38BVhhRVsHeRL6kq5tRjd4yHwNhkCGG\r\nIpAMLz123/Bt13YRbYGABHWVPqJT04fgtDCJxdHWru+k881WY3/BykVF87bp\r\nOqa0Gna14Y83e4jcXtRJ7a1gqSMWJAbE3zs=\r\n=saO4\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/shadenfreude_0.0.0-canary-20220627144357_1656341051053_0.6080451003710656"},"_hasShrinkwrap":false},"0.0.0-canary-20220627144543":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220627144543","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220627144543","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-eo0QFMFTaOmqlXjdO4UefT8e31RZqwkYIJ/qP8EsqcJ+xm3/ovGcXa+pzwnaIVq8W1yldVEdlPFBOZa+xGDbmA==","shasum":"65116a5a75620279db3c94b7605061568c9606b0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220627144543.tgz","fileCount":20,"unpackedSize":67525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7y35B4iEEt5WJ+xyrsCkq0L0KTaQBGmDeTMV4xkBvUQIhAI1F6oF4Aq2ev5JTu/zvvvfPVvtkGQGss2R/NIa2Sz2Z"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiucKnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMcw/+Nkpu+N+w2N1YfFiXtwRC/6ZlCuZwSlN4cmyxPwiUfkSaoAfA\r\ntnvKgpjIOk0yjuUU/N9yR63CuKZEk9DTFXPCqZAUd/3RDf+NGEXjyiXmq8dL\r\nsbMmEGpR6ORlRFNXMuUe+VZ9N9fN517jdImec8Dayms08/drUrMGMdWkvt+J\r\nkpOMENnJDCO8BxeaXNu0qy2O0a74/YDUcq2wf5v6qGnLQI0SCs4SAZnwnpvU\r\nCNbfic+nFdPt3zqnVrAaliTU6yaxAn8yuRaKatgCNDBeO2a+GyBO/fczR0B5\r\n2GUdgACpPBR5cDAoufxtegrZjhwUdDFkmU285iNm2Fnyai0L1AS5/6VhnEqc\r\n2IGG1dm87wlxb1xlUZrhlJR+7PFl6OXa5EZP6zBtdQVtpM0X26ewG6EmxR4C\r\nFkmfd8bLzppEVN6quLBEyhA359NmRyb2ypF5OTt4JPOFY4x1ndjFXHp1KiyM\r\n9s4SK4kjSNZ9gzuRvcWvc6DoPbBduTcbyacVisra4CRrhXXgxqYcwCziY7T8\r\naD9KMehoclLDPhzxzoQdNYaB2dlvjm9TUlPg/Wqz1TurR4rD5GhGAyEmIaOL\r\n+YjIWxXAIuKWD76Hjad2+Nz8C5OvqGuQCk0vtnyL+j+JVTs/oDT4pzSIcFgn\r\nKJknOdDytexsU1cMus7U+DUaxNH91V2Y3Fo=\r\n=kgAg\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/shadenfreude_0.0.0-canary-20220627144543_1656341159223_0.6992085250543352"},"_hasShrinkwrap":false},"0.0.0-canary-20220627145705":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220627145705","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220627145705","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-2kGBM0nErLcWmG9SWpEqBUVqFqJwTkARXNaUlxonGSASEDHK3geN38O9A05iHQ4tdEiAqwgIDTlScxov7zw8Eg==","shasum":"e635800ba34bc0de8ff0f7d1ae5c39af1f98e9e8","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220627145705.tgz","fileCount":34,"unpackedSize":69348,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWZzBNrQfcq7UqsdOmn6rhq2UoS3BJyfE1pSSvteo96AiB2aqZYTIauh0hLXdN/nJu6MWqLoljEoo3/fE3fUoHSZg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiucVOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTnQ/+IKWOQOZaNuZeH3uL2jkf9jsKhcq42wgV/MjJQd/DOLnY9H3t\r\naiPYy8w5w6LGKDIPW/bSpgWvCLHUHCQ07wbIRGflVSelzbmGpH1g4cmUxbgW\r\n8c2pDB113XYNOs3ZtmxMJtwGL+nXHbIx9JHDfbZ8a6ECJaedIZCVVd40+C1l\r\nXs/Y0YNrDwmfh7bjA/WXdkPWfyiwBM8/FdrGL7+rrl5fV75xZ8MwBSsKzRyp\r\nz3X8EwI+gRtS867IaU/RD23KSxPQhWIxWTH5DFrW8CGSCyCSkunMpgIR6erZ\r\n2qVDU+hkY4p8JSIObajjl/mvyiqN5i+jpAeZcmWt97pR1Coql2Dtv584kNSv\r\nd8K63hlCZNLy2vSWSX6QPZRdVgpivcFBIf8tRd+sOraORSzN394LOZ/D1cfS\r\n7GWLUEOuiun8C67GGC5ao/Vdegm/HctTJrwyVe/sHV9c9eJxrnY7qmBoVQcm\r\nZQeBPLWWryp+C9V9+wQwlbqfk4LDr4GHGmCb1kLlwJIXPDP6wavn0or66dGP\r\nOyIVZE7EuNQTJOax28Nk05wkQ16kLXVewOGWMJ7ZoSgE1W86n8xWCknBF+QX\r\noKW0V4uVl3QCBJGKNVLyy1E0EJ4KAwcUgEsjdZggd0LNh/E0jFWXsehI6a7G\r\nVGm9i2IN+XQY0P3Exic3c3hDq6Hg/ECr39A=\r\n=a3ug\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/shadenfreude_0.0.0-canary-20220627145705_1656341838173_0.37165987094594866"},"_hasShrinkwrap":false},"0.0.0-canary-20220627161330":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220627161330","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220627161330","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-e5CNKK930TnnRWZXy29UZLF6Ev9xu/hVS2OLGyLglsyoeIUVgmWgCUxmJojewT7RkI7rM+frlh1Kf26VM8IyPQ==","shasum":"0bc5f5f276ca29dd46eadac18aaf8e7e858951f4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220627161330.tgz","fileCount":34,"unpackedSize":69348,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQCIPlGLm5GGmsS+LnL6etSGgxol8s8OzB27Nbi6fs2+8wIfY2nlC9sOXMQzjsb3lxoXyC9aNNLB8uq/DYctRLBp/A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiudc4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMdg//aUocVYyFBsj0hjBL9JdNrtP+mwymJqH1prnjeew/sAN3Ugdx\r\n0W4cfpX1C4MkvOwMjqj3oZQVJL1eC8RD6O2M3fKccfazY5/cl5njRh+oTb+T\r\n1bNlZYiGLZ0i369A8EVAWUO96OgRgKgYlm7z7vuoQRXRVUd5IRohR4d6ubFe\r\nTBGu0221TELGpZjuk/rYmunW9C69RtGpdmi56Fp98eyxwUb7fFBFhHUTu9+k\r\n97StINffhGiZ8UGEPYuZzE/jFlr8iHbPHGlkwCAbpvadhiPoawHj87YnhAEt\r\nAD0M6qKjxzXSOKwOFS6RfSwwOjoVvR/4pbKgeUN2UAZUaH8TRaF0lBxCCgs+\r\n6tocpaUrJRKDuUyT8NGg09YpNz6DOgxaRB+cct3bsFzB+2jbUwjmSqWeXjiO\r\n0qLJYb3V5jJixsb83IA6PW9MaaOkm1oQ7GJkztTKmHID/ftD90g/hdhvxjnU\r\nzC61HZ4beJ1+VQuHblnhPCBGseWi5dZTTo9HBP+51LYgGA2IIm4Dr+7jKozl\r\n4xlVSdJjxk6rcLJy1htu43Dv1Cl6D0ce7dTglmNaGCCuoBwLItaj3IPA56TO\r\n/WGytmvDG+HA1goqOviABa+lv9mJzrISVjOw2k9cz1FTgma9Eomqx/7u9qc7\r\nWNnnnvfXIS4l5xSdFKGE0aKzBwcbIQhHtD4=\r\n=l6KN\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/shadenfreude_0.0.0-canary-20220627161330_1656346424156_0.657549776667349"},"_hasShrinkwrap":false},"0.0.0-canary-20220628084446":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628084446","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628084446","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-rRd1D+kOem/Ilbt7XvAJ6wHXJiH6ss4xzA/s4llt6aKEK1YTbsWTd8ajclOvdOCEmP468MtdEygxShyCsAtxLQ==","shasum":"ef208c30c226f09d9d8c4f2f787d874bfaddf7ac","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628084446.tgz","fileCount":34,"unpackedSize":69348,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7Vg1nqBhUpPpIz9LE6N8Bv7scK8BZf14SzAMJx90AoAiASR0qo+275t3U4d5Ie2b0xJ7zIQfcKvkG3cUH8EjkRfA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiur+MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoOrQ/9FaMjQJFbR2R1iVy4UW6hUct7tP/v9a0b0V57Mjaxel/qRuDc\r\niIh1hFlDHkIu/X0n36slNfEPy3ETh5ERvk/C6Zx8rSki8Pk0pCgHNRrrvSz4\r\n7x44mBFNoXUBI2h+pB+3fPCWeLKv/6aXZKKVLmjUKHtmUEB9AcIL1mCeNNIM\r\nqsbJ8w/Ngaoa5E49Lmrl30So6dMk3xb6Iqk283iAvusUCaKgqrIDSZYMu19X\r\nsY2h8GNg9cnSh1jL5su5VCm0bUyvSSpFBiCJsz0+OS5RAO8mBehJomYx5eNJ\r\nPOU4NJyicRlmAVX36VQ3ebWswPgemQxz4ynESmu4gsTZmVaK5a0MLdwQXR3s\r\nN2xT1gebcjf1Am0D6hrjWSM21KiETvY2YSCaWO2Mdn6skRj356yDVYmJmBQI\r\nBnHl02q4tdfvhBOVv2wDmVOjHII4t1I9Ik33mAHSXtKEojU/ubtNFphmzvsC\r\npnK6YSRgUSexIbIF8sm6iUb5eDJTVrnRHlBXDRr4mPSa2eioT5A4RkruWU54\r\nIJMx5qg3VVp5p5/fgvS0ovMgvLee4YLmDNa/XN1GDyVN6+qQZJFhtoTltNmd\r\ndXfH79xVCYwrKQ1P94ZkYPlzTeC3WR5TBfETN8hnxsLF/EVG9quIU8WdNAvs\r\ns4cuVB80yDR43yLfEUCAY28oMxChZjGoyk8=\r\n=Q/rN\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/shadenfreude_0.0.0-canary-20220628084446_1656405900638_0.604825165539224"},"_hasShrinkwrap":false},"0.0.0-canary-20220628101033":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628101033","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628101033","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-oCy9n3lnxDltvutV3aZuBQmFFq+q8GeNKf3pkgzgs6QnGXh6S+ECWWSQYlmmNmb8zlEJmlcuGSXINqCBt7Ec5w==","shasum":"fc8c37f38479d281bc68142bfbe9bf558ae53cee","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628101033.tgz","fileCount":36,"unpackedSize":75236,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD77GbxYLL0y45WzmfzC2UKs/M+4438M/ITGmFnoKMEsQIgE9jr3ZHQ5dUw9jvoQX7JgnW55bSZKgXlp0OKYQfFsHI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiutOzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEgw//X0jlz+T8GZjX+zzFf9xlnB135TSQvInQq9UdX4UJUCGtauEm\r\n9N/g41WXU55VCmuWK3c59l6CxDDpqXClVPFTPuvIr6FDCBav8QyeMNBavsZE\r\no/4OtBXOG2oJHTKLlteLUgW7ztM2wJpHVa2BqyBSbqKszbGxMqq8hfiah+II\r\n7mMOqxHQXoXLjwBUSKVQzBUfS/tx8ha48gx3QbFnYkjiKMRkRaq5GPRLezn8\r\nKWSqHcgyTbSgZQdVncheLn88blNHrZ6sjRWAFPDTZGtpW2CiEK7hcJ4jZgWR\r\nohmGg7FaMQTXOi1gpy1jJkisBp8oSyjnkIeh6SZPQzFcGQYfAdZbqlzsKL61\r\nMjarUlyWAk8NycLpLw+kufPiGlGzSdiViRYmVDNm/4mI7NRwBn6dU+LkCX+w\r\nLFkG/w4z5oOpHSITsdpaz6K1pjPsoLZkcqrM49Ue6H5OTy8Azf/FaoBi0nAV\r\nBCrIfSARP09w3746WmD0nLGNc+zH9Xr1epw4/Q63zDTq29i7UcmtUue6JBSh\r\nR9/99sDsZ3bA8RQTFUY9yXMwq9HnrNn21knix6WxyMiuMzDuWvjOw++2DrwU\r\nrPV+CuHs2y7FLn7Br4LY/R4xisetG+sB4Rl2Xl1Hkmdi4Z4l7f7QV6oRv395\r\nWRHmRxU/KlYysLm8q19+CEN1HQa6xn195Z4=\r\n=lQNn\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/shadenfreude_0.0.0-canary-20220628101033_1656411059201_0.9205378545982419"},"_hasShrinkwrap":false},"0.0.0-canary-20220628112841":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628112841","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628112841","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-gF5QfcYW5SEPCnJwsAec2HVjb6kt0V5MuUCPS01E3lIwsMTyUoez0fiy8Nq0Komy/ZuErqSF2q1aPWZVOAvroA==","shasum":"c20063b5d8e540d174c9665a47d0a2162304fb1f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628112841.tgz","fileCount":37,"unpackedSize":75154,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRVh1jqauo5oHRWCTlwopc3OEp//mf8sSDjR6Px9mHCwIgWNjepbOwZUQtpi/w6fyXTo9jwXNL2zQ7I9PerrKeH9k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuuX6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreKBAAhhj19HZFPoT6ynhtGXJadp8f6odRtoIuFJz3QywA4VcEoxRY\r\nhJd04r3YD/PjK8VT1wNWJpBSM3XrBEcEUQ/u25OZo/zt5ql6pDWH766qPL+s\r\nGtGaGv5CmhzOFqatUnb+2xoqSeR74phP46JTK8Ee3oIxqeP1qzsJQyY/rS0g\r\nXUqTue6celi0gnmRqPassAvgyyDA5Xb7+jpBYcZGEYq/MOqkFnAp9T4pfMRl\r\nHkO6mxfitd8iFLTkVursgNnbTPX6Ux1G/r6WrI/2jIwdV0/QI9mNRHbvZTj6\r\nM5zBsML10CBu52aA65MJwk+S2hxcK72/j3IMkhJxueKzkxIGkcdW/zbxafDc\r\nvvjQ78q05fvLCZ0hRSNLxLehWhBGttsnPDcPJkYZsH+Vtcw82QW8E4jKLU+V\r\n5kv8HGzObXHEn1lg5Wug44hy+w/UF1GBb/thFf4+H1egc95sWT9pO1aX3U8A\r\nGgRngvLMbrg03b8uFy2a8QL+0XVAdCnozmEf0cKBz74a5bb7QxHGVLWYuGeg\r\npqRc4denDl9cDnUyQZNmXiCp6WfdDRhW58GGb0br8artck/CvBUfRo+T6tbe\r\n1uTeaSzasjko6uxV47cNvTPs/EeH9XNxHsGqcdKlJWfaYgdWFFXfBnE6RHPg\r\n+4lSKl9MpeLO9pF+t+p/KyGVl+jEjNpvB28=\r\n=1lOM\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/shadenfreude_0.0.0-canary-20220628112841_1656415738715_0.6327320462762063"},"_hasShrinkwrap":false},"0.0.0-canary-20220628150632":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628150632","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628150632","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-AKYgITgM/FjNL1oAz4frTxovIIjj0j/8SrBWTZA697rImaydzzA0/ZJSNbg/lyWFSXvmtbgVzM51FRBP/7YnGA==","shasum":"377324c8711a55a71f331d2f45b857cf5b9e59a8","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628150632.tgz","fileCount":39,"unpackedSize":78395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8RPA3/ZFjHy4fMHOTaEX0Rf8Zzz57m8JFQMDm2WlmHAiA9dn4s+FQfSLpMzQWSdIzqjoIKm/stm1d1eOPAQfdjrg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuxkFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpP0BAAj1opjnmLp5MVIuqyuzS44s4yV+UVp7bd56rOFo8RnJ01s8kd\r\nf0RWulwt4pzIxs9r5tFq5W5iULeF6NuGKyaTuaIfC0YZeQYJk1jzRJBe7j7S\r\ncVNm/xdTf25Hxes2U44TDZin4UWSw1fMdEnzUyT5O0/FCTbrfQVAOvo6foiT\r\nSHk4Fd6rvvKLK4NFAlrkFbdufBpG49SGMyVVIku2FP29wZCzr0F8LNAHatBE\r\n1YcVr8a8WqXwg/2/4z6O4cSOiGURAY1LM9J7bSlgXWc90J0oYluMMIYsD8Ew\r\n0lg77q65od36lsXFkYVNOOqPpM1d32CdDNZFmmVHal+2iQ1FKVV8JkGlHF7y\r\nzmNvu1TAJoabRHK4mpgRo6LBu+2s0kiiMWR+VAXLxKO4SWUJ3vQq/u4sksbP\r\n32L5KkdAFiFSVmz8usyRwWdJqOWZ3uKyAdENnpHkpmxvChqHTgGdDE+X4klB\r\nb0Dw9nGIBBiAxojrnHeAVTrg9BZB8IN/syYgl3iW+iC455NXgHUo/B1Sct+O\r\nUkaFqhbe44e9DTJ1NpZ0kC3kF1W0F0HpdJTAZJPnVQzDwyxHWzRtj+4+j0XW\r\n/58gjGsZe+NLWj1mKkeVwFi9zqOXDykbUXdKejSQMgQOnnIJhCC5zY+NHps0\r\nRQkWpistjo3LGGO3x5a1vokveAzrxyInDqk=\r\n=k6P2\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/shadenfreude_0.0.0-canary-20220628150632_1656428805713_0.8453599307712001"},"_hasShrinkwrap":false},"0.0.0-canary-20220628162947":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628162947","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628162947","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-V3WtsitfH11DEfvKQ6Ns64KC5mqbpyQIIvAo1aOLhJvN6jI2r2ccWYvUw/aVoB+UI0cdxqCIrj+u5UxWP2PZjg==","shasum":"9f095dac0e3d27d994cd4c98502b4942bb8b63b4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628162947.tgz","fileCount":40,"unpackedSize":80585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLc7aIa13wfjlDJ5iZ1gKxLoSQoOnLBBXhSfKgsMSzkAiEAuHJ5d80AKkBxRe9zpZNyNAjVfGxaQphtjmrZZ3GYtQw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuyyaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZUhAAl2wM91iDbiTdE9yVPicHWrPb6SzYe5A/C9voltwNwqt93ebL\r\nKbcEm6TIUjjpqamQ68588Qfs6I8S2jnQSUx/TWY0OBqLcLgEGgQdqYS0TJPv\r\n31qPxzRv3+rIIhkFGurO1qUACDcEM3tN+bPYzajlBFpis3ZMSXoM/TrTGc3i\r\nMc781j7YmZlqDusapwTaqoNDhwh+w/Si38tKeg2riRIA3vFzQZ8yk5j8H75/\r\nlZ5azod2Itl/ZQuyQQrH4ffly+JN7yiMn6k6QNyHr8Y3KdJKSAAoE0wR59WX\r\nZV3b+dJMjMc7IzImqWziEBNZd+17qjuUaDgbpJSun8ZUapTKgno1pwzzjsc7\r\nXsvFDbad/Lp19Os5gJ+WRSH+uDzs/8EhrA18xNTmxyvMUXiqjzTxj6Bz35YH\r\nMRj7w8EOfEp+Le+GH2gW5F+IIKFv5vwsv6wVU+PDI3UrqBckeyj2FEtwU2Xi\r\nmfe89VjOdQWYT+flCx8wNwxoFpNJ6d96wZkIT7oz0MLrqaURAw3AGdt7u+Tn\r\n3DdxYhwHujWAeqpu4j6zjeKoHEhcE+dGcb4c2fmdzZmKJ4oD2Q6GLNRNGZ/4\r\nR55pW+LiW1uteBau24e3synvPRtLeiXSI03Yk1fNVqXczoUBNw6cbhLPINOm\r\nczGn1Ig9LDVPopUO1E3fEhMCTjoKscavOHc=\r\n=C/Ye\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/shadenfreude_0.0.0-canary-20220628162947_1656433818095_0.9175861370810527"},"_hasShrinkwrap":false},"0.0.0-canary-20220628175513":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628175513","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628175513","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Gq2qcmPIX+XTXUHyHF3X+FsCxMw4wlNzu5bPJpdd56W0s5qWv80ZxEuHFKQDvmkThabZNihKrCSeciLHplnJiw==","shasum":"1b0de020c981e30c3e465cd23dd661014c1886b3","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628175513.tgz","fileCount":40,"unpackedSize":80366,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHusKjpuGxLJWj2r+cbSboeCWpWAOBCnMkL0sX7OXhqAIhAJpHtIOmOftDFVTvSKDxSAEkLIGHDQ+qjDxSLdE5evbB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu0CSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmquWA//ZwiGJaGxnaiy5bBjRYwHKPx/dKJYApEATDps8bnz6nnJyrjr\r\nFlqbC7J4WqEvymnUH2die8GFWNylfGF+Rg4aV5TERTx90OZBLTFKgbk5RiHK\r\nBjkYzueRfyDRyjiEVeiCOU1GGBe3eCrP8OxXBjldu36Ow3+uE+pPPGNsMR4y\r\n4D9PXEDoqPqg8O5XF4S2hnboqDimbTgnwQe9SsqBWtfK0EyYpsr6gVX7vyJn\r\n1AyUY9DFCaRe3WMUsmCh7dBY7zP1uYKX1gYRL0f3OwkeYpVO0uM4sH09bclz\r\nm55dcVDekFZzFp1O++B3lgjjX4V24MC7h9SZQyDJjVsRw5QOn5c99YtEmR5w\r\nlOgUtmj2ssp4AmEy+r0hiX7bkC7egGUWQHVSM94phTNVgbrUDARnePREdTGE\r\nbstyhAMXf3wFJwArv1sqDbKnYMJavuZ/5B3rT9zN0TNMJ3ihmLpWN6OGiq5v\r\nz+93OVCr9RfWq4Jnzo84byexVa8QY18vMnKAVEQJ4z9bhrbWg3TIBqgcbwlZ\r\n9AfXmOH9hiw1Mvnf46bjF+fYG5l8BmNsfrIzWwXN6Rkto3VI+v1OxzsQNPiQ\r\nPSoncYTT8fzyfcolt1NLbMLJbl6XNZ5YKtDegrdA1NINt+CeJMSu+zLJVpQd\r\nPjKn3nShUHoeyeww7jMFrAUZyV4RFmB539Y=\r\n=YcyI\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/shadenfreude_0.0.0-canary-20220628175513_1656438930413_0.5316906848412428"},"_hasShrinkwrap":false},"0.0.0-canary-20220628195115":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628195115","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628195115","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-aQblh2/JdHZClIDOkYwKQFLhExN7ddQJdCYMLYQx7nGDrl+GyD3+t/y3uV37o8/kx7cqmH3HmZiTbo1uuy6zYw==","shasum":"38291cc5e90a2065ff043c3b92b39157ac0de99f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628195115.tgz","fileCount":40,"unpackedSize":81308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGBnOwgS+/GfAVO8RpC6L87iFj6IIVPjsazcEony+hXgIhANK/nGSybuK9fxpJDcOVwQB+zv1+lzXGQIYszrDAKVZ7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu1vBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmopPg//ceb1RHWscgzxnheCbWqnOXp8SRvjG1Eb3Ffz+7I69UpqrXGe\r\nWnqdbVyVigu2BoGGtZxw7OLVh7v8z2X+SgvdaSvsvQ4nX8J6u0TPNyqoHOaD\r\nyFcoGXbenntHsSHWZqX/z7IhrM+TiE44D1Fj6hG0AQQ0DDnw6B4ea3sENpdi\r\ndH8RmQkIxX3B5QMyp5I/x742fV+5T4ngeKWJMgtK/ELL6ZMUFdFKhsPDIXoH\r\nh6lItb41ZGZomZ0a0+nppqPPXeupxLh27xetTPKXBgFmH/YylUc7pYSNneGH\r\nJiszaAmcr7adJnGNZxcoxBAaDQil8oViiNnYARCNYJtyk98JVPE/X6TA7pl/\r\nwoI/TQDUqJcg0aTAAcbPTxcXJRykb3A3HD53SgoFJVXo40JIdYLLOCz9Hf/B\r\nyCNvwIz/96g943RZ2BmzZ/Q+PINa5oOO2Wfv1Y3xfa56dG8d+WzZJEjTSEcf\r\nNI1bpKeoiQMz8JWwjk1tN7ts9eCLqjdGDvuDfuITVvuzpnzzOrQZGTxtpPb1\r\n6wpvcsFZxnnarpZvlKDFr2hqENCeYt34kwB1KMmjhJEzGqvluWbZeDn/vG2B\r\nzbc+j/tl/fs6lxpQjpOPoaY0asFApgs1burniNeolmUv0apdWYVEeCEki6ap\r\nwZ4Y8QDIpj/oW9mJK8OhauEw2HzujS0rNHg=\r\n=dCgO\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/shadenfreude_0.0.0-canary-20220628195115_1656445889685_0.34292521005864196"},"_hasShrinkwrap":false},"0.0.0-canary-20220628195756":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628195756","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628195756","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-32kqygXcIR7Cqrljwe8/x7OqdRUIeNlT2BuQPxnxw2gi8SyNBEesLPR+aZpLTTduPetSxgoLfOqytc7DYIdawQ==","shasum":"486e74f6d84063584fe243c6d4e1fbd9d82d0660","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628195756.tgz","fileCount":39,"unpackedSize":80237,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzqlMYyKG0vRlgP52czevz/dFODZzL7rs4KiFVyazdpgIhAKEe39CQbucwaY0YhLTTsDX2AiQhHC20EvNyAfyFOVbQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu11SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKwA/+MK35bLMEmIel714kUivheAfadpzM6+xTDIQenxWrVEyMc1XC\r\nG27Nr+GZPkQedQ/BO5Mrf2L3z0C2SlPd80KpEYYgJ3fzALHNXUVQh/pf5WS2\r\nwVwsAnDXpP5HfrDG3etc2xPZHWXoSsICS5B5+PjAJDrUMu1zxu+HUrnbjZOM\r\nZZBrNTmRCbAQlBEW3zp0U/GVYclmiZdmUxevQoMgz9F/Uh1TXdLUyz9r/um8\r\nTf2FMLfxJ0Aw4HkrO+8bsKMBIC3k0J2Vxo/Kq6th2D291qWowhr3L/YXEX71\r\nvCGQMasHvrg21kcQtu3VT+3tOLrNpTbPq26TYRps5kJ/ksfUidY9ZDrJAEqu\r\nc0LbKuazylmLg1/pW/sRNoHVBf8BfT274WwnOqfumnmrmyxMQuHpVfZflBJc\r\nXE4wab2LeMiiFp0kIlml75DBJa/l3ckVOn3Izmg6GYWLTlrtFUxJrYn6Dqaw\r\nG/KZDyHhWvd5yQu/HrtB7OstVwMefcEPMsuaOSPnw28oxV7Kq3t4JZKou8l7\r\nb6bnfQMvAPcnv+QhHGNHsBunEyjEz+VWlF3TgInGPJFwf1bNEWccAcmOGjDJ\r\nRP0Pp0/BtkDShQ7Fbkb/JeUcx7CQIbz/mQMTdgfMHZk0q9lU8F26kt108JVB\r\n+NOoXcx8EckMNRXvwSZSG+8Xl7qCzdYqVvQ=\r\n=QXHL\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/shadenfreude_0.0.0-canary-20220628195756_1656446289873_0.8601354494987443"},"_hasShrinkwrap":false},"0.0.0-canary-20220628202226":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628202226","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628202226","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-eINFCsfBPGRqsml1LHAiCbn9KNm3c83DNVMCFwYQ+bx0boyYhIojL8BFpdMi0yE5nss9RzyUbNr8EQBnsvfozQ==","shasum":"178cb18125537e10a9bfefafedcd95280908bcf0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628202226.tgz","fileCount":39,"unpackedSize":80266,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCowrjWu1z+uS2SGh3saeYidGT5fc+EQZY7aQ4ZWGakpgIhAN+tXFrsI+Y5wDHZptkWLZymI8TxTZo20aIPdQpUKWj4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu2MPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWSg/+J6ekIpYi4jGvmjA4OdNT/pQsMa+1eevLgls65+OcVQvqDcGo\r\nqcLWZb6Zx8uPdCfESnxigMx1VIp1+ZAUHSFYHxnvCrmCIqi8ACC/sxskFEuX\r\nzdb8Gaw8YU08QWM/Cd1tfjFikaBnXhXoa/+WLBpIUpCWukC+XcbQMyxaYgGG\r\nvW5KB+s4YLQhyuc8voqNSlUDS2htV+1HRKcVYcPOmRIFgqLF4S7hSCOyjokn\r\nS/mCEubDk5G6KyasrrcX3kmatxZuTm6tRUeC/DZUlNWevGZxqeBEPQY/uo8e\r\noR2YihBsT6vreN1sPK6KzmWbmFsnsxN0yfA/5y1VAWsbcyFkXB6G5J+s8K4m\r\ns+yRkW3YS+Ep01dH1a+7XITEqspkQDn8TiowW/FOv03ECDQBMtyOn83JP3Xv\r\naeootT8pL8I9iTv8O/Si3zqWU6oFK7Q+CtEeGucyurNIEMbKoLpqo2loVq+J\r\nbbCI2udM6Ujv2as/jHsx9r4ir06V6RoBYa7E6t5Dm9V5/2oL+RmAZSllHF7p\r\nQ+1XTiLOZmyv/wZYUw/QeNp0+fNEdklYJe1mf8OVOatr0qr508oesyOTamkf\r\nsM2IU0GUGZf0EpLhSTXzquuZuK4KL+yPMBOWhVAO9FISz43m+siEaicpOvTT\r\nJ+yYCYEd6EQ4dzblMPBP452lXQA8jJK32Yc=\r\n=YYrW\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/shadenfreude_0.0.0-canary-20220628202226_1656447758931_0.18113196575870072"},"_hasShrinkwrap":false},"0.0.0-canary-20220628210843":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220628210843","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220628210843","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-gPgO1jkSoB1K3udDqABGZwTzo77rZ3yPb1920NBUzWvzdFvEpKAFHwvfCUngNhtdWUpW+4bR6vTroCJCTWwVHA==","shasum":"8b8de86efdf157fcffa5582ce7e642d7d9a925cf","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220628210843.tgz","fileCount":39,"unpackedSize":80366,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5G+wbwoyrISLQWUg2Lu8o95eHDv9LOst76kQSVrV2JAiAugVpGGaUiEUrpWIqolMuQwh4PiR1Sc+gw7+WGuN7NNQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiu23pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKTA//S/ZacIgafbTT4UoqTka/O18HdyVahcnzW+d7KNT0vhmqJkO0\r\nZz/Fa+nBWDlcXplhoIiCgWGOtPlG/OsZwGcJ2YUM+rAdF0Wws75r4WbSOQDz\r\nVdlvau7zQ3wZSKLc+TrhjIYcRP6ekyd65mSSroO/MUwAtw5ScBHOrkbLVmz/\r\ncMJoT6kw3m0Fx7+AcZEO9RaE4p6ZK14h/9Qn/fnA823YUwCJ3+QDJ8LCURn8\r\noDa56PQY7mPrm5qEf2Dz+VtoER6se+woZb9dEXONGmzKPddusIOLlHNSI4CQ\r\nb3xx1BTFJHEJZxA7HceIINArT2wGnAiN19a14qS4WlFiw0tMkeBgiGUKhJ8R\r\nix2Q2vgPUmkHUBYKMH7Vd2sfTfpPdzQJliSS60wsmHUqgnbmK5J7vuUhrAin\r\n7uZ6xlyACukC3vqSdCrW5+ULWdeKIsrICUjmXlK1Ux57x4zaqAnCKyI5MrfP\r\nQPDfvppERz0dM9NYywWkkXbSCI7Qyjdwr69uJA4xSoCxOUSg0IwsNCzJFWnw\r\nK+QY7y8DnnLKTvrWcZJfddiPG9otPRAJhhYo1yl0FljRv5Fl2Mx8wv+dOle0\r\nk36xaiZMNAOdk8kqlpIsx651z9QpGaQJNgKEai4CSPuLtnl5HHstfR5+G1d2\r\nCdNBNf06kPqtXqf6DsEd2a8gjBplPJM9U3w=\r\n=0MJk\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/shadenfreude_0.0.0-canary-20220628210843_1656450537370_0.1294779013397429"},"_hasShrinkwrap":false},"0.0.0-canary-20220701134857":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701134857","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial). Here's a quick example:\n\n```jsx\nfunction MyShaderMaterial({ children, ...props }) {\n  /* Create the shader */\n  const { update, ...shaderProps } = useMemo(() => {\n    const root = CSMMasterNode({\n      diffuseColor: BlendNode({\n        a: new Color(\"#dd8833\"),\n        b: MultiplyNode({\n          a: new Color(\"#ffffff\"),\n          b: FresnelNode()\n        }),\n        opacity: 1\n      }),\n\n      position: AddNode({\n        a: VertexPositionNode(),\n        b: WobbleNode({\n          x: TimeNode(),\n          amplitude: 3,\n          frequency: 10\n        })\n      })\n    })\n\n    return compileShader(root)\n  }, [])\n\n  /* Execute the shader's per-frame logic */\n  useFrame(update)\n\n  return <CustomShaderMaterial {...props} {...shaderProps} />\n}\n```\n\nThe most important here is `compileShader`, which will take a shader node as its input and return an object containing props for `<CustomShaderMaterial>`, plus an `update` callback that you are expected to call once per frame.\n\nThe library provides a collection of ready-to-use shader nodes (`MultiplyNode`, `ColorNode`, etc.) alongside helpers like `node` and `nodeFactory` for creating custom nodes.\n\nAny node can be passed to `compileShader`, but for use with three-custom-shader-material, it is recommended that the root node is a `CSMMasterNode`.\n\n**Note:** Tighter React integration (including JSX) is on the roadmap.\n\n## Creating Custom Nodes\n\nWeep and despair.\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701134857","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-7qHwiLPUuwJ0e6I/ZF6Rpoh2eCTRf53QIdwIjrZE7qxkBJOeZzdHnmlibrDoSG5kT5+LwXCvbc9HVfU8FPvM1g==","shasum":"2a63b073646d7b0a7e60ff74c83fc89c88a27f91","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701134857.tgz","fileCount":17,"unpackedSize":85201,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEJb4vn/X+L/mv1NKgWHhlPbrzdypib3YZWJ3/udgENNAiBg4om99tEXzZa21pYoX7H8uCbCrUc8/6Ssf9Iy2fT7FA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivvtYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr86w//R5LkAKISSMP8EHU26v0QFyFQjMkg4kIA/DIbyfr+10CoJ+Et\r\nrkIy7oAKU14lTT2/jR9zknY3agHfr2RgU9iBi+4DXZVuXycwekGrMX5n2Gv4\r\n77viwIkrTT0ImcIf1/+9cywSonBGizJ132XlWiiF6+eUPxeRG6FqDk2WS0WZ\r\nSmqF4NkIG0KqQJQAJ0rulNeN9yxeo3SBjh32MsKHi4/tq4tC5cPjpYVOYBzX\r\nCaU2wj56Svy939Ty/8HCWPyHrmV/Zhg9+l+TUhYq2+mPA32DoZh0Ts+BXQ+j\r\nBPJVbItCn7EKfzPSZAbVm2KhnQu4gNfYf0EW3oGkhStxJu6IgjGvV7v+MWZ/\r\n3H2lorvt3LUYqfWoenlZIlR4x3dV87wV77fZ8ezq+Y79B7K2F14kCt5Mjg7P\r\nYXR/5pyKHRS+UGv5/MvjnVeFFPlFfMY2o9DYw0d3QhH3TmPudlPIaNvauEbf\r\nsd5zqPR6HsWElyZPGSiFo2rz3mUSu49LVDc13Yvd2GjrvdZja+rMzSDuFnpG\r\nGcx9EwtcYZZ6R2I5PBce3UrsyVnqdDrAwS8lysFTH5Vw5DImycTtbWGXR5BZ\r\nrbu8LaV+6iNlhRDeSlQFpi16zuAtfG/siG4cE4CpSk69Zltx35IwlGt/2KIR\r\nH4epS6nnniY57Q6+5tXKHREfoD08xATL6Mo=\r\n=P9/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/shadenfreude_0.0.0-canary-20220701134857_1656683352141_0.9631307037235857"},"_hasShrinkwrap":false},"0.0.0-canary-20220701135023":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701135023","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701135023","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-HsKrL/a15SVTrp3u7niOWHikFymFYu8h1DM0ou+T4pBo4GSLaS2vSWmnfqLIM8nt5Dkyqas62em9OR2iW6oyQw==","shasum":"bc7801d5b6010d6079f6987885fdc125b6a3d3e4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701135023.tgz","fileCount":17,"unpackedSize":83808,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsjZprL6zwW1BZFlIbaAlqpFti+bLVPYrfQ89mmI3m1AiBNxtRodfs6vPz5ETlYF7dHXp9cqlm/WcoyrJrEoPDIyw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivvutACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqGxQ//UiVLfsH88dj++6EYdhQnfAhRWJqioobKaxC+OmfsupmgIR/C\r\nIIeo2cGjj6bhFR9nIo/SMMLF2tvxsyGRIYu4VJOUA7fXTsu70oZBKW2jYb/D\r\nzlLfrpiOkqZbldlChCZr0MtRDQE+0YwFQQweYTAadlJdQjr6S2mUAE3MCQLH\r\ny4AwDpTJ8bA6k2IS7VQYSnzU9SsaOH0EaLruBG1FPFhvYzRm3cQv3oQyKIEf\r\n3Pzhkb19tljJ+AOoq7FUwTVWmh08qtWZm7Z5EqsJ4cRyII4FVdkVl5qpvBzR\r\n2HF6chavnT21lbC8tkk6u8cohsPb29VYUz0j4J7loIDFkCVFBUBrzGCv75wl\r\ncOqdtU6Y9AQoVd0oHcB5fGJFTa+j0GNhim5VrCiFwbOyq+SXE0tknhnemcWD\r\npVXfAye5Qpvr2te5xIRlvtzLIi+r2NjQSKMJd4bVF8tO4pCAVWqi/bFXqhRn\r\nmQ8k9pzFl2DaXYYge/Ixkb+q7D2TkhhvYBUuR8+uBqf0JNziEKdJNUguhe2f\r\ngZg4n7gSPy8AVupkMxwBwwu5N6Sf4FPr2vHUu3lHKWlDDgkQQ6ZqwoNVH6dl\r\nwxQ7OmeWO8zZhTS2AW6Psyb298+H608oEoPfKBNbgn9tjQYDaTeQ1BFM6EG2\r\n5jU3f7DS28zyeyDvpTDegeJ1Cpg6VwG4c8g=\r\n=lkxE\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/shadenfreude_0.0.0-canary-20220701135023_1656683437214_0.9543349615083603"},"_hasShrinkwrap":false},"0.0.0-canary-20220701220347":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701220347","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701220347","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-WRdwFytWXLGkxj93Y5Fk6/eafyz+WWtOM4Sw4FRX5zPOdglZcGPO2eqTKgwxZq4+4u5p0k5jNGGMpvestiz1FA==","shasum":"b88c516dd51ba057954a372d93374e0b4c644861","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701220347.tgz","fileCount":17,"unpackedSize":83808,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHtTxU0yKCskIi6FXi/2ZAgHPUeMNYa30+or5rCEskH3AiAbC7IcHt27Kb6wdQLAOzlUtjR8h044W/EoMi7o7irKyw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv29RACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmZBAAgr71fdhC7IjGw5lQwLmmE3rom++I6DinBaKnGAkWFtMaRTSM\r\nPqu3ZZoZobvrQ7cCtYtpJfoDJ/ptpgccKSKuqTGiHHnpEBACT23WLyTaIMrd\r\nmbV/RO6t66pzXgkAtvDNQ83LHgggV17jBdjAfK6sMAiduHKOyHGhfNfM4YCz\r\n0mw4+o1HLFMFp40Jh7/TP+1o+93T4imRZfoCMrhf5Rx6hdlr0f6VoIN5leiI\r\nShUNvVUxFQWrPxuotKaFLOa6/HWM6ZzKm5xIrxCgCRgLGlq7Yz87xqpux293\r\n5sNa10lzS3sEempguMmB9N06GuQoqLY6Chd9Te6KJ29djS+criBTw5gEIM0a\r\nRa1UzRDVpFUgBxNjNCq7yyLtALQ8ZiZRWSAPj0qqAC+9s9UMy0PJUuHSDJT7\r\ns58lQ1fk/6omFSOKKEXSZj1IuN7cs56LSxQixy1ss29xRIfa+t6pKozW5Iaa\r\n3XAYvJtzS07+2PElq5GKdUi63GL1zCAtbCPaNRA+7NecvdgYUNyMM9tqdYqF\r\nP0PKO3A1rapn+l08EQzwsOu3+PJXRWfEXmWnOD1OA1UJh1GbK9N2ouEJ1kBW\r\n8iDhfBI/C+ElhvHOraH1QF3IJ6Mf67d4piK/ymTSF7U+ogqlXsmr21XwqQqj\r\n/e2LRLRAHG+qVDW9Y2CTzclSB3zJroJcrGs=\r\n=uuwM\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/shadenfreude_0.0.0-canary-20220701220347_1656713040918_0.694751916497311"},"_hasShrinkwrap":false},"0.0.0-canary-20220701221334":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701221334","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701221334","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-r5F6lKzTyB4tpxVv1292rVt1RuxtFPDR/TdV1XcFT2E1+US3R1hUEnIwIh8HKlOvzOam/9vH2Y41KtKXMpk/9g==","shasum":"ead458432477b330e2920ed7cd2278ba38db1472","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701221334.tgz","fileCount":17,"unpackedSize":85996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDWVnvAHR3MR8NWMqfsSvIz19DZ+QBnjThs9gUAABFzEAiBWlCh1H3ipOSr6KXBEyiP/RS5WURqcNnUa7l8o5bac1g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv3GaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobDQ//Ucm5T29GSPzRRgxQfjfHbV46oLLdr1/gYYmw4JT2Hy8xlGwI\r\nV53N2qWUEjngNjjjDWYtqHNzYzfit3bJTq72Y7wXyS2sWo7GqxNEI4Vt7jpV\r\nv9obf7hUdoinU4dNz6WOO7w+5SALTnyVpSqgJrinbv4A1kihBHES+XE/TYnI\r\nEPydCvDxNDN1nk/KZEcypRJappZHhmHuIcpDzjTPEORuFjDO/IkMtAQQfnab\r\nzry4kr9kCWUu8E231Tb/dNekbf9sG5tefXP3GNampiBvu8QA+zDJcHldXZZg\r\nSJKLPUjxZzxlqGZ/ZpqpmqHV0RT0v5ipTBaOyLfU6E5SWd6spRclDoM2jO/z\r\nOKmlJAPWYhR9H7WLqj9qXZpfB8bxmVTyrMR2KM4yUhmrEqy2dvBn6JOKfEOo\r\ni0xfaDtzTpf/NPqsJWTvcFvAmB0ZZLiFYhF0b4w3zBRkHMDpXQ0+U5PvGOpK\r\nVDHATTYzW0u2hyqiWYGWD0FlEVGHl+/sD7FP1gRhrJPaLZ96P+9BNO0gg9o6\r\nUVRpJv5PErqMjuUJHjx+lOoWIIKpxMroqbKDYeybiLyDqHt9unsW+ocVuzW/\r\nWenAXVhsx5C81wAtzReWS8HyWQ1x6VaGNv05n3L5BbeZz9ZO7PAyh6xd4w+e\r\nDmyqRNymrras6cb9sh/7++W1EtufeUw8PLk=\r\n=mRw6\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/shadenfreude_0.0.0-canary-20220701221334_1656713626804_0.3016579824298309"},"_hasShrinkwrap":false},"0.0.0-canary-20220701224746":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701224746","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701224746","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-raw3wFsackUsOhlhXdmq/JXHjh/7TMlT67Ce6ywcAJl3icnrG3tRQnRze4YRqahcAEAE94TGDWdXAIQdkwYqog==","shasum":"a647341836e14ec6491569345b0ef4acf46382e0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701224746.tgz","fileCount":17,"unpackedSize":86841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBFupxuFVM4vxYACCNo9dRj4yJKukIuL9vNz0C6eg86SAiEAnknokuvvkYjKCJuH/KKL2Ru3yUhJBNSbg/WMaNOGxP0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv3miACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+tQ//ceoKBdOUru+LXAHI3XFlJJuFvvZRQ6v87FFf/MgxzBGtwZ3p\r\nJSHh+VGEy8nKzBHRZpfvQiunZTamopDHAiGK0IbuOu7f4+95CMhcKc0k8Xn0\r\nF587D3XTJ3IhFhDq0RRkxM9mmMup+ub9Qf5JOre50bQMfDrW+sZlgHRuCr0N\r\n+g7Sr3MmmEsgioWXAOyNOl0Ad7MVAntOprxlHH03q8GjvMXXjSj7eT2uEyUt\r\nd7mOyBGTwmskVDA9hDsivGvaAyPRfgQFRXJaRpnf6P+wzXAN8f70DNBJehPF\r\ndPw4bDzovsXyEpUBLEeaHsYu++uSUdIghR9s5T2HsanuTbulpc7yA3vBQlSq\r\nKv3dEimiq1asNCQSAtti3sDs9CoTYURwUlIce/rFpb2Q/7Jp0gxWQhDlJCaO\r\neo67MhkRSnOvbSnf3eAp2kAdM2pdAI09gSeCUcrtCvu1qXE3VtUMaULG2irX\r\ndbGyl1dN6MFj5gnqw0UD7ElQbOFAJeb8kxbT7X8eV+GAro44RQy95rjeiMmn\r\nuluvQLWxWjLC//NropXOGLfKKd57eSKr057qgBa50gGcgNAD/RZdRNGQw39Y\r\nyJ8mjG0rbOX0Y4ATnlR/TC20omaerYaWFsU7w7fq60v8LuOTKnw/8DdQQm07\r\nEsuIlZyBC60ox92qW6fcGmrmCqnxnwgSmFM=\r\n=kvcz\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/shadenfreude_0.0.0-canary-20220701224746_1656715682034_0.4799238811512996"},"_hasShrinkwrap":false},"0.0.0-canary-20220701225229":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701225229","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701225229","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-0FR6blkoLxdNTT3gxZuB1LpMi3TrEZmk9sH2WXJ+5zR5uJMcbW6hYhZNqQcsKUFS8tSIa73/o++d5/2n7N4Ipg==","shasum":"0368bc46dcda010214c4ff89040737b7f693d8ee","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701225229.tgz","fileCount":17,"unpackedSize":86889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgd01TwYJ1eeuCCbvkykpbEhpaxqHfpcKQjOEVP3LkNgIgJ50+exV6oHXVbhm4WTmLJps6dgkijc2ya4N8dtmlza4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv3q6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrW7g//S65bY88Ssktcf8fKoZe1gaXI1agoBS8KTHqlKTFfDJpNV757\r\niakL4cU0tdfptnMNkg9buroBOO6c1g2h0THWFuQDtoNC2vxWoUXjYnXnOA7g\r\nlb+8j8UJVbkNUBKdlP1ZFzcBjci1PcfFumZ/vzFF3Uwm4FlsY90lzHo++H+Z\r\nyoOomSqPqpZY4xY6k226B3AYbirIRi6vHVoK5XzR+t7ApN7Hh0UtTwGWAPhO\r\nva6IOLCP9idOcxAm6FoUlB4P9wlUpNPzUcFfawUbGQ92YfJOA8kPRFy+vi6q\r\n9ZeYsApIe3qOtjzo/9q/IQnY11MzfaqsvxC7mrtbKNvFKUTavvidqXW23cI5\r\niP+56hkXW/Nk1jxDLeGqXFY5AvEqTAOHT03QzhDqXjPnllpOxzL7rQEKPdSu\r\nRpn2riw0hPCUzPA+L58y3k6xcUbeoRIrBqEBmrtJmkc+dkWNUMYJx1QqIeap\r\n++TcZ9Gkmrm9y48SVCaSJkwRL3b8vuTtqh3pJwf8MHUUtSxQ7nKtsyu+1atD\r\nKsCb7+WRIEv+fklwyBcR6J7f08WegJhz+fpkPkgkei/tgMxgPEuCyYtzzthc\r\nO2fnetNa+wazWGeiiKz1wTTYBMl+H0USi0q9nHwWt3GhFIXfmiUjfdVTP+a7\r\nYlmBvqJyzOTfEu8GjiFj/7dUFDuDKLrunUM=\r\n=czAe\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/shadenfreude_0.0.0-canary-20220701225229_1656715962652_0.1387757729801551"},"_hasShrinkwrap":false},"0.0.0-canary-20220701232436":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701232436","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701232436","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-nYJVaYX6wF7HzJMrF8VHWCVnzcntnHTrqHQt3H2yvpUZI4XemEt3SAaq9nYTp0+DEF0JRDQsP0JzKhVxD9lPmQ==","shasum":"bc9d5d55d01ec1e5b48c5147791671b63f0bba2a","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701232436.tgz","fileCount":17,"unpackedSize":88068,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkqeeVSGjYVM2+YSi+iJIdG0tilDVeu1RYodt+UEK2rAiEA3M4gANHq3+PQ9hQ8PtkI1CY3/+/V76H36r7kRLr+5xM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv4JEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNuQ//W7+g28GQKBXsu6jdfAL7mgRUn3Bz53KZd54pZzTBnlItjyOE\r\nw5t58bdP/fBYPgoxwe/AAKDyY9sABn37bB/0D7yFg5EgLmESfuN5z9YVCGYj\r\ncBVITqt3JLn50cu2dr5AKQErKAWh/agc/u/5bdmiaQx9PrZgtIiMTovp7+/X\r\nm/EmI/g3+SnNzNxYkEv9APHuvZSjR/rHgoA7GRLDUuyRalfOLbnwZrxyhE2C\r\n/IW7SW32m1IRtm3x/F757Jb0ttKBLzuDm5WH5rjsxI1y9VibMakCI+W3D0QL\r\niyBcaFQpghoO5tvEYkp6XzdCs+c8UhpgD2N+mO3AjWZWMO3nRK9jQMXWGOqI\r\nEpOKtbiAME7gPdmTa/IEAIJou/9/ztiN9/d+HUTJybVIytYF6vaBcORtd9nF\r\noyKG8Ugzxm8f+V5mNBCENZUNnknS+dTYujTXQ2qfnAfnFlY7B3e8RCyGJvTY\r\nnGv9DUJUSxV1grMols8sns5iY7HD21BZRPstKg7fQ5tKW/7v8mm3YHL/cZ+4\r\nh3IUXXZnfgC5ByQN5U9VtsTIK319fouAWPW2d8c0AI+Bmudzu8PtEZeQ6c1B\r\n0M1Wnb/37c75qW433nrXHdjlsB3auDHGha0FPlJRMPd5AI590ZQAD4i4ViN6\r\nOwRMTv2q3kNh7FCROTNfI2vjZ9CGJMnp82c=\r\n=f9i8\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/shadenfreude_0.0.0-canary-20220701232436_1656717892237_0.24695899652642583"},"_hasShrinkwrap":false},"0.0.0-canary-20220701235655":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701235655","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701235655","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-rssIeuu4rhW1c+aH1FKZEFUHTMSghAa6FfrMzKNfq/7woNRP8fJg/FYeTkcIjh2/M9pRXffI27rrMDGRBHtNaQ==","shasum":"cf81f13962f87683c300ee6d34312b73e1c39ea4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701235655.tgz","fileCount":17,"unpackedSize":89998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1EBS2VpxESDlnE8+6/Q7L0g6XynrZ40BZujdudQPJywIhAOBX7VsOb8DzQOOlMDU1+zHW7yTdksYktfI+UzwerTIl"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv4nVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/GhAAnmJwQHwLAybSAqDCU8T6la8S5LVFcW6ZzPCbHcBOrgCwldbL\r\nadZn5V27nZ+muCEwEok1PLfKYmHlduyFuxDn2g71Q1Itmr/KycB4c7W4M0J7\r\n1HXAvLjWSX4tmu41UkwAkFAIKnU/ZUauVPUrJw0Ah4PqyGKMK5Xi74NjW/yF\r\nnevYiG99B58QmD7/DLYjkRqEyFd3Haol6Wu1XBJtHtg8cY3DFVNDk1hyM6Mh\r\nhrNgoUpcZq0kTW6JJnPgE/K8smPKBTPWuce/GpZv2DbJbGTCLhD7dO7y2nEQ\r\nMNWMAd3FDm4nveAjEn9etKF1goQiqVi64Y4cq3/3K0VKX9aPc/ARKxycx6Y5\r\nAMN14A0g4z1TT+BmrWP8gwbEPblyIQMRcJSw4K1KtlFdKT8XHeaBsgvtE+n1\r\nYhFN4Dh4ohE/vTMgO8xD5sgCwUCnnqIZKd+RGToROd4yAAOBsGEPjtTh11a4\r\nlHh5cMiHvrtQFEgY8iQ/FHlp2cPLtoiaYjws3l3qhfNCaLnsn4Gypl9LJI90\r\nQK0LbOac93MSDgFBFQ3Whvhq1yDOMmvapQJZQGmbtupVZgBWe4BINICYaSx/\r\nDS41DakqJp7ZGOuaeRVwZuI8XFw/9vwHu6kvDfipm5wAnPrWfrifDTklclpq\r\nrB3Wt1G8AHDIMq+GZMsfyra3nGKoDCslfRs=\r\n=uk5F\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/shadenfreude_0.0.0-canary-20220701235655_1656719829251_0.03191084331372385"},"_hasShrinkwrap":false},"0.0.0-canary-20220701235752":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220701235752","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220701235752","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-0JjjOKXhH+W6IyngprReXQL02j6JrDdLp/de50NaoCL1JgmjmTrR+c0P3lmJSaO5EYFiLX8VS5qPDFFo12iF/w==","shasum":"1826f6f35cfc646e4958e32de5bfaf3b719f5cbf","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220701235752.tgz","fileCount":17,"unpackedSize":89998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5Mdgl6X0h8LQAoWBj20fQ1Qjp1oTP7ygpwi6O25wvEQIhAI3m1Vo3HY5w6gSSkhATK7A/Q+MrGoE8KT06Mck7CCu5"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv4oRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpoAhAAkwmlnyCKgj23HKQs3u8yhpR6igIHAy2JIrbpdQIwq++3Ms+u\r\nWWp+3c/JuD/Y5oPNdUXAn7rJwXyQPs/HgkHI3BZiosEzEIpUxKXnEitN1wKA\r\nhmtrYMbTESq2hUl1DF1ISEK1nOkXI7AR6v0+RDmLCM/XPUGanb6+xl0f0Yfo\r\n+PVP/uNWiE/bDU5CfsVhZh2rUSVPy0HaI4GpVsGtjj0siVq2xjwY1wnNeW/S\r\n/SeipcID+DDUS31YAb77lpO/ieEcVs4keuFADbiVvY4bWxWtugMZ9Rghywev\r\ndy2WGd4aYw9+XpfqmUq4czVXfq4ZQhi64IIF8TNK3gBfNoPLAfnRdkcbql0G\r\nJN0vRDHz6nzGPotvc87tdAHS5L7tEzocmxvdmbdN+99o4S/Jx1OFFGYOYVOk\r\nTfsemMKO3kWO9nEh6Prb+eGaG1WRlG4H0UVWbZzI/BwcNMnPh6SExF7gaiiw\r\nYVHwfNNDElUytcJLZSO1loA9+fKs/BsayTx2vTW+UiOIl4kHRpJ2CBueb6sZ\r\neITEJskfgtcxw4lK783uVNCsQWx5qwyFhBDcmEngArAebITlNjaPY+kCfzzs\r\n5ZIaFBtgg8cR0LP3EDlRHTyPpxOmPUPFGgqDHQ1a3uAR2QlKyOuNTZDRrryZ\r\nYek3vsi/0zodyIMDScFZFcU/8dQi5329Xic=\r\n=66/q\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/shadenfreude_0.0.0-canary-20220701235752_1656719888779_0.9640774542736537"},"_hasShrinkwrap":false},"0.0.0-canary-20220702000840":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702000840","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702000840","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-yThB7URoIt7NEgvc1WFB00W/ljvswG8OgGTuLCmmn3TvlLAiPuHic3XEcDPVQnp8558+usw2lTlump/KJGaPlw==","shasum":"119b459e68a21dc00f26b43a5cb78989258d2362","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702000840.tgz","fileCount":17,"unpackedSize":91816,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDW8Oc04tVrny/y8WX24hTnfU5DJXaUltbgqGh+qTxvtAiEAp8IojuAviggotDbYaPwM5Iy671VTbQl6Yp6PZm4mAuk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv4yVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrX4Q//Ss9YHofaHTfKZX0OxKRDTITxfNIQplJJsxciVyKGC74sSmPf\r\nNWqs89/VvkIgTOhzT9FjIaULJdNCYw42Hm9vgiseXlu18sqsx1prkx4tnKcY\r\nMw7VYtRMjIHy3h4nMZYBJ6PwEgx7lmpy9ATmUZmjA4nNC3kJf/JvmQlnM2p6\r\nU1XOMBIky+jgtDvrvOE15ege3VeE+FsJxWP2GQ2ifpk0jW2VfWiDbeAtdAAj\r\n618qKSG2FKd7+qaQlyVdF2pU17WHPMBwHP2Rz6Nb529yJD71OL+yhM0jCJEK\r\nkGUh/C5tLZG5DcEXiGjJuXd3Cih2oQgHVZcLOLUTSV67VJ2FiDmjFQIuf4Fu\r\nJ7nIzlxLis46wYevxQSm4bK63u4lUQOfkBP2ZyQMifqRstG2nYE9A/RpB+iw\r\nEaCvfWljZ3xIjXJygVdWLwhQQuXHQV1KMqN1J/8bwgzWtpRgHK5Vj57lOQR1\r\nqbFAJ42x+Gw/aAeJNNm2DrbSGAWAvmW5Gfdnfuj2ow155ZOl6UjXhpIIUjyY\r\np1XhE2iT7ltbjlHx2jgbDuOxb1Zj8yvGTqDZCD25w4J18pUnzrsWVZhngKO/\r\nXuloKYWOE5R2kMz4BDDSOymhUB7KdLAXtccGeJAm+EQcJvsOe0rqHroUmTH2\r\nXKYCnpKLCMaumim/nBKQwsp+Fx9hxKKUryM=\r\n=OamW\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/shadenfreude_0.0.0-canary-20220702000840_1656720533450_0.1962978555254964"},"_hasShrinkwrap":false},"0.0.0-canary-20220702001048":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702001048","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702001048","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-yni5dLZah6tQH2uLg+6oEsdxzZWP32PB6VcWt53xLwhrL2qWCUwiDOpalh/NBNhyr4hjDJXKz7Wuh0dYN6Z9cg==","shasum":"e6f47cc986f835e9fcf9e90c49c3ed3de0393015","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702001048.tgz","fileCount":17,"unpackedSize":94842,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvHU+axoVYEOpUeC60tg5UH3z7sCOQdrE5F5tlBK7J9AiEA1kAs0hetZNA4NaM9Ss8UWfzlgiz/oDgWHjywIR0Ks28="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv40XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDPQ//W1L7Itg7K8b+m9STSRoHdMG8+pK26WLTwYkQQNdJSlRbizrL\r\nefjOl3Cip7VsCZz0M8Knq8WHGHRWJicBWb/v3lZrihUfKRA9C7zr4soPkt47\r\n2ebwVhwXacNudPJs6i/dZS1o82UgTWRTIYB1I7PGbN5j6fY2VdY8NYczOCv5\r\noNJ1gbqVc1wxkPsSrr2Oke4wfNK4ISG+J2twQT6tDtedL5pCz1JAqdlFIJbU\r\nqxeIlT4/UAe79hbIsK2gqA88LaczwvYNx2YKO+mEFQWgqehujO01vKmTfSWa\r\nmxocXH2gM2n2zhUTW0/rdRLsaJIvuAwO0nIUzBx2DcHPfKxdBVeo9NYPlvUw\r\nJjKkK+PVr5fGddf5Em0u/xGy6OtvUfRhVnTF3jmhVqs+QfJY8DKpH3MtpYOV\r\nC8qAvSwh680RNs5+IFRhodeGVYJnWeJ6ZJ8+QnwCqiL/agknEmqV9QgqCEhG\r\nrMnr6gtpE2f0ai4wTDJb8gKNnCJetL43tBoL0YXSC7hL45ElbnRD+m/vrkkg\r\nHkEcYvjOWGt1S8h4i4zbYRy1OjEJAc/1dZ9CDYH60XEV6Pi0fVKCd/ZfTB33\r\np/c7PsElWWEsucW25vl0vfCgSDF+ZTd22dltg8njoElcNWd9guZdm2cdbajT\r\nmK/SgR0slIJknQwOax5eWCcV7CNxFqqH20Y=\r\n=5DR3\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/shadenfreude_0.0.0-canary-20220702001048_1656720662810_0.35293022921413497"},"_hasShrinkwrap":false},"0.0.0-canary-20220702100656":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702100656","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702100656","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-em3t/U6MaK+8TXvuTXA4fWcGBUkX4PGz5uPeGNoBMLzveHp4w94wPfNvm9gHi6kFu6uZjNTiPh8ONLO0AT6rcg==","shasum":"a2862b7f06cacc75d4d4a827bdbbcca86f79082e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702100656.tgz","fileCount":17,"unpackedSize":102046,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQAiDXGonm0sg0MSp0eyDT3sFWhe6YlrTApufrT5Q/pAiEAiZofW9weEd9jwLkCmLHqGuxWZjfBoMxrE6+LH4/7I1M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwBjOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1yA//Ws0+AMqqPK85+5R8TNlE+9iAauUPIJktn+fEM+PLJXq4Qk8z\r\ncupXak0uUAA40sbmsGjT3mTh418V0GHRxJ02zTt9zjeRiuJS1hdxeflBdFrL\r\nwO9vRJlPetfkFHTDZh1H9xSxtObNxo8acZpMfLjGoXnkKXEW+eiQ4V54gdCv\r\nXeU9Ls9mzKgraRWB3vkgAESM6zGXCGSjc+DGUejYyPwYpqo4cqgmwrH5fVJk\r\nByyrFR/lAVhreFuOTzW1iQ+f6gd2a6UBPsW6ELlbt/o5HA7ExpZQgLtm2hbB\r\niLfqfo+8TIizwbl0c2ldzlrTgcTP1ySh3zk5eAV7A0joHaWkpKEwwL2kUYV6\r\ngxANkY29PZAvwiDJXQVi/ag7A3FGmsDr2g4SUgXOyOgsgNBQ6OUeLRzcgGUF\r\niPdJhs5yGvOS+h68bk4lwQMSZbk2ZIitsVnG2iYUxCxncwffc8Lvxa7rztk8\r\nO0gE8miq5/Xb1AeZy3H/ahU3+ahSJQgBXGz2OWls8aaJXK/mUJYeQcVpQP2n\r\n12HN0wU3rVtQac7o/kXyniFetq4WzT+RPBriT52dfoMxf602VChTvfzFtR/x\r\ns8z9TqhQ42HirfeBEv50EjfqlGx6eMaWUIU5tUscc0yPw81kYSq+0EPFtB1v\r\nWPYxH6Rk/7GITjkAO67kRP5r20fIURWcQZU=\r\n=5jSF\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/shadenfreude_0.0.0-canary-20220702100656_1656756430588_0.9843436263638636"},"_hasShrinkwrap":false},"0.0.0-canary-20220702123228":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702123228","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702123228","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-3mkt/8Wz/0D8vsxzwAP5xCiSnq3/qEY3bcG2qnmziaFiWFrozmDEhaE1sjo6iH3a2emt7hF7wEbDK3ElknJ4Ow==","shasum":"913f812e91cffdf57ac9ae54e5ac665d115e3613","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702123228.tgz","fileCount":17,"unpackedSize":102000,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBz7K/WOrzOSmjZ/1ZO+pBtD2vnZyT2nYcXAy07nG8IgIhAPYx/ujNhiLAhUcZztPumM5CROFEjejrtc0ei3nrcHoY"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwDrqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0qg//SL1wN7xoD92N9T+Cp77xmgjE67Vkb7Z2xi2MCdrkB5HvyGIK\r\nxu7uCPT97lTZX0jD9H+n5pnkL0CsCu3Nq1MbxAlM1fK0rd6dOl7Fmg1kd7jx\r\ncwkbjV8gwLCgbZ25r6OeeWbctJv+wggVQttcFEw8kitvIhlBcuN0MF96gE+m\r\nXZ2Ldn4o2DOF6LK5fMZ0snLKpX3g/onAZzOW8FWkEBSuAOWiqLyIiT20u8uh\r\nO2R0Cad149q0KaFDuflVKkN2gZm5+4GSo8MdFgphvgG5dtdeDz4IaJmAfn4h\r\nVn5p/OBTquL9iuhFu2qEMrR3E741aYt+F9Z5P5z1Fw91bJuiF+8quA+lsmQM\r\nbRIPXkB9ZVfN6v3TD6CTJ0LWU7IocJGN5zf1XBNKSDcNK5tYNlaqBsB7qp0/\r\nwaDMpejpWi38bmHqzXievrc5dLt7NNRc4j3uy3ZPkYuE6G7dZ9rL+vIGVq67\r\n6zZdbuMQf4RkU19qrt1RjFj9IMXObbUSYr1Skx+PR7vQgeGm0qWaYVrVej2P\r\nF4l5JPhz7b5BEqSvb63Dtp6NqLae/8/NG7qDoqE9eYi/wNeMHebWgQsdkIEX\r\ndOxlFlPnDAmAi4aT4c/j2mlRC77ErdKdWPyvyozbKY20HuLXl969CbfY5k7l\r\nFnx/NdEeXFL1UynN6AW5FXdMk1QXwaa0tOA=\r\n=vhxo\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/shadenfreude_0.0.0-canary-20220702123228_1656765162473_0.992215293779122"},"_hasShrinkwrap":false},"0.0.0-canary-20220702141104":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702141104","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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 src/index.ts"},"devDependencies":{"@babel/core":"^7.18.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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","typescript":"^4.7.3"},"peerDependencies":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702141104","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-bHX12THTqF3mkFJdexPB/M01RWAO9h+Q4aF5fgf5B51CURSzivmhDxumYkkiJddjvZ+ZZvFXchTV9S06jWjRlw==","shasum":"7f6513871fad579f4b033ecb1cf09015e8a26a80","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702141104.tgz","fileCount":17,"unpackedSize":102440,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+KU0fcZlKs1pCHXBOEC9mGejuouRXwXIzKl9Ky/pARAiEAjufvE0HplMg4bKEyYCCY4g0jqNlMSRKiNbpwIzBS6cg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwFIGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWQg//Y1OZTHI1NOJoUCK+2aMAaaBsMeiWfJQZrhhfxxKVzYdXUra6\r\n2WblT/jHPfi6XBbmqGumTd7luh816q9HURP+Sj7A8lX0TQaFbdPslYrEYsJZ\r\n9MwjPeKSHhnZsDUo1Dx9SMvJmRRPy6sLNmXvdtFQZrsOKrdSc8We/oh8+lEb\r\n+a9fyh4P6uO2QVx5iMlL6TbYTtwSzWxEZPT/Z6TW7VskTq0agf/hB6tXHp4k\r\nDrEnfw9qLTISd3B5odEaelTJDRxsMrJQLzqW21yIqsSeDJS2kLzhepDygcLy\r\nvJwQbCylqZorXJ3emcK1wXa+K+m9Io8jEQTpKggGCHIJkVnYPe4SyyZThtai\r\naJvr+Pwq4OiGkdaQI4Y6zG5XZdyhF9RKRvrmLUCenwV4Z5knXctt3A9BGs3P\r\nLTS2DLMMqn6ARwLHMkA9zMeNXmqXB969Bo7pbSv7oHo/k2aqCk3qoHQq0TFy\r\nDOAko3DJH1EvllR3iHsJ26SkwWCBoPsB2Z+hcKWvutswpwTuW7ksos4Axrau\r\naOXDaPoN1Hbj9/3f4mVnY7DoUfmsuWABsn+/DfJW4LUQmu9/dg2C3ZCv5qGA\r\ndsplYw3SDdVY2Ib/sHXZEdfLJmbErWAJ9VJpXSUFh59D/TqQ80fv2W5Cgp1T\r\n8OokG7XWBgUDXk2uLWyc5gFOGkIfVKqjiHU=\r\n=tyzH\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/shadenfreude_0.0.0-canary-20220702141104_1656771077901_0.8825013005727598"},"_hasShrinkwrap":false},"0.0.0-canary-20220702143444":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702143444","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702143444","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-okDt9gDos1NL3lN4Duas6NE+dwZUP7L7H5BXauroe53MhFZ6PzwcwmMdIh3boIbv6WmljwJBeoTzfvBsxemR1w==","shasum":"8dafe849fd7865382c2f6f656bdf3aadf41131d9","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702143444.tgz","fileCount":17,"unpackedSize":102503,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCr1qyVdzc69wIQfU8OjbJQgTVPel5B/rss4fKcuI4C7gIhAJC24V+x1sX/CY0xOpeaPqQNR8R9VE9gcQ+d0QrIs5eh"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwFeTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrc2Q/+NV0d4tZPr4weoXo5Vk9/vcYD2RsKgL1HGBlHR95oKgPyW02S\r\nB7sKbpX1RgrwcW97BcpvjQ4DSOQ7YJPMYRoO942b8UvNKb7bnq7JCOdgMd4X\r\nfYh6Ku3aOL+LwP9TGG4Gju5eepEuSUgQC2Q5ARazPIU3u/BgYLPtauSDmM/w\r\nkAiKzR+AQl7FawzWIa03x4wYO691VOFCJGCJGcypISGZ8VQ66oAn3AmDJwp5\r\njldh4wufJvUXrdYrqu/u+bVZZO9vLxobD73vuh1NkLS2J4TjpKy25DFcJG/F\r\nEgJ4rOl/B66QYcgAI84cgCKBemEW+h7JfC4fur3MckQJU4qQMSiUgjxCXoFd\r\ncKNu1F79Da+jsISHhlppxnVkBfcJhITb67tMt6lkBBo/0nfjUd/WY5vFszyr\r\n3HYQcxDh4ZnwNRAtl4jHTzsjPrlrtJDeL9Fdt/KbHQEVOxQutQsaRaXVsTwm\r\nCz6L4DApVqerSvau0D31ULm8xBUof07tvpN/l//IVg8okD13d4mNyKy9r7cf\r\n+68wAP9Up0IfT0lEwzxehmSENJjiltpXBjEwlSg7u9Eo3g0qXVFUiNslgi0Q\r\nQUR/WIVAfO8GYxtYATifqhV2aHzn6+RetWFGWJYWQHX6NP1cDaQobhBUUnts\r\nPt/lqoEIbbQX4mLIIB65GXnSX80FZSSGYdg=\r\n=4Avq\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/shadenfreude_0.0.0-canary-20220702143444_1656772498860_0.299188886094794"},"_hasShrinkwrap":false},"0.0.0-canary-20220702164441":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702164441","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702164441","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-YrKKjllhTsgPSXa5HyzUGaNYdIxpcEc7nMsRubWxIRjyYYaxmiiuavtksaPv3zBovl5pekmLvoZE1oR7Pbk44g==","shasum":"a876a9e9f5d99717500da26e3c2e259756632505","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702164441.tgz","fileCount":17,"unpackedSize":104720,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZzW6DPkiEva59lHV6+WnPEbp1w/H+8/eLILX1Y8TsRAIgZv8o5X4uQY+jLYc9eyI0WgHq81+K/NOiNmC28ynmjXk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwHYJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiTBAAmRMlLad2PhS+I7CGmQVUGaBTR0KhnZnvy3+uKXfL80/x7Fec\r\nCkRqgVzp91TUBkuLl4V+cDe0GVlwqnqoZKdcrBH5vvYWVPjXkzDzfGe6phoj\r\nv7DeumyAmOWtN5xQredkAQsOc6hDouW2IIIXwio3sP71099scSlNV7/Jwdps\r\nrr4CyLd733syTduw0FpWhPNj78axBt0M1rEjLdyywANRI6X7AFk6IqISSpMU\r\nGYhbbAyhIqhDT7XDDBIuOa8I64iTUasxF/aXHi0IF2MGxAGVMkY07TtKBUS3\r\npZ9a9O1N6F9/vB1grwBE1bFtpeWRQ1sv4kbz3UfVd0WUtysJ4caRcwEOInIU\r\nbGcC54Q2OS41oYYDE6XLLqaAtPhZ9UaAj6t/32nv5hfvyHxJl16pJtzJOT09\r\nAeok2p4rr7wmWOhcXyj/k5/VzQxDpVyatrmX9dY1dENcHUgoSSxfbJ2e5Pf9\r\n+0alzPpwlJ5p3QiGmgsAMLMH1Ucy5u2oxgYHbDvh6zjSNO6UYn4QnNFUDLFR\r\nzdM0l0P6BHAHMMeQPrm7RrIBEtWGbaKjYMk5XbMYz5I0YYis4+wX8bzi885v\r\n/Kk4NeGiaTfH0HCd/Yp6QCnWEIB62NMmTDYdZau9ASCl47U+hzvV9NR5iebK\r\nhwzzw9b0yq3HP6R/DuRPRe+XyJ445+kvKow=\r\n=JyMG\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/shadenfreude_0.0.0-canary-20220702164441_1656780297176_0.1579109121964688"},"_hasShrinkwrap":false},"0.0.0-canary-20220702164632":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702164632","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702164632","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-7l8sSdW3BZ5RkMSiSQF3lfc6rVOgwS6zcjWsIcGCp40BkN/tEiZpbySF4uW1QiczhrwKbSDyNB9LsihzhkD94g==","shasum":"448b722c79881b8ab85ed84fdd63d427e3af76d1","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702164632.tgz","fileCount":17,"unpackedSize":104720,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzbI89fM/skt1WdKL2+jTOv4QozZrnv+GK/jlvxzXjPwIgfqggmBQfkslO9EOq16i0t919BGGgbmY6w3t81lDJE7A="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwHZ5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHvBAAn618ZVr35n7yZXqzoZZJXxPw7sSNhXYxzSr/rGSC8jVyIaPs\r\n6UsIA1F6uYqWY6PEzlxpT5RpSgIlkyRfPo1sRELSlSsJtQEKXYLF2O8Dta7l\r\npfd9Zp/lMAWqWDmv68Jn/pK3lOZXEPPhEHwY3kciGNLeP4QSZHM6SzctjiPw\r\n8Ejpe2r5HUhV0yicYC2Qsm+iOnwqUXDva7Fbab/4YTnor3SmqvVPzDO0IN3W\r\nhdEwdMHwoRx/jdswdksJTW8n4biyXut6toqoVmLgePWhPrR8+KvttgbQ5SMw\r\nkM/9rIhcr46kg8hxrHR3J2lALMU+aJmYvif4ijxEHA2VLySMsKhCTEhKMXvu\r\nIQkCfNbwJx1xE3j9CDW8m6JKeDZ3dV+nSJP5CqNaHirbkbhj37Bb6wEj2cRs\r\nuVmCYWnu9u1iffHvX+SPbJHBJds+pJE4fgZwio7XQg451PEewZSSaaXR0Uqq\r\n3zDjbm9maFIYoP1t0T/Yic3jv0x1J5XrQpdxcgudVB5fB3yABmLjASzzykzd\r\nc7jupalvdtB7zBA67B61Xkt/Ft7mCB5PaeuuUsqJtzK2C0o1C95UwJoQplfl\r\nwyj1gXp9nBZS3znPTZmaVXknaIAmvEhdESmRMJXADfku7C8KICVZgRPapkxR\r\nCdRAgCRWTTmSs9qUSrQXo25O/M9peSmFBmM=\r\n=7hGK\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/shadenfreude_0.0.0-canary-20220702164632_1656780409392_0.1379975210439064"},"_hasShrinkwrap":false},"0.0.0-canary-20220702171044":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702171044","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702171044","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-n16mblLfO8dmdQuUE0lA9METNHzFm3JRphwM0pwEMpTkFMVzJV2JS+Wvf36KOyMLOJgiBHmatbFk6A+M7fu8Iw==","shasum":"19ecad6e633d586ff8457e8589670b35f712c2a0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702171044.tgz","fileCount":17,"unpackedSize":103989,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuS+mEU1SVHWXYcSgumcPT6BTqyprTARDLIziKTV2fzgIhAJAxkpXcW43+l5fbfe3ImoLWeUx7RhYO/vVxE8pHMlle"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwHwkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZbA/9HWkRON+ITqJpN+rkte0AbCLspoxuzfw7EE+guALdys3ZgQXI\r\ngHbU5yiboDLVp1KxqMLU1ZOgRoGWaw0hePXKp5J12vDG6PbkaphFGv+xxIq+\r\nRd+TUUH6gslIsL9PFpnieIcTvesLjKPiKL2p4wwtxuHC/uC0KwkKZ5vYawWj\r\nxJMFMy+Tf3xfskfO1D0Hl7aze/2OQJ+8F2CUSC09HWaMdw+Ouy0BhrZaX9Qw\r\ns3SHecd+B0D05XxpxJ3SbNdOBNszYbA8gGmcoy3H22AOTv+xreM+O1BTmQpj\r\nsJ+VltQoKMxf+wROJLVczNfkzyT378H/bBOGOyXIFoxOT5QQV3S8plSHVvJU\r\nRaMFGXUa/WoTtc3ZNeEGd/vRlRTjlccRqYELBY+v+hP9Il8d4wCk6X6pMWBK\r\nta5jcIsVQAe/yvyOIhpxDLighqilQVRLjoLYeV9HkKvVlY8/BCttnL8zzfWe\r\nXe6ngwnE1dDJgg4bJXII3jHESjEmwortns9mDZoCDFaBIjYjHECBg8iH5q2r\r\nagzVtNVnNCBlfBsHGZ/3vfZYERWlJxhd3GVTW0QnjR5A6gSEKI/8mhFF6eQk\r\n826xs2qScJ3u/Op7vSYTsmO159QNzv2fDJYf3686pWh5pKQ83k+QaFNdO2Re\r\nTfLYMORMcKQQYkJ0tig1iMEp/b3LiIOrljQ=\r\n=lxfF\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/shadenfreude_0.0.0-canary-20220702171044_1656781860132_0.853365287132994"},"_hasShrinkwrap":false},"0.0.0-canary-20220702193829":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702193829","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702193829","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-sIFR8mT07ioqitdwY0vQH5qYifD+Hav9Z7XL/yiKtangqTQuTLncqaadcX0AguXx9YQJlBeyptq7M4E3utBwsg==","shasum":"e5958b7044c05c4d16a2bc58f5d3d1556b875a2a","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702193829.tgz","fileCount":17,"unpackedSize":104151,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpiYTEF6VlV1iKLCtVtWk4Dcb9vePLR1Tk4P8+vwwG/AiALSW7NTipgv1knLZe9K3hpufz1E506pv7t8NFWy06lgQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwJ7EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrn3A//TS8jRwUHvJcHKk7o9PoTenLipFyuuRdoiRKeeK4dPbDM7KSB\r\nJmlCTItJT+vetG/bc97dxPQ3mmg/IGM27GEJnOwZep/FOo0mNc0rSlpKIJ2u\r\nH19Lg7V0+trGGOI51LpRUo1dWKwhFUxtx5UvKl0oYSlpXL5YM2Ducxk0tqyx\r\na3KEP3qk471CBqYT8b5tB9puaXWfBPy4l69HaLFCBipSyE+hx86KvOLfltpE\r\nhV8gHATWuOESxObM6Sx4DLqs/EG6QemFMbVkkXWQpYWeuf1ZY9uwSeKxAqou\r\n4VhS4PV6YOT2YVcxx7D60kfcnFUTtMLXNp4xJP2Kw2DKsflu4mZrrwFuLhZc\r\n+10S6rznqpaEBNXTwstC2oRiYt2S2Tl1ZC7j6yN2iMTO6ZuX6XtXdOtHC7W2\r\n+cPDuE9ZEtaa7RcTVuzv/OX1Egl2n0KBA9CVWchMvi8CpwkRgGjXJTR8bWQ9\r\nLv2rAtxk508pv3bpCo36f5LObEm6Du5NhA1OE94RV8/l37huzEtBO9DFKbIl\r\n7Soe87DK9P8L4Betz7jsEJVKmMDyf4UizvyDzVUL29tCd++4H9//X/DHhbX+\r\nncwD8wt2yvopR+3Q2ugFCfd+m15FkXqDdAqR/hvIjrxboiqlw59mrzYb/i36\r\nnvs4Ghzd/toG44P5TlNdIZgePbJzU/i5qx4=\r\n=Se0r\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/shadenfreude_0.0.0-canary-20220702193829_1656790724539_0.7873455390285002"},"_hasShrinkwrap":false},"0.0.0-canary-20220702203638":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702203638","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702203638","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-z9PgvtG9vJOoIGogxQHs0bqtakwJF2HaGjKtF+Tn/sdM3ZCgAh5p2MkOrVaqfi9/fisIzdBYTlcgP8n0iVqYJQ==","shasum":"576779dccb9224aac326c57568b3532756a17a61","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702203638.tgz","fileCount":17,"unpackedSize":104151,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHSuv0ClanaUkQswX7gmsQLCdxDa58gAp2zxxFQFpv8YAiEA0d95aYjiL4D68+WqCh8Fs1gr30IeOyZgdkHEHvwg8VQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwKxmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonpA//Yh4l1B40IWdzfBJxvrtQYWfSGAJsOjmun34jSUo+ChvtHA6L\r\nKpktOZhTl5+iJSt9XI1yV38OZ4fap2TzkFO0dVKaD8soOCcnATuBnhlnECow\r\noXnin3+o88ZLkBMd0HC8VYE/+8MIZZ/Srz/whm29BojmBn+3icHnzg8g07Bw\r\nzL9mVu0/s3XZD9AYtXAF3hACn+vNDOK7TJ8gJORn0QvQz8L2rJp9x/n1yPcK\r\nyGIEzMezlXkQlDnlUHIHWduw2QVYo0JPxqry8drrKSzgOHqjuqjAH7YNVUqw\r\nSqxjcRFe48QBFuOIIygUk9hRRb2vl0pvPAQVYOytf2hDR7GCOiGf4cZNmGmU\r\nEkfzPhAJsyv6U5L7k+yLnzCKQjK7MiL8fnOny6BS7jAhcrJ7moHnvxJl0CwC\r\ndWItxCBfQ6BA9FJ7PO7a8cV/DQ49IXGyg2/QPZYwx2ERjtWf8Qg5+PfNqTpf\r\n0sM1ECLc0GtmjgMaOrH8eurjhTDke5fqrF1G+sdwQXFOhlM1FF7rLgOGyl1R\r\norqCGQp2DsCLV0WAiXmCZAvnkRPUKfDMVPRgGbUuxALj2lI2htpngkzPFD2l\r\nSyFqnOh9jeVqnADrIrz5DFgc9F1vh3iBSeLxL+Cguxz8vwI7yrnefinsFHGt\r\nquafU3WIqbfBOczVN6lRq152NIrlk9FAhis=\r\n=h8PQ\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/shadenfreude_0.0.0-canary-20220702203638_1656794213840_0.794272876791364"},"_hasShrinkwrap":false},"0.0.0-canary-20220702203731":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702203731","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702203731","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-aDGcv5PG/zSzAj8U0+q+opTNDQ6zaGJaDxQtOZmFpK/zQ5oxfCQTr0NHxIJCWyNTj7N5IB3YOGvN82atllgeoA==","shasum":"30660d8d99d92e21b2e49369ac572123646f5634","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702203731.tgz","fileCount":17,"unpackedSize":104151,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHVQF7tJuuE2ghmdCJNLdImm7zsacB6sgw2Qyrqts+hwIgGynV8cGpMq8FRKlbH+UeDgn1bv0D4q1EvGKomTdVpZ8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwKyaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrs5Q//fHg14IDtFjPh49f2nO63FDrok3AoAVLeM80y9hgnqrHdQCtH\r\nrVReNrDX3eX8I1Azog/F3YvdCYMHJfsFE0bgPVI/cuDuZxreqOlOtmeyiLgr\r\nlTKpz73ote3MM13APrjfnKlUDHUYENs5ZpYuwKBoxMnT09ytK+c1WYll3Xqs\r\nQ3djY0AmoBnWFvfNea24jq+ret1nkBU8JUGwvq48dyUfpweVNDkzmIPW/8bw\r\nOAWxjk6vOkXawRdNIZSewSSyj0/QOMFjasG402TPaPd/5UsDV2pid47JC04u\r\n5MeVrf+zd9Y7tdDfEEG0Sxl1SvrZdcD+dy6mYBjj5MdckR/Oi8jRJGJ3ecez\r\nUlIJlysTBJnjGwePRkICVrHex/zcSJozTzRC9oHbyd+1PdMYAuPZiDO8x3Pc\r\nswTeFp7CNhSeT5KmxlfYxUQDKcA0uBmRVlw+f6jv52zGgCqxgJKQbluTdCeB\r\nN8y/GzjZ4/TUwx9ampyIOLFWVSC1sclBHObhCHZN4/bXHArKohycaGh1668d\r\nEurT3gybEZ28mUI6vdJe0XP51J3IEonI+cYDU431vjtQeggJ0zH6FOaZfFF5\r\nlU8GM190XGflzjfAJHpMMCWvHH3Z4gDFObwvgM6KCtFmPLzzR7zCZZrZbWGx\r\ny1H0RzHVl4ZgJIYY0rXj20g7pJl/P6n0mtg=\r\n=jsYP\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/shadenfreude_0.0.0-canary-20220702203731_1656794265884_0.41530440803467217"},"_hasShrinkwrap":false},"0.0.0-canary-20220702203922":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702203922","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702203922","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-lPmHbTo9AoVFm2f+lk+VmMGpMVL5LYZ9n/qlKwAdFJj7ymXNtqp/FYJoDtkXZ1tZT0G5CVsbROQqZmFsIqXEHw==","shasum":"76d0347e12ca2536190e89423291a35c10fd0a5b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702203922.tgz","fileCount":18,"unpackedSize":105984,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiMU0DGrMqvyP8QT3oxMnyaW9Zk6maU1kbJvTk8XsPtgIhAMlCWHITotAuYm3DDhraTtU56TxM3OKckytqha5PdQ76"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwK0KACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRug/9E1UBv1zBvg5N4H8XQcNNT/ORPpkQe9HF7uj8cS3CXZyw8TXT\r\nhdeKubaR27ZpFXYnmS+1JL8WXBl6d6DePWzsySY61SO2rVcZKMChG6+x/lLf\r\nQwl0CoqgDNqOVMdOmutHIwDLhbSLpZnCKUDp9jA9wtBFvdGD3lewCX1I7bRM\r\nkrAR08dP1jucTRLmrf/PjtL/H1NPRQiiGNgx9vrpTUNvbvD4eQ9R2YG2hKyW\r\nMyclOkq31Nn4Aws04Cl5jv2VDRhN34JdWosqibrAoeCyKE1xSS7zl5GvAsZ0\r\n51YzwxFpgqBy2g6qBltTmmibH9jS4sFMWlUOvE7PYv6xKoJSoeqUOqwFotQs\r\nhrcpzASC6bTOUSxju7NpBEHF5BCB8+i1DYqpbiSUm3KdWfUE6oPn4s3K69Dd\r\nUkJ9+qHdXyQkvG7witsfVzFYbBh8aJwzN9VDpew16L/hQ20KXB7Wd67qgymK\r\njXlY4ucPHHub5zWnLbS7XuEiJQEf5jaPSHKTmMWLXoDMlEH+3VVH6W0lSzWJ\r\nOKe3O8iln2g1oJyif/lJgfboxI/lA0zo7c3LBVrJiodi8IizsT4acEtTqXKH\r\nGgDcwP6DH+WDEGOOqxE01oWOwH6Fgs/zMtsWcjH6iff+lFNC5nKMxQaPGAkI\r\nq9BEbiGubKnFJSGyFl1iI2lZrmhUD2mfz4E=\r\n=Iver\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/shadenfreude_0.0.0-canary-20220702203922_1656794378599_0.9210017598870333"},"_hasShrinkwrap":false},"0.0.0-canary-20220702205531":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702205531","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702205531","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-ab9Bw9cnrYzUmuglUwHOPdTYPci5WiJJ+85DB3XGvS4Aobp8sGPpUI5gpir5XcVqm7eq9PFDw/VIhGMAmKwZtQ==","shasum":"ef2f261dff9d2481e368f8e68ff13aaad1b583b7","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702205531.tgz","fileCount":18,"unpackedSize":105993,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGYN/PhbFcwqsNMDIMHdclpmpx2xZ/PcXUQeMk6+qoSQAiByB+Oj6Z6JSD5v3gvTFy7wkhjBIAo9IlwE8NgGFlMPew=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwLDSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTTRAAgLsHVtRAx9nT6xWlhH/CdzH+PIxkfzbmLYOkfB7lKA55UBLH\r\nlT8rhuRYJPEOafIx2V3pvv0y4W6h4qFNeUBplOFBSg853hNuv9zoB7WILCgc\r\noRdEAOiPmeTNMClsW5bZAFK9l3NW1G4SvnOxakrqgxFvZ9BVjgb+J3tfQs5y\r\n1raBrpqFS6cvqmLk+n1Na6BxP+MK8/KAYyjbGvtvp7OEHMgdbMWOAnPhn2QG\r\nXekbDwWOTRm0h4HZoyL7M9MAucahW92Yz3Cqcl97PMZ+Uwrz57mlWuzRcXmA\r\n7nxgTCJAam2lGCtRd2+321PWkb94jFTBQIr/5SLY455lW0GQGLX52g8CjFrl\r\n35YRlGvxjBsXa0nuJcZQbUz4lhu0TvPTo87aCfxfOvccK6tISgnqkgyaTHWK\r\nwDMGWH58EBpTT135yOWK1GZAEFVi4HSSe6kPHdksWtPesriQM7EmuzAgLged\r\nMgiSiwQvcoYfMGB4gp0DKc8xcI0WfEkSEtQML/8TO/YNbodtfvI3wCzy504E\r\nz2usI3mQh6W2T9ul3BpQ5wDiLscV/G8pgONGr2TDIdOzbBqcKIES0qVh+WZl\r\nLVJsmPD3ANMvUIf0c3J2o6W7cVrZHlHuh1i34RQn75/vqusIrHj81WZ//xET\r\nRWTCRuJ3pGiBFMBwuoF8mSGDGbg6LwxbXw0=\r\n=f7sw\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/shadenfreude_0.0.0-canary-20220702205531_1656795346241_0.37366979136832845"},"_hasShrinkwrap":false},"0.0.0-canary-20220702210629":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702210629","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702210629","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-hgJllC22qkPfOoNren2W+ssXQCzDY2IVci72j9k2Z9uINb1RMeDa1QYBlVahCPtgM/SgoJTGuYcRwNMChbkvBg==","shasum":"98449c354e2c5ce391b5d43e803954f06e365ed0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702210629.tgz","fileCount":18,"unpackedSize":109089,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICKs5Hw5J7q538C0T547X7zfjaHeupjYfQDk3kbDhoM8AiBE0WqRry8ko+0sh/4mejQ3gtsGLi8BUbXA+PsJBpFl6g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwLNlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoo8xAAlRoCxJ+8/PAYSp7c47thAKlYKF0bX08TgqoEWGgVigbwpJfv\r\nJekful1O6VZre1pZYIpWJ/w2zt17dTR+xgtKZ8uJIw5PNg8EJc8Od5ENgJ1Y\r\n4OjJGFJ2DtsLnGHrKeWa5x5mZcm8A7nWmo1zgajgBDQpW44CPSIfo0x1Xehi\r\nGG8rHmXEuNsNHkxZnifdfti+x97huscCarLdeI+iMPReRhSXDy+xE3HboPXX\r\nzSkP19lSuTzTizCmfw//d3TSUIwx34tsCkAqezk9Fzb7BEeAhB7VLw5LUaLZ\r\n6ON/wcI0UJ+Ig9AHkZu6lGnkz29LfVfPh90BfoqxTeDAFAI8y3EQtybL/t2Y\r\nPsmJr9mfS59og++PTjYSWc6bF1bPv5xhE/zXHE6UEmv5zTlrG1VO/eS/xLJb\r\nvd3ts/+vWNKnYge55WIqNvRrlrR/+67Bu2oEV+lpQoFiPdPhrFshDC7THHml\r\nSY3DTnDWh1VwpPyndNREL014jUtJ4a5pEMKlU/Y9gt81qeOkaIT7XM5gdklI\r\n6HhE5Pc/GFbKI2oM4Oj9UVAu4uc+WOOXnFvHHnhgzo7mYSRCzoUi5UISKZQK\r\nNezAlzasI8bfnOVr6ijMgi822V+fIE9IHWlTkejTrsdbRrkLFgOtscNXSuo6\r\nc0LNwToKPxNef68tCBUnTbKpxxYvjmXYvUI=\r\n=VkA9\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/shadenfreude_0.0.0-canary-20220702210629_1656796005027_0.20115998341717534"},"_hasShrinkwrap":false},"0.0.0-canary-20220702210731":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702210731","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702210731","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-ZNXTCsnPPWWniCb49OQb9BvXncudZzltbvsrynk604Zfp4Gdl38FsGxXYFG89V5JQsWNK64EQuz6/ZVeNhZHog==","shasum":"e6cf9604204658e228726a26379ceccee625e476","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702210731.tgz","fileCount":18,"unpackedSize":109089,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAPP2OD1pRrsrFrYuQlQiw5sW7eEPZLElFp5fUxBR0ugIhAKT5/uj9N8jGDAbuWZOd0Q+c6i9o5AvcND9dO8mbIrrj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwLOkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp7dBAAkZnwbmPp/qnF945LQwabogLc0X/DlWvvRiTW7ss4Ctj1F2oT\r\naE75+lpP4schFIYMl/4Y135CGK4TlLY97YWhbtcLBQKgq9ZkApMfX/Lps+q8\r\nQ6Hm8kmhGfp+v1BIafdoHuWvokM82y4yEZt/ytCd1oGE3Q/7AeTao70BVJaF\r\nb34R3Q5P2RpSyziBz9iEO81UFbmTRRH/l65tIRkOzs4CRe41+oCDJNwr5wEi\r\nHibFzZDf1mlS9m/oPmGxRcP8Z7hhWnkph9VY1AzXeO7p79No8L7tYZRDRvhC\r\naQiLZ2ABb+pDZm0u4D/2nW0QlMCmZJkJINrh/FnBFNcbe7kbp8zufNt0KGBp\r\nb0VST9aB3ECcr6XRtpslBDMNFGDfHHjOY/gkqNLbKG9FAMdOGZ6MGaeoXkjd\r\nEoLA0djdskaM/VLN8m3pJy/faJgzC14I78yA1DDDIqRH52tMSQWIAB1jOlGd\r\nshCyOMFytxGG2lfYDJPXqzk0lLvQdxXq93vojx19NLgNb85vaSmfqJSsq4fA\r\nLc32r2s8JhfsElftfi//VOTxGsIDob8P41kZhH5gIjukKwcTOCVFz5lBy82t\r\nIoPTFBwHwhndeeiJEIyQyszm7jyKTh8nUwJ2ST6e2SnvbIsa3ZsRbG2SFEuZ\r\nWcd06S63eo+VMUU0Lk7BR4CKwk898AKtDh8=\r\n=hYxm\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/shadenfreude_0.0.0-canary-20220702210731_1656796067517_0.4609652727796061"},"_hasShrinkwrap":false},"0.0.0-canary-20220702211845":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702211845","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702211845","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-WwMA2oDP2o18a1yw/V1evHe0guGdV49kBavrxBMbq2phWJ+xHQ3oxtL+TALmVgrrgfGFykpwUhREyFX+OKbvCA==","shasum":"b4b58dced102f99d41d56c22621f9add8b194c38","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702211845.tgz","fileCount":18,"unpackedSize":110387,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5JB9viQC2np+UHdBi6UTrm1ZrtfdXAiFP5/nlWcq0SQIgfY56FC1c5RRsXWFKlgcChZPNSWne+W29AVM0yp6zf2s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwLZEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqp9A/+PkcgojjmekyYjGvoqspArvGqYAqNtTXFpJi/LTJ8WlIBvqy4\r\nhuP8u2UMa3KsgLLy3yQjsfZDoLvFeSme60OuR4n0o+eIhh2eW5txhzjVa0sI\r\nJgpsskjJSHiX9F4UJahxXRXv65EMzldnMDp2Rt+aGtoGAQSHr2OiWBrN1vf2\r\nNQqNL/IjFE+3SO1SgEFovP15+JdVwGIihPggLX0ofgMADMYvvf3i7etvn/zO\r\nzatbKFoD4JpVAjDUAU0XDhlvfzEcS1F/49RsmB2/qeu5xYyvF13HjzejTHwU\r\nuKKJevQH9AElXPLAihr58l5Bmz4Sm43akSqTFdwKQNJPReS5DH4gpc/9L896\r\nyCSdqqA5dtjaY2PRqhHfQX0yd20A35NTRKh0R59thQvBX5HtzaNnkyWp7eoi\r\nLmjdbtQ/O7CHTKJqjjFDz/vZQOyLWREYVoXIzPyHwMnYqtbU/vTIEUbSu6oh\r\n99ZJ5b0n9biXnFCFYoY6buqC+5AEQjjjBzuQ0xsOHlbFtbxI1iaytwG4wgLp\r\n9p6UUj57BtPL+Qk4eRZaB3zUMZW8v5LUDUYigKz94zEt4KRgPZzmv9EIsXho\r\noMcJeTjdjRYCqEweZpuw3hM46IY2TQ9TQS7+LpkNepynwpPW5q4NhjFIO+g9\r\njiXieQYUWorhVAHguCUf66Sb97GYGklGs0A=\r\n=GXmb\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/shadenfreude_0.0.0-canary-20220702211845_1656796740434_0.46576761752407014"},"_hasShrinkwrap":false},"0.0.0-canary-20220702212433":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702212433","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702212433","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-bCE/MaplerpGQ5vzFhHv4DWr4DwCPs9BBPqIhXOLmFcEGspsce1ZlwYEGb3BV1C48S2hgjW0riCd1aFW/yflxw==","shasum":"6d818dfdea8e8c0b0aec89bd1d6cfe3d7c3abbaa","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702212433.tgz","fileCount":18,"unpackedSize":110299,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgUsN3+v7vMTtJcRxVxOLM/+60LDbuRhp+pVI2mT4QWAiA3vjR4k+33hrs4110Ybi6Rc7XtexW3e5k4SpjRcaAAvw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwLegACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxRQ//XLB78fiv5RHFCWKI4vrLQ8cZ0VtK8EE/2JYE4iJWmLKgESrM\r\nnxN3UnVk+ltgtmukXvxnlweGndejcug77uGDaO4TCcS0lrRfK72zzFhmOd3E\r\nTVOgoHoSa7ASe2U+rV+UXefKEyIEczd+G6xV3lksx2UJxbGTWEqTSWjUOX/S\r\nJno9XVEh4M6SXUy1FEf1mc1Le6uoH+djjuQc650dGy/aDov4S9Pf04L3MWHJ\r\nRJiM7MAbaY9ceuLQtO4aguS1sCBULTTkXDrVpR40Yy9Yws0yjhNJliqyvYs8\r\nObWEzykNdORgUBqNhFQSV3m8saSFz5lYICUL9FfGVNiKnPqU3t3sh5psQKGZ\r\nwCpcMkkbwqGphvP+wVxIEgUmtdGZ4BrY73ujPk745b2t0rm+IMMq+rxgaZqx\r\n1+/wd9ukUCzfqO6pfZ7Q0judYEqDZAripOfFU+tbz/8M0OkDaNyOplmK61h0\r\nQTJC8dZ6Uh2yG8+Ep/4abD4EJijonrSWBEHc7NWLbVQy1L8IY2vPT+Nu8iwp\r\nKuSq58nz+Cm/sOCr79cZHXW/8KfBHxi/SVdqAPKneWOQHTGTAB9X9R9ZeF+N\r\nKhj4O9fXV6LzKaDCzpoz8+QXbqpXuYYG64JH71+eS5gu1FlIzvkyjKxhgu6q\r\n+56U04ixXNthBvg1tjPCzSaICajwydu2n0Y=\r\n=vpUs\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/shadenfreude_0.0.0-canary-20220702212433_1656797088183_0.001726771724759102"},"_hasShrinkwrap":false},"0.0.0-canary-20220702215034":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702215034","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702215034","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-R8HL6gzUBERosretzUO2rHXjCSaTmr4qp85GYO/TTyZ3EUFg4daICm+xZMeh79kVTIdx3TRzmQ7gUoGMKxBAew==","shasum":"6a04c66a9c04d0526be3eac349e9ae4878e18cc7","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702215034.tgz","fileCount":18,"unpackedSize":110299,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAmIgLsj/oOzeQeLpjvinQcI3JVsUjr+cDr2Lzu+gwYLAiEA7ZxgbBuIi+BxU3wLKKHJhWmaeLYmWXRPfAPtfvf2sRU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwL28ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeEg//YRFcLkInFusn2yOOSJuC8unkkcjqZyKe/Ai9FT2/TSYoAnrl\r\ni3C7o/BSFOPpNOwgBbLd/5BflwbRm78ceUgZcRt2+hsHCPVxki5TlVaDQb6M\r\noA2ZENkGGYtgu3ZYdpIEm24/rQweY2WC8LTE9iEbDeRT5nI3mXHTLWAObrJU\r\nCIgbjOml6Lzw8ZN+cYV3girzzVmAWYCHNouVPs8RYixJnqDujSEH1bOO2047\r\nONoDynmVrPZqIUw91xdeolGT6/ZpMq9o6RuvcD8Gsr8Ldo6lYUuIs+8XtNbZ\r\n0F5EQHZsbuEe7IZLITPWA0Mz/yI7glQDdZcOaAbuugy1MzFF3gOTwVgBV8Gu\r\n7k4K9E1/DWFFfTT8DOYsFe3T3og0bNj+yJexcqWznr5YyEwNRncNzQLBhw/w\r\nSlHRS/8KJESw8PmEvZrwSss3tU++wER6UrrsJWcqedvVUaGiGXJVuk0lCLOW\r\npb3iojBZiPWfJPvIb13uznAiCJaEoPOatc/D7ZJxZflbpWRXl9b3oXQ2IA+p\r\nbP56QAIQEMXvMDRM3K50n+yHLRaMyH2taUL687cLfI4+haIw7NKmJ91RfDSA\r\nnLO/ud/IIKBX2USYeIEea1PRPs00mcvS2tHoO/ROzLf1RnTkLVW7WkF91CdL\r\njnmyadHzwQfn5ds9BUg6udB0LM0gEKhMvp8=\r\n=VJPO\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/shadenfreude_0.0.0-canary-20220702215034_1656798652299_0.8496978158689359"},"_hasShrinkwrap":false},"0.0.0-canary-20220702215130":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220702215130","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220702215130","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-VOVzUTwYqKCnGOMxU1p9Q0zeM4fy+GZRi2oXC3RJScbYBRU9BQv3ZHejr66UWxgJlTvsuCG7AFex951fScUbsA==","shasum":"6a211b8e11a3935b623c2a366b4db448c5db4e8e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220702215130.tgz","fileCount":18,"unpackedSize":110299,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJx3VgQKe+mmPoSW0NlwWEUNoE+JUI/H5pins+qjFiKwIgV+7IZDpFmmvvh5JXvXU9323xQPSaHrqhu4l+0tPeWzo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwL3xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgOQ/+L2iBUMybBZeFDNnHLn+j9vc+TXHG4+TCOjl0p86sPlurPJWB\r\nyuedEE/oT/jqoMXpxSLs6XqcRJR/n9TKFLZqCoahvXOiMpFkVgNVsUDLdTh1\r\nZH9rh4EK/LEPM0E/sGl1uSnSL7WYv2EetusXtyy8ktNYw6p4HHo7ITAWjSBp\r\nencJpJPzI69ycCMvxWFxYHfW0wF8xUcbNWc86DogsT4+nFceb+j2Ib7kdjxD\r\n9mStM8Cm1Z9Nmso3UvfL89wRnILFx0eIMwDIuYEf5UepMVXNz5NAHbQz+4HL\r\nmhmdWpzuiS7jMFuGzrqjNYuA3de3MGMZJP78Y3yirEPjqgi8/6jrH7gJniBF\r\nseoxwz/9p9Zkrbn8CCUr7ouLa7g/HV0Tsjcp8hVrb6H9/wwDJZBbl/1eGMc3\r\n522FzJOt09m7LWRxrtAoVAfMIf4YrJ4Gtx5Sh2qRF6dOBTubwGeIZyOwmBhB\r\n+nRGZC1r5TLC1o6oYgiShvOAJ93d7Hy4SYTmNTA8CtcUD1e5T1bei/G9lJko\r\nuG5RBNzrDXB3pMaTM3y6E/Hqlt6bUagynyAIMIqzcppIwUjsXxMb150o4joP\r\n/Q9XxEqawJGTdaLb3A6sDSYtsk9H4hEzRfzuaHfqG1cF7Q/5Pg8KGz4QvhOI\r\nxN0izmUoYsLmfF7PUqkAw/nwwW8wV05enfs=\r\n=ebWa\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/shadenfreude_0.0.0-canary-20220702215130_1656798705263_0.06702212586006873"},"_hasShrinkwrap":false},"0.0.0-canary-20220703053940":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703053940","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703053940","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6JlAOuItILYRVyLs6ijO0wDexrOq5/vzrV9AXAEXBHmBSEZKSGDRY4biGZlyZfxxmRd9WiYKVS+/GqNYTHJ6FA==","shasum":"c54721869097fd103adb06e90df5bc014e1bbc07","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703053940.tgz","fileCount":18,"unpackedSize":110284,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlcQyEZrfJOWO6t7qvInZWx2mQqUDC8rm2t2al+NecbwIgIkZsYhWavxL6ZjIuJ+wVG2fcY4dhERy8QpjndaTEf1w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwSurACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqo8w/+OtcRgxSLqj2YwCXyTmhW7mooRd+yCo5/wl4AX/GsGcaJX7tz\r\neGnENuD7o0un2eZYayufRNiqkfP1X3QzRVD9nwRwwZYpw1UN8G/Har1w4c/8\r\nWNe3G5P1C4GiDcOhJa1aNIdbWj0XdYpi+5Vq0p5pKHmKegr/zPqhE10S89To\r\ny4L93/9a0MqugqBSzov/vhZ4mbBrpefiY28ykyIHJGcCDFwnzyK+QCnold0N\r\n2vbTii1tQgDyb0xzjAT2PhV7FDopw+GIt6UqzdSQfffYk6dkCtZm3bqfgs6e\r\n8vy99NbeaY1fw63q2beT6Q6EnWMEypvQ10/8/64yV6GW9hNmMJjGS7/IkFwE\r\nx2EO/uBf6vsPUH+fWy12HFPRrDHQqTWh1TQdLjbiBzIZg64OgF/nDZDRn5zf\r\n5o1dFavVKuzljg4WDD3viEU/hJvhZX1qQF+gzeOv7VG4fmyiIlGaxgDw3/mz\r\nxXZkQ2+iUGEI+vroqAgfuxtl3wq+NT37IT0ZNuX3n6HGiXlPZaKfmXhVWxDD\r\niVH4a9A/2i20q8Cn5VYAQRe1xipim8CkBFDKK8HEFgw/cP7rC5xFuZOYFvLd\r\n7fieDTUXQyvTGH6jkKyGL58D5u45SJKlWbpcSzncirrlT1yEoLePDyGFaKVO\r\nXsaoYU6KeOXtL6G8ut+7o2MGQN2PGNo6h3E=\r\n=Jnh9\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/shadenfreude_0.0.0-canary-20220703053940_1656826795393_0.4587835073407389"},"_hasShrinkwrap":false},"0.0.0-canary-20220703085141":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703085141","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703085141","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-anC/P/HZzhyJy4KkkG4LW3Iw3GBZEjSZnhcHp+1X0hpRUi25ULbOKxBH17nfpTXT2yKwFLidzCNT4A3TzFrkpw==","shasum":"e80dca59404241e9c26282b3bab754b306fc5ec2","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703085141.tgz","fileCount":18,"unpackedSize":110036,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGayuKhBTwy+quKPi1IcTqhQWsfRQPSJFILszllg2eQOAiBdjtqXo+uHpm1ejKHcY2G1j/bt+q8lyTZXNh522UntiQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwVisACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPfg/9G+ncJ4e+fu7Jl3cuPy14GAmMk81FeW/HNhp88eLxngXDzgGP\r\nk0kCNMNUX+mdbr4q7MhxyLU/+Kg42sUCKwme9ATn1XaNNwS4N52Kz+ZO4yqR\r\nyz+zpyDQsxiMh6CjG0bn5Ydq4tFpNAHoRD/6WGCbulpqBv5BID/ZPx4oW3Kp\r\nhrxq9/aYXY1FIiViz8ZE+oFHx0x/ZIUUDWeQmiOQiV35IyhJs5xAwhdAh0fn\r\nyh6SFD9oLs5Iiyg73vBqWESZvsJF86041UTbPbrkXB2iSz89AhUkCXen+u9i\r\nPK3+B8avm4ZmR/aQCnADEok3BLFJhNaqnP2OlpFWgUKfd23tf4Dnkcc04dzd\r\nOM3p5aZkkD7VRdUmG16N4IBOsK/jGWUApxQc0L9r0wWqsGSPAOpz/iITGbve\r\nBVrNxijj2nk2qlRZKP8hidNmpo5KGi1KlDMwhId/PIbJlXC7jz92n4SdOdOw\r\nT2pTvteXMKz28CR2kr2MKNKDVlRWLnviHEmXPuv+4bLpNhqT2z0gea3m0j1d\r\nKRJJLcN+LNOh9+OOwhANN3+o7zjXdktNwYg9c9VjHy2BlThuAO9FJoug37fZ\r\ns9WrvasTg+bpsl6GTQnUJeZMuCc5amu47B+Jv3wZPlWXebCYtFrBHKPF/Ieq\r\nqxIOsFTldzRlMEYPGHaloVBK/wfcirMBJfQ=\r\n=hCL+\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/shadenfreude_0.0.0-canary-20220703085141_1656838316316_0.49883161216701977"},"_hasShrinkwrap":false},"0.0.0-canary-20220703102555":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703102555","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703102555","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-276DYqH2vACjpKPru7jhwHOPT3CXtYuQJ6gBG15YZyYPdTwOnwXryAT7n6K4OAoDAh/WodGAbVbKsI+LNiVXQQ==","shasum":"3765bd31506ebad130ed7edab17288ba5bcc38ff","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703102555.tgz","fileCount":18,"unpackedSize":112422,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEFBKin0udRTNDOsizoZN8weRNp7h9PXPNFmPF4H4ZRTAiEAxu2sc/NsKxsZHOTvGhQt/xV8cV+yKljEeo69YMZ0PaU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwW7DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmquiA//W3h2yA4CO7TU46hpGCS/IhqqRfOmCndg116QtWq6HV+Ukx2l\r\nJwCb5nZSQBT/IkO9h5QGzHeaGN/IVvu13hjc2j844KXBZcpLz8Lkhi7zRBcq\r\n/e+ZBkhxW/waX+IWYiFuM2YXcc+gCZRhfxNs50AQ9jWG+KpUdl2OUqz7y9XL\r\nS6eZsJkUkWl6C7kt5FvHtEwnAlFSK6EIgcJ+2HlUeycXiWiwVYTxbbcbNZT4\r\nNMecFHFXvC1Rwh5toIx5FMRACGUxxlhIj7eTuqCdf1sdzzha1TT3cRbkGYm0\r\nl+QAqz5S6SitLeu5AmRZSZ7jGARv5Us07Llf9MlmCr3bJiQCCNLno17DOj43\r\n0wQl/Hn908VSUrUFnXetQ0CPn8wuNwGh0/aIfrlwVQhFhmDCXW7fTSp8O9b3\r\nWoB9y4ZeevynLhWq1UfHVcHbWVWoobpOWe0KTzw1268WXvb9k6WNfBdUFo/G\r\nJ62vP1CiYCcJc8xVO4KILEZ9NKSsELqpRl0iZGxXBbEIdSKeWIGlTwVHqLzs\r\n7smk0h6xIiompHLjaWBd9pTsIFTJlScXagQ1EafaU7+ywW0Qc+I0YyDGd4RX\r\nEIYxpjE8iFIhj5ljgO37qk3XLmgRJdogDSLymi7KCqcc9Yn7MTcoQuHR9sOA\r\nvD3a3AbKnzv2esVV7Zt/sZsebIw6s7C5yUE=\r\n=zivH\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/shadenfreude_0.0.0-canary-20220703102555_1656843971542_0.8671945185174912"},"_hasShrinkwrap":false},"0.0.0-canary-20220703124304":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703124304","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703124304","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-KQPMziu7ao7meFbgnzqwotusQ5bMcfde6ljzUZw3PuMsHqSDLOTDXW/Ypoi++dNDuQ7PBNwayBU2tLXjqjUmuQ==","shasum":"61f10fb98dd0aa9ad400780fbbc5d1ea525557a5","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703124304.tgz","fileCount":17,"unpackedSize":112534,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1cVvMEsvfeHamtOrlvpzLH0d6JsbYM4sLUnYW13zcuQIgbVsXs+sBohp4yTNM3bkqKnzaLJ8vC8O/ryau30YOPWA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwY7oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrPeg//VKi2rIsaAa8lC2tx1arzFuuF5rAG9eTsNLC5hM+pNn8Hbqo3\r\nqn9AT9lDCgJDqoj/aiWukel9Sk7LNYHu/RrIEFPM7w8Qz9roXbnt9zJ7d/r3\r\nAX1t4jIeFcMmzhbDFrdtDiX3ajpbxblErd4qCtVORUzim6JLlKPGrXk6dcEr\r\nvbu1w4LZnl+tpTjZNfhTrvhOakTDyKPRaKQyp3hAXhCC3Oc0No3hRZTeUDNT\r\nDvSa0gccFqP0TTJ2WYneR5DMzaPGXFERCy5ZfmY8k2Wv96x0mJPbSU1ZYEUg\r\nt13r24OL3auHtD/+526JTxXML1kTk5xFzq5cbOclxN7a0MdShQIyoye+01Cu\r\nFwG71shfLQSAZz+nLr5vGygGdpKzEYWjhvMHsk2opHI60v5deRRgONX1qR2M\r\nEwFK3ZJmzB6L2V4XUgEqs3JVfO35BSQ+asqnK1dBlOrab3HgDf3UMyghswoE\r\n9TOhA56/hTvnv6VwcttjoIVZuBhC7ly6Qe6XqtDGDLTQ/Qk0952RTdx81SvJ\r\nmBzYqXXzJpQevtrKYPWxAZfqFBf7+kxyUELhyQaQJSftyXmX+LBqF2iDl9N6\r\nE5MnVqn2yBTvAdTIWI9hWriolBqZjul+YjeXC6E7kWfhP+rYNS2btzyYBT9e\r\nsJ74Vsoc5cfcKQjED5wHS91ji1sajirRNrQ=\r\n=PHQe\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/shadenfreude_0.0.0-canary-20220703124304_1656852200761_0.9491274553575422"},"_hasShrinkwrap":false},"0.0.0-canary-20220703124937":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703124937","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703124937","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-cWrB3wsgbcLtQeX4W9CyzgRLQ4UUBeFrXxp+vM6VupULW2hGJML0bI1eQuGCFwPTdZ1cPlFRDws5mA85n9u3MA==","shasum":"496b8f1b96402eb83f9287a1f904882a37c4e6ed","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703124937.tgz","fileCount":17,"unpackedSize":113910,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzW82Tlj/Ce+PDasc/dV1aXNZNelju0FJMGOLsgOJCyAiA9yZKnI3yc7G+/YB2fnGt25xbULV5xM/Q/t3PrKyaMmQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwZB2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPsg/9EEIiR8IPZnV42XgpapvS4uLSNQYoHJ/rTqMr9A+AtZ5L3s4i\r\ngKe5b+VJMTcH+XWhb9W+pH8mTGnNvrAsGC+8HpYS9Z70plVdM0U69X0IeQug\r\nH8oontnsPe13V/rmkiLbkcvZIbq6j5tIGvKsJ+euj/FdoHyWzKIohwkT8SrS\r\n/7bBf64uXI+S0gbMeg56I5k4RUVJOn6ff/dpY58PZD35iIdd+7/yfl2v4Xmx\r\nJkoVIR1hZzxQY7a9ssdqRY6QKMp8zV+R3TpOavGtdaDrX+mvNZNMDLIVug6m\r\nIfD2KPCcw6n6KzYg6Kidhdp3WJMSimn68YWILlPIApzzD8Y3jvlG5MTaqe+m\r\nSofXOwKQ0fPLruDZac4gWKSHbXko4oqv498mQadmTfd+VGNpLV7otMEYbKPm\r\nm8TSeH9VXzRf08I7qMi18hlKvpME6Ci88UoksIfEKC63lZ8qlj6zm9EzIsGH\r\nN8WqWA35phYoCuUzlsRqBwxrnvxWCP/HzLUBHj6mj2M7tf8tY6LtirDT1gGU\r\nQIdztvMFl00YaiF5q1tBQECsqeKCWxJiHDaJKiImFtDfuxhBsQ74yZEQBabd\r\n05I/NJxVMWKWArLpbs0wcELpksfzgbdPmiUDt46HSNd9f53p0PKVkzDO2DXm\r\ndR9tRfFygzgTOyvYVeFzRRJ988B73c19dDI=\r\n=zKkh\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/shadenfreude_0.0.0-canary-20220703124937_1656852597852_0.4147673898657269"},"_hasShrinkwrap":false},"0.0.0-canary-20220703131923":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703131923","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703131923","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-JO3tSY/t7KjZl578Th7oUflxQ4hwQEe8Ky9hhScMVFxzsgyWk+OMux/lrRVdlJ5VaGhQywk66fit1K1QRQdCNg==","shasum":"7d705981fba192593b1d2632f247a4a878080753","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703131923.tgz","fileCount":17,"unpackedSize":114138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGX+GAqjnyUdHPbxKc4wMAji2W1+fcJf24oamLmg7W3PAiB1Ygs9ccINa0HIHSXPvD48Julsftz4zfWFZLvINgNAjg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwZdtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbXA/5AUIhg5hBq8CzRTXYQZeniAPqCJIssp31D4YMt+mUNisMNrNM\r\nCavpFXWgov8sqji1Vkd+EZSzYepMHruXJfMnCP7w9ptufnlEzApOZ6qfz92p\r\nPFTUMtGEeJDjahGLIHGHK57JhAzV8OXT8FM/dSShAPDu3aAJI3Xp4nNITxN3\r\nivAFUSeCBbRvq9OeCzFVs+g/T6G/Mm1qU4xl4nFepLRi6jHJZ7rUVAf65F/0\r\n4NpFHQpRtqeHGx6FVmZ6xCaXD5ylRy+jLRAPkdQWXQXwsJcCVFH3mIGMyZPY\r\nBd4HgFBGqWyJtVktSNi2WVjc/Q5LXQcuE3fGLfp6SahE6saaBI8xrSVJPhdF\r\nOOYib7yvef/2GPT8izb7ViMqp3LokMhOe/CSAtu+llXTTuevERX1qO0a5lAb\r\n8yHYvGocGXiSyC3w80m6vilWcEjIBCmVaX5KZYvaNoh8JIlriCIbcWuGjU5v\r\nsaFgvjoqoQtL5KacL+eLjbkTvd/rWVfD30oeN0b+VnqQyaXbFlF5iS+AvAuf\r\n5TLebe5atC6jIBHRK4yefqab/JPbS995xqPIAXFiHBdk5bPP//i5DeEG1Kjo\r\n6fLJpTWElmBAztm8zwrK8WREBo45+EmIihWx3h8/mv0/sPxDca7Yrsvcjhu6\r\nGRaozR79M9TZ74dzQxHsV0DEGvmLusOtMNw=\r\n=Fk1W\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/shadenfreude_0.0.0-canary-20220703131923_1656854381271_0.8150748787154352"},"_hasShrinkwrap":false},"0.0.0-canary-20220703134158":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703134158","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703134158","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-GPa+/HWzz3eW/NhYRNueBKlFdqdUk2LctC4x73NqVNDqtQ3IXkJAqAK4sCFhPzBtVqiQqMPrLCRj20AE6j/Ocg==","shasum":"857ef240ce92f28f1640ecb5411d45612be85217","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703134158.tgz","fileCount":17,"unpackedSize":115020,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG6V7J4FoBciawhT2wd6K/H6dlw/yii5UAUM+a0b3w25AiEAu0tEsAdKLynixE3lBqiFpDocfd3uhokF5KLT/YIHDrk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwZy0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruBw//f9ePfYjNbB990Iujfbo9rGZPch82ix0SfR/6zwWYxi/N1chu\r\ncprggxwiZOykDLuXN/+Fe0V7Hsh8loL6K7EZgH4BaaT54UDT0P1Mgsz5Jpvg\r\nMjEcOQSYOmNLAgnDKmdYU/1IW6KtZaQPkvqMSyqUkRx5xAi+YhXqeCWg0mij\r\nVib0dxrhwYEkF6RL77No3BhAlE6iHcwyYrfxZOGTkPWRuio4LGKTYjJ9Swzx\r\n5lng34soxepEwv2U7lMNnQGcwiZ53hlOJahIsOTRBfOTM7DQXjmKoquJ2rT3\r\nkon7dEvzCdHtKX327BlJ0wzbijRbeaeqm8vgrZp+yZqsYZLxyYLp0Nn+aczz\r\n9DSvJE/5VzJHbQCVp9PdZQKr6pyNVbLW2u3ygRKtQhs2YHuk/TOxw926+h1i\r\nc26MgwIkgyx2AmZY/Gx6+soOGWM4FeJxQuidxqAvsF0ucqchYjJ0WlMo+/J0\r\nSidpKIm/ItE03z/pQEgYrlFqbtfje2gjKLhJeHASLEqNFVojSkuhvNWJcjD7\r\nNRJyuWv+BB54+0L3n7HkRxdqsveg2aWNqGRw/9VZmSzqoYLg3ezK8JiMvvu4\r\nwg5dAe6jpEH65UEAHP62enaUp/OAW7KvGKxh42dZCodRW9UkBPFrIQ2Lgi8U\r\nSgD5dNOQviZWmzuxF1sXNMbBEpd2H0BfOLA=\r\n=MQJU\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/shadenfreude_0.0.0-canary-20220703134158_1656855732402_0.2640083360356569"},"_hasShrinkwrap":false},"0.0.0-canary-20220703162245":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703162245","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703162245","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-9NsAlOIMnkai0w7ClQvdUCV0LQWeqsiGMfh9MaoTYZjVCeA/1cAiP5eOlaPj+J1zXOEIj3yK8LO61z0VMuGrcQ==","shasum":"4c30a2161189d37eb789bb10e834e6381ba2a450","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703162245.tgz","fileCount":17,"unpackedSize":119559,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs8aqtThXX9F248YdlIlx+cUMz3VNKFt0RRUWnvHFPEwIgQmF+gMvIQ/pWlvzWIuO2lyFT2LBDC8bbZGJyg4HPKnQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwcJoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmopaQ//dMW+YzLVfQ64gHWfzJwDLAAJOvm7hiR3Pq2eOFVcaqHX0PuN\r\nCETyFS2hXC3Z6yJiTXaIGa4JtnKpaQGXkj/OMQYBkq57CwD1dFrnLQD48DzB\r\nmQyBHoTw9qn4Sw8qYzNlhpMyv4RNPt+zzLjxoJW5aLvpxVgcmoC4ph2uxiL2\r\ndlCLK/CgBZNtX8LKOJwxhcCaMwzPxzfTtmvTKToKHHQFmUCSuV8824YQho9B\r\nGQwVjtXoouWS2Sueyv8oXH5A2b82Z+5SqrjlmVY0HletUg3jE6+9cChARgMX\r\nsbuSOUk8suKCxFjkoX3o/X4V4lwB6gaXkeZXp1mO5+XhI2VEcL3dSZtrhH97\r\nw88qQcFFu7ZLFKtm2NUGCmJeq2QESsA9kkri9fof08RYn6UnjsAVtzQYcEZ1\r\nmq1mPwnPjRj1L6WNFA3SdExvGuBYXOhqnf/R3wZGhwoLt5AWDEL0l3oqO0X/\r\nTuaVYE5Qq2LS6pVbOa2A+xan4MKTjH3kVy/0MKECs967iCLbxgiIVU772cM6\r\nlzXFNXtX592ykJN9pocyo3jqtP8DOwN3O9yUBcd2ayFXxkN3QyVEu25ON7o9\r\nlMce/H2eKVkTdYgN1QXa+BvPuFbMyIpuTeP+6VsW/rbMadS4EKsE0Moszj7y\r\nTML+UnhazHFZEzHS5vOHCNSFpJ5Rn0oP8oI=\r\n=ggRP\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/shadenfreude_0.0.0-canary-20220703162245_1656865383791_0.6434954578262999"},"_hasShrinkwrap":false},"0.0.0-canary-20220703170744":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703170744","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703170744","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-MT8Qno9iFBU/HadmXqglGKlInRRBFMzNFPBbXGEK+EyQLsc1Smro3Fw7X6P5MeLhc4el0Ec4Xut0ZWalYhY3hA==","shasum":"d094fe75a220dcad213b667b1b151104becd6cc9","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703170744.tgz","fileCount":17,"unpackedSize":119559,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEmIOyM9gCY5LpdSteJM9X4d9nJoB/vygtpiPmDgKCwAIgKo5litbqRiKBSBjcffivaMhCrWABHU04/DpvCNeNdtk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwczzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr0Mg/7BNJYbE3+2mqDTHt7RMOrCuGwOi0MWAiOAWEdVxX/7EsQ1ZnH\r\nhOXxe80CJumj+3OmyX2FdytGg9WJYB1k5RA3H4LrEzOjtF+20xg/Ftj2q99s\r\n7jb6O8BrtPJ5/a2jA8u6epx7XGlpbPcZqTKIuWHiXYQLjta7qu7PtIsF/MPs\r\n86+8F37XSbg/ABY2rIIhzBUIBuiNypinAKPSX/qMehxGQ7IDLT5U60OeeS3d\r\n05J8KWvPbCg1JLI8tbAwwgzcwflLElzElLZ3pXrSQ5paYUghW1273bqoz7GD\r\nAmI11pTOYFjaMEgF2dYoU7zBi5iyptzNNP0hHlYKfFfdZCJn3VJEUzVl6W0w\r\noWZ11m40BYhwl7RgFQ/gaCdtoR++Z8UFH44TkcXXVez4Qlcrc+crR3l2IWzP\r\naKINKs2gKKhT3oYAn2/I1gmPSUonAZGohoyD9sedjz+ZK2dXqygpBMEFySuY\r\nDy/MD0LzAM3h8XqxKeETC/M0A2hTXCabJn8dOj5tnoc3lpMxw2ZGie0khc5w\r\nxxA0UDnQVn63zCx+PXTLi3XGv/o3n3ncDjeeE2MLEUCBQYq+dCGGJSQ0/Uk7\r\nOdq076JvaiBnTi3bgrdiYnllt4L5ZKJPgDwyHHMvF50iEJ4f7bcpyIEQ9T41\r\n1durFzBYJmOmrJ7fJP9DOG5Mj53gIeykazY=\r\n=vbXs\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/shadenfreude_0.0.0-canary-20220703170744_1656868082911_0.4367962327317674"},"_hasShrinkwrap":false},"0.0.0-canary-20220703172433":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220703172433","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220703172433","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Re87JTY/wPVXNlgtE3DYA4u2PVbNFZ2dQ9gxfkHuzwjpG0k1HUxZLZ0+7aedYkhApVGc1Wtz13uLB8QwJTS9Nw==","shasum":"73f81b6e755fa312cd6fe8cdbccad85825c40207","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220703172433.tgz","fileCount":17,"unpackedSize":119559,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX86T9Dd2LrlIQ7iuyDXWiE6seE9fdZQH53fg8y5LUdQIhAKOeyFiCzyYWYj6RIvHWucwbX7rVOD2JC251zx3wA+Xw"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiwdDjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsQQ//QE8pEa9WZA793lsyZEzsmKjkVpYW8p6JgBD4ccsCz4F1KQMy\r\n5Z4mtJOKSx+yf+C0xdqRivG4pfozVbfG/43KHTo5u/ns0bGm8TAIBIlfcQN6\r\n+SsCQFfmRWA45o3MqlMA9gkNWxzNwOIymSewgXrpkqil0Iu8CllHChGDgw+U\r\nofWunbjYqNZzJDrKx00rDxQFl2wDZ3WHBDwqfoW3GLQ9ovVTV56fmt0Jo3wj\r\n4x8EWTApS81u/zPpSYV73KcptOfX/Zcahp66L9vJV+C9Fc7AMEQXa/6Kh4ri\r\nmqoRIHMrkehiC1mQtlQnF+W079SoNugBmEeuXUHLGAPZzG0hmP8VAycXVti6\r\nUGj9jakvZ5lto93H/1xiF71nC8ZIxbWirCNHc5IY2La1CBVFqt42QSfhcrVv\r\nDk2aCeb+tFh2iztgFl9/6o8WfcM5Q/eLlpOwQHj13U2H4QlTZ061k1AFOmdx\r\ncqZ+LoLZ8ReYuzZ6eiVGz/6WsQbAw1/GrKqevyfiySAkhyK+aW4VkdlDGZYp\r\n0I9D+9lvHZItJB8kxHIot0m467M8hs0wmqzwxoio2pkfEj9Fdm7aIQf+Yjma\r\nd5dhNI0hZwEgcUev8MU3jumVQMTuHlVZqg0WQ2j2QOe57caQXhCYNtDqWDf0\r\nHW1F+VVw3hB5pq9lHadaO7J72VQKM6skhjM=\r\n=SkjE\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/shadenfreude_0.0.0-canary-20220703172433_1656869090765_0.4551221310633853"},"_hasShrinkwrap":false},"0.0.0-canary-20220704195355":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220704195355","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220704195355","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-lVwpzAbu9gJSB/PHEp5SF0npLlqrifHA5K8PYABM+GfjzqmCftEo2LWlE8Cx2LX4wfQ70ZoyqFsqovn3Ere4LQ==","shasum":"a66ece731c07ac324681d9baed7ec8e3e80e5f4f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220704195355.tgz","fileCount":17,"unpackedSize":120651,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCE48uXtu9CzG5XsBSirJzqo/GDjWtriRhbNwqhKl/FvwIgbdVBtwOjSd8/hEnqR7zOkohmgO1h9VKo9LVEvSeNI1s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiw0VjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo4dg//QlYSJmWFSVGc5GbgS2MhKrREGC6fnGjHaM3IErbwfofgSYoH\r\nKRdl1lwSzbt04erpyNZXG5PFS0y6fRP8pJMbX5502VRmIcrlQIiE+dFGb8hz\r\n1Te9r5fi4iijuFn7fJqPbNpI3/3UEFKtPOb+Cw1IlPkdqMoa1GJ7msZIlNfx\r\n8YUat7/OGbFVOkrDBPWwjQ5VyvOy6dW9lZDJtmTiMvyqn8LQb3Y9RnKP2/iV\r\n6yk+PpgLDdG7N2C+oujL9tUuOCwI2+zGTsXkalsy7fzYtu2FiFhwu+YhCOL4\r\nituYiLZL3IWAZ/M8ZradUrxmQ1ZjkDFqmvKgq/IibU2/YqNBVP3BZAIZNta9\r\nZc2UpU6OV1MKUFOFsr6qDRDuoGn8hcMGvUG3tWVuzOLccpnBZVuw2k8ivX25\r\n7DVR89pk8r/xedg1RgcURsbBXfeuQpKZ41O/0Fc78jxVJvD5qrHZul1ZeC1A\r\n6lNh02ak7ThM6pBJKSDJT3GOBuXJ5s3gIAzA2A3JD/yJ2g+Em/0VklTzTKYk\r\nybV5WdZJXuZuKjN1CDzZ6rS2EotmQqP2Sp4dkGFlNKU8IeEtG/fbt8AwROgK\r\nO/rqnH+B+twQKIBdhgf0hZuTjCKOEkWsXbG75/vjqgL8GpGNUQyIU/Elspbc\r\nl+l53ERE/oLV/J14J0ZPqDMsfFBtOEyFliY=\r\n=rAIU\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/shadenfreude_0.0.0-canary-20220704195355_1656964451008_0.12228324996746509"},"_hasShrinkwrap":false},"0.0.0-canary-20220704195957":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220704195957","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220704195957","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-LQsoFosXQMS0dTZN8hTevupa3RLEXqzi01vdjSbo/IboTFdjouFlrWjq90W11DIvmH0KRTImXiU+qVC14tg4OA==","shasum":"7c461cb036c5586700d6052499379cc8d3bb8973","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220704195957.tgz","fileCount":17,"unpackedSize":120651,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAfFTR+MgOo7oD0KXz6b5dipowd3MB74gWMjbzBOtDrDAiEA6/k7UJiUFebCrZV4aRBOS9uNlRsQUtpDZNlo/FsvZKo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiw0bPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrp0w/+L0xemJCGx7WNT9t0oj4mDeDZ+gkqbL7E+OrRXFH/haMPirtI\r\nJn4EElJbXMMw7WrGKMHXcHQYmrrY5cuofqzXd0qH5MDXwxw2U9QLd9betUbs\r\nbzVro9oj9u7y58WjTGcABjZooJW/lp5X+xvJ7qzjT+WETS47zwQCNTZApix5\r\n4QmJDUGG9TMN1tdNZuH/0YhBuuTxzLmUf5jvNO+w9ZaYM4Hrfaz6loAOAWLw\r\nVpklZeqkvzeAG2GF72xxT7QUKDJMAheKywXdm0KD2Q5tLyKbrbsI8OQE7gNy\r\npfYvSef3Wq9xg0wWGMXou+WeLSjCymL5yKznFd2as/FGLwMHhI4xqJwfMzAQ\r\nfGb+vz5DZ8L1PfPReGZsmg26su+/nx0LT3JJ+XwDe2/Dpu2CA9yDFpKa+cF+\r\n7SstktxBSAfUNkLZ47+6M4nawJfac45W2xB0SpjRaFYli1XgiRbbvxz/iF90\r\n+styQuttYXhhCUyRCioKnGyUgXDy9CMWru4dxcPbOMOCZvZsG0s5JDs+GRKN\r\n2HLw7rVJjQ7g0kjteSzBtnI8zPqMwOgcSjC0eJghKHfSaB8vhgh03GT2O4nA\r\n8p44n2SQtRtVvfrs50gLObkB4l9IBeEEsuoQp3ic1zJXvnNKoiAyPcJfNO3C\r\nj+JzgNw1+8aE6lSm50bFgqOhhLau1TAhlQ8=\r\n=wE5v\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/shadenfreude_0.0.0-canary-20220704195957_1656964815047_0.36618009356692616"},"_hasShrinkwrap":false},"0.0.0-canary-20220704200146":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220704200146","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220704200146","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-TonDNGkg89xiqMAu9vR4kyDDRuaXt4ymju59q8O/Xg6+F5CujilIfiakEqHPj8BYlRKtMGH379KGW1syNJiHaw==","shasum":"20834ba22c03548e7ef0d3dc878e0e3b64142eec","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220704200146.tgz","fileCount":17,"unpackedSize":119400,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGqXe/sAyFvgVzRiI1IrJDUsiGJXEZOmhpjBEGYAxWPnAiEAmp5k0frQzXdyifTCrHevDUiExcMETVQaHqRxbyGOb9E="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiw0c+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqDug//Td2D1DAfP6ZbyGXhtEHmQzQ8NhUTOFSEoq8L5qllBmUEPfah\r\nniKMy4boExgKUECHVnbVOHKciTB6ul1qBzFEEFau4DfZzKYfdNHfzO34/P/Z\r\nJhIWNCnFwIbIZ0HnN4r79GZ3w3WICwapySU8AkwWnH+7wPnzlUChxCqxSZws\r\nTxPtzjKLh+0QemoOPccFmsCkc/MJDtWQtDAbP8x5cIbMqMmQcTzGo7yP39rY\r\nhKDuU4L5uZjtchgqbCJ78qUqCE9fhYd2yBkVu+bF0tiB7Dmw33oQeSywsdMV\r\nlLblojkIstvY/ptzLcTMK39NqH/jTdNWH2txqTTYNDUvTYUkn6hFrX/3fLQJ\r\niZkWrQo9FZxCt4gKIsu2pmsCZw9HqkOCDeoLJHLOZ2bieDI0uqEk84pk0BXL\r\noBxjyXaKuQVgp/nCzkAIQtLBQnSIBJsqg+7RLrrmnijFWLgqfxAWzmal0bnP\r\nAN3eJaW8ZTu89OsUMto08w6xcvNMZk2laszzGktPYuJxwwGegYRA7ohmGPN0\r\nekkaqzJJ8RDZwdhwq6V16lEqWFqNR+ROzwSxvKEGMLKHMrTTYIAs+kz7JLso\r\nZsJeRVk84DnvR2vT3pNNBaGhKoErMbmJEiULIwOv4EvKXXeLiEPW7dG1rVa1\r\nXTwq1+MgyR/iTlgsYx5WNhRu5j85hr0ywjg=\r\n=1duH\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/shadenfreude_0.0.0-canary-20220704200146_1656964926542_0.00427292741220664"},"_hasShrinkwrap":false},"0.0.0-canary-20220705102348":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705102348","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705102348","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-kjijSGXYtOtjIOnOeb0yGSD8NuZWskpFqfFofOwypoLBSlWWvxGhgVMpNDnJ4+6POMw+I+l5Jq+Jwdj4Y7IHfA==","shasum":"9948958027eaf78fd35c0002efbe1694f4ea97b5","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705102348.tgz","fileCount":17,"unpackedSize":119737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSrL9oDPjAjVHXnuVrxydmyZ1AjHqp00VOqxMSVjyC1AIgGDDnAyGImIU3EIqgczr6/rljo9ii6iiTMEcvrtEjfNQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixBFDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp84g//dcwD89XQWZRDLplKYG07jshSDGRwQo15pdBiMlfByADuPU4v\r\n+c+wAFDA5Wi1lJ98Zlt/So6nBVYLVWz8EMVyREzwnp+Q3yKtRDOeSPkHHpRm\r\n88tgCfEwHDOM/89yRlP+PAYTymvYGs3wemOWPiVrA2Qy7+P7YB0Buz7a8Nlk\r\n4h1uz5ooHccRTIeJif0K3EBunu7CbN/NBvIQzYkgdiaxvZHBhGWSZ8hRvHI6\r\nkjjryTVTBACKXvqb3x2YixIJ8atCNIqPZgD9E2zWePokEe++U2QZ0haEohle\r\ne5dyjqPiM74C83m17D5qquJgx0ZToMA2hYO8c0n7EgRZeLN7EqTrSYlpzYAu\r\n5GyChR8v+iTdyZDM61rLegMARTONJMd7A7IwPTnNikMHv/d9fABW9FnZie9m\r\nEOospmx08Qb29CyXDarzvJ6E8Oda5v2TW4Y54DrcDcZju65LgBmlg7jBTsrl\r\n1CPvn7CwWEwQTUJa1r5NC6Kyjgwjt6ElepF2KJpV0GMIEwFZRiqG66tRdhYc\r\nAGvqOyoj80yafwenBH2lw9TH9QnIQCS0l+f9tWV4Mt5t30HMUMGzcJUDQTdu\r\nDk/lze+kaqtVIUlE8DYSZfP2nQkSa4AbPQPuH3X4wyn3vOY5ow49lvGGhVso\r\nhnt86TP8YT+X8+98+A0TgnWXMfi2qa/2Fwc=\r\n=KJqU\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/shadenfreude_0.0.0-canary-20220705102348_1657016643202_0.293686483951759"},"_hasShrinkwrap":false},"0.0.0-canary-20220705111154":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705111154","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705111154","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-DCF6xORZahoN/BUOibaHbcZS3aJI4EyQsavHuJ3F2CNaDmf/20Wp/Z+dphHxMnLsblvhksghb6e/+/5s7mhe2g==","shasum":"e5c902463917c1dc957cdfcda2eb7e71b216236b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705111154.tgz","fileCount":17,"unpackedSize":119737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPTuTpOO343h4KVDAQsRvUYkDN6VpE6bxsFZTrwy6y/gIgdvUS5jVdd8Jfe8zwNy4C5S329UT625sZspezYhusIYs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixByOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmru4xAAjO556585zIFlLAxY/qqHNCwnS/ysZu7sJyBnz8kAXgX0450h\r\nnCjfUlXkDU2MOqY1+Lzrnf/JNNR5NB1qABi4nTsItFBWZJZRgpSxgISEaHf1\r\n+wzmn1NkW+bhkF5Vr/fDWH1lkwayP4hpFxjwwira75iXnZhQSlbh2ckyqruy\r\nAP1JbjCW4g53+mCUzs9IRil/JpMcLjPdqyFoK85X777el/GM1zrcDzrsRUW1\r\nqTAngRt6FbbWi61F4/aABku2RF8GlfwetP7M48np1u8/Uaoaq42SMjjsnGWp\r\ns4xn0iFZVCpSntstWDhAVg39nfGzHMSp1MHWcWeE+1I7e77VmjiUALwesoCh\r\noS7z79fWDc4O6KwnR7RU9jEGw62JhFaHr0JxXq0wSaQ/vHQNfzHpIawIDz3d\r\nrqZBlralld49uR0TDaHuIPR5owIwGABNXQpMlDlzckJiR9lWnD/I2tXlWoI4\r\nMMbHrEG6//jMhdl1Fs2s6RFQKwcSCYNSE5Ko2VrxftIAcxK2vx7x+rkRsPqY\r\n7NF5Hnn0aujixqXys3sHqUb0rMJobcs9azzp06Tto83iFcfAI8hCVm22/wdL\r\na1hUgYqX7ORf23UjTAJFf6K5i/k0YhAfgrhiPQe+6SzCBQbGsZb2ZzQ8U5fa\r\nu8VxVOnVlNxOt+TPwvx3bI+QHiMtYvZotqw=\r\n=tMJ9\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/shadenfreude_0.0.0-canary-20220705111154_1657019534534_0.3210705347621572"},"_hasShrinkwrap":false},"0.0.0-canary-20220705111500":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705111500","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705111500","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-4uZIbGl6PlHoCQAeNlmpTZfX5bMEE84blfWeRMoiOHzo9GMiG7by+dw6h5KXtcwgWQXUTgzyO2IQLVfJTB+XVA==","shasum":"86f7806af3205f81366c6a731e02afaaec111a92","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705111500.tgz","fileCount":17,"unpackedSize":119362,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAsvcHtKfZrm16lJDLtEJ6bdE3KehZ7FohMbqqZWfXIfAiEAqVXSyDgNSjzETh+J3kOltxp/Lz8+D35R1cGSn61LA40="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixB1IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5Wg//XQ+R9EMINJwSVYWfc4rpLx+3ZRT0ciDEL3NQXxPzXhvOxhEu\r\nawQrnbIRxkpcXEVpf45ugEbW7DvmeEOOwujhnk63GwmZqs5UKNbgjS282zpW\r\nG7Sgv9LGOpdtGBHKo+CN9JiQWQKjKwZMvtf6ZVITTJb9EMkDFN6LsYQYShdt\r\nD+tvkGlgXrioKazL/lZQPyjRoCPfcdCEFJQCNdB0qj3I5te+uZF1NL66yYmP\r\n/m7SKmVSvVWA9k99fhXbQjf1AR7TUMrLHaxZ3967Nt8syagUmkRb/A8qrNgZ\r\no+woaLRxBB5nW06u/SlkCMdLyzVV6KuyXFUucvmHGSLQl++kWfrbCbJp1WtQ\r\nN8jkusVTedmC8VcEU7qOrzT0iXcJMaopgf5B4AQ/oi1R+CFbtXHv9pHqd2eb\r\nwgtt6Ay35LSMDnBOoba9uZ1gJRVAQkfno0ma3ITk82cnc+5q8sCAjBinjE5c\r\nds5X9BLB1u2o416R972UVUyS2KicmLbzouB5LJcy44RztXlR7KIPupqVAPiH\r\npphjS3tPmScnfCW5sOA0EEJ6UtX+1n+I+q8GEHhL3KW1PscX5yV3S4A9yWNQ\r\nbs0J9qL288F6hx5sxlhFfn3uYMWiAITRt6cQzDmaGw8TrycgBZOzEOLBYjsd\r\naEnVDrUAVGRBXqhCLr6kpIQ2Q6/QibBMt14=\r\n=9evT\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/shadenfreude_0.0.0-canary-20220705111500_1657019720788_0.237614073816641"},"_hasShrinkwrap":false},"0.0.0-canary-20220705121648":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705121648","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705121648","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-mJ4jJY5IGCfaJ8auhY84EZOsVaH2rnTPl7HHLarpUSaIB38bpVQLiB3zCOcJbWHpH49o7YlV1jDmD/GoQY52Sg==","shasum":"388875a086801a3e8bbc964d60de8599abe25d8f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705121648.tgz","fileCount":17,"unpackedSize":120756,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgjZGp4p3r7Ny79fE/w6dXRp8lWcEXssaqcQmpJ8rWEwIgAJmSmA9/Z6OkBGr/MxuAzJPz1BHVd6frbOvdpLOHbAo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixCu/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo81w//cwIbuonwpBsoYfOUZM+0USC+3c/3RbmWQIU+DzSFJk9kt63t\r\nCZMrxbWREkp2jkapANEJaMsDE/l8dyjn5IFSRBVJEJj1VRoEznE/bITcP6Pf\r\nVs/JAjPm5Wo6eW2zFzvzZdHXLn5c/tPWtHJei8TBlvHUhB70ql5eOppYtAW0\r\nxLSJr05B69s1A8ubNHLRKtDO9BSNAYOyz7D6iPrsOA4R/OUX9SKWtr6JRmPv\r\nT4SRfckFzYYKTbtDOLO9uf3sgVtxyBsd8ctTEC5d6M1v7eCyWX6NBZMymsWV\r\niA5UPhQMj35akvmW9Bibyi/vmAMp224yAriDRBUavSVpJRwS7/uRjKJtcAj9\r\nKHSqIzcuwMV0McSl2/mn3povfGmB7CBwo4qYiSqi+kRrhFC/iDAQ9B2gPUeS\r\n/lZfQyqTn5gpRYuaeXCpI9NncbuOc8SamkUUqZOotr3zddCcblzfeZEU1hdc\r\nzHicVm5Xw5EECyfn1t4+BGxw5XL5q0wOYhFi/K78KOhbv5oCbTYIXj1PAv8i\r\ndiOClHPL4oBGNuBxgIKBzdXqe/3jgPixZdP2P+nfbAsm4g6nEz9Bwuux4wGk\r\n5ox1qCZdtuEa3rsocxwVDjYLgGyCRVmvKpjMCYEtigH0DRWGdizdKiJqTQCo\r\nzRnJy37aasuKPXsuXxO97fA/jorVBkXUjf0=\r\n=b1Ln\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/shadenfreude_0.0.0-canary-20220705121648_1657023423556_0.3634394542906072"},"_hasShrinkwrap":false},"0.0.0-canary-20220705122927":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705122927","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705122927","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-1xTmxAx4Sgt1nXhjjzYmyVANkNKxAEAay4vELuK9WI3ZgkfNm8mailJA8FTK78U+aloJdz3EnBlKp0ssWodMMw==","shasum":"cef5ffadf1924b4a93c21534558a994ed25e8aea","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705122927.tgz","fileCount":18,"unpackedSize":121279,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICW+/nQuyZOsszV0oO7DCGpbQGSRgslODCTGQvg+rNERAiEAsKH16EJyqXt/glCj6cnAwKIqWMXG+B4Nx79D1NS0zjo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixC62ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4RBAAmomwvLUNJd5Bgm7WIYpFEJf/xY0sX4UFaisoTTdlJWdvNLZx\r\ngTY5eQHewfcFESH8ZLQNZ1TSKDrt+fP1ojSj1fsES3NvSPSZ7gWBHLN9P7ZF\r\nnHfFaAyDGp+W3MAmcGArkFJmOYdTZ36H+lmvrdCSPbZnWiVDNGNn2/E7jGFP\r\nk8i6Uot8I0b8NJ4dJMvYc87C6Vuy2a0EMMN/L5aXDnUQhFPQcjtgAiFb4mTO\r\nzzbQWqXKNTJywmdgFHx4kpi2sGA/OfpbcNLMXkXR2YxlyZPU72uZCN+sAv4T\r\ntALsl5UOdyHLl9kX7y7ZdzR5T2A6NLMkiEmjNRQ7EzcgADsQRZqeQnYYCubd\r\nbapFOwxy4ZE6kGVyPsgBMLNmMfg2+23uXfSaXLEOQQa1HbFVKfvkGVblhmqc\r\nc+uEUXgnLyiSAF6irNiGbuvFX8/LE0uM0oo2PkJGRe8KtwWv7i/TmRSOQnqm\r\nOILzM/hxsH3sWN+si3TR1MGAxPwPukCya1Qhe8/ZgMISe49Z0oZAxpkvkYkz\r\nuG4Z3mog1dUeBAzJZmK26tOwzJUU5JN8zQDWQ64/isEUX6oXF3BUmS+/46/h\r\nMHUSvw+PfeWEfg82mZnuHpcPCbCPuopeMp5Q+dDyRIWzeMAEKTPAhTD08+OJ\r\nudW4CT499xcfwXbYhFukZ6qHkBR89H5fm70=\r\n=w/0K\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/shadenfreude_0.0.0-canary-20220705122927_1657024182539_0.5594078830092128"},"_hasShrinkwrap":false},"0.0.0-canary-20220705131931":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705131931","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705131931","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-iDEDgrAwlIXKBDIFB4ypTKW944XgIySXxjaUCwCi5EGvir2YiHPfKpMuXGyFG5jehoSLu4n9/9OJCd6LmW82yw==","shasum":"b8d2b5464a12aa156dc576d7bfc74460c1f13a3e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705131931.tgz","fileCount":18,"unpackedSize":125433,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGY3MH83nNroc6nmJ+gyB5qM7uHifPooxjWeSI6VVu/9AiEAn7cy/6EihusZRs/jz/FNsJkPex6zcTjO1JU09sRYoqM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixDp3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqE0g//RrWGZ2Ys1ZcDHPTs4k4mVLhNhmfhDK48W6DgGTjv1ZoIyu2n\r\nkmU4qEJq39iFhbQKNLRj/Sa4b7DrUg2T31GCIOvWWUjB/jnuuIbvxI/C01xO\r\n3JDvbwmr16sS0Q6aTDi3DNXmrii/iVSCDWxeXCoCWfQzA/sKHbeMtcgFN9wb\r\nd8DTbYUw4mAglHBfYmsTBD93elhPKMybfaGXdrrBozcY/To3P+LChW2N3Xg+\r\nUVgRMRZVqR7111G9IuPAYD3s96yrJ8UqPilfLQjklwkqfBX1nhdrNi4FFVIy\r\nwQEpIi3OTE8s0Oq6ekhzpJasj6valdoSgqMUFW8ghadTBvL5WYZIoZ949BYj\r\n1DF4HbRwxHmVcOKGWZ7IwWvMscKhCoUjIskFxIeyt5ciGegNjWRplEMdZXZe\r\nL4s6b1z398eR8RBtsCnUpgFUJGq38MYzUINSChA7ubvEN3xhKphbAFlZfRh5\r\nfFXISWfQZcRdmoVioF3nZVn89CRJb/Nnrqbn+Cd3/Xc4cP5vYjb+aK4MwW0r\r\npSdaRFOWCTYV0YwKubLbY5XCvLDnHHBvKXoYZavwUrKWUUxUkBUmaaZhSdwp\r\nOAl+TDCh8HGwS9wygyPjhgjNu2dhKzKZ5LToJvtCbvkVXHW1W80G+Hoy0qV6\r\n9R0Ebf8NxXbFhxmr3zX9WPGENiKmMzjh3tM=\r\n=SbMx\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/shadenfreude_0.0.0-canary-20220705131931_1657027190867_0.7300120309929776"},"_hasShrinkwrap":false},"0.0.0-canary-20220705132935":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705132935","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705132935","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-AdY7jj+KwiKy+3MPHapBc37FJuqaxPzXyjShKCQ++zz7b/VttYUWwiF8NRDT9+LcS4DmSSO6RL57BfKFMfluPw==","shasum":"94dcb20c667989a453b21879df2e08bbdce223f1","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705132935.tgz","fileCount":18,"unpackedSize":124052,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICW1b9wm4tzF2HGIPB9u6zgclC+MmrdFFi8pxgQ7QUhIAiBsiu4LESeaC76A+zNJUShFuuV3boCNmB95ppnIEJJCnw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixDzOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8RQ//abHACboafGStVUVu49YpDhoUbOiebSubUheIs+nMqjqXtZx+\r\nLqQkxQYp2/x1ZWtrLo/3ul2MHntEsqYWP0sZUF587YlS51JnGE6r6lBbut9G\r\ncfSwQD/Yzc+paoSg7fEz7Ryq09YNUygcJfhYn+tQNoYjSe6EK8qzJVtwx4SQ\r\naZfKgmDXiGQBtv4ufqAYjo/goaUCI7l6Tslv0Io0DB42KLYWDHZm5n6u5Hh1\r\npnROEWs0rckU4rMJxrrr7TafeCwzZPVKeSJv6TVqVN+SilVEImquT9ZQf7cL\r\nQDOdpuwYLZIoaWFUtel4v/8adkJog7P4YzyQU7f2Ab3T2SuMMcCz8Tl0MKH8\r\nfcj95bE+58Skg/wml9O2ss3HkE9Ww99JlZuR032wFCNIt0aOHkhTwOxv8bj/\r\n4OGD325/U3dHMn3ESHuqZ8LrbxcieANrSfXaZQtwV7/4JERZPg8vXcuqLtxv\r\nraVFA6gDduYtxnK6GSgLYG9XxpOj2lHQh8/80ucPYe+MiHTbw9lsyi0/Ruve\r\nRJvuMs4g5iEwIwRGjsKTygB/JflkoyBhapoIdoizLMXyWEJXV451gbtF7lBp\r\nLZuMUAiAse/wa6Il4TBRVUyC/yA2CVoAJ1XMBpzL4U+w0yF3hLA7E2Go6N25\r\nkUY5Mdphahxq3Og1c1A96Pqi7QgAUwteQkA=\r\n=GupG\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/shadenfreude_0.0.0-canary-20220705132935_1657027789768_0.5923741785720522"},"_hasShrinkwrap":false},"0.0.0-canary-20220705133044":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705133044","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705133044","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-AViNImjCAhKFtkOUhqRSNyXjREIZEkocRSMhaHiYVCjGx3Wvri5UOxJVl4JLXjQIkxchf+XXJ4XRqw810D4dBQ==","shasum":"e6c2380c5ee18b9481d26b31a9e175721acb0222","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705133044.tgz","fileCount":18,"unpackedSize":123998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0A57Dy5s2f7geWhJWeAW6bP8IsmMFIFnbVXveYXI9nQIhAMGCzblL5g2MXd/LrRwyZSLJSAw77fPSroSn3PdpTrbi"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixD0XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+Yw/+LXD/ZfxmSqaRCIAS1OBktj3H1qYXPJSWpPcFDGHSfMgGTBe/\r\nIX384jp+7PcYtEcYWnOOrCZ4QssXCNv1ZWjqcMo20Mlw/48oVBo00cTeu53m\r\noXBEOUMh62Tqs8TZT6CQ2SlvvZ6BhTu7sTfV/TzyKS1mOxM8FTDPEFsiWGyj\r\njSW/3lM10liPO9C2nIU9+cdurt3XTTbZTjDyN+F4k/60qNSHm3ya3nCoYVHK\r\n4wtvbJUywbOyQKXn4qYdXYBvX7e0NM6NULTh09znDc+HGIQGZtH8F5TpQLEz\r\nqvjn/C59I6FuUQVIzUKtAIjz2i1FvV9IhLj34QZ94QfLT4H2Zu2CB6J0B8i1\r\nWsSQXXjUlX6/G+SFUFt78YTc5FnSJnbNIisUMEafv203S0kfV9hSNph16bgv\r\nmKx5eWf2A5hgu/23RZRziJ97OTw7e0+8iZQX1kFokWMC/tinZ+O7hlKEidCc\r\nuu8F+tUX3XxBr5DaPi8zTx2HzyFRTz2hCvjTXDJUaQD0AGilOeYcGp2D4/hk\r\nnZc2pDD9gXqCZMsdub1d7YRX+NpXkBllv7pPOClRzirIXzDCMzjsnxq+aS/4\r\nAit2TFF1d64gc+sRXrGjz6J2MPAAChi8VgeA/TMe12c0+nk7QUnsp+cm81ld\r\nBhkyDnEGrd6VApkyGT5SJWCMdUWf2SdV78I=\r\n=rkS3\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/shadenfreude_0.0.0-canary-20220705133044_1657027862967_0.9701966356627301"},"_hasShrinkwrap":false},"0.0.0-canary-20220705134535":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705134535","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705134535","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Q9Qs0Crq1Ms7UAk3b7j3jL/tJTTkIc/XcApWkCHQuYOY+wLQE35a5/N8xdLKOij4kNuln4O1zy+oKoFI/IVNSA==","shasum":"169e14a66cb04581345acfb50ec77aa7f605a290","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705134535.tgz","fileCount":18,"unpackedSize":123803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQaOh/r5lTAGzshzqPaYZ73h8QkXrJByG0ldt05fxU7AiEAqXWeIQumtzq/YHKpp/s8BSE8htgYxa2N4mmCfDSxl14="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixECQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1URAAjRdbWWrzN1czCTHYBv0hwmwlmaNKKc5U7KTn8XAU4hG4XICU\r\nek8nYEPpJU+LR+BB8MKCU6GI0l2H5QTaWPAFoVDsJ9ohEEwqXzeBRe9oVKeD\r\n4Jp1O5rDAqsfUBUAFAh2qcSOD7y/E8iFCkBBaN6Xze3n6YJHHiKye4+EP42G\r\nYS2TI1CpKTcGkg9fL+I8KEJ/v6fCO+u5AcChw1qiZpeIud/3Mc8OyKc4OHx/\r\npcaIwSzdzeIUM04NseMx5gyNBIMgYXz6mkaAPVjJ2I9Mah3A1SJLuAsNmW4L\r\nZ7GW2+Vi9FD8eRL92jT3o6NVCaox4OZb2RhZL8M17dO85Yvzx8LNQonx7hQi\r\nL12aFfGqnptI+l+07Hjy+gtyLWLZaJM4Os2dEYLf0VdeJxG4ik2M9mj04q04\r\n1KrvQMD+IddljTI9fFrMj9SXgg9d1BdUMk0hJovd5rSb832PiExxXztwY9FQ\r\nhLqK1rNliRgfVNPxhw1AoL6vqu2o0K5TkRQ/l4ZbSA0zC3ctizdR/jJ0EZu4\r\npeJ4VA/ZajP8jm+DO1bI6mmE5NSmhlOVt5cZzdv2LxFviOMopL21Q+s7jxto\r\nLl0/1qha8qsp8AU96S99QqeIlq5zcoRi5/kmDFO+Yu3QA0sTBm5D5wUbYHr6\r\nkoCbcm+qVprykupZFayBBZl6JOyuNEI7Ffg=\r\n=UtRl\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/shadenfreude_0.0.0-canary-20220705134535_1657028752006_0.760114310909697"},"_hasShrinkwrap":false},"0.0.0-canary-20220705194600":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220705194600","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220705194600","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-tKuC14FbOysjcWRb/g0TD5/HGn8bbAdGzD3SP9HmjAgHo04J0zHoufamXj3Fl3qzfNf4/eEeRHuY3/QE1ySUlw==","shasum":"7601f137c2ab95a3e4760d5f2a6c83c11e4ecac9","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220705194600.tgz","fileCount":18,"unpackedSize":130777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLDUB55yecJ5caGSe11uDSUSkntFKHy7yHuOlWUZ0g2AIhAKjpGNQmiPFAq1Vq9NOoKg8wk6WPXoziaL2/LtyH+/CN"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixJUIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/EA/+JOYZmIStLQCAolYEBMgXzKdqg76o+o8c95K8j3iX8AIK6CV3\r\nYkJcmulfYgR+Y9cfx0F0YtR23LesLXKKA1EgxxED4cxWqQ05njk3Ln6YaefS\r\nU+haMdFO/39b17ie1fedr2mAIlMk6tjjItMny2IgcmCkm2DbbFtpqpxLfP+D\r\n6hiHGAkU2OTT90IBSEzh6iJjWmxyu1dA3O9P6FWI18aaEhzHkCx9A71X0WKk\r\n3ftsNsrN+1QULHCARHfKTuPwA4x/fy0ElleC6g0bbb8y/IFNU54OFxs/s3h7\r\nDd1Kh2BAstQlh380grjADnXZ2Zb+qYwnWPNqVKAPmrC2xrCI+vbMU6W6zTgH\r\nUfwPybd20Y1N+VVkEdY1DLxd0PFzR1WNpEezQHN1KzMbGtQdqK6PHr2ZTjWl\r\n1scJvu3q1oz9FH4u9vc0USk02dej9I2RGJ4Op1L5umCaDia0acDi4C9sWekv\r\n1qnpRzn+EyFDHkwP/3dyOg+U3RzQ3FG8vLpsS6NTx6RTQBR8a6mf7Dzplat5\r\nQAjKWJb3ITQi8+nky4bX3mBd3vURcfe3xjWhHnVEi1F23boESO/vncJwY+Gr\r\niFb/3015aBKUx3xM8UOjpg1/kEzEHqhAP5DYPjUSmtZzulbTWnIOWqNgtzC8\r\nfDl/beBAnQaeL0vlsYVvNuT0cZ+QUppT5IU=\r\n=MQor\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/shadenfreude_0.0.0-canary-20220705194600_1657050376091_0.7043688834993109"},"_hasShrinkwrap":false},"0.0.0-canary-20220706085539":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706085539","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706085539","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6ETCWlazCHHpzRPgLJGzV/QsOBLBxmqGqAPHkr+FnivJxASUjoxaplniXJSLUa+BJUdvM91wr2B0Xb2zxitqxA==","shasum":"0295a4798589574c66a2e58bdca38bfd3f4b69bd","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706085539.tgz","fileCount":19,"unpackedSize":138854,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOtRyYCqia2GBZ3Qeb0LQhoSQii9kuLvF/1KGVxxY2UwIgXfjVM9s9BIAui9EBAn+hUrae2Ozj9WfDkQrxtgBsGig="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixU4eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWYA//T1JrudEa4ztGkhKHK4tHaMZC4WhcW12xyXVv/je04P7liqk3\r\nyS8fwW7tWhhdWdRDq8z5pyA5SpsX0gaIfV84uCKMCU8zGtupbH39nxVk/P0F\r\nN47SEESLG9e7l1wJ2ZWC63eOm8Y2DJ9Gz+/R0P+14Mevt7P6AgO0LOtB3aRD\r\nxl2Vd/Y0//Ejh/XJg6vFbCyPWJ4FPwVmt1iLzytJcPhLoMO+Qk5+kcihNSY3\r\nDCr6biBrPNCuxVp98XjcsuOwglx1peb4ziP5ZJnNj7jNkN3r8AlUlpLOWgen\r\nSs7T0BmIWGdeAmeFju6J5PduhLOubSjwilzCKU+7Pi2lUwWnAsQo8nQ0xi+7\r\nq8JmD1pXIsmREghwKLKUxdOE6cP8ykB/vbF2XPCuGd8LTTy75DT0vfpgMOWv\r\nKPwFEwcy+KWaQfoz5hLlb+LLGn7kC8wpEg2oUsqqZZmhJxjWUzEVqBlVRaGi\r\nYHDur/S4UnG6l0TXejZeyA+GyX38vaUBO3YVKfdI2qJfznlmqp2RR3YxDtqX\r\n4tbJC+RiAfd1lzyQnSGaF5Z6mGk9AWFG6TBJo2NpTbO2jU8gLVVMeFrjtvf+\r\n/X3zolu2edXvmqEfG/y154ud3hxggVbK+tPKFrMGCvGSzYeGL+A1/giHjJGE\r\nynl9xdFFgvBjCWcGTl5QFa3dhincmnqOmG8=\r\n=GW1K\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/shadenfreude_0.0.0-canary-20220706085539_1657097758297_0.6008814341937503"},"_hasShrinkwrap":false},"0.0.0-canary-20220706110648":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706110648","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-react":"^7.17.12","@babel/preset-typescript":"^7.17.12","@react-three/fiber":"^8.0.22","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@types/jest":"^28.1.1","@types/react":"^18.0.12","@types/react-dom":"^18.0.5","@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":{"@react-three/fiber":">=8.0.27","three":">=0.141.0"},"babel":{"presets":["@babel/preset-env","@babel/preset-react",["@babel/preset-typescript",{"isTSX":true,"allExtensions":true}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706110648","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-R0zLV5WkQS0BUikEnChP1Fk0u8agV1zhhbreYfylnl6aFg88PsgoI1yKsXqklA4K8XDYtoTxrsSmFSEYJZEsMw==","shasum":"b237d69a8b60d4c7aae355c74d4d345c2d6705ab","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706110648.tgz","fileCount":19,"unpackedSize":138854,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDimFwF9GJGdEcfQvMAk3r7dgGowm+q96MEuny8m070bAIhAPDBtLtOiUtjTWwJN76HmY3F/IFlymqva7q6VQo1Pr8n"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixWzgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo08g//VJzm29Kn6FlFtG3QNlkc+mf9fulzAz83D0Au/nAdRPPeiV6Y\r\nKf1S9jFPTLrm5JTBZ8c7YAOgXCgHB7bAFoj+pv/dc6YgKRXtrdqTTJIxHxmu\r\njvdo+7bWifPey5EKO51xXiZlhfcHY55XpWJpkPnS+u7NYLm605xtvCYHBDDj\r\n1KaZgbciQQwfy1vazx2rP5nRwBUrIbinhaYlIpC2KtH6bDWlUdO2RyguDVEd\r\nL1HVpAVG2gJyJbyy+NlQey8EG3PJJrGr0LAyDLiYF6je0E1dShn4MQEn6Ri/\r\nrc0B+jU2+CaE5wSVGh1bvozj8AU3OuuLP8ehsUcYPGwcou0wULWJu/qu2KZU\r\nfqiRv3OkOGrvp1vBP9OZBPzmxRX86Neh0CH0f/GWNOQI6SiD0VjzPBlV5YDK\r\ntyRHrRmBUJDOITjEcUqM1VBUCsOmJVKim/nyxlQcgiXaGYGOieo4pitip9P/\r\nXn7OhCSrW3uePC+KFlOkfxbRr0OvThitO6Cz+XfeICZs6B9UjTNVu9YB6pW2\r\nkwQMkOpSpaAkQWK3yvRFYjfMkWkt0Q/S07OCX1AQJ8AxdmLmSkGlmhccTw3E\r\nRT8OgkcdhslBYxhZGJtc6rdkOIYuuesmLw/fskXRY7crD4pDeIRzORC4ET5q\r\nyTCj/P/JJPmtLf5zNMeCXalCLIF6V4q01ak=\r\n=mBmJ\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/shadenfreude_0.0.0-canary-20220706110648_1657105632436_0.6347019253645778"},"_hasShrinkwrap":false},"0.0.0-canary-20220706110825":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706110825","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706110825","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-CSO7zHqbQCqBqsxjTkC9VHBWrhfNg+oc7nY+sqJ/mhM66aq+tDBFlhrZOAsufM0Hz3u2XLOLNUSNSFm29n6xwg==","shasum":"be4b3063579e887a4ef7d5a7756f22472fe6700e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706110825.tgz","fileCount":19,"unpackedSize":138632,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbAnFWc0vOXUBUx5RnAB1pIW6tKR0BfSaHBBLwvAT0aQIgU5jy7Xr4RvW6UrPI8zOWQjlFm/W4hoWGUmmalKQubXI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixW08ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbjQ//VqWxjb7sjVrLcgsM8nPINOS10V1Dolf10OEtS5j5kr60ug1/\r\n3R7G1ch8HXlEomSXFPNevHRRafih3wWFloG63QJIQzKxG0GktuPCw/iEwJ0w\r\nit0y8FzQkvCYqx0cNMOSrIZWsq5K3YE1+Qdhn10yaIHTmQcrqwl3GUZAzRLK\r\nCfsbsOO5HghMyOZkF6jcqE3Il4d2Jl58pmeMxjHVX/D0G7A+fuaNB70XmrqY\r\ncsRxW8gblDoFG+tfryD63pSU5YBOiv5kkOEo9Lt37zwAex5XCs/2FyHVXMgy\r\nZoTm7peVzQ3i/vmkHEEJI2apVR2UoUAG8bitydiBc3ig/C14aBg2oyWebteD\r\nBq6rnrc6oR1asoFT8jkKX0MtYvjiQXzlkoG7Bn/DrWgEsvzcQV5UqHmgJ61y\r\naTPXWgoa6CF7NPSCShYYWXVJDL8CN8JnUJIjtQ5KOvFkI49s/ZR3gIIzkprL\r\nGMtgNzKYVuxF9LZZELeWNYjtP7BKBYPRovTzPGfJCPOYRnySYU9ieVM5RhoB\r\nb1ysaq+p+rtqXhEkbj5N4GogqvaXud90x+ub8o0pkVjnfySOtgbpYMOpfqPT\r\noMcrTzExkrwMnriNY/eHu5+RTDVMjLt/VTp0xkaRWIIm7ob0e59efWey12ap\r\nIy/Kq8yyM2WO9ESHw2jGPVPmg2gnByDOL6c=\r\n=WnDd\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/shadenfreude_0.0.0-canary-20220706110825_1657105723933_0.6461465099394732"},"_hasShrinkwrap":false},"0.0.0-canary-20220706111715":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706111715","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706111715","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Ln2mblxyFbdIlSdQ9a8VWXQB0hxvZY8dYAwxz0GGRbVmdMb0eUQ85WR5Crl1J7NH6qzSLCTrQF7Sf+UaU5WFlQ==","shasum":"d55d1c8a7609b653d704a4dc1aa741809f13f2a8","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706111715.tgz","fileCount":19,"unpackedSize":138632,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu9/TWqWQSNTRub0QoV8I3uUz92CRnMArMthT0McGCOQIgaayI+7eV/7nsbeZUjTbIwHU28JaA/HN+gTgh+nQQPn0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixW9LACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmowYQ//bGZUkNxdn7sRfaxE0E2NW2Y3wHCqXn78p1bcO8UcKeLWd9mN\r\nMsWhc0jxKw7bkd+48FFMPXUGp8q/TwXJOzOq8b1aIqlvz6PiXgA/58ixGSWk\r\n/30M4AlS68M6QQxM2KBsT9eMElz5xgEZd60OwTYNClDTKC3eqVNOno3J+laQ\r\ngw4U82XVNo1Ar7leC19bwA3DOo2tsda+L2pGzsI15aRnQt8p2tNte4OLGtTC\r\nWCg8MO3fSj3Yqu57mYIgyE+1tE9cx+D64KxH5hpQd8dU2uziBuggequ1Ugum\r\nqrPcihJOIo842mqMEcx1ljJRCqlxoPKjkmbwAeHgqMfWOr4KBn14gaFyci0o\r\nST+pRKQRbfaep0UpnvzGrcjeR3/w4FQPLm/bVt8uX6tSumnS0nchTJQHjcZy\r\nrpLcYM4spbDUr5H3NFAp4acTWFwviBVSKzFdO8cqlgTJ0u85eTUNf1X7aUjw\r\nuMpFFK1CIVCzjqmfuGMu2afEj+oZOylmwJxEaPpzUxQ4W+5aDWHSeFygpqJM\r\n2pmr8Vlm7Vg63Moo1Z3guqcSLzHMhlxc9SbUbKc/fZuPn9lGpAN1CssA8yUE\r\n/nBHezL8sFCF4BsnnnDWx8ZLSaRcYr4+te0rQsJrn03mugCsRrMQfdynUTod\r\nRKPiaJbXynRoOylgCgAWRmkqb+7nKynCjLU=\r\n=XG61\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/shadenfreude_0.0.0-canary-20220706111715_1657106251682_0.6155014017468823"},"_hasShrinkwrap":false},"0.0.0-canary-20220706193304":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706193304","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706193304","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-QqoFeooJMx/lbl/GMlxCu9TSXMICVCnof1eUgyh0y5Ua2wj0ZIHRRcHwDWCcsb1s8DcepNCd14+12XkzytueUg==","shasum":"4997dbc2c0590c9ef4ea6af1984a0394d3b655aa","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706193304.tgz","fileCount":21,"unpackedSize":55093,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKLQGOesXmKUkfu+avp4UqIxiJysUgyDKjIl8xr8dAfwIhAJrTE0ms60U5pYw34gzbXLiEakFXOUBhau1+H9UxcXBl"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixeN/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3+w//eXm2zwMgF7SRoy+kh/PkIud5wJJc/xoOEJlz36/RQxtY+rvM\r\nd2XoAjT7Babev3RWoFORIM7krEE0r2/E8mz7G56zi4M1zSCvggFC9AO7PAbq\r\nRT/IxOvWeSkOHRupM1hlAaEEtJ8PlL+74tgA6qKNZAIEDwDp7MlStEghehvB\r\nmmuDJ1GV2+fIHZ7yXwmPbSD/AixbtDcPApy1JCjWeRTUb7qjhcTepXRDkBIY\r\nKtPvdb6FES2J94+do3MgMhED0sev0P9yK5IIejfynFh4gsQOJv3QEvfeQvyt\r\nivs0urCbDWrNvAuFYyZot5fub0AvhfdDcGGqVZmNgZqq2yQWN1ecSR2xuneQ\r\ncPSipYubAB59/sfLbSW/7c0x12KETdfq3E5rZWzSY6oQnoaKCOS3F6y0ZYQG\r\nEKwY2igw1cl1tPaGXQ33tv6CTiVfNsp/MPNLc+mgtz6Bqt8eq08OsP8/Tdf7\r\noKT9x9MaIuHb1uh1BXweC5/O7JO8Fol57M0YZT+8uigHgzARX/l9/cAco2CH\r\n1mN+U+mrpRzvSrMXqDRpADtLaVA2iq0nLeSQDdoEAaab4rujy9dM4ofkarUI\r\nIcnhlvFKUnTanbPNf10KA+avGbu5CUbWC0N9aZduohiMEHWotcZY3UqQ6sOJ\r\nSuW1ocnjcJmiDQuWIZ5I6BVZdG24/kyXZQ0=\r\n=95/t\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/shadenfreude_0.0.0-canary-20220706193304_1657135999695_0.6839843060642701"},"_hasShrinkwrap":false},"0.0.0-canary-20220706193631":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706193631","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706193631","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-DUcveWLbrhrIr36IprUV3LQZ6GB0uIvTGvR9olMM8+3VyOQV0zwCK/x2wtMCLEPMtpwkrrujPlg9S/Ev1eUD7Q==","shasum":"10dd0c372402413d747fe9959cf469a8e27b5db5","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706193631.tgz","fileCount":22,"unpackedSize":56426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQQRb2sKiVATu6pK4qz2l3L4QC3/oPsRIWo26JkOz9iwIhAJEuKzXt5wtsGLR2PWBDeNDr+p/mfALVhvgH/xt8qXJG"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixeRVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovixAApQd1I9J7GiCn7VjRoegvuwNGUupVVMkPLwZNSV5BL+ZAH5YU\r\nY3eBkIkteGU0G3jg0DAfS3idNlrz6dHr+Fj9rJP4wiPwIVY0r8czF75eZEHb\r\nwEtt1BqgxN0Si0L8jCtbcMEdvQZM4+u8Ina5N1kFSAZBNglGUlr2C2ELxiCv\r\nDxEePgQ22WETdqECp7o2s2KngWjvyxP6NueCxOjfnKFagB4DdjYc+U8N35dh\r\n4GgtxvwV1zrfiI2/6RhkyUh2Mm4+XSmQ5XYJDZ8wlTPYmEifbM/7jndqkTdu\r\nm7VLU7KF9ge8D4y21c/6smIz8lpKxoIsWr5QgiT2YFuQXwsh9zcYClur9gB4\r\nOaKt5mx57/JRUAZzgfdARsKXW7IJfzNIIQ8F6ViMMqxfwRU3651K0e6LVYAU\r\n/oFM/xTJAqgPJnRrcS3lan3u97DrB1p86vPp29NN4phw0Md1DGspPICi4Ln/\r\npCFoP/5LBQXiT3hwuF03Il8YvceD+fYTjBYDnWKJOqyAA1Nysv9OVimn6oGb\r\nqcj04VIs1cUPuojYQV4YqcmjcRVEWydlOBNuzxTQsClU/5hAGWMHW9f9bOpQ\r\nuKTnPu4V22vRmdt04ZflleY5VyM5ny4yDzhmR7ONSXjfLVvh2vwYbdCIRqLL\r\nRVDh9Yr5QqGLcMv3EoXw3uvjNHNzGGJoIp0=\r\n=iSRN\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/shadenfreude_0.0.0-canary-20220706193631_1657136213564_0.8355407277830609"},"_hasShrinkwrap":false},"0.0.0-canary-20220706195911":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706195911","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706195911","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-vj1q/hRuQwIXKOHzGr0vlMocxNumrIxKLlkkOxT5co2EywPpuySTP1tbsYMyZodDIR75xsCx0AUwlYbZ4/F4OA==","shasum":"c3f9fdc01633a12141d29fd4bc69d3b764b9402b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706195911.tgz","fileCount":22,"unpackedSize":56818,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpvn+ErIkPgBwLmRZlmYdwTe11XUN+LztPmByMKfAETwIgSGjhs8DDAcpaGhQzOPcWNU2yzDxxD3cElgh4go/4ZP4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixemeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0cA/9E84gtk8BIM3NfpLnLxXhLYHGuaTCR4TWR++t8fzunt/heUN9\r\nZlM122eFqm2rdZhQxTfEcFIljY6sQbqjnY5VF3wiuxAB+H4LPckP9dujN0gX\r\nMNsSo58aQvP3dWXGljbretE2TCZYVk/BpVUyXfTEsleZ/tmz25iuankcDgU3\r\nLdn+EmS/Ax3UBYaPCjgzdVaFTSr4NtKADkgM++M4EbGm3A5dU8iMButTVVVQ\r\nQ3SKDe3BUIGUALbzKxHqSF3kKlNrAobj5U7mWmo7uJF+ZAuyQAJt0rsKbXfx\r\nDcfu1f1Z+E4Pwx7EoqWL+vi8VRLBwu+O/dA2ClYrJFykilQ4YKGu/fpPIbGf\r\np9uhniCi1tgUPmGrjhfzpZil4MLPJ5X9P933TZNrRZqSYH7EQvWNwoiA7m/m\r\nU+yQXd8DymoxXXACjv0EC2S7juMlFQgyIXmvhUZz1ecJnzekeH1P4wrjtH0l\r\nf8qddH0+dRr45EPB4yyY8SIcWYITiFDiHppDNXo3On1mKa8W6NiPk1oXspi0\r\nm/91nkR1sltyQwczVQww9ymOKRcXyiruPkCbmRH7jnotYDPrt0LUZuz7cBAZ\r\nH97JGH5RcFq2d0mFamToi8k32H58sqjMRxzig9HpZrBmYw3sZ2QnMhyWykLV\r\nGZeukLknqimmAPUQSe2Jb53w77IxPyrTa3Y=\r\n=60nJ\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/shadenfreude_0.0.0-canary-20220706195911_1657137565941_0.10454588031904266"},"_hasShrinkwrap":false},"0.0.0-canary-20220706200520":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706200520","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706200520","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-40hebYX8obaslC7MtGCuaivwAcvNVL5izbTz2Oq7SHosKdlGeti+mfo3yAtgeNAYLmbt3r8vshhBoBWnT1t77g==","shasum":"923bd69e5cc5a8bdd5da263fe84c552c151f530b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706200520.tgz","fileCount":22,"unpackedSize":57044,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICCV5nSr0hYzU7dyKJTWzfoOxRVPfmdvn0P+RVw375TXAiBaFxP0m7D/hwGQE8V4VM+044nqpxQzwhlf6ezzcRv/cA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixesPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoikg//eWZhrqXJHQFsN5MuiSrsett0CsF8OYIauwF8gvOF1L3pi1P9\r\nVR7A6wPXAXrJ5R7MccGQW+/PAXqFHwU8jJ4EI+bxYgcD2BMogMWP7DRe5mDA\r\nsakeypO0+DUEznU/HslapouuUwRG25ofYCaNRCaQJtxkHK7iyekZWieqELtL\r\nOApI9KA/GW5rBQk8HkCBVE/NmfV7ZVY3bA7GI0D9u3Wj+MPbv8J7j+doII+F\r\nk+obvqDlJSum3aNiDlVADUq2Mic7mBKdY4ZzRBJKmXRTjgevUnbZiDKyu3pJ\r\nt4S0n0TiwAPKePc5jzXZ1ogSAg68NC6e+/XiIIygffCGOsgm/WwBr1nehwwM\r\n9HEEOjdYcWNU440RM4EgXPwSgIkFVuLbJauE+OVupWrKzZr8Z63j+jMwNF12\r\nkI+w1iWkUK4fUfzkpoW+o+XsJ1/uXViUvBj+RmzUtIi7lnd4dP1/e0IwY/Zc\r\nUttA6UqWSDFvPOInsoLt7hEQaHM13U5b3OOhCtoTVrnbUcAx3ithbtPI/ylI\r\nD0+QSn2b5+NRnPnWUVKonjkC9HVVl0IA86fGjT7LF4IB4MtGVaJs40mtjpA2\r\nde9d2Pbecgwt8pSCt1eBZUmp0oRxxGsIWps508lQuSjz3IFtKrP9LyMWuscm\r\nAuS+cjFWBjGcLH9CqwGjWIUkYLsyo7K6H2o=\r\n=cCx2\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/shadenfreude_0.0.0-canary-20220706200520_1657137935337_0.521954474143836"},"_hasShrinkwrap":false},"0.0.0-canary-20220706201258":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706201258","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706201258","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-0WG9NhJ5U9bbDyySwZml0U9nz8wCTtguVBRS5UQ1XeOmoedxp31W0ppfMCwaCvPPMAO0WhbDPKhJSeoRK0m4Jg==","shasum":"c9b0f4ba5387604df0e0de3ee9e58e1fb303c48a","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706201258.tgz","fileCount":22,"unpackedSize":57044,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDS4gv+I9Iwal3VS9lPNxmBGX7jTuQLIdJ5NoCdqbbzCQIgBZQN0t8vniiyLHCIwXB8qaerGUS4jM7q3R0ciATnzdE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixezZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroOg//SvjK8v3ptAIDXf1PqaqNBrbK8pmZgYm/HNkWF04e16ZOboxa\r\nEO/GJamwXCaN3GayI86r82Rbv8BvGqKRx2fxfPeP7tymcTUQs7FdA9S4d42O\r\nqVB2wocP9GCmWknB7Il38IKfsoqLJXkCqDibGVltQck4xIkUEJroA79A/i1C\r\nfiOrcSJTgTjgw5O68CNF08dRGx8RWo0nR5iaAHPCUxhyUj1r5MtOISgmqj6l\r\nfaFdZKbh+Gr2IuvbUJ18CpxXh6RXMHJrGwWiEzN/ktEJ9WelpL+zeIrc6/ZD\r\nDXDQfQxA4QKWpKmtNMkj36C3SCbJYMHqzf5gJqTtqnihosxl0iZM3LmlzVQa\r\nA9FVqrgYrJA3O+Y85Nsg2HCM6qglxnQkYtrXegLRGByryisGL1xj9wLI2ovK\r\na9k6gl6dEF57zchLnRXbuyc4Sggz+3KZEvWYx2V7NBanAjPF4paM2ZfKj6Q0\r\nOoSuGDAh3+YF1xYyRV21MzesQmKdRWV7P2Aot6rJW56TlPuZeoCt8Kx3vPDR\r\nndyEYOOLJOqDd3yBkh1HwU7BuVgGBtqxzRlZPuA7bxEswl7t1HDlLrmPYVdd\r\n3wkAR9dPHdIr34ZP1DPwdBX1Ivkhg5anEU9Ps6mt4yowsYS7VwhksyYvrqfk\r\njBYhykRBpAnyi8bslmlaCAfR04HZTxFVPFE=\r\n=enef\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/shadenfreude_0.0.0-canary-20220706201258_1657138393026_0.7091619026473015"},"_hasShrinkwrap":false},"0.0.0-canary-20220706210945":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706210945","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706210945","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-fhhqjMMfLFMwo5J8jUtJWm6zDcjH3Aim/5Tqq8iZ1sjqtxpXqpZ7Bmpkmvhtl5yX/ZiIn55Vq+yYdG2k8EpPWQ==","shasum":"aadc6740bade4d02d787736ba759ed0b119b4a95","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706210945.tgz","fileCount":22,"unpackedSize":60417,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSWsOo6ZSzkNmNdkpJQ/ifsgGcsPu2sR5xzZ6S9L/bVwIgdz199/Rvf94pRGWdSlLhmljls1SLG8z+4GuAZfnQFTA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixfooACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqPg//XzkqXw9yJ8QbADdYhny0HFIhYpLgRa/XUv8biJYNtUp8UbJ/\r\nS/+C/11UdtKH9GBzmY8yKSREo8YAgxG2n7GR2FU4aSjmcIQElgqvm07fbZzY\r\nVTYGAc4hRWwLo2V93DJUV/zI73vjorD7/bTnSwG/5sRaBdJM7TINmBBMFLbi\r\n9IbzzX+phepA+BeSjkPA/Z58aGmz9IcwPqX+opLhUvjSradaUyUhj6BVi5K5\r\nIbxEb7gE8STV6sQdCbUt2kJgYU44kP9rqUuXs0CDp37b2hRimuUKWy2w9OqL\r\ncr45tNIi2teov4aQphUL2/RI8YdGa0HRPLXgpaii4l7szB53SBUkcsSvXD7j\r\n8NPi0D9YvbtOL+7GKpMX47NTeNRXraA8meB5fsXBmr+gl8aPiqmt8ANuE0/R\r\njOqslmKkeRkVekoCNvgvUjh4PtELvn6vSCDnBmSkbuOvPM49ekfQtheAYmdG\r\ny/S6OhFu/UAiqPwBDBoPfm1PbMlx6bac7RjYuh0N/niN4jHItkqCkLYu/Fa2\r\nPRALPExpWs0MrTPc2JXoBNp0d5pkSxk1U/qyLTeEVQZ3St/eUdfM1UCnJ7FF\r\nubvk6ZUFRvKoFTml8v3lkG8mdR5hJlbSui7k6rOtPlHsIZ77vTT7U7xQDCZ4\r\n6FBXuS4dma6iSONA6Je+mMIS6jYu6w69d3I=\r\n=nBW0\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/shadenfreude_0.0.0-canary-20220706210945_1657141799953_0.6323387617663723"},"_hasShrinkwrap":false},"0.0.0-canary-20220706211041":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706211041","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706211041","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-R/umzj94QpC++nJtVyFmbNsVWzJU9h6fbHJhgrXRW186yz434JvFXTHEBkRBlj4oUEvzsAY3gfjk7KmcKhp2Sg==","shasum":"583f2ea757dede36ae546e9b65c38c8a2df78d70","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706211041.tgz","fileCount":22,"unpackedSize":60690,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3ql3RQyYuiPS0qg3jf+xuPUME/K32luq1PaNfoZ0izQIhAP3qoRWWLu+UUQQ6s9kjJe1vPOPd4ALpsYYQZZY7xjhj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixfpgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovAQ/8D0IuZaJwEBF94jdZHgIr4FQ7s3L4DdVA0L/S6RMrr3VPt2f4\r\nDIrW5+7NWPEfonqbpgsAseFJ465lOa8PQn8aY7azkWVuAkTPe2TQ0KA5PHUB\r\nIKkwlp4Mmtqq8xP0P24jJ35HkglUGsSHNp+JNnXjfMW3X+RpROOqPwkdy5I3\r\nv/h1n7SvDWeMLcCX53IqOVz6Z0ISPk70xB1xZWIo5iZOs3Upr2UmkCGvR15W\r\nOdTda09Q/m1EQTMnUtdHXJgtlrhSkSG9kX3Uh7kstaAtWwDMjJPlJqRkIzbj\r\ndXta7Hvjt1PXX36YHtg5UGEvPLvUHoIS43pb6GmrUADBWUP1/hKezV2LS1Uq\r\n4PRv1lqxYWphlPb1J+1H7eSxbmFZMzyNYIuc+ZnbEvBGNEMvD+MACVIPB29U\r\nkDbE79e1BXmI+Q+vxsk0R0RfehelnFJnkJPjZIgKwSd5c3A9lxZC2itj03F4\r\nFpr8goyeJ1vqj/XuVTYbm5NY6eTre2r7hyUfzzGYe6HVHwqv/mrUTbB2CfGc\r\nxwH0FmCrUUb406n7s5eCziVaHprk+R1mcS9OVNBh1QMvAoLn22OMVpI3u967\r\nSJfxQhQNDTTwbA49n+vdauz4eRHkPVIYTomuFoaftQMN+zSbHlN3BBLZ6h1E\r\ni8LcdjjbzgpeKIYaH9Qg76FgfeJEir2TzL4=\r\n=sH9n\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/shadenfreude_0.0.0-canary-20220706211041_1657141856258_0.6240894109856334"},"_hasShrinkwrap":false},"0.0.0-canary-20220706215653":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220706215653","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220706215653","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-kzGlSznxVdXkjmgRjI7t7ILRRayWF6gvs2CygTV4tp/pC0/9W46JDhrfJH66zgddUsuyv75XdYGUk6X+m37+Gw==","shasum":"eab7577ebdaebd614da592a7807f8730ec9549c8","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220706215653.tgz","fileCount":22,"unpackedSize":65317,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3W1Wa/lZt4m9vgANkY6uFw4c4J3+6YBdcRvxYzB/PcAiEA07fZYzoVyN5nWHiJgQms0i2BSkUane89b7/BQOwcciE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixgUzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTKQ/+LCnR4xJXUqaQChxUic8dWfyR90Vpu2XyaxkvxTa3YkQNhliw\r\nEgwY71/f1EiivS/TR+PORGoD/zm5Pw3Ai2KBVWeAeJNIQE/j3QZFMILgvgDO\r\nR9kMVnUdBuH88AdZ/vhzfv9QJq6hnkiW7m3mf64oq3nJ4IEe7X1i6hXaaM3a\r\nK/fmjUtvzYtZTY2l6264irlTc2U6PejrRYK5drCWJv/wiTIa3JPdq+CHP3cv\r\nYdCHKFZ9MqjkQwo7cn1qL/hzkNpTQqRi41B/o45KyUXkQ8SIaICiiodZH6BR\r\nDc8oILkf1MkPieHOUCfz3s9nO6jE2+eWR4Gm8Lh+URq/v/oMFWe1aeSyuwPx\r\nwOmy9xCWfj5NeH8tKDNdVrVseoXun4CawI33vD026HZU080Un41EwQJbW+Gg\r\n+oxwXIT0WikXuxXXQYhTag6XpJNDhGUkt5ufJOesXYxnSKBJPpMHoPLmSKL8\r\nKMCsFi0c8yXlf5tfmPeblTgtCHc0HWN58MW6EVR8QBRV8JwFmg/YxLCGr/+4\r\nHbMvPIodyJqWuwgW6ZZDT64XDAX0EF5ppb03IIEg3Tuj/XS38NXkx/drHzn2\r\nSS/KLs7B9kCKEHQ3NcfFb4NCDmYdZor+ibXqB/bPmwz2yKLlBcB4mFt24NNP\r\n1RnkugMK5q5AjgjTkYY/HNMGchHLD+yJL2c=\r\n=JB59\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/shadenfreude_0.0.0-canary-20220706215653_1657144627512_0.2523847586084216"},"_hasShrinkwrap":false},"0.0.0-canary-20220707074840":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707074840","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707074840","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Vnmot/pbz7tdYyQE3HdPVIaVlPQHa8QaPRSYbSuDwg0I6GlCk3RnmkqAfNE8FUsT6MR3ImzdHdEeMYrlM8hhrA==","shasum":"d9170313207f3bd68feb474215274631a99905ca","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707074840.tgz","fileCount":22,"unpackedSize":69199,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyOT4rHncRok0PM8VWar7bKhLVfeYYW291LqXx6EdXjAIhAP2hRCfhA5lnUBtLicbAuGBAD4X85Yw2TteI88oMyU3T"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixo/nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMhBAAiFaf3wdXhwh8UJNzh6FVGKxglyhR4DIhPoLvCv884tfdUr2c\r\nq9tzz6YngcozBH9XdGYWh7wPD1j8QgygFl0K5t58VES7O6J67u5kWaG3gEF0\r\nhq1UDT2kPTvJXec802Ofwe5LoGoxW6LTQsvRy5HobyjKxPN6jRBUvObN8nHs\r\nnHRVbgFSzPbd4mhy5OV9Q5hN/pnISBHOXimUjTtPDZd167syJF/OKhmnWiQn\r\nF5BlrvsitpEqKZNyfgbqvRXSdANOYmGc13w/PGlD+kEuH4iHbuKCUg1rTEbJ\r\ncFZvsHhQGkrdKscfExN40fvhwbnNP5marfIjTjrXVVDlwfi2tshJe3emZ9aR\r\nN9cbFqWUrWZ+Nev24UgrPmZ1xyxh7SNrpgHBRZlF2YQePuTxVtpC/dzGHP/z\r\nXMlIyFFkgOOECTf5rvclCwhMDeowrBtkv4XyefH7oIJwj9Hs7Uk5Tec4xviz\r\nn7wFvA8bFtCj+F1YDmLUVnx/XPjCZyFxXy/3/H6a23hS1elG4E58Ng9rfvVX\r\njfRak+7XnpRfsFnyQBKdjIKeAGE2jDA1RZtUVgCVPTNgZASrNMOSF4Rk8UuW\r\nCaIUe0OLzkrku0vQN1cz31Mz1B5K+nXFtzXuZsYThFX9aoFnZk4S3D0y4Qom\r\nHzBAcMSsXSItOIf53TnseDTgh+ar1eqfIUU=\r\n=N3Nh\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/shadenfreude_0.0.0-canary-20220707074840_1657180135243_0.7351850240086526"},"_hasShrinkwrap":false},"0.0.0-canary-20220707080120":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707080120","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707080120","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-fgWO7z/d7omWqcvC4Fbb+tK1pU9FAzQ9Jf1LdDQDn8L9Is+2scI/wwFP0aAIm/PXxqDwDWZHQVlS0RVYC2cxDw==","shasum":"a4b3d4b799fb7f3e38f8a7b3cd3945add6dd85f6","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707080120.tgz","fileCount":22,"unpackedSize":69365,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDcUR0ebFz+oOxG45NyhjFzfeJKCPq9uZLIetNvRh7+wIgBvwsrDVf/gvhrhSqYz1YvW+qkg2scX+2XRZJokF1JhY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixpLkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqChA/+MY1jOc8cZVFgcuB+zKbTQZrnVu8RoAxFKTt2zKsq+IEwdfAA\r\nNUoRq2hAJaItVuINOZqpFDCM6XWjmjaf8ENLWGPnS5tQlY6LrsxK/OayWaXU\r\nFxK8TtcjDJCMEffRBQ2zkeJOBiw8xZUrZHQfPq+Bf+f+DKZO4HwKwVn0UKyP\r\nB+GPc5RW2kAldSPhptCrg9yMJz6QYCUUQNP6rV+8ttky7lyUi7KlDK+TgfBZ\r\n7Zq6YMw17Da63FcXW7A2AC6/9/NxVO2l/jsi1S1l0OxT1cwGcVbECK+MKKJo\r\nh0pMvMpR7PpvJyZAXraBUAHjlY+4ZtBgRLLngqxCmT6TeKrjf9zChpqik5DY\r\nGlSwGao763ts3a1Hx32vgw/iW7e0lUK7mTV39KvvXPFl1ZU1nacSeNxvdL9x\r\nMI2sX8AHayEDLttqpsR868Tf8Wvk/3HZTryGf+kdhaPtQ5Jk5ZbYboxThv60\r\nJ48X1GkpRkIXhwQwydmXYp4czBVQFkSWjcdRqNZ7FwDSzgzX0Uka+oaThDxN\r\nz51asubeQRx5KqvBWe1dNAuvT9sRJTRjX3CH6EPuu2aWRHlA58ZNpV6VuN3+\r\nirvWvxB7mvvK1uTI3YvTxsbJMTp4hNPEhUVvoHD8awB6CFh6WNiZTXBGcxwx\r\nAnfzP6CqIlgzxx9DbaDtiZ3RnfeFHVz4pXA=\r\n=dcB4\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/shadenfreude_0.0.0-canary-20220707080120_1657180900299_0.45116818655814805"},"_hasShrinkwrap":false},"0.0.0-canary-20220707081412":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707081412","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707081412","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-gwOkTSq3pOXnVrB7CotyZ6bA1zw40qId+OSALR9TxiCZAXLkic51XTjR+VN6A9a+tJkPCdZ4f/L9Mox/SB7Jrw==","shasum":"01ad2dc0d4e856f97bd28363a178dc6372491285","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707081412.tgz","fileCount":22,"unpackedSize":69629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB2kbcqGhy8f+YfssTnDJkwSgKc2Tam5mboEKP4cPbUpAiEA1Oru524RK9q3QDQcPKQ6vCC3gn03FyymS/GiBRiP8Lk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixpXkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPAA/+L2LzarhL9BRvI4AGq37qjDmL9DcrA2yjOI9jNI+eeWUT0wle\r\nF2vCu27Qi9ETx30CCtq4S8zFL0vbUnhHuU71lBumqLTJS2qK1twtYUdn+4eQ\r\n3heDekw44BPn4M7+103gui94uWLYVF/RRbU23s7Bsza/ZRUygTznSGxkHCC7\r\nRHqKIHZTy5sCbYdqFUpcMN89oLT3RIfa4aTE/L1EXbkNyyf3EI4ineNYjXZa\r\nouoR546mOvIsWKqndopfVAFB1vxEnO5q9+lcA3dIt03vbw1AO6Gg2Mb1gebT\r\nH8efL/P1x5kZ7bJGorXCKkoux4NWuKXh5UkTatOVYxHZ9iSyKm0yTLXheLgg\r\nNfenxvafHUZLRiEmurY+3Ivdjkzopo1FOlwf5f99GJHxlACTwAb/2b4XKdv/\r\nKHoxxKbE64AbF7WNCsCL0Bdx4u5id8uL/CBDG5uXORh43LFCtbYMqIF6x3vb\r\nFIEtIFmLbyslhCVupsDE+486Ngsjv3u/7phinNKZYdK7tzxUSTmmlHKtdFWj\r\nsyAOt09it7q2nB3VwK//SOnxNeaKfejxGUFRN8CwTcyZ3VzHF44s1exPvcVx\r\n5HfIugLk0PoR0SJmgTupbCVmXSWI8X+KSjExrJ1Zio6p6aYCOL4YZNOWOZTO\r\niaDKCJblJ/S1k5vyt5100lm3LVF86BSe01c=\r\n=d6Kf\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/shadenfreude_0.0.0-canary-20220707081412_1657181668121_0.24437726884018618"},"_hasShrinkwrap":false},"0.0.0-canary-20220707082306":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707082306","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707082306","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-R9wSIvt6KQI/jqRYb4moEZLPEcz7QqZMVqcPFyoozPese9bxQtiVZLefT2Lyb1yurO3lHCKp4d7hxC43QMaKrw==","shasum":"26b161fb6335000ce3b898c1a013fa2eb8c2fb9f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707082306.tgz","fileCount":22,"unpackedSize":70418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHeLPw09cl4BrrV4KyultNvM2RgdGOhSluBNTpB6P5zaAiEAlNfrm44bpPB7e3sewAK1+Qc9hF23VSwcRrm6vJcMSZM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixpf/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+IQ//aBqKrP+5d0V2MFin1jkhM+cqp85gq70V2ON6gcAcMSWNcXjt\r\nkrWPZjvT3JeVsI3P6Xg+NxFe+HGKI8TwgOTewNJ8hjOq44l6l0mcbEbQzcks\r\nFwH9F425l8xhabu+XqbZs4Dqt/ksW5wxzQ8v0G8WgLGMsw+ciBFxbiUmLSNl\r\nxz49iqyRSdcmWn+C7DrNGJcIXhIIrB7kVQ9idNBvDv2uebLX7H7oEwanYxAS\r\nQcnS9SKB7TayDlWyqQJ4dBj3iQCtHex7Ou5O5WmZPcuzRKcxBBnZbHwSIkDq\r\n4Tom/rbGWNoVtl1n+vDbLlpWV6adyHb5Qw/OwnLcC6beiIciOeCDhyVoMnPY\r\nGs5OhEFYBSrdTijOjThx2CNGZzY3zLVzN58hjFpMyCcevpuiLzKyxtRay7NH\r\niRnHOCHK3I2xbSD7yhcc5VSuJOloM7iIJkKGwrih260TXdh8Ncu4CNTycnXi\r\n0KppG6n8tLDmTDTRR4roJ3W7kn4n/a+Ky8lBGPEIGxAlu0y9cAfx4RBfYyqb\r\nIYIaqANySVKDyrIAjtIR02DHpEpDCiOV+01reOCPFuvewI1diq9/JFzD9wHV\r\nZqukc0dzGpej/5oXVPldFO0/Xrz0mJHArNFqhL4Eleh8Y17srBP2KilvHV1i\r\n9aKqMz8RgZUEJl1/DCfz9JQ6L8a1pY/n89o=\r\n=eR01\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/shadenfreude_0.0.0-canary-20220707082306_1657182207015_0.8332136151706804"},"_hasShrinkwrap":false},"0.0.0-canary-20220707083339":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707083339","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707083339","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-1JhkbmS/7IlSDz6vI1lLgDRT0J3jn9bQP22NHwv5uiiE8OO+8ExvhFZSzFG5JS9BtG6Q44JmJouGdCW4JFbEwA==","shasum":"10e1cac6fa18870b271ce225a36f24a7e9c17086","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707083339.tgz","fileCount":22,"unpackedSize":70418,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFOr1Yv9l8olSUlpFxttZnESdpCAnF8EVyqOFYHHIjxmAiEA7qKhGDwWkZo+s0dyXDrcumIZhQt7nlAjTYo2VeM3XNQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixpp0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfiQ/+IZBtzHOSQAYoTdSALp8K0x+sCuXHMldn8X1QyeGLA+xqwSOH\r\nc9Dc5I9BWHOhEohxYIyfy8uPiX+SC63X1UCGyRNskwWoLpIRSvjPfu8YmZ9i\r\nZBkCZm1jwe1VPPXKc56I8aLVS23KQ0K1EkKV+8yohlEO+5N7AtcxkOUStG95\r\nR83071Zuv3pjtLA/FmJQw/z3gXmLGz/LFUjPHG9M7TiMWfI9OJrsl4P8PxVf\r\niUzOsz+QVsio2YmA06O/FmCyNAKEgqZG/OwR7l2xQDgbLaUpBOKtSnsoKk0B\r\n59nHUEGYAw642PiC35+yzTmB71PuSbKUiMsYO6XkWIuSY0HIsjEGjv5uIy1C\r\n/qQG02S2QBnvSk1iVYfXGXk4gLHYrMq5s3ep/mB+lGhgPfANT4SgpXTtVKl6\r\n1IHfHo5hZUtVchy/66ZTQEMuIF0g26FUVCK5PkEelYcYU4kqXabLqAs01HEK\r\nUVKQOWUCavuVGUSk/YrTnioAAs1ZZHiFVHTTDhB9eDEA/aaoexEbwsPkXKFM\r\nJ9r/FQqp4MNK4D5kaD4IwPghil2VKDHGYsa90IIEEH73S7WQ9IHDiubU4vZt\r\nkS9VL9xgKZQO+YlYqlB7fISDQ88/hfVWYd6Ra7VoG4RfEkAH7a5XX9qCb3M3\r\nARR0Ql1TltIAFSnrmD3mtWTaosv0SScjlIA=\r\n=2nNZ\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/shadenfreude_0.0.0-canary-20220707083339_1657182835935_0.7709996227825835"},"_hasShrinkwrap":false},"0.0.0-canary-20220707085441":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707085441","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707085441","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-hleEOo2wYRHsnfrGe+vbSl/+/FaGBGjNsEpV+UwO+xVykDUe7lp1mYuIid71wuKAX6shqYh4qSP7hHRvIrlxwA==","shasum":"55b9f11877e83f97360c7cd10aae461d0fc9231b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707085441.tgz","fileCount":22,"unpackedSize":70305,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyaP/7jK0a8pcILyoHWowU2BMQ06VesNJKC/Du9heYQAIgfNV2McDwfVZQ5WV1A2q7V0i394cloDRJlP+gIo5HotM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixp9iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmprmw/9HDjz7ykaaaFx7AduYn4ipOALFVUW1s8K8XOu4U2RyQDTsbkU\r\nm2q782Udfho35AOf0nEHmAVw8GqjsEp+H3pWwsVkEufhWvtAHCDUj61nESsr\r\nLHiCIvVJKcmgkfB48Hyz3aiqtMxf6eHNZ6LXKsv3U7RK4MrIoLIG2W4/M6Cw\r\nbxiNit3Yi91ZOxx7rAo6QF+5waGtKzAgmrM3H1yNw+0384+WCR3DCTYHAdT9\r\nko64ktwL41VclHorshRR50VD5NBujUWsVgHfafrIHem8vGJsCOqcJd6cCQ8k\r\ncDie4opy8/SK8SKqB+AdTM1AF5aNAbXrVgAVuBC58GTo/i1hG9/Xss3WHQau\r\nTSQwmRPosXyBeneba8jbqtCD/gBz+3QvmPv8OJOuZuzj21qiEh7XBvMKV0gv\r\nzsD92UEvOIFASFgFanT5K4wobiGnlhB0QWPjMmM+KRInsHMn8SuSP7UzAptG\r\nVTGc0zbRXra8R5LiuB8a9lOtClmAsWwIuN8c8lLbDxPM79YPxx1dvBsyIuPU\r\nlWBfKRU3KJTC/+/PqqJxQPTdbCAp6zk51dnXKgvdyLTNmAgjIOhIaP9QIgyE\r\nHX+BOrcoQ2wA+f3xiiNYp8HodjJxnZZnCo01ImBN4sYOnbhrm3qUAS4DEREJ\r\nhmofb3KXcB5EVpemes+2JdeIi968Peeqa/E=\r\n=pDqA\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/shadenfreude_0.0.0-canary-20220707085441_1657184097849_0.1742770570245722"},"_hasShrinkwrap":false},"0.0.0-canary-20220707085902":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707085902","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707085902","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-G+C55dfE5Zd6CTX/ZHQHsXtL47beDWyjPeY8AqwaLHty3hw+zf0B1ArFvgiNjRRjhpGtqtyINs6ixN9ThaqYEg==","shasum":"2722e71cfee07a8c63b204662285812a7fe79819","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707085902.tgz","fileCount":22,"unpackedSize":71135,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrb/t/PdesEmNUr+ZZxVVkB36UsDbMp7LUYvhUuTG9vAiEAirtQ3kTufpR9K7rfKV5/yov/NP7JiA8xClw0Cpwx9ec="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixqBnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrwjQ//e/lzmmsMEq7jra36NWIpEHy4laMcR+Z7srEoU8EgaqEFCJSc\r\nh2/C49kQfTrL/6YCXdCtwuoJrK11i3dgUskeG82G1+nQSWGOUUV+nQ1KJyTS\r\nJAfmOSiyHItObEkBq44SZApHInCSONwUMwLCjABD6jLBe1YASgJtJusR7j97\r\nqkU26ExsWEOXUDgjlz1bRUpfnda3nHptlLjZ7PwbVMNhYduZeA8ZKA2LQcFF\r\njICU9uuEe9nUyUzHMJAcWdUAO++4WX4DxJCgFFSla8/QWk0jxBzc/C4EVdxI\r\neUhTC/vlraYyK+ftGvmUbilcwGItDdmDH1VjP1nb1n4ZnC/Ml19z42joXPkR\r\nKQHVD0bI857dDJ86dvq/hKx+ufm/Oh1pR7uoHYZv/+J+gN6KDNapvvgKZh2Y\r\nT2v9EQjjDA23szrYXHuAs0KazjGhiFd2L8sFs9NiiYGomqvYwE4JfA7yhQ7w\r\nJDzj3OCmelTYcekzn6q32Nd3IGldk1GUG/a63VAi/W0t5m9regEv4HkIs/Vx\r\ndSsI2/ClJbMP+Js8ftaKrtl2TdHBjVD5roEdXB/8Gv9bJEQnLxG4tc2t1YYy\r\nr/3GKGQqmXUSSBI2qM3ieD9Kw6e4Lg4YjM7SjT5HZ5CawTcIL1QZ4pbbGMmX\r\npP4k0/sAZFhGIXQkll3zLd8wXECWR7IjbUs=\r\n=MCcM\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/shadenfreude_0.0.0-canary-20220707085902_1657184359415_0.1607161840485789"},"_hasShrinkwrap":false},"0.0.0-canary-20220707093602":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707093602","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707093602","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-E5LrCVbWI6yUuPR5K1ZFd/Q5Azj081vJOKxjz7iYLJH4lJooN25HNMjNd5mCW0v7SLOh2JkXh/y4Eotk+sFT0w==","shasum":"6e4b07047035f8bd5da10db2f44a00709f5bcf82","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707093602.tgz","fileCount":22,"unpackedSize":75945,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGJddINO4Jq2SRoD18xQoGPeyhHQ9TG9jIQtfW4JqfW9AiEAzXu2fWR0MXH3X3DUMxoYBWEKJFbyH0XRVTiPRMd1NfA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixqkUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoU8A/5AViWMxuRg27YjKOvs0TA/ZY1MY87LptFoPb6Nlp25zUh5JPA\r\nDbxTUv4WWHfR+QiCWyfqfbfVLHnzK2az0z+ZRlm3ZKEcKCYHbBdmV1CtESnU\r\nQZ/Kh1J+FGzcgVjJBx0dKuCtdEzLqIYbgItRR3FnmTetDyv+wAMr5jbrBLTu\r\nkHsnO85iESp/d81IIZ4vATXXCYtRUgaAeL07AUb55y8LQcdN0XZF5euaBHrq\r\nknjhsT7Jd1FumN917PWsuBHViPV4txUQcKZR0EcJDfu69Rr5c2Ynz8vKFrhW\r\nI/I1g1qbtu3STJ48h3HOocuchTAeJM1xoyFztzqdPUcRIaXysEgEI/hQ2lNg\r\nb4+aFORl7OYCR4Bgx2qc8LLCpW5C9+dnVTB0ZNsbi45Cto6WvgLKzl1H3/kk\r\nqMmD7eBazZ5aeYpQhIUAOQpuluIwmGXto463avam6Czdj+L/dkSFnSH1idUu\r\nS3hLAGE1VB62BkwY8otOkG4GbJRkA2wcd+Ln9OLWQ0GLL/qL1CZmrh77IU4R\r\n3bfOiBcqmd5dj1fp9ey6T+BYw9f7XSVu5D9YySjb0/31CXvSCYEzwRLm21cd\r\nZkPD/YUbgTqJvC9JF1mQs9lM7VENAtBiZBitpMptaihO57w7wTbwwGBACKV5\r\nkPatt+Qe6Z/kFlerY7VdwAepQqdLJr+7/bw=\r\n=iHge\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/shadenfreude_0.0.0-canary-20220707093602_1657186580027_0.04760669305958487"},"_hasShrinkwrap":false},"0.0.0-canary-20220707103051":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707103051","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707103051","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-T3nUeUomJikW/OFEACzN/2kaeiEA8QDgdRArLAF2owEi/DoTxR7NHYiqDjBOfj5pRAFRVNJW27u3wNXq35KEWg==","shasum":"c6a7b87027939d37c3010f160b65a3db86b6cca6","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707103051.tgz","fileCount":22,"unpackedSize":75945,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtmJx2lllV59+xwfQW5obwpn4/miZvOK7gEIorLhZVFQIhAPz4Uh1wugUmRbVCg5VxACX+dXG0ckvAnl+mcRAIVovR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixrXqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtDg/6An3MyNtLjJcPJ76rmCWlEXMP8aAJX707X7xDxkJrSWfMSV96\r\nCIBb68iLulvuuVyie/WWdgumCpqKUQjD0fEnV6FV0D+fr6P5YDpg/lT8RjK7\r\nDC+j0KK+YMVGnMPE+Q4BozrFX9DV9NCF1YWUo1l15VDnQIKX5iE+mA0l9bMm\r\nJAY5HwOFI1d0k2b0fLoXtlDojpt9glWYSMBzXVykUFMe2XwPTEdRBGKLT5qj\r\nSGn4T4t7H+b/T4GybO/D88RxPXQvmGCDy4fkA9CS2HZ4AfoFM9j3dba/Jl8G\r\nEPlG/+K5dSV75S1AEzXhZ7qLzaLICnsL17eJ+hgJTPym0eX4suzyQHhBF0L7\r\nzfGegSm+bMNSuCG+F1IYbYJepf8mGC5VvW6zxUr4K3PzP8lrbA5J5R8B38W7\r\nzdGFYucdUnVY0R8u/t7u5TPmsPoyM+FvzLYcpC4XURZE63+XDiSotNLBcUc8\r\nvDUtbb7aUh4fo4D7j4Op2DyKv7tpOJ9G2ELdSVE/0zbelthMOWLRu2SGITkD\r\n8/6qG+2Kj6QMkfPf2emVS9d7Eh+AwLSZDNkAnnVMzOHd1kvYzwHos6jmFRl6\r\nqRxn7/L7MCFPR4yV7Sm31ivR03QdJAKBumlTJsH1wddgb+rMkR2cewLHNkVw\r\nzF4FpDQs0ubWZzwWjez5AhgRkiN69i+kmpI=\r\n=rceg\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/shadenfreude_0.0.0-canary-20220707103051_1657189866086_0.04960116959330496"},"_hasShrinkwrap":false},"0.0.0-canary-20220707104822":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707104822","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707104822","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-vY3uteq3oU/VDE2tmlsLPjig98bOSwXa2jMHXNH7jKyzXkKX6ECzS7FJ0mmtnSWjPwqH6QfvTOzxyB5EdLm94Q==","shasum":"3d6e91591d57b3b5f24400178346dd92c18ad4f2","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707104822.tgz","fileCount":22,"unpackedSize":76301,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDa0iR5l086lA5oj/ZW023ZGNi+RoRSQDc7stfDhSFaQIhALNWAA1wXMkANnE0zQw6500iz2y688bPLMynxM/uiw/Q"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixroJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOeRAAkWwPHMDzIZfkPUr48VNB6x14ivx4ven9bnPKdEAowg7xejQb\r\nev6JgRBCWvdnkrPBWtlx9QrcWBWahZurhNCll9LIaPk8K/u07+0mxmdjdMTa\r\nE8zBv7au0ljQkHJUh3Id7y+rL92OM8rfqvObc2mLBKFAYDzsL/NbvJwnQtUx\r\nSmV98kCWJlFxJRUhkKOj82M7Hbxsg4YcaCoX2XAbo/By2PtyUt1rEO6IAeiX\r\nSk1Ay8PqH0vzWVsLbNlQ49hT3UXMztUlXs16Z/JYRJErksQW4V7V/3dfSJ/K\r\nepktCs4/PgITS2kGzX5Mhd+K3fGDWTiJ0mHDMyTMOO08wvwag2idvwr+5Tp/\r\nw5qisFriyTnw74eGam86hEMSttkIAtGDR/u43ZvmbQlGXV2GfjPXGgY/lL4q\r\n2nfRgwaSMNngQZFlf1SZ+Ml0bmYIKFwQpv0J6KbTKAw49GbhICSj90jzutzt\r\ntAd44V4OxWNowxhRj/rrBUCAMUMv9nZgFGWPGlmnBz874R3C2jjSnx+PjG/r\r\nd8agd5kC8rc6UG5OX9DLIj0L+VqwTCOo/YfqRK174ixNP9CZozdtX/u8rrpV\r\n4GRLASMR6F28RJXl4ssCTv5khDD+TuNmfuHBech926Kq/GBPsRumvFXXTaxC\r\nx0x20mCmYKlss/mJCyMnMvxNi8z5B80yELk=\r\n=yIgV\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/shadenfreude_0.0.0-canary-20220707104822_1657190921273_0.2323288046005194"},"_hasShrinkwrap":false},"0.0.0-canary-20220707111132":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707111132","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707111132","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-SLvws0NziYpdsYIfAc3lrS8ZvWso3C30TA7RH6Nml1nnR1M8+aRa+NGOCad8d8b/RMLfmDML509wePQPcrE5gA==","shasum":"fc0d3b34a8416606bf5282d739724de9bcfd2e43","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707111132.tgz","fileCount":22,"unpackedSize":76301,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC99vOcnyfhDOqAHI0BT2ea0ElgXT2I4AUiipn9jPQn/wIhAMqUIsbZNzaUYb3nXMIn5F0jOjAhkab2KBuA7tajyZqZ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixr91ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqN1g//Qd+C4xYJwW731MnNRmQ9MkX8z+IOvNBXDZS3K00micj7mIBH\r\nsac2SuuO2GX2Ip5RWt3j2bUXjmWUDUqGtArxsLXiR4UlAsl0lCCiSMqX6BAZ\r\nw/b9nrzk+Tm+DxFvwoWQT7OBxXPlGzkSp7lstJsE5Ul7x2okbNSt+T4QaHOD\r\nW0VEcmXf3UwXU8yTiXjyF1QrttUsPr+F4WgttDubPKcaMiZzrNSAoltKX5fe\r\n1zFOlxcrfHUP5Rn5SV8ARlOqZLped2cHPspsyUoT7NbGm5KlUrh72ZbDaEDv\r\nAk3JjAexyBw/4y5qA4PYD6hhc4TBE+OYIAdJjMfP2xTmsEjg0Vo3JhCoSZd0\r\ntUdvYcT0S8LqXH3MuLAWVc5v6HA6s7/08pE71R3xzpxfDufd03wJA/xL3G8A\r\nnmBSQ1tZAPzWBKyJu3m0xdnULyi89TQYOLU/TsZWH1HhVwucUhlFXUV/NuSE\r\nqoHFH0ym8xdwYYtFRJBXE+c+jzArK5e+qMFkB3gKBb3UoVjbPfUTPb+ksCMS\r\nutqSSUgnZDsZRZpoWHoBgz5nN6/GT7eQPcWpfOSUzCC5XmPxoNc5nvD0DjJM\r\nvn0dhh7isVGW8Hf/lVciJnjPk18hyUSpVMTQh38or7VDqQM/1lWhNPhLBPIp\r\nLfqVvHHcvUJbrKUfN6ijH16cbaCp+pnHge8=\r\n=ubrP\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/shadenfreude_0.0.0-canary-20220707111132_1657192309269_0.8671965302326816"},"_hasShrinkwrap":false},"0.0.0-canary-20220707111249":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707111249","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707111249","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-1ixxxfSwFCWgm54ybw/PoknhicYTlyNnPsOlr7v2anzztMBiV9yB3zbGZKtQmMTSfDn+3DGwDkQBhhBmjYfqag==","shasum":"565773272f734bc6a61923ab39161a0bed3a205d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707111249.tgz","fileCount":22,"unpackedSize":76301,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVo0ybwr35YHUAt3/Sh6zXos2mXVSLGhZCFQLOlkxOKAiARHZsUoOP3uA0aT5z2r4aSqPSiaIQZcvPnUmuFQOg1Hg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixr/GACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5Yg//ZaWGxjRmFqLOvdjByIadO25e2VAdmb326z7Xch1hykAbrGD2\r\n0zryZhBafjAfjeQt6UiZbfvDTEVjoisS3J2wcYD4oMtu8w01yLxf6MYAHbcQ\r\ny+OPIzPhu+P4f5Wdmc29f2WnXUK8Szh8AmtPg3X6YBcoMv6dBY1h8Y45FjGL\r\nNjC5euR1uzLB2jAs8kU4/eu/DVg6mJP9ot2yq3tNv2SijP130WI3RmkkCuTg\r\nMMS/zVz1mPUlLtRLyMHEcnzwPqvscFSKuzNHBnVGo2a1fqbvwjC/PEWM6lNr\r\naTWVJ6Kw/Ztk10XNgTy1WL00mx7/7f9Y3KyQKsuKz4gjgSH7A0W1AfjT7usg\r\neV/pvqiWj0g09FTsK+rt+rBYUXV9AjL6zz1vTcZp8nedW3roG99/pzsaqR6C\r\nXH2TBAAQJgNyTBpaIk71U4Bx0qMcXoxIw34QGBvv5nR7f43zg3jsUoF0fOtv\r\nyhiIV826gR8XqEIRe4+TGLdGS2ZB0av7ESvNVTsJEjmrk38zQvIef/6Aa9fv\r\npo1r1wWPdTLsMPuE14B8xf0LUcTMbKzZ6CmapjL4XoWn+DqrSLJ+NW5drMjw\r\nC6rvs7FjdAaKyFgyYSiw5su+A22ns8tn4D340KDkamltRq7DB13wurB5YVqg\r\nwO+ZBNfJyMV2IPtX8eGDHjpP4jJnI49UMe0=\r\n=neuw\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/shadenfreude_0.0.0-canary-20220707111249_1657192389960_0.2831732380207057"},"_hasShrinkwrap":false},"0.0.0-canary-20220707115747":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707115747","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707115747","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-/awd8a4YUdXsDxXEH6gwnMuzkrlF5OkPNqTVtY3ZwfL332jE3cfLWAmopj88wkg+KLeGJuCF3I28wl3cF5i3QA==","shasum":"03a99bd58f53c8a7a53f9b3134f2c7478ccde314","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707115747.tgz","fileCount":23,"unpackedSize":72886,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClhplG2HjQD1cBMP6hYC6vWDyrGPCnz7NKTpb8lve+oAIgRH6HmSrE4ZMRcUUw8GngkKyTptiQSwkRiPfYvHxpLhk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixspOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqBXw/+L/ayGMtbZ/1fcGAHz0Qtwf1Dgh/ret2uSz4WAzHgJmgbMvo0\r\n7Ndm707qtqZFZIuL1F2l64dUFn51UC/oYeV/aTMC6IveRakC3X/+lWOpjCqb\r\nrq2XrayH9TPnDp8oXyH2zuXAsV528nQj/ZteV439BDevLmafJfGTXfXKnhGe\r\nnXGTb4SYyYMZzS/3eI/DRG2yGBq1yKYcIeRAsP8yYTwQyTBv/qj+dUvrMtws\r\n1r1HZnPWGCwfZY+HrK5mSCwB8PqQqx7nSlmjqrb9X1rzOSZp54xAiREr9gQF\r\nTXqV+MogOjXoZEjKiWafXNAhYQxVStmGg7VXHRPzdKHfWHNugsvc6HDma19n\r\ng+pxVyVuQS9Fxh2pB8M0ZQqtiZtisUgK0C3xwynnbw3yew3NLh8AHuW0mxj/\r\nYZ72boPOXA5Z4CuhvbeynWsHLKaZc6iPwHCBUnl0VHQBOioaW4GSBZvsHPy2\r\nxB/uB5V/Z2rY40vKQuNbchq2Jo7QYCXEQYTK/vIzTJLlz4pGOXw9dVsHPKlP\r\nlxLYyMC2twRBzMUgeSEcZSqv7Ai0YoKs8poFX2SDuZWKufSbZUi1ZRbCvFlU\r\npsBgkCa3CaH1U24sOmu5dvAwhhON2XvzVvYCKAqwJ4HFBlGfX8xiH5zxEQi8\r\nHu+EvS+Ol2tXGDsHaS7lGNCzZDQcpA3qkJg=\r\n=VR4S\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/shadenfreude_0.0.0-canary-20220707115747_1657195086011_0.0797697448861372"},"_hasShrinkwrap":false},"0.0.0-canary-20220707120522":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707120522","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707120522","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-S3JT19CeMX+0cotaz77dAZKd2rEdbvSf0tPozipWSlJj3nMDRjLd9/AE6+pjVtYQsiyTP1v99t8WnyO8qFEEzQ==","shasum":"c5a14f0c7d47fad8a5415bff3d3ab5fa945afcdb","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707120522.tgz","fileCount":23,"unpackedSize":72896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDcwp7RXl7b4cY14jzItCqVB8pwtq+3pchVPfLcRtcTpAiEA2d3b+tuSocbTqf3QC5+xac5qJNeP3eZ6luHc/MJ6I4I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixswUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprLhAAhymRQWe2juXhngSl9tAAVe3HciYXDbmTBsqfhNFdOK3qojYm\r\nWBXW0SV38sGvV/FDq4yJvvCqW96k42D3yIBxbePVEh1/Zlr9jvTXNJgRNHjk\r\nw/c3NSIeTHJOGCkWjie+67XaDisd68mlmu19YCZcOxyZ7sFZi8O6kJQid19G\r\nL8qQnzMGMOKG7iZ4tQ3+Yml2ZVI7pOmwyy+ze9sFyQPQY63tj5b+cBR6L04t\r\nzds792i+0tGnoYP+fw/SqVXGtzBN6Pq2Xr1szPgqLCUjXoVei+iJdFCypWPN\r\nWNg3DQpXZM0Fq523E5Id2iwNM+wTdRx3gbg8g4itmFfAVN6F45t4AaOL/LXq\r\nvz4mVWmraczMZn+8EaEfy5W05bkqyJ822erk4xbxPyx0qETRJWuiC4wBKTkz\r\n1xL4KsxbYq0kc3rjUlOIolVQoH4KocdgUqkhJG6MUC7317wF2bHf6RcNCk+f\r\ncrM84WgOeXuLnzvvdO+JfIMTbjMa4ExkYQdcAOvISGX0FQAXN7RkyTl09z8+\r\nnfkGwxLPNDLr3NPp4TsafoQ7+5nfwV3ZBKUe2tdF5bUZkr0N5MJh3y2+Pnmw\r\nts+J+9WDYhPkm3CBuK8oB3Or75ZM9/AvtEsWVrDubRXl/3RuYz1zl2e4rYHI\r\nDuW0Yn5f9BOVKZbu9foid6HWRhTrbIUI9eg=\r\n=UaT+\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/shadenfreude_0.0.0-canary-20220707120522_1657195539860_0.651606339743815"},"_hasShrinkwrap":false},"0.0.0-canary-20220707121154":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707121154","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707121154","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-qDa/XTSflZ+EzKqudOsSfFrOi61AKB4KbJU7IFWdXN8yRh2/FyRoPDYl+qrCsxLjoMYrqwtZ1GRS1rbU7WiWBQ==","shasum":"d2589595fae085b92eda161fdc11fd69d02975ac","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707121154.tgz","fileCount":23,"unpackedSize":72896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo3cYsqhbLRIuGfrOQAhXkRKNqGI4SU5j2oe2431A/sAIgZmxWcJmAHFp8+w0LTeJc713YUpRT/MTnTZT873KEu+o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixs2fACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeWw//biKmMALcxswJ2iWwUsPge6n4mKHxlKZ6jrYpV1pCuRFCKkuK\r\nkyR2ED2u4J7D+gIzMfvOetiEOg9txmk2f4w6vTxrhgykUcG/DYKPWE4qXuhg\r\nH1bzNt0MFVA2HjEoHbLFJjwmSatapiRwYcvJLfC1RDHMgBOjTr45rhjqj85t\r\nONMwvPKMR+X/6bApB2zNL7VjDsLOi+l7e1zl/6u7L3/jH3VPjeAPMmINcyUU\r\nUacv/yBnY02n2AsYmlbnvZsDkK7a0iqsn/LTLYtRb4D4L9Jg/mO7udotxplU\r\nJrKStJ/58jIWUHnUZ4Fy/KuK89qieTqGw53ddq+otnJVcrOKSACQe3PfuMT4\r\nk2t2DaqBsrPnTCGI5buE6t2a4Iis/c7+S8A9UohEVZEbkXqi44PcrP49xXfZ\r\nnq4Vz3p5KcfKA/WTID47sG/gDEgdDZw3Yro2Er+izD7IhGKlcZ8DyVbMrD9H\r\nFKq+XeH1ZRzGQ+zjPSKufSqoqI/irCJJrKEZ74gOXA+EW5JL+UhOUU4F10UY\r\n9CQ05niQoN/82pSqKPtJtvFyUGI3fSUa9jWeA+A0KHKNdicpIYpBP6Px0eLD\r\nzPLjRktFuP3pfy/94AFIJcMepgZKDhcwYXaMTwIhsLGzL5JpfDxC87jxLUyW\r\na/aSmjxo61SJgTEMsoy9MhflCWFhWmmDK4g=\r\n=dwEU\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/shadenfreude_0.0.0-canary-20220707121154_1657195934646_0.07966689870209476"},"_hasShrinkwrap":false},"0.0.0-canary-20220707133317":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707133317","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707133317","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-irgm8jqVkq7WP8nuRUtEMlzzgYQ4KMl0k2zwp9gPcb0rHSjMIN+tyIO8AD3RHS3iJkWTCtdrMj5dK7Ey4ONoHg==","shasum":"6c6bfabd7233830762f289525ffcef33deec826a","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707133317.tgz","fileCount":23,"unpackedSize":73442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+EC9Lg1xsw0VafTAMmOamrDG+7ga+eAqSY4yIvfUypgIgMSSNE2lq3KEzD9g+PWDPq0x4/mv3KkImYHzQRXbdoto="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixuCvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3Zw/5ADM3xIkwRPGzMbmgyIvAnv8r0QE1ifZeNboGOlSug3jz26/S\r\nUEkVC1S1OFq7rKanPP8h7qt80RlpTosRojqIEw2jvEVMv0dERmw2385bLcpa\r\nxx3IuMmTls/Gsvy/XxUsSBkzG0mriQIPSXlh9HfZ/7QVfgF9XuG0jyalF1/x\r\n1mlijLsNBnxxicGUfB2JooMiJddvXkmiH1aVxhA46j7D+gJlUT4on/7vXG+g\r\nt9xQFmDNZH2qozjfNpiTLOEyu4l/zALeVSnZ5SyjKMHbnQUZM0sGCeWqRVY+\r\nc6BaDzT5pyobsqvo2g3fs2YkucUbsbG8jtOuWvEUZE0grvFAvRVJdVXv+ZTR\r\nUfWzqD62IH2qHMuuoJPH+HO/3yKXGUhQaUJCWnrC0MZqP+0c/C/4pK2sZBme\r\nXYgdjeUHV2Iyi3vfE7kqPkrrabMZU0O9hxgFQkP9Jr9pCI0nCFwqL3gjdedv\r\nsKjO9XHw7Crzs16j3wKE4WNRabsR3D6KfSz3Qgi6B96ui2GslDeu+BLChtug\r\nrsusB4Alwd7gUHp6Hg4KyITP8Jlip9OyiUDc8QG0E/4Yjh0COzV7IjZ6yumg\r\nuGAx802KHqEXsu08h0oeBrRdIiAoOZrzzDSxs3I9M8RQhg3NRQXMvf3R6DSM\r\ntD18KogdKdcW018qIeh4Nvk8y14WVqUFIi8=\r\n=iU+B\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/shadenfreude_0.0.0-canary-20220707133317_1657200815207_0.8120088436683521"},"_hasShrinkwrap":false},"0.0.0-canary-20220707133418":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707133418","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707133418","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-QacLfFCmFQ06b7wyGTWabd+ifpKg2NxmJhXM4aWunlhyBjPS8X2TFJQgfKskepbYsDYAPTZ8UuevId/1UPbUig==","shasum":"8645d6fe287af6b5812a4198604f8469855a5828","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707133418.tgz","fileCount":23,"unpackedSize":73442,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJORYLHEHRrwx5Rn3fj8BVVEzdIH8DucA5gfMD9YgNBAiB3aMH4hDKKjNZ0iYUNHu4LV1iJHjlKfJhCc71Vig/wJQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixuDtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPYQ/+P5OIWFoXDMdf1oTClZoR7c07374KWxOpYvAVhVWXa8NUit6u\r\nOoztYc6xoTt3Sz28K4eYSZudTcx0GmQiG16GvN/vEb/FmAma1Qpgjt+hTAWK\r\nb9d6xacrrj0Y2TYcJDkNwQru+6RqOvUONQzvPUGelR8rpN+DQUdeVw02dX0Y\r\n1hM0OaIq2XYvYmHcDTS5/R3UNwIrWqEgRKjuKLh7U6PsdyJMskUQXA6UaG9l\r\n5WKXU8CONk23F/yE6fsjWShEXEzS/NeYGUx8Y5uOJPROW7si/qnA97A6+RW1\r\nhJgTcCT0/K8Vkr1A9aKjXIPQX+CuH2YOVjrnl9MohZ0QLHr4jLu1bG78ALJX\r\nTf750D5Bdk71MhDnankVUX8S9JURhPudG2mLN2dsmB1vPYWzXLTM2NvloTIL\r\nETj+mIXG6935JELGc+48YSu5TquYDn1lNbxrdWlp6/rIyXadXvRbprCrq6BS\r\nr0gRy8lmCFYiROD8kSlTAq4mEpNbqK4xtYzTPgrvdyUwdsnEs+xHE+KgwzHI\r\n4CWnxh+0JsCXwNYukmFyEBowV0mn/s3piXbFiM7+KqDNGnCQGYIBmVxNSRUe\r\nTB5p4ZxVvquvMdbn1H/TaCP9xz+i9rH2pMYDfWhtubXkE8Q2mbbGQlbMxuuR\r\ncpHnR7LhsbxkZG0SPohysWCsOVCZCY+AvHc=\r\n=0gbq\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/shadenfreude_0.0.0-canary-20220707133418_1657200877313_0.9405945597243262"},"_hasShrinkwrap":false},"0.0.0-canary-20220707141633":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707141633","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707141633","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-bXO0gj3KOqX2wZSNcGrHJ73mtzq82W0mlKlqeo0y8qBVVk/NSYz6oVc5pOstdtfFcuObY03LRtUZ625KMNOnqA==","shasum":"911f617454376575b8fd8c90d3ebf5f38edece58","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707141633.tgz","fileCount":23,"unpackedSize":74013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/aKx1IFE2u7qM4WYTfmP0EUAOHZjMRgRIcMX2rmABLwIgUuAfkbscdat8HJ2NVvKhYfgjkMWWxizcCR3B12R2nQ0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixurRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgjA//eoSgrLIz3lKYJlDiAuP/6pc9aQnpqZnBfMnXf5jsU70JsBPT\r\ncLcTo/YTZUWR9oPYHQVUR2/lDO8USMEisGBJr2DrGaOqYtiBiP9d//fCTwhJ\r\n8LwdQEhTcD219YxHAT/0ynbS5L7xQupCqW5hKS/r5re6gmLc9vfuWv2Mm+4j\r\nPiWYtT+LSUl3tzMC5UZItVdch5aWL6JSYFhK23dx/hIqqY8LCicbW8aj0Ye1\r\n7K1hH6qxjP6cHrI01mS+KpuEtQrr0eOYF47Dn7WC3Rf0CBIIw7CtHkT/t6E3\r\nd1eI5wzpAIoeCe1loHdfTHEQeBV2IM1wT96AHUMKyxEQCacmQI13rWXPWb9X\r\nFSQb6m7TytcdnhJTWAqW3BFY5JF17r4A5+KFl8R278IZ1VXfk6bheD9ALRrL\r\n4uEPMMNxr7uYGxy72iz8dWG459KBm3D0EsHjeyhQWSZZGnooOMHGdDoRqIkA\r\nPU5jYGQn/EXPDFrEBDCn3jOhUIQdk4bOnXIcFXiWZJLVaZnpOUO+21Dg8XZE\r\nclmM/BsPJprVtihwy0odpAe9oF7l6jo6v+4PiPqu8FSPm4WyCovTuuiTeTBQ\r\n3By3IrKTaXIqPkPaBZQ7XzWNEF1CVvRZH4q3ah9pNy8JUy2MYfu50kj+LFk2\r\nq0BXjhqY7byq4zbC0ZZKn9xnElAbFUZnlQ4=\r\n=k7bz\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/shadenfreude_0.0.0-canary-20220707141633_1657203408815_0.6743596443400535"},"_hasShrinkwrap":false},"0.0.0-canary-20220707141744":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707141744","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707141744","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-/6SCJ3AFEC6XY/d9sw3DE88RJ1h9T7kpsbsjf/4KHkl8Vzxq/ql44HWATQLeu2vIPAhCcnV4QVMbdcCZNXK4kg==","shasum":"3a3a852c36c34230a06419239daf7a9e335e3a23","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707141744.tgz","fileCount":23,"unpackedSize":74013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChzlW4hp1eolX8loQcwXss1Nexk+d3GgWrpgAHOLUqLAIgBOu1//22j5pKR3ovvtMQZaAdpZqlpHHqiqXFyagwv8Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixusXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpu8A//TohZfSwRgevh6jjaALPVA1xWrlieAl+jcoyv95vgXYi42l3k\r\nK5FlPr1EaQki8GqUhwh8m7/bB+1GvKbnQP5OFPxkMuSV0wgnwYPE7InbV39a\r\ngHwcFqo66jswner0TRqOLw+e0CXtOCoCnIjuRvbTgxAARWPC2M/OYKlVCh0m\r\n1Fsl7L2AgtePCr4nL7c0OwBzlV9JyhtnLUDiqo2BQxeZMLagwJddCkZ8KiqA\r\nCneSswOOowwHonZyym7DgQLMkS053WYSYDOgM3+pfuHXtrE3BzzmFmglLvlk\r\nuCC6PHj5elo0UfSUf6PM60W13jHngk5kwcPQoid2AJ6l8KcWw2UkyRiWYtED\r\nDQmLsJ4fSh690HDwCQCTUFOeZkeMrT+aoarNBznpqm2rkr+eOQnQG7g5qPJl\r\nxZ1IMordCU7TN1NoBKDAgtiO6bNOmxFrwbgJhUSVdO1G1lfpFWRp4w56ty5z\r\ndYZ7wLhi4K/u55LtXc1IUHvzaQiSYmv0QM4bsnH8+DNkpYQ+PEcE0nmi/i4V\r\n1qxX/g8qtTPM/MXgGZtfz7HCp3YpwZ7Ig+GTtvdM3bMoaIKMVZ/ANQ02xWnE\r\nEc3nV3KmobK8/VlSsdY85A+BFROd8Nfv+LeeCf9RDOpjqjf02FZck3sRv6C8\r\nXgA+kFgegk09ext0NikgrSjonYUj4/eIwVo=\r\n=GuqK\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/shadenfreude_0.0.0-canary-20220707141744_1657203479215_0.3948823046259158"},"_hasShrinkwrap":false},"0.0.0-canary-20220707143540":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707143540","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707143540","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-4NadZ+iiLPC9Iv/gNASvOq2H4fA+2MdCZNm4BClq6LLI4NehdaJ3ak0gmfp9p1gqyZwiGX0pIDlqLjYCSl0soQ==","shasum":"dee1c436f4538ae83d4120efa9ac35f6b5b04085","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707143540.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+ET8IMZGBrtTU29cvit7kU2oqY+62G7NctqH69tVVwgIhAIMaCMc9g1VFx6fl/MHcIsRIawcyDc7vLeLGShsaVAuA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixu9LACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6tQ/9HM5ZgMNoFtr3OsvSULE9qTpYZ0NozCxS9mtxwxK/U1DF8mVk\r\nUSfWkipJBGFDkvTeZU7TdLVYN1O5zixji4pGxjsnZ1hw5GyKhcdjhtWXJKXK\r\nHMJL1V4LEqIqFiEl1ESPSZz9//SlXDkTx9A/3T/fFkdD7p2D7TkJt4ixexxr\r\nztPLlMZaP1c+GP600x5vR0Az6TX/Tz9PuLF545ss0joSM9zGPx9iuFvJt8f0\r\nDF+SZlvCIzM6Ib/j0qXFEEaqWolZdQ/xI+cHlQi6vhgBq9T3tSuxEM0/+gi8\r\nDT/GI3A2S1w5t5pFNA9OrJZllloJTHjcrv2tmrT9Z+sjtSp3fUyk21MNk9Uv\r\n5iz7W/wKervmgJUNxs/t9+1zmthTOWsentRk29CXQuqkv88l2W7WhKMgsCg0\r\nQyZJNi7eN8T/fKnlP4tBgBhfXJFctAjKJlAaaMrW1uj8USXmjh+JtZc54w6h\r\nZYVQ66oODK9vTVyjV15FXwsK3C9jRxvAjs9tPlrgc9w/ne+rseFBdjUQjTlf\r\nfAXEwYve5O99arFns8I4XkuH2NmKuSxpy2uDpnGIJlB+xYfV3sQWU4pZ1pl0\r\n9WNUgWNxjs4+qK3SxPPZlkQBUeUAOM9IEqXY/rK7zN4DPAtrh4Czp2cTzKVp\r\nAoPsi7kXUYrkzvigtot7C949VVYFirukc4Y=\r\n=K4kh\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/shadenfreude_0.0.0-canary-20220707143540_1657204555346_0.18728480965026217"},"_hasShrinkwrap":false},"0.0.0-canary-20220707150703":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707150703","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707150703","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-IF7NsgyfdUO4tA5wVn+I/P6zTdmTm3SA98ie9c1vTcLa9cPH9PQKX2OvEh9hHriwb8d6KFOQIUexWWyTpwzkUw==","shasum":"934c4fb19e4df56569f7f51bc20f5b86a06ac748","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707150703.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFPEykPoUMe+5fGC+xckD94PItC5ZH0X99lMmspEq6FQIgMNLrP/50v9xNRWnaDQ4WWiJ6ckaKC4M03ONqJSprPEo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixvanACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoeag/+MrMV1Wefuis9xUyfH0hDEe17Wpdf5p2uxhF2TEnBrZ+RH+NO\r\nyhkPoB8zCJ5ZeWOe6ggscgDgtlWMBmMsGA48r3OM4IWPpWkYB2FFoqe4bFLD\r\nvodT4Xm/FVhfkq50bBR7tfS5NmakAw7IX5TKga9tYzvwwWuL5AByfRBmdwZd\r\nmU0syIcjJbLDmdlDEHy0RS3ZOIz5CuzuWwjfGzJWIxAKul5q/5MAvTsWMB9N\r\nxdSfibreoYt3bdm5vYnUUR702Omk9/c0mgeoEEFvQuhuky/MZSDM2wJ83mT5\r\n54VXtjPqY/xi+BMGJUSptiAIL98ChhJJAgg9pS4ueCWSHsy+OV+wNNkM5ymQ\r\n+a8cFR7RVyw+xawAU+tbhMafGh/Z1/J9p7qwi0mtHaCFQ1ulkKW+FVKnAzX/\r\nz+8q71gmh9L+E9zEAnd+CyBhVz18hXwjQw6kSZ+pu0npPKAWuKqbhca3KwPM\r\nI2yCJJ0SMZPV46oIqreDcf+6Xi7fkNcJ/yoa2Kva4PF93s5bBa4eSmHjiCm8\r\n43jrCl6UletkgH4qACCEiCpkTCKCITFhiWd3ivpyL+oeQnA9iv9JJyj+7tv7\r\nE9v8jr8oEdO+deuBlddiRGIHxAfe5GHSHvZuIMvBnIA+QvAIECn2WisLszQP\r\nvoiuspwdeflFmJ0kD8K7E68yXFZEiLODiAk=\r\n=rHwy\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/shadenfreude_0.0.0-canary-20220707150703_1657206438943_0.5621083688426385"},"_hasShrinkwrap":false},"0.0.0-canary-20220707172340":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707172340","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707172340","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-LzBN+4uBbjtDjFCoOVysQWyvHTAg6YHU3aRzBniDaSGYzyw0aSk5yGYwLkqY3WpEKykX2yED7iQtOuUTmocSQw==","shasum":"9068433dea453034bc3e5c4c12d2ad2b3bd2c234","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707172340.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAV2M2k0kQ32EV52Oe3LNGdDsAI6g30he7pf2KjStB53AiAbsgnjRwfzJJURwsZzSEeH0lOzLQj3p6oMHUE+l8oPcQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixxarACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwbRAAjr1VEoXTGnf52qnqGyXuQc1D9RU0ViEQKjRndGlhymAiob1M\r\nmq884UjX/VuAXHBuqrF2VA1cM+CyMfYQAaJToZxJgnptCU4QqC52gsM24Elc\r\nv/17NBy6a53XVfd6+c9aGms0+6azhZxxu9sNMJ01h/DjIFYi4d3E2jeO18KB\r\nfQUzuhRWDSatQ9CNoJUAqSR4xa1SvnA2RRqZMZPFlO90Xrh3fIu0OvOJDyZK\r\n3m8AfjkJ3zgE0p1y11OML8q/YrH19FwrqSE1gPtio6cqn/pBI8jIyK3nkfkP\r\nppc8SKuxxZ3IxvZm2vMIy/SHIynNekE1gyorAsFld9EQiRK6C2vDo8rW8OzS\r\nIhpul+cx5BC3BwG4aMfs1sAfW3y554gpL1JnBnchzZW0JzwlQrFBs3Y4LNAh\r\nYao+ahu/jksZglhiK1erW7S96o0SawKcamyzcAhUj/L0wsYqi0SgbK/JDJKY\r\nNK7LL/gB1EI7k6pBHoYtOI7jXDSdsW1tshD60rQdtKlOyraEuxCpmVe4yTPW\r\nXs/86fY2SRILCQaQ0fuApD7wPPnweiF0VmCeq0fmGzqa1I9o8vFDcwU0+/UW\r\nuBVKHBIAg6WCkJGSj+v6J/0o7fbT3Swor8jVVVdoiKZbMiWlwcd2S+zYG86p\r\nsSP3yt/C7UzogmY4cXm84hmxMc2cM8kok8E=\r\n=NvTG\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/shadenfreude_0.0.0-canary-20220707172340_1657214635681_0.146829039395463"},"_hasShrinkwrap":false},"0.0.0-canary-20220707172450":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707172450","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707172450","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-vK+dWiw4jfbhNQCUf80KVwWZevmKVZXmuXowwWByvObx47sdRrBLXsKBzQrwaQ4LBEm6DXZDU69ZhpEzIMKVpw==","shasum":"959ad9a3efd2b2ce871e2b8d9a61c2f88da0417d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707172450.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmM+wSvOXnl29g18fD9FLrtp0vMzRKJ4GPdWfFrHpDAgIhAJU43BI6j0gc5k/Um/fxXaCZDq0kFgd5woBRHSmqxOvj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixxbzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbUBAAoo57gzZ0JX1KoMZ9oN+J/Y55XUOpzgMjnKAqULj6Kzb7LJ0n\r\nnnPhFDwZNlWMdO+t70xTtWNZXwTFlYXxw8XspIctD3sidZi8BAeb/q1Ln6sf\r\nRVDRpj6al1wFlLlvb6gB0sRDoStGUwI3RzzFB6y6RtFD+FneQ0MtBdqn6gOT\r\nJNTyPJpeUCd6arCaTbMIY3E0JnGXmU+t1u18FaaqOknfiEgM3skXuLq40VbK\r\nX7+GgWyCPyCx+nXqL2Rd0Zyn7eA/B5XZ6iA1nLoHZ9IIfuKHqn9fgwxXbaBi\r\n59fZfio8zFe5UdzkjWqjwogmuNq7RHLSsV+7KYviaHJhVX1uI5knlRZ0WCqb\r\nZH9GS1MM2thB5KUbcyo+jlOhlaaHAHkSHDU5IMxUP8pXsi6q/7GyvPGXoGvn\r\nRnvghIL2AzTfhZ2vgoCf6i86b/Otwscmylj5Yh4ck1oXWKQAZ4Ox1LJsI73o\r\nA+vPP5l+7fbjZS8rGjEUBL2d3ee/UxTqzdc6XLaXQuT3ufZlSky/IDNiWAUq\r\nk0kxAYCJKKpbd2LYzyykrJm2+TxguxmB03Z29DSFRqYsgO/0iCtpzO4z3bZL\r\n82tLC9pC37xE9BZqiBUUBNVPc2Y05izqaYf0eFuN6TA1qDIq7OexQnwo78Ao\r\n/Gzn9xBo3GEhaf99/1eP8blxWEwivt2MnAo=\r\n=rdR4\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/shadenfreude_0.0.0-canary-20220707172450_1657214707763_0.7612882321854395"},"_hasShrinkwrap":false},"0.0.0-canary-20220707173623":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707173623","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707173623","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-cYfxCtCtELMZ8/vp9gFKKCl45dLCecfracsB83Mgce5J40rtckh8SjovBmcm0ADmGCg0AQ0hVtoibzUITKZuyw==","shasum":"8e298a8421113949440c6f545c3f772766bab9d0","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707173623.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5J3hBU2DQxK/JEKTJKn5GtwidsvXg3ypd/AG4IDgwoQIhAKRSFmqkWm7phxIDdjDZjqR94zp9p/DUvD92ykBLKNfJ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixxmrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxvA//dHy8ZtMONUWgqEI7RtowpduFIbYr1O2k4ZI0FgdhNT0k2t7r\r\nMOOGKNAHX0z5cbTVGqkCqQNcu08HiaTUiXtS+AEjgjEZpDXvNrCrApXOrCnR\r\n4iFJFHQim9OKx/WLN6LLlj97tk0EpjxyVq1yvOB7NwsPXR5zXIBxf1Ub0qlO\r\nowz5a+UVV6ZjhnDoHaBTtOhEyam+hAXiMyCDvvXha+Wt7ZGGhhBrIsn/zBYj\r\nnrEMzPE0nW/xDeVOxYdVNJA/YWe8MnDTuvWxcKCv3YKSPIDKTLh4r5JuWL4l\r\nPHCbHUVjo10EaRO5h5OLComzRECeYw8Uj340W2YUjdCIgiYk9JmTIfK9acOI\r\ntsL0WExQvdANFJ3gPv47/d643Iz+UUpZ8CsOm2trKlgQ1BNq0HwapldJtT3U\r\ntIy4jqYBqL6BKjeM4DpIs6RG2utRtDaaoYjHyofpAjPRcca834sZQF8QeuHW\r\nwOqlL24grbKmFl0GT5zgwJ5olEwXjptVSB5+NFWFcU0WcAxnIqMBru2IYvmz\r\nIL3lqZhHwPUQonOBSr1G/oYF7gFNakgO6MB6QsCS5CUYjuLsGs0UCddLTFAk\r\nkQQpRyl6Q30sK9Qh2Yhy6n+O5wbXXIqEO80SNRUFKKnEgf3DbhW+4edDaeP5\r\ncEPG12U7eRgpSHZJyWS0D5jnjH00YkvOZxw=\r\n=jFWF\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/shadenfreude_0.0.0-canary-20220707173623_1657215403015_0.759858722022982"},"_hasShrinkwrap":false},"0.0.0-canary-20220707180205":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707180205","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707180205","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Q8kIjMqCYz0A/r7C/hRI4Dk1OgRFygl1bDFM3AdTzHInTXnXbE4+H3FRqicLSm11e+AXNApb+FK8OoGuloNdcQ==","shasum":"29b76751fc88a3c65f51d89f127ba914e2afe02b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707180205.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwfAX2ivTEX6rNiiv3Kl9Ef0BYxKREdnRo4n4l6Ey/qAIhAJm0MhrZasba2arwtdac2dh/PZxXR5nwm+cal5rZ3xAk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixx+yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmquew//SKxfOmMOlrq2qQNC1m6Lk6yGP8TlbyffowkfsAMdZNkYTUdn\r\nPMHrLCLF67U86rqrqhQppdfMLZOxPR/XFPCiVNMb7dKwmsNdzNCEYJVn30rC\r\ngrMM01Od5jLaO33VNaJ3g9baxOawpAiuF5hOzQG8lckShUgyc6EXSVIbfd6x\r\nQo1vUFuhxaEeM1i3rN6+IeT3+rRHfYgUb4nUGx3x3TIeYLFU4TuoLG1O/Ds/\r\n2567qgp5qBbtE+XiBSkrMcsvSCBiuyNIAGY4oeB+HceaedBzIBiNLYYXQR5i\r\nzozSnTt+nLq+KBMwvWdMwbqR6eKR0L5hkV3c2aQZMWgay+74qSox2P8tc88C\r\nbWYYIzR38/P4fqkDKXndkN2Csw3MQ/p5tB+n3bG2wwwHNyOZZlOUVvcS7mj1\r\nib7NIpEoiDc/g1t5Y/uznJ8S1DLYRmetirwocORdHViPwz7tSFNXLleDzCfj\r\nhwShRIwxKBJDI01OmSAk2ShtYH9EzxsXoHQmt0gP+hInU6le0j7JLqkqmcmd\r\n1qyzDA3MvhftI9FFK39iZwsV3tj30exIT4ZqziEbguidojbLgIpWd7h7fHDT\r\nOvWsFUxTqY1TefF5+pbzyAUfYEqvyQP5hoEJYtRhZOSHI2Y7Yz+2xjKeHPPm\r\nKv24XnifN/2Dq+j2CWOfyCLlJCFA83Ge8kE=\r\n=vOxz\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/shadenfreude_0.0.0-canary-20220707180205_1657216946544_0.2272591722887518"},"_hasShrinkwrap":false},"0.0.0-canary-20220707182606":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220707182606","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220707182606","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-mNJ2PPer+kO3BJJBlfg7BTN6g0N9PpClzYqLe99KhwhAqG+grwSJwXVavcCVTzQmpFFTZ3ED13GfukFBOvGHjg==","shasum":"ce11efe5722419a44b96e14e569451733642b6fc","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220707182606.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkBW1MV2z8Rt+ZToisVMvUQcAXo5150zeJr999vqRjmgIhAPfPIrMydBZ35HP1/vl96/+a3Ppcho8UxZQs/rkcZczk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixyVPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBJw/9EuLBbr0oPmPPqvTlmjBv33EYdqtqXvzVzHVQsAsfUINPgxTf\r\n2b2UCgRHka1vxg57mAQsSBLME6WNmxm/emIteU4l9+mvgy+4ffAhBnJ3ulRS\r\nvs1kIAqhUyvRYZISIN/CzWUlRuGL9BfDDuWxiJ3QnEet3MoV3uWjO3oTtfwf\r\n5/AwijhMTuBlTYUWmVJwje7QvKorjOofFV+E0XfRwprHIzzgR/5Jy6dlskm5\r\nxYxMwI3OAPxFltETSpP7wA//5Vf4VMQoFpoc5MqefTTRQW39Tu/hkqVYZvxL\r\ns9R2IUe5YW6ln/rk/NcWpb5JpTJAHyFQmrhqZ1Q/G+zaSKFtRdI354xHUful\r\nDKbqkrha3lDEgOPcXqGWjheogHIJ8D4MvYDHoRL9UerguqDI7M6ki5ECSlkR\r\nbUCopzIIoNFDX1yFCM7TK1icDkinZbdbh/aM5Xh+Zq5D4HOaoi1nSUQbXKoJ\r\nUJiX5r0PsRoCcYj5XUrnEeBKMbaudCJYnyom+SQ6UW+XicAXdT+QUd99TYvQ\r\nUkG/UyXYSpq93n70KI4KnUUtsnQZPH89F6Ad7+8YLGDONvzpZBL+Iyg4OkbX\r\nPGiaVgyxMbii8QvTfE1wz6ACTOjOOhsQggNMA8aDrRQ5ImsUK2RHP0fbNTwC\r\npcIh5qFZxmC0hzrt/QTAQodEWguzEZAU1XI=\r\n=yVQ1\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/shadenfreude_0.0.0-canary-20220707182606_1657218383705_0.49527338021050493"},"_hasShrinkwrap":false},"0.0.0-canary-20220708072610":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708072610","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708072610","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-7Xpk4SR9f1MKuPf/Eom0Eapa9kAFfQohX0KrcpMsLbpACxd9WYYSWr8vcJX7Ujh2Ry2Aw05eCKOdWS4536REIQ==","shasum":"521811ca91ee430e4effb0ed3b11e9e36dded3d1","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708072610.tgz","fileCount":23,"unpackedSize":73987,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBWgI0oK+Xd6iz9MaIyp8GrSg9rwFt92rrfV28X56Rv8AiEAo8m3L4PBBap74DVxsVDCd7uB4LRDZTjEDY9dh2M5Euw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJix9wiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqekA//S6Ka2DQHWZ0K6U+5a7zf4Dg0bTVyLRCmP5wHRtnkUZ0mGM5B\r\nhhmEN8CaG31WKOSWOe5OKiSaArSibg2moiDK4y67FjhlKKPOrRQWVJ8H5+15\r\ng9AiwPtLw0v2WcDWiN4mtfs4EgWz/HhS6U4qMyv0l7KEf4THUKLJwGFpZFKt\r\n5XmBU90iFqZA4YIQjREBspBHsd3IM1vXKSxXitmTs445bgWmHR6D75lDLqH/\r\nRmcQqoI0zdwHn0iiRy+WspHlStEADo7yKifZUCdhVQpXTatGPvDWtqaDn02j\r\nCXVKrgMC9Wi8YcGxxf2EsQdmnBrgy2RM9IiSySomAkRpwAV2fUiaxVDN63RX\r\nW0GtitroI3LofdjM0V7yTE7VOgfE8Kc6zHQHrr5l0ZzyKKxpbUbZnjtimoCA\r\nlorequDqboaWqY1f9EuQs/AGtOksIu/HTzoud8Mirw237GPyXgmg8N0Kh/1J\r\nHibkXO0ANBwV+s2AGfhVJ+nQsO9w0cffkCzqlM2SMw86znNzk5vugAtUfarc\r\n9IDGLp8Poc4CrwsLRd6MWEMaChmOXwDpLX1WrKXY0A0KkzGdr2Pt5CkllQQp\r\nLZ0gj4DTM4E/zysSGQRBvbzL7Nmcjl3bISV4jGEMUZ+krAKywN/NialYaSVN\r\nJkT+I7T38R9f0dNfnZF3wP2hC0hKGyLRSto=\r\n=W7z/\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/shadenfreude_0.0.0-canary-20220708072610_1657265185810_0.7274222414131004"},"_hasShrinkwrap":false},"0.0.0-canary-20220708100343":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708100343","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708100343","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-EZVIh8gj7coBzHwqxb19HMz4+jxrh2zHI1nvL/tIo7avZZMSgg22orzkAqDDiiGPfxMyPC282JCjtH8VAym/KA==","shasum":"871005420c4ae749c3f00245922f0996715a300d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708100343.tgz","fileCount":23,"unpackedSize":70085,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIsu1+hnBvUOGl+yNlykpVR+PvJIrCrk+f0dR9M7EwoAIhAIzZ6oKsXX3VTs2qtMgmDDsx9zs2gIYGezsqCmjZ0lYK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyAETACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiBRAApKjpa4CrBAHXKfJnzPlUBJaQOQ1CH6i7KBaldc++nXRD0x6J\r\nptAS7vSfWfz4U6CB5fyYgrrbSZlylkgg8vmsiX496IVwqtEImzohNM4MAaww\r\nyc11+I7hk3Xj1Mu4zQNgS51w2bbx4XaNnRLRvkJuy9BOn0n7tS9kMMFqYX4t\r\nxGf3dF08GdyX/4g5EYh1bImkB5MfP6S2/swzGvIxh+cJkRrUxPqNz2I0KSTS\r\nHhJZtDmgyAemHwqxD02JNgy2l3phAc1Xxjv/6alFYgp4vhlghUQchVVuyH8r\r\nI4x60VZshd2gaJNJ0WTkdmR7lcEFbquLBWap5DDvOp5a5GkQaeqOdn8xK9aS\r\ndnKrkRV9VODkY4Q7gw45OD1BYFodL0ID8vo8Fd2ariFdaTTvdPAFDbCS4EcO\r\nY23Omn+iJA3k4J4EKISiRSmGgG5YXYVMtXIO4LwU6nqUo9h0p03xSa8kz8Dv\r\nfZbtKwoH4hUFUaU+lFTa6zgcrlQyC+hcJjDMdNt4fp+Epa4lSdXGm+FHHgWV\r\nw5LL2SRkk9ktr7F7YmQ1xkGNAhgSmibU7zYON5pOjondnwpmtD/PFG+7dYDo\r\ngk40YbeY8BwoS8NvBjXCN5asBF+pkNjPK4X/lBZeEkMtUAWzL87gy01IQDXj\r\nvRxfrcbKutpePLmfhR+N4yAz7yN8uQxFiAM=\r\n=w//G\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/shadenfreude_0.0.0-canary-20220708100343_1657274643471_0.9507772061892008"},"_hasShrinkwrap":false},"0.0.0-canary-20220708100917":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708100917","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708100917","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6eQ5ACxQOC6iFZWgB06YHaiAULMERgNTw+yQJXS0pakgFciKOhmcxm+lztShpUm8AT0mjhIhDUw4d+xoeVd41w==","shasum":"f92caa7684204bb198e6046fc1b315faa3c9da6d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708100917.tgz","fileCount":23,"unpackedSize":70085,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEmPmfftmvgMWiPdGunan8VlbrjMJHj7VpMtuwNKJobhAiEAtHDL0RCQwPfe5K2PGSuX8RqxzS9QG7RTPk0x5K1Ba1Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyAJlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp94g/8DSMac1FQDtVmjEvaSEdYoLm0MsWr5MNVwQGi0ii94Gy9nrlV\r\nCx32V5GOYiqANPZHW1BQu/l8kys6NYpqMiqoD6H4rvw0F1IWME4h0A16BJRy\r\ntA6n1wGu5usDDusTbUWXv0qukcI3RiN8lSGpPB8xtlp09RmycVIJ3BI2MDT1\r\nm01XE6fsPVVQpwixogvFe8yRB3e1fjdyf9/q4Eu6092dNLbTj5X/W9S5MgYr\r\nbQS/c3t0fOgF4ckGQ0CEPK4Tw4EceUcJWT1QWIw17rPzNWwywczXwmDYU9Jx\r\nTwoqJhWKhT0ZKqtw2S0nL6J8zXW4u7YLUUgW0zszpv2s/XDEs3u9N9fYiOpH\r\nnKwa9sQ+BuzEiu+XqjoqqmcDKWldAqQAk4pnF6xlMuPQhzldWVcT7xf9XeeJ\r\nt8tOg6Kqx922nLtCrOLgj/IATW07/o77folO3TL5Fw5VzPvGNgOIf/SLRRga\r\nPCEDaZc65YqOBKpmf1Bz4jrqG4whibXjDjVkDp6WM5eDtHyrjhhf+xkMrk9Y\r\nioKTDm7gkPyVwOzayaVhBdQHSzuPPl/44MVpSR2yS2sG7u+MxBmzMZaqH+JB\r\nv+mrbFBMUjIfGfPsaoDNDgM5WmQU6KX+RJRTqCp1j0V3iZbzSPbXAPTLJWD1\r\n9xJ8lDSgHpAbk4iJfoRgz88YaUCE6dNyULY=\r\n=TIKt\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/shadenfreude_0.0.0-canary-20220708100917_1657274981627_0.02395682643646424"},"_hasShrinkwrap":false},"0.0.0-canary-20220708101645":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708101645","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708101645","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-d3hN3gjjNIosg49mh6IXd9eFGausVNdYAUH7CX0a0vkSGb1qYnFZ2KWokvP1nLnynGZCnKVCoPAh9IQRSpzOyw==","shasum":"7b443a2ad60fd5138e05cd638662293c6df227d4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708101645.tgz","fileCount":23,"unpackedSize":70205,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwQS+gzwXsfruzLURufqjzfgwn3wKy3IFt7mAhXVAnWgIgFWjkt02O4kKDdWzxEUnyxOmWXIriXIFAifdJXG3a6LY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyAQcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqT2hAAjFP9hM2AFWRUhSCdn/+LmkwZzELmsEl3XZVODVpVgPAfpsei\r\njH+E2X+N2CgJMWpGcYPPtEtkG7veljyRYcdtbN8nb1lTTCmnysTI9sU720QB\r\ngclKigIdP1XVA383fuDMnKubTfUFrskMGX/LVAmF8IHYR1SmxhsfPgpNTz2U\r\nKGNJeYbkUbN+gSk87uVavVJFCNf3VL/veYVxHFr5vnDmJA7oByvwkLvasyuU\r\nLYq2LcmnEHoQ3jwexYKxX50UYlu3IxTHNBvQovnrpw8BCxst1YT/3eAKPIvr\r\nWH7zA8WvlIxEy8H6vE2Ojk134i4OMfGf5NyEW7EGi/agmuRbQIJH6yKj9+Hi\r\nKs7IITYYl5aFyYBz8didueNH3o9e3BJsSYDQ4q/PlH3KfwxMtBDl5R2V7K5Z\r\nVHoHRCTpl+L/3UICj8sXzwdtOJuYA2pbs7WbFmfS4THXq9SWvR0tn3l0iC/7\r\nu559GLVChrhM257k77tsNSjtfCPkxpDb5c1DhkRIcLx58LyxQpJlYEg5ujKX\r\nvtNGvi257HonzOcw6KlZ98o0V+nqEpqG6Ehb6J6wQgmmYWAK0SlVZCL7e0w8\r\nCOH77JdC/tl5rAV7YbTHi39AEDhHIgBdSMUbwYb9s9mrrBViAXkZFJkxk0IJ\r\n4bTeFq7JXMTEQm0MNawgZUVvW+Aw7UFriYE=\r\n=n0wi\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/shadenfreude_0.0.0-canary-20220708101645_1657275420083_0.10951865999107335"},"_hasShrinkwrap":false},"0.0.0-canary-20220708102502":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708102502","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@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}]]},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708102502","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-CFMkuAgocYRuZKs0HfKvViex09YQZcRC8MIFTnR3HCU1zdkNesaV3ts8dRnoRV05I7wodqbg87HKUS8wmVMO7A==","shasum":"b0fc3461ccaf0bced4b04309efd24a0e2cac0e36","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708102502.tgz","fileCount":23,"unpackedSize":71382,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0Cb1u8HgsWfzVwr7uey4X3dcxSN97PzQleq1F2E/N9AiBfX8PRuHRBuy0LzDy3ylPkWtPc3BH723LdIo6cSP0DsA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyAYUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6ew/+Ou3XaJ29Ty2L/8bdgA3ldu8lWi7AqQhkw0SPfkxnnQLruZbs\r\nn5ynP6nAUx4zdh/rDiEfROCPaFpEe8S5yWcR88x8B20lY/vJhj4j3Iic73ET\r\nrSD1vkFtLK3Ycw8ZsMUaNAQbYMO4PrrlRzhxCaEu5TPiD4orB8YA5kaaa0X9\r\n65pQHuT48yP7/oz+Lo/PrItpxomNC8O3g3CgWTcOChiqbbFbCA+zBX7fI5lN\r\nlOqJq7PlGEpyMQK84MiUpSw/bDC1oi5w7uUWD15cE0kxymwmtZZrU2dC3OXZ\r\n69zIybcrtWMb2mFdFBkr0nJcS8GhPTuE+u/XEf1yeU0AM2Rl8cwod6Rz3hHm\r\nqojXY5AYCV7wWuvMfpRWcJBy0THbwC1rrUqmTLTSx4Fns+ofeOSoEiqtvpsX\r\nFo9VQab7IY1equNjHG7LN2HBdbyksD1459Hp/bJ4YQSPHgwQI6i5oiG1VVLn\r\nl+cQO3K0VqHmTlLGMn7l0NsoIKGui1Bz/Xr6J5JWalWs5nSFHsAkfrrJJ330\r\nCW98jCmbINop+NFWchsLmQLWnG6VUufLeusyxw4rJV3WlwLj/+CGkLDC0igq\r\n1AkoOZJ/psqW5+386WlNrT3+4m/HZ1SPf2T5goLzc+j0GIuvBQoEVbsmhpQv\r\ndszGLOEAk6l8Kgxv1CevBHq5rtLlNI1i/Q4=\r\n=1P3G\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/shadenfreude_0.0.0-canary-20220708102502_1657275924164_0.6058103374330435"},"_hasShrinkwrap":false},"0.0.0-canary-20220708142000":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708142000","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708142000","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-w+O8141NuIA4KNy00YR24qPnKlTFH6N+bJP5G6odw+3dGmETRbeAJ4adTp1ATqB5uVyQUZZyeqBa26mhuF3Atw==","shasum":"d6dbbb5d5749e8ea5588cf812cc77e5151e6fc9f","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708142000.tgz","fileCount":23,"unpackedSize":76247,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI1dmMi0V5d8KSSZGRrfvEgZZYbMMY4b6EUC0Grl2OqwIgAT4KOsE36AoQ1YQy8CwGQBbNA0/FAVSkrHkAsNXosjY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyD0gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr0+Q/6A8+LQWkPCBuNbmD6XGqL9wqBj0R6fUEsQox8NrOq39U8DtXU\r\nU7Awac9igvJQ9Ton7MbwzbnLJ/zjLmaxDu8fmBzkMyTLAzePVuWZxAlTXWST\r\n5n5vyL3sj2pCM4IuiKYcWPT2KPoAiqQCox4qr/iSqi5CGyGNLdojRNv4YC8K\r\nCPdidNkGi9ntwr3UVAWINLxQdpZYeT5WbKdUOutEtoVnvQ/Ojp+YzoEKSzhc\r\ndAE7C8iApA5vEEFn74jiEnf8iPl/1ClymZV9kWdcfvYuAk8/hHxUOaK6kUZJ\r\ncPRouBYWUMMDW5q0rUP3n89nIVhsJX/id+r32lw+5ektDOfgjw8wZgEorFki\r\nxCIFKfn5Nz+Oz3Me1lljq4pC83+R3CiF0PDVKVxk0xdVMyPa/djjdzdQvYA6\r\nAUvIqmpDP3zHMQwd4KW62mXIHhWNJAFTZNtnF4RhC0ruaLxoMbmdKbIxs81Q\r\ntG8FSpTGGNSjW8j4D3hmMBMQ4/pw11H+xe7MNB9xz/6216pzGBWEEL1nKoc4\r\n2Vbd/1wnXSFfHUG4wwQKm6SBGbhpMzsoy8LMYkacNyDvchEWXrGoqbwxzedN\r\nOe3VSlahbvsexwHFBWh18uU6V9LKE2Md4tdsXSAe55/2esMfP+NmJuIQHs8s\r\nvoaMQSr864EpffB8D6ZrZsZ21TF0k7IgiL0=\r\n=VojJ\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/shadenfreude_0.0.0-canary-20220708142000_1657290015863_0.26938926247029693"},"_hasShrinkwrap":false},"0.0.0-canary-20220708143746":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708143746","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708143746","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-CkGCLBiT67FBUfqpxmKe+L1ZxxkkFgK7jahRFtxlOhHdJ/mjRf2c+utaE2eEK3KSm8Lki9evotbAp1tvQa7JWw==","shasum":"b22849e49a3084314ccc5784801891ee3b4db930","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708143746.tgz","fileCount":25,"unpackedSize":88601,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRSONR9F7Mi3qVE0mFaIe2e6/x8XUvV3vupr9bLHVWFgIhAMIZZH3fXZ5/kaYbxW9DfJq4gX7c8P1cjKY2UVTW2tde"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyEFJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYrA/+PKR7pndVL8nksEpYO4t8rALe9XGH5b9m54DjFTnU21hXO80S\r\nEjDUbnkJQ7ypLEZVeGNH+/hozyG5bU9DnZ3Z8yFTumvCW9Rc/uEr/1vPb8F5\r\n63Zkbf4mVFm3QOABVFuxfWDNcQfixG5ym/BeX/Q/BKzfAWgos6Ui0CM9rwPo\r\nNeclYojLMXTId+CTKwxLGXftyC+KvvpvnSkG48xpdjglVo2f7Mkri+J5hrkO\r\nueT6DE6+UoskZ0b2oH9jtSVQgxyxs5ffJN7kqkVbIZoVpza3Se/8vy3X5o27\r\nFGv+O3/6ltc0ECaXAO4eidafp4M2yvoRubmLyact2nEEeXENxA7vJDmpLBCT\r\nk1Tpq/L5j1oFf9R4OEtTXsSOf5z7GqE5TtSearpJ+dtDmI0Q0R5/soLsnXil\r\nNRb6R9d0IhPyXFxVMwwvfm2wzgnJthrZa4VH+vXPdnsU1QD6yDEg+7iBo16Y\r\nAbdYdn3G6o5ptwAke4QclOEn2is9SBn18+4f1JE9XFDWeqwQvT2eVUhfDgnp\r\n4/uTivIRiYIPGA8g9y6RW0hEsbu+UMLY+F8o4jaOKJsjFh+4awye0dQysnD6\r\njfGniprw33qvyU4mxufZdNYudfQ3bdiGG54btoCWqoBSuhpwwBGYJDfMxaOW\r\n59FrRbQPuCp6IpbXGkVO4fU2MB1mrmq/pcE=\r\n=N2Qo\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/shadenfreude_0.0.0-canary-20220708143746_1657291081318_0.767971098244481"},"_hasShrinkwrap":false},"0.0.0-canary-20220708144225":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708144225","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708144225","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-U4C7G1FCRwus96ueRxw/V2v86ZE2SfeBP/GSqqHQ+D6BPWg4f8NOmB6zDPrNznwCRpUpK28FLkrlmikw9fhUdA==","shasum":"20aadd691dad6e0c7bda183ab196dc37e819d989","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708144225.tgz","fileCount":25,"unpackedSize":89774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCkltBpvFH9jvEv0bse/0mP6y0EkH6vczrpV5mCdMdIwIhAOQODE6S1eoh7Bp91tiPzCdV0jttTNoWyuG3qHAGIzxS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyEJhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpHw/+K3FpQ4c2QENc/cgRdRnAPg7LbfEM/45JskvC6EdT13O4Z5A5\r\n5kcXV5crsPtg81Y85Ddc0ETDBC2a1VA0niUu5uQ7eSPzSoYtkhuqD7S2vZaz\r\n+5jrae998PdyWdqSPtO2FVLnQYQ0N6CDvYmgV6I+RfUhWby1JJi/bDBWSwFP\r\nbkGMSK97APS4PaudbRe8FI4g7DoQzFUHjGQl5rr6cuBMoZpkF+rCdYxoqXsD\r\nxiGghF6wTxjCBIn+OKOgfO3StUewyEdn1yup0IyBXc98ew93xCwezOYgWMMb\r\npXAHmrZKuQaz3tZOa9orIojezFgA67Jf+ZABbE5MJRemYERpMpLXgwPKRMhO\r\nUeGrKWG+M3C+5eUcdkPYbp/oNA3T1wFNIC0Qa+yx5QTjVW1k5lRInON5ATOT\r\nnAn31In4oFviXfZ6NvVvXSyJcG/cytTyH/Sj4glRbex5kKbQqr5zY50s8yW6\r\nZlQlmg3fky+5EzIIVzQsCYC670wCqTTUlpYwqHp+3qtLkjVWcEbHuYZcpY1Q\r\nhSvh4DU1MVeY2NRQiOOPteP09F9M9w/yipQkNt3g923SGav0+SL6G4sgiOhW\r\n7eG1GIcIUi/epuJFb1bmrzTxTTr5ltR75TZkTFSqPs3Ugvb9u7ah2o71yUcP\r\n663E3ayFwwRbrjaD5NURmxZcuNYLB4HjHGM=\r\n=1aLx\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/shadenfreude_0.0.0-canary-20220708144225_1657291361570_0.402694093677626"},"_hasShrinkwrap":false},"0.0.0-canary-20220708145957":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708145957","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708145957","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-p9fCFDW/NyvRIjLTX8SEvXo6F6sorVTZg/mxnXXYocy3E7xsGQJwSGoZgnDoCjy+y2yI0CMCelboyvMO/DDSuQ==","shasum":"e9f1c75aacf5326530aca15d8946c6646f7d07f1","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708145957.tgz","fileCount":25,"unpackedSize":89774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDljXWYr5YlPZ9MPlkPXQ9zA9SMJ0TgnrHeciJfAOgyyAIhAJBwQYXqNT/ubV+KjKa98uHam0mjTM1UWF8g6dkW5Dkb"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyEZ/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoaIw//RtGQimNzsxcFdqPAZ+DDKjLOMc/G49BYC7R/LVxzQpDItAiz\r\nNYBTD9+84ub6N0SThElB8zClfvPQomU+Jgp1MbCqA6h9oLM7LRdV1F+bJHDY\r\nO2gRxKfFDDtJ2+g0u6XzqoFMYHAx1vQy9deqKWCeU9eReslt94Io9/Z7KFEt\r\nArsv78MMxsoSHkTGfXZpDmcOT/dRXG/jX0LlWyy3+xTuirv7lKoBXfw7BM9P\r\nv8FVB4lwGaS3A85QjV2U8SX+8l48cOK6ThiGxaVtSGpfjVa2PbAdaSiK9dhY\r\nFF/cShmga+q5BHE/j0RaiSgE5MAsRumunHx1vumRfI5Ks+1Kffcflx0l5Env\r\nrvq/6jNVNATvemlV//xZnZ8PHNXKNtEiSdXxsyRar15Ng7+V9qN440BW46bn\r\negY3zZpkyC4ovTLQ6DumeRTnNRaGgvlIUTh4o6s70I2eu9cpDjZ9kLGX7pgZ\r\nyQ7CmaluofGTNQD2dZCxkhDRJie6BvA46TFh1yoFAcXaA23S+ExN/lDS191k\r\nLf6CqF+KfFY8xki1eNbsWayVWTROPWUvIY/VweFkfyj2LwUH7RM8/SMWTlKx\r\nSpCq1150DCo+J2T+JNyMVF9vop6Z8FXigl8vqHZLQbHDgdejhmYdq98uaySt\r\nYmPkVxWsBdfvIDHxRXH69TctBux2pTtvjuA=\r\n=5fJY\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/shadenfreude_0.0.0-canary-20220708145957_1657292415560_0.3928776459932857"},"_hasShrinkwrap":false},"0.0.0-canary-20220708153539":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708153539","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708153539","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-oZG8l+vqotTXVzqYxMROTZZYfCn3VoLzDkX5O38r9ty0Oj4k2DRhqd7QlEnc548fj/5x3BYcENFX5G2F7K7TRg==","shasum":"2227605ced91800f3e4e57496ac4a10e2b26ad0a","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708153539.tgz","fileCount":25,"unpackedSize":89770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAqwwlOC0XEG/viLi7P+NNuUSNbjKUGOoZi4C7m+z4BLAiAScgDKNw8b7QvQXYrI82A+iR4fM1juW92Uvd4Z8DQ8Dg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyE7dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp23w/+N7HFVZD7oBQV3au9LLn35nmBolRO1Yz0nKOi/vVFWZpdC8Q4\r\nUbx5WtwzqSy/tjjRVVaJr6eRayNt0Or2472pjUT3OcCwTfZTLqR0zL+EEdG6\r\nUxHv0mG8rniO9mB1IgwRkXHXoQXBL4gkd8k/4AJ9h0CTg3l9iwN98Cr8Bn3y\r\n5ALfGEd8VSjFuaZmY5tr5GTOpaIqEO/LM6FAVBfrb0efOJ53OU5yMcao+WZn\r\nOekJWKvYweCKS2cd03J4Z/Jq3NQcL1MivqUO5v6yPJoDfyJNeZAdSb3RFeBS\r\nGZs+G3Jy+6MWD4ODaByTpCc3IuZ4WUAR1tel/Kvi6QVsykBOtEcpWEEBvbsw\r\nRF3N8ImAy+a85p8p5WZaBKqHWm+V7QEk735q5JXOYbOP+XEpTrVRDRbi8QXV\r\nrfEB+f5EeO3Dr0OQxqYlXJkyqSq00vvzngI8ECxWydgRNc8ZE1pXtXR73Wjq\r\nvndxdfVgmsOEv0B3i/HSg+HywieBmJTOEFwSKw5gjTHhAtSenHsNZKu60jN4\r\nx06W2mwOPoYPs2X1nAXg8Zmmm5UCIdPAacnhyGB6BUO6tvzwWFs8vnldqVAX\r\nxx3JUMuncAseto+aukY16Dsbf5Gfru48cV8fMlygjrv8ZtbjnRJ/GU6n5ZML\r\noCqafwdfca0Ft/1IF1ghFtrDKaCGV1lMEZE=\r\n=ZA64\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/shadenfreude_0.0.0-canary-20220708153539_1657294556918_0.5745983857910248"},"_hasShrinkwrap":false},"0.0.0-canary-20220708163418":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708163418","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708163418","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-3VpM1RHLG3h68DonNy5F5u6tZg2uwG6ZS+GdSCku1HKlpBzAZ/9S65wKLc4uONHMyWF+cHoRhu45W/99pP0RRg==","shasum":"c6e9f793142a413ff1302f21429c35519f5930c8","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708163418.tgz","fileCount":27,"unpackedSize":97733,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHdUbXJPavT7rpXRtMkZt+UV130E1nN69Hq1wxFIaFnfAiAtEOdgkQKvXPDKm/BA1NuOOlktBhrkq1hyfvah8gxlzg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyFyfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpb2g/6Ag3WErhLx9fJkVaBRpfdRStCiuFtx0zti5IoKSLqzVpBPa44\r\nrJqj+UYIEswgpOXeINEwvCSsPMXSXvAVd1J3dcAFXHUhCJlNwfkcpLfCve6s\r\nUjPk0TmOAq1NWFuHLyifcppjcPVV19JqBK+8kVZEPGob/ZMXqYV+IF+8m8zW\r\ngG5OYdEBccgdqrz3aBtxL5GjhYGwyKR1YcmGmfTOJlFQouCwzOEsp1WFh9Tb\r\nnck5we2zE677gqP7N/DncLzWxLR21T0xCElre3DOtURSwBpm6MnifVesv7in\r\nXvGao2kmhqkjgE1J7zdRz+8Tj9bYcDjHtCPPv4Hh6kI9+m4RJk8EP8KFz98l\r\nNDKBMOecBzBEoZcVEktlHU11OL1QzwFkcr4iIT5gUqyM/mNiOa0gODOUtOTr\r\nLyMbtiBpwqzsvOtTnjIpAJaQW08YBwKy5tQnyl+qEG//AJNmCvxapnyG5QSO\r\n7Lcw+RUctxxahfP1cAFwj8oOmYqR4Ey45oULbCPGKj179a/1cKGN0f+VfnkZ\r\nfEsIqbjsg2G4qg+xjP0aFof/N3h61KgQbP6giJgQ41RGMqJuo9wvzSv9KSqT\r\nXRRMkhu0O9tvT2A+PdVWA2ZZNhoN7Gp0RWnifTNROSfp/UprtUYmi9IqlxEC\r\nWGy/0Qb/LFb3RzgjwaGiJvS4dIZ7HBQZzu8=\r\n=Yp8Z\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/shadenfreude_0.0.0-canary-20220708163418_1657298078802_0.17751661089988402"},"_hasShrinkwrap":false},"0.0.0-canary-20220708165828":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708165828","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@babel/preset-typescript":"^7.17.12","@testing-library/jest-dom":"^5.16.4","@types/jest":"^28.1.1","@types/object-hash":"^2.2.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":{"object-hash":"^3.0.0"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708165828","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-5sTpOolC/IvxA9xwFpqVS9DlL/zk7tFqssumS/8wfm/qaV8PxFOFRNppkVahEusacEJTywJxtQYo5DOza6dlhA==","shasum":"4a727df1b2e586ab8bda4da77941e5eba69208a4","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708165828.tgz","fileCount":27,"unpackedSize":97733,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB7XxHlZFZjQw+Tu4XEmnt+0ctW/C3i+xXrZO9p3PSS2AiB5hYGKukEnug3scUEPOTsfmPyXqRNbt/pAjkyLmKWlEA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyGJEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOJA/+N7RemKs+Fe3oP6f5JkjndmDT8+t/jI9LUL2Gyt6MUxSFiCuO\r\nKA6SRsojKLskjWu8PHRTF1y6wUg6/YN4ypubVFKczoAxV+6T7EZJa/wsrtqo\r\nr7cdj9OdK6b2zCEPyEAC6xoZG1UAr2yLOgaeF9Ta6XFXsjtmvsFHVeDoVq6e\r\nNUy+s1N8uN+Ej//+alS5qxJX3MgZt+55BP46spXwCDCy/J8jVJ8kQMD/OsqQ\r\ntRUU263wiwgizCkYjHzwZSdOl2RlUjH5cwv/KSJQevoxwVTQqgy0Dc8jrAmB\r\nrQoqLoRkoDV05WaQKpmNs7qCzqbsqVd1iC1omXwUVEd0FkrERpcOXKXGTIOP\r\nxffgE97aGTFv2My2RpeNomrwXGuxW/RvX9h3mAK3dwSa/kJ8NDbXuctO/+JL\r\n+l2ysjIP5EhkDirInYpkInPt8CCztLgRki/tbA6XG3GSNEmUCHZXYzS2ItAI\r\nv4RtY2qkvKgzq0ZwU2XU4vyy4sFzth+m1d8KQEnYLH7FUkOrzpj63hR1KtVA\r\n1SZFkHmOFs+eVIFFI6sHrWCcy6cWg35xJxkZ0sTntSO1IfIggDpnqAoW5BN9\r\nd0u95lggkg3/zfod4exn0y3VO8WondnRuYSTD+paCZJJ3lyqD52SmgTY3tlQ\r\nH43H1mQGSixoz5otnLLNtDpfZ8znwO2pWVc=\r\n=1+lP\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/shadenfreude_0.0.0-canary-20220708165828_1657299524329_0.9461165130544538"},"_hasShrinkwrap":false},"0.0.0-canary-20220708174319":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708174319","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708174319","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-DWpwB9De2d4I3qglIb2XVhri5minpD0EYEYHk00GwV3kBiFC9RUZF4bZBWZiKG20p59BuAqqOeRidjJUso69wg==","shasum":"485b93f64891d208f58505f8c25b612cf7f19cee","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708174319.tgz","fileCount":29,"unpackedSize":97527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcJKcwoF8AN2Txf0R/G2DXN1h16hF+0k+ebt1z39yzrAiEAhE9dBT9fvngDzRFdmlQeS3MmoQXqwAfjLvE6NS6hJ4I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyGzKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQwA/7BPokdzdJ6wHzb2t7vN8cRMuPQSS3EQdFjSLFtRnesRoNO70m\r\n3l3x8ertF7Rerci+QRm/WvKVa6EcrpRXm0Osi92/aL4ro5dCvL24DZSpKACY\r\ngYN1l5I0NarWnh95gpkYKiB4Mhc4HWtGrmvBro21PuELPTz9EtoOsIH9pP3w\r\nllx5OP9jGZt4vmAfa7+SvT/rWRoysEbE2JHBZZztLkGrSYHgV0rtPrhMJi/K\r\nNVX8gV8/qlb4Jzvm7chlHWcFumEJ+RRZPFRXFKj/AOLuOszc77pjDuMPfjLj\r\nuDG8j9KoaNbl1Z9Hq901RhoSX9M2V+icGWOzEE5B9hx9Ys4DBwtDxYE4MAhZ\r\n4ktkg+7qLHGD6DaGebPr8s416sOZHV07NRdB3H8yCsPh1XYGltD5JSxTHkUs\r\nzLVIxahB6/mVR5JeBKvyZ/y66K7jxnlxO2HYuXtmXZFCZjDqrEzkUq6rGjcc\r\nYD2Pcjlc6Bg2YemjH8XFEHuRK0ES9djz65ADdzrgShZfV4WjGEZasNAAZXWN\r\nYc+eaddIPTXHPO02tdX0zFJM3lx17gx5WDSlHjz1ZLnqjlcmO3Z34FQ2EpDE\r\nzp1pl+Eh3IUnjr3sjfs+h5pRsHcPyhoa0aBX6PVNhicCYTt14nh0JL0Mhz7E\r\nBBQjp1gZNGfWOmsC1OoG9pptH2lLJHOgXTE=\r\n=EUNA\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/shadenfreude_0.0.0-canary-20220708174319_1657302218175_0.16510396059281907"},"_hasShrinkwrap":false},"0.0.0-canary-20220708181446":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708181446","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708181446","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-kW14wbbZ5GCzKwfgBdkyBOkvpwTECjrZZef4KSi9tCB7wvXSS0LReg9+rsZ5W5EY2pjrw49xR75bF4RcISSrKw==","shasum":"9a8a3fbde98d0c5caa0078dbe5298ca67543be17","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708181446.tgz","fileCount":29,"unpackedSize":97527,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNdDRahRlhe4roqaxg23MgOEAbXVY6P7UfWrmSjTBD9QIgD7daM47UM1iCjrt/wtya23jj/GA/mmZD4duElUJw5ao="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyHQrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZ0A/9GuMaQ9YW1oA8sL9TOWGiVWUhWfrxR+H+NpOF2KAzV4VUy8NP\r\nc2/xsdt0efXff/grHjT7+QoAeTv88VVX5iAedlrdktJa2qDRe1/Me7N+hrtu\r\nfaUqUQpJhoojkxxwbcJowbtk7/hUjeQqIBykuCWWNDSIUBJ4h1+YCWF/BavY\r\nwdW6fUw392FF4cJxzipHUJA7iZrsRYazsjvtfyc+eNfNmgtDlKRfqeHi55/8\r\nwTYYBmTYP0x5P+Zc9fXdUrDZ40gKkiVqS1jfrjl0tQWhw4S8bAlo2q+yxWaL\r\nWtu8tL5oownGj2m06Tr3hAVJm14XeKk41BvPkRzx6gx4M7wMzXYx+FOIkN8q\r\nV8ZjfvDfR7P6d3Z5As8k+kANyUJYbKNPpZVcrvc53Aj3nANaS4hNrh8YldV6\r\nBvTIvW5+sa2s0Q2UpJ1v4CYbsz0wktzeKlOQmR2b6N9FKeBoiz9BVN9EZ/kv\r\nVPa+ccwsDE/kjNxKIg8pd1dEI7/VFXDNmtHYdugSCOGh16gFdR6zZDw3/kAe\r\nOMLhCFJztP21J/TD7rqessbSjPAYiIsNG4GH6XQNmDUc0W8vyzMoOGghqX/q\r\nzQGN0o7vvPg9DRopXerfcQ5pCkcvYDAGg9DmL7e1Q4qXQe2gjipZbJY/T0sy\r\nJ7UQ6DdKFEccX7GphyfRodPnWncRH84qezw=\r\n=iBTy\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/shadenfreude_0.0.0-canary-20220708181446_1657304107239_0.40015233946944995"},"_hasShrinkwrap":false},"0.0.0-canary-20220708182912":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708182912","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708182912","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-99YQkC97Mvvd3EdKzE2O6j/JcoFDkVnmTebRFnaKbZHqAqNhF65Iia/K+xudYuY+7gzS7zbSFuz/d9oTvuDQgA==","shasum":"efb91a9daa1ee765659c2b38b20105d513398c31","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708182912.tgz","fileCount":29,"unpackedSize":97546,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiDtp9iolAnuKjjI6jmk9bDKFXAA+bxp45xQqHqZeW9AiBNEPAt4Ewk7kSoF2y5S463K2RXR705n6AKnPILuTWczg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyHeKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr6zA/6AgtYSB6b4/zvLl0VGLcfdobkICTRCLE/GoCWV1jK87ZNSN5q\r\n6rrjdrz7+0s08wvR8LaNY6hAm+C5nFaNxIMr5fgd+c5pXdUACM758mWgNyZj\r\n+egvepvI2U+TfkDxl78lWLp/FskGfaaajpJx9kWkKJrZ7l3q+EnqIQuRaM5X\r\nqsQhsBUVnUToRIovC8JN8hUgf0jHFB+hseuTLmX3hg3qissAgliBzMsdQ4dF\r\nx/+NmFgZB+Hoz4tFmoq1o45UEf4qWt6dQC5vcXYeLjRd1CtSvpoTsuvx2IMX\r\nGEQx26Is9PHUBJ+j/+W+2fyqBsnZeo83d7H4WesfQWsl8BTVb0jJqYU8MK+a\r\nUItjRPzGAlS1iZ/55cOsMv3OsHHMGcwX+LsZpLDJRuutZkmmFI5DGgB1mF6k\r\nqVtlAsbcptkVxnhHRLwdFmsYGk/0yY1BxwIcNY4SInGM/GTTuCMYagQeSi0R\r\nfn3PE4x73lYAdYLQSWTjxWYBImKoojhZj+DNFX7LkoDqZAJ6ElB/DwzjS9rn\r\n2aeEHnRZBXG6OL42tLXsjwaE1VUT/1feeeqOUMFCT3EajwQximBbcV3nF1+N\r\nkoTpqy9vWc3Gq10Ic/WAbnNZvCJLk0d9+G0CF72iPmKOkELIohiidGcTn9vj\r\na97OeqNFqSle+lZus2JxU3QLXtk/XjR2D0I=\r\n=UNLM\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/shadenfreude_0.0.0-canary-20220708182912_1657304970481_0.23585145598979795"},"_hasShrinkwrap":false},"0.0.0-canary-20220708183307":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220708183307","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220708183307","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-qNgMTxV39D2fW3SZLApiA7RxYJCvZwm1iCkRBWXKD2b0yzSvHJfQCRr3H+mfRE6LgvTyDXBMrwIb+dod9rZb6w==","shasum":"7f5171a3ab66ee70d69d3a5e3557f056f9c6d476","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220708183307.tgz","fileCount":29,"unpackedSize":97546,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIExPZZPHyEDJVLeF/L5M0CGdzYaWgkNFaid9tNNQNdMQAiEAv/gWtN+C7m5soI48cjjk7coTV+RjAgelp71+dU8Bu0w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyHhzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPwg/8DAweQcbazsKuIQj/B4exmqai5U7cQs1uBTddf8t6lzXPrp80\r\nzKcOeKE/Jhhc9W+GBXLHesIgrNfpNllEWfbqPyMc5yMMKfCugvBTh15gcWer\r\n8aNHyi7C6dnvtvyoycuGKv0pJ15/vvoLlF49JgJ5Kj83d6iteujrnIvl8+HI\r\nQJpxgRiec5eESAAp04rOyfoOFP2Kno0xbythZBmidmhP8THVB5hnD3q8bHN8\r\nfFlluKfviVbmjvBOVwWTGomUJtuNfdL9FkxQhg6G6mZ68soFqgzbU4s40ptw\r\nCdUuaU90eA7vkhEkCbS0RfGqtQRx9aGj3B/hfmXDhiJ6m29tFayoJIuXs3LZ\r\nx6HCsfOVpoW0A2AxJFWIDQdk3wgjnuCXHUskJYdbqyE5lZ+uWIDS/epcSb+/\r\n2hs/NfN2juIK5TiylS5yLh5HHQjKaSgUlV7Oox4CwIKY8EtCD8rVHJFXuvjU\r\nE3CpVij4FVJUPyF5rGLMD6eHH/n/6g/K9Z8C3NIb62p1eMn5REaesW88vIrx\r\nfh+4jHzWTFt5Oq1PIg52/2b51My8hb4aup2h9V8DTy/WJp+P/Rqv+gNhoyG+\r\n50MfOjQLqrauhMthgEqU2lGL5wPIYd78kXXtlOc/svUGtT1xLfQZIfuzMAef\r\nxRbNlBGV5UluVFiQc3G6CjLzlA/pA0Wximw=\r\n=f8Ig\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/shadenfreude_0.0.0-canary-20220708183307_1657305203036_0.10208135197012735"},"_hasShrinkwrap":false},"0.0.0-canary-20220709041435":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709041435","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709041435","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-Xdpua74OY8uYhbmlKF/J3JYxjEDmIhoZ8UVOk3otqfHOusKBY30W4mY5w07s1BQv3Bmfb6O/TXybva1DSOq2fw==","shasum":"43e4aafc556c17fb378175f7a83a032bc1cce411","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709041435.tgz","fileCount":29,"unpackedSize":101110,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7XUSvOIiiM6YcmOniQEW+18hUn/6sgJbs3aKxx6nsLAIgRNa3CFkT2jf5VfDvXckItZeww4SwN7lPjJbzefvVUsg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyQC7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmojkw//VY6mi5jSaZBRpZbQGRMxm6NbRTicZiBhSrmRc++jUHPD7J/x\r\nof9UAuB/xhQgLIy4ApIo8899uOYZYlTjjmlsUiB+YeqtXhn6cwRbDQbNh5My\r\nK7Es6sKZ6dProL2HEtK+a0wAEtyAPnoQQwaxyWa42mNkFGeGagsiIKpV0LkJ\r\nosBiODLzU+ZRgrj/Jo3omBAbwWMVmfuywT+0OZLo4hTHYyn2MxYm2rX9jmzf\r\nu6eOIE2izjXB86bPeb3Nbqf4KpM/eIHzk4k8q/VCta9A5mRuaUo5gUol7ZiN\r\nCg5poUFMPtbNbnS3hMaP0ZJuAwm8f072J6Bs141CAK/+JHaBzFsH2SFB7koy\r\nJM93764WcuPeCqWlo8eyDe22Y7i5lDY0csQWYiE3IbBMSUqNiV3VAec+9nQ0\r\noemAXES92UCPfUcQPvieywg+r5+ZESzt1Pbxb89q1uXRGFfVzp083JUXucdB\r\nZKhSu0JnW5uRsdLtyUlOW0gktDpJB0T8XVEIWjDtuRabjg5LdXaTdLR4xJ/8\r\nXzp8rwgxuM7w4QiWQKPR2GJwT0QaueBJjCA3xCmaZAGEKDbxLAEhlgh/DYqN\r\nQ9PYWE5oXgYcLVRrHdk2u3s7AoZhqzuWL/lvkdmz1Gjjzl7Piir2Aa8QHm2q\r\n0vQM97yP/xiXOszTe8CQybsCMnZ65JZgkFs=\r\n=YzwM\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/shadenfreude_0.0.0-canary-20220709041435_1657340091344_0.9751706560470745"},"_hasShrinkwrap":false},"0.0.0-canary-20220709043355":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709043355","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709043355","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-rOXe9lgXtrK/1qJZR4MMA+XCtmMCcrguMdVb6r2gVgw5Wt4EXKvXltzcVySuQguOFgqaFQoa2gZnmQr5EOlWOA==","shasum":"031a5bd6461cb7871ce64ce9678442079d57aced","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709043355.tgz","fileCount":30,"unpackedSize":103504,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNKcNysS5so/GXX1HBJlMqEF0LkM1Dud07lQT0kx3ldgIhAILRo/41Yfn8l4JGFdo6CMW0N/Dw+L9lO10r7dI5XtrX"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyQVKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpp9BAAk7+gpfao/eKddyotzlgKYyxzA5An1REvnz2tyUL17xeJs4ox\r\nCivIcdxW0uhmu9J4xM8DtMKCzdEc7VBp3PiNnElxO2CFHmx9hRJnsYpmw6kd\r\nBm4Fj3DxcHdU+4hbozBMjzganMG8ZyOTMYn+bQ2qvr8mJpNpjDmOyyEGhKua\r\n0E/0Acmk/UR4H6DHzdH8hCQlRYeks8PSb/DY6/lu49fisI5mXa3sto0MJ4T5\r\nNxt6Dc6APo/7WgMqcoiIdPchoycMWE41eSbQtoAqC+7GcP33zzVwDvkhykPc\r\nd8WizJuLMvLSCT7O86uEjqNTR2Xpzu1ce8qu1tf8ClwPVOZRJggOKJWdWSO0\r\nYNQPE1p2ZUsCNPcB4SfkFdF5DFtD9UQw2iNytzQUwYUxL5PlvLujlu0Z2+8q\r\n56bCDsLCh4Bp0hzcjFqmTjNI4yIOq3h7hDkO0LhPfXqj+D2ZPexLSplUvAp9\r\n1fAUBgvWxjYmm+M4UCYe30KTmx2WypPS4965fuP+H9nWqvTJwTy4jUdvMokB\r\nKRH1ETAwySXZQ8tLaCCnCRJc6I+0wMMKVOviW35d6iPl32ZGq7/uhdY7nCHt\r\ngmBdMSuTS2he1ZowErWWufLbm0otX9F+gC+lxtVytYLtPUWvSd1V9pghASt0\r\n/nejDgG0GRC5Mk5C01lBBw4nw7kkGUuuzIk=\r\n=lnJh\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/shadenfreude_0.0.0-canary-20220709043355_1657341258128_0.9578737497022127"},"_hasShrinkwrap":false},"0.0.0-canary-20220709045814":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709045814","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709045814","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-2o7E24H1v0BaFrdf7TaPRKGegMR1S9cFvU/mBGrt+6S1l2H1SkagpUS1mnjAsags5P1Wwf3jmuEdsZqmc4JpHw==","shasum":"1c3864b7c465e629cf1596f9e708dd9c56792cf6","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709045814.tgz","fileCount":30,"unpackedSize":104210,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKb5k/Pb/iK8rUeIWASxsiVAfvd0feoLGX460/spcPBQIhAMSJsrbQeCe+H5eV3ljPy8PG0kju/7Pvn++pVZygIY45"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyQr5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3GBAAoe3BMmGzTkZrTTKKqqHjrGmCxrecD51eSPP8LoONKAjYRcvf\r\noxH/rbnURY6YhyGRT8UWOip9afpPx4ZhrSHSNJa8PiEZk0lR3ntSXxpvSmtZ\r\nBIhQZbpQualRr1vfDw3dihWm+HfUkSmSD2GjHQ4BpbKLPmLmYJN56ht0Queq\r\n0uKIrVTwzDGKtwLYAwvjpStOZtympzawUz3Uk+BLiq8rC5Ryqc9uxWVqy5D0\r\nopBnGRG/T2bpXBy205eIUvlnVRuY/tVwvK25qT57+lhWjkl4i716EDvHGlRz\r\nXGHdJmqMLzi4KfB6EoBVf6Z8EIUSfqNxu5kn1KdN0588zBWQVhdT0Bqx/P0c\r\n8la8jyRQxtznnF75oHGs+n+22Do2FLYyt1NugUoztGr9kGJ2wZwD+pYqC0Aw\r\nWWhbsxg2G8b7vXrnOAbrnEIt/D9d4Yg7P6oWO9cpD+sgnTcES9kBTTQc/ZDM\r\nEcO5QFW07IdQVb9hbj77P7DwOWzd8ewgQK6JB/CcJF3aFGYHChV57IYLIzTD\r\njV2OzBXAqZEFIu52WT8rrkQjqtRO95dvFezXrXyPyAYccqn/Vj+LqERmj0Ib\r\nabTUa0OxE2oivB/AlCWY4ZPJUAupx5JF2cHciSerQmUwQWNF+E+3MjsJZotf\r\nyOCOPiXQRs0xAnbIfKuy7TQKUOkBELhBeb8=\r\n=G1T7\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/shadenfreude_0.0.0-canary-20220709045814_1657342713060_0.7034427044949574"},"_hasShrinkwrap":false},"0.0.0-canary-20220709072030":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709072030","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709072030","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-ebc1ZruokCSouAmgJMr8nWuJbuFoo4zT+sbEKc5LynY6WBngZbvnX+lrhr9yrT4gedxqodCAvSprFlXiIpVqpA==","shasum":"d83e804002f5cd762a05711e6433cf808bbd4cd2","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709072030.tgz","fileCount":30,"unpackedSize":105926,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLOd9kJ4BCYRBEZCyna7CTYHQshnRrWc4plkOehjqqBAIgT2Oy4LyHNY9VvA7MlwZPSGo0KhONszBk/fDyJeoBe54="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiySxOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2dQ//aq7G5fr3eDNlLWMHHnrllxiZyUbjCmNYiZqmOcZOUKWjpF8B\r\nyzNSKTLOwS5UxDn3+qbvugP7nwRm2ZTYYuZbILGYlZcjcAXE0o4BqIOx5Fk4\r\n3iSC6RoT5iJYMSD3t4GS27ZVpO0h2sm/6bPktH/0LHrKLWqUYSFbQUu/UgE0\r\npcesuwxw4GPEUsxKpukMyLAjSoOXDPr2q/WPx4oyDvpntsej1ORSvA3dYnio\r\nEbqNpEAw94b35Ji5+6pDcF/3SuplZlYAak5kVKlTm/fg9KAIzXLrgqgtrnZC\r\nU8QjCpEHyU2oUPP/ZNc1RXHzUUQzvSxrMYZtlCwuEDR+Oqty1ZQWF/NlHn+U\r\nqYpwcrtpFsLxKdwt/osMLD9nbQPnOOG2n0HoOrYsrbSxAhMrOfoykSx2/GWW\r\nZR/1VWV0j4jD0dztZaHZ+WtwXDZTF+2W4KB+KllQtpWTYLsXR10WDyJcmwfU\r\no9rC1HGJGnb5OFWqd5SGdrxYpVtt7wZq3tiJf3H/l6GDVNoT4EXL5PsTJtEX\r\n5NPoZXr6DMh/dtIPSftGJuvCXoeURQ8SMDG1vgBPmGHoAbNl/9/VKx/96FYa\r\nsiWnTfuqKLW5EeFQhF/TXJPNdg0px0QJ4wRVa6+hU/qik0GG+M+YHwttih0S\r\nvtgtKEnUsJ7L0dV0Qw1WDcZiHo1sZ2kkWkE=\r\n=Xd3J\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/shadenfreude_0.0.0-canary-20220709072030_1657351245904_0.8238433573362742"},"_hasShrinkwrap":false},"0.0.0-canary-20220709113411":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709113411","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709113411","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-PfVdbAzgT9DZDPpFD0To2bIHpv0VnjvTfnPF6RpLvKsspsC28R4iMhchmALUtt87onUBseu7n2Pl4nPmdqDEKw==","shasum":"12c6426456ed8105e6d5819b9bce4f965224ec5b","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709113411.tgz","fileCount":30,"unpackedSize":106825,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHzQ6Ys/QwaebOivks5hnqEfScwrF8DTCt1/ipmrjr6ZAiBuTr1awnz/kroc0L9EmSrqVfTr8oVzj1qJQ3s3Dg08pw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyWfFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFCA/9GNIWvuCTLp5MTPUH/8GX+VrbKhYn0veIZt3tzXXy1ID6RvGR\r\nPjeRuhD7XzPS/uRHKl5y7KlCOICXb5jkYowcvFweD6eSv8nswYT6kERo3P1Y\r\nugAqo6Ns/4N5uWXvZHsv0uIDxKWRMRgHunpw9t8OZy3SdCVdjWmXyhgkuBHa\r\nCIEVtHBCT+lcjFlZlTWbodOjf/6cVqFOBo2vSABpWV/hn6GCBISp9/OF1bdk\r\n19BV6PGZQsOEy5Ks1U2En0mhHXphIJPuEIVfbnLZtWkAb8oXWFEvQiUWygUJ\r\nJm5XgJ1eRmYDhcnFU/9U83Aw0/NMdZo4qjX9R2p7B5RHMxMr9xGsOaS57XBo\r\nOSa63qUEfaEuzZKfrBBxLleNC3xCz3dmcCL86dSYdgpHNjJ4ovSNJfx6qN90\r\nKmKOgpwT9lF3oxny03DBGPc1yW8yncPHzGC/6oUPmSYSF1BRIS3RyG/uwrLz\r\nzSOJcIELaMUnyYuH/vg4mFUByPeujwqCy6iuRSmV1UaJ3KN/bE6S5eJBToXL\r\n1y0sX7A7MEUq0gj/227ispAVaeRLcHRQQ6/xIt+ugFQtywr6vzXC3Lz4pJle\r\nGJSmr1bDkSiT6ShKnQzifXwAYaOr0keQqmBcoGC19aqchWFCPQ0YuqgzliKl\r\nIbDWX8zpPd1ByDxZNGe8W0TmT2OqWVS4Ztg=\r\n=tu6E\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/shadenfreude_0.0.0-canary-20220709113411_1657366469091_0.455597952933797"},"_hasShrinkwrap":false},"0.0.0-canary-20220709142503":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709142503","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709142503","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-uIvhc63bobjnDb/OmQ9pRtiL5pHHdG9YIEkhBzX0qpiwzLC1nuZmSqwhxVkjldDwFPNCv1/nLv+hhlQo/ggSqA==","shasum":"37dd2ec532a75baafb6eeaddf5207291e892b74c","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709142503.tgz","fileCount":30,"unpackedSize":107737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLLPxHSTSBVF0GVgQvSWGkZR6kIn4jGumzgEmIdAuxAQIgadBONLptobU0FghADIUwGAM8HSPdDaWODS0Uv7SP6CI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyY/PACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+Ig/+Ii9pnV5FWWMrVO2dnEaXh1enJAevum5wrHWuFhFzYJC4Y78j\r\nnXVuJ//11H4sIV8/wl0IURbNxOhIDX6b90OKJ3cr2MTWJcpJUFR3SOH5UQhQ\r\nINQnfZuuMokIi3Q3wnRopDTg2JQW1hyCCUY2gXk+Hul/JdfKGY9GAwrZwbaP\r\njBNWZWl6qopT95e8Ms1YnoWoumnyGmBn6w/kW8f/68VusNdXlqra3rDlcNUz\r\nAMAi7XB+67CACdnsRxoWNA6wxDnMUtNDSUTnanjH6vNNW3nNTJJmUWNv9EKw\r\nDbAnVLBsJ2cZFq0X3mySYdNvVNtz4pPRXCTfqATPPW0p6Cufg6zItq4Przzl\r\nREoCEnt9zJ33gbzmRdxQrgOX1sT7QIpqXQU2lZGPMinZVipSwb9TJswmMMHQ\r\n4xCxq9mFQFIdeLh3/hRMkH5Rb4kaaC6iAK5fYCZCaZO8i5xQMFbkNIetw7g9\r\nh5xAEis7xkM17QCCZvuK94jBtiATJCPsODSxsfvbmj6Y637puydfcfMZbb0U\r\nPFjXPaMCPnWe9sKULDzuA4vqS+Z7K3Hch53QaIxPJDNMn3W/jZ5YzZbokVQz\r\nSVyxje6TAE6EWiqYVqdu2lxnihiIE3fcfabfLWaSr5DLztN2LrTNCZHGwE5c\r\nGyz7YoxKPuBJt74CuzTH7HZmvydXyLpd/bo=\r\n=4XkI\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/shadenfreude_0.0.0-canary-20220709142503_1657376719380_0.3771155399009303"},"_hasShrinkwrap":false},"0.0.0-canary-20220709150918":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220709150918","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220709150918","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-6rhHTnImwjHEOHud1ucmyUGvVwGQFR7NN6JQqZtQ8ScRpf2CaCUxkPmSh4sCtEFnwNpaLlGIVZhhXwT3BYWGAQ==","shasum":"239b1f95db795a1c4ad336c1eeee451604fb624d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220709150918.tgz","fileCount":30,"unpackedSize":108516,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUGuE0roKg63XIGIEvn1O3JzvAFx9k39rKEejI7SNkKwIgY7+EW1jI4Yf/0ic3jIllwbzM2j2R1Q/RPxFZKn1t6CY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyZouACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqfQRAAklB+lcj29I3ayS5IgKh36O0a/As3ctP7UZYpzTlwj+ulsY56\r\nDvooi8bAH5HYOWBptr+CtLwKE5aKY/uYSej4y+Mpp0SxuIoXHb3Qkqj7Vt2t\r\nXCunFP9bbO+3Oe0qyKftxs8wFiVvDZAW2X0HSITWBMZ7prqG66Srm/qFOSSR\r\nBXamRIxNr4j+7/LIsyzbKsVScKwVewu5ebUxrg/ssOEhyZ8wQVLLT1XTA+is\r\noS+gEn5N87gZqmln+LpaSCHoD38fNR5AQflz9y/wucgP69Mgzv4zNlOyDvRI\r\nlKSIRJegrsMGUl/ZDpJ/E1MHhdMF+x0ZegH3kDwDjUae8Xy+FaNCeyuQp1mX\r\nivluejogdDlbx0H9QLs9a1g573xPAgbg7gEBhkSnL7oMfhEQnAMNinUXK0UR\r\nWGmuscR6hNwqcA5IwDwTitkP9Ow0zMBHnh61b6WucwwjgEfH+PG2ISzgUp78\r\nnSkzab45k8OB9c2YgEIfgOUHe+0jiijttUP1fClukFL5+Gs/SL5mX5DBivOO\r\nvXVsvcNxfItJAvu8BOp9iG5WuZOBW0S1cHZIHYQujlOdNncBsCuOHYiIg5gW\r\nhyLoyG6oAdzyi4tdA/GSFnRYjhLIyuT6jFEIQUNDslQ7dHsILaAfc4rgckqm\r\nDMgNrvR0v7byDwYhAoXpqgSWqvziYsQRWls=\r\n=LXOg\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/shadenfreude_0.0.0-canary-20220709150918_1657379374417_0.5561475114289056"},"_hasShrinkwrap":false},"0.0.0-canary-20220710094147":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710094147","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# Shadenfreude\n\n### /Shádenfreude/, German: the joy of shading\n\nAn experiment in node-based shader composition.\n\n## The Basics\n\nShadenfreude is a library for creating Three.js shaders assembled from a graph of nodes.\n\nIt is currently designed to work with [three-custom-shader-material](https://github.com/FarazzShaikh/THREE-CustomShaderMaterial).\n\n**More coming soon. :b**\n","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220710094147","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-YPvu1ahzHRG1bVrguQ38+B3vS/noqwYq8oAm+5g6GqIuCxjzJGyc1Ah8Qkh92AV3Nq7mYwqvTYNKfkkmozc6nQ==","shasum":"d041b1545ac3e996e4df8286fa3fa64e9e980dad","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710094147.tgz","fileCount":31,"unpackedSize":111964,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUXSPEBIZ7cXXYIa7lnZFlZPLywsj5GdM52+MCKeic5AiEAsldFUhtnDxX9ZubkwfXjfEc9rw7QcYjwRBvMc+9U4NQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyp7rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhEw/9HUzKM63Z2Bu6TPDhYhlmGqDrfZTg5RrtIVguS01Rq4fRTx5d\r\nTWVWOb87GMCW/2WK/1CCKX1IynVQocWY8gE2SCKH8Z8kj5wB7TH3aateUiL6\r\nSV0Z6BqyqvRC/fJ15hQaBd10bVWwFKs/gMrhG0bE5KSrHHn0UXb15VjfbafU\r\nEvWPPBifqJNjIUa2oVqpj+hK97jYir5p6n+QEw5geimAy5+dfIJwBx/gbO+R\r\n+JREBG1oCJhyZf5It0MRd4yHTvezYBq5wA5vOZrAvJliMe7XL53Ea10N9PJk\r\nJAydEZXpsUZ4HAbfWNu1gWUcBgaOPIk0ipdFr3mpPDnoEj96M36CQHiZzB+m\r\nIBcN32v/ZzQDXI8RGuLTAkouRFec5ongGud8VT5VbfcARGA/bet34HvR/9YZ\r\nVxi+2eRq1yRoQxXDlerm4F00FfkfWlIJiSOhzCib/vZrGNb0xpPN2gFtfdXX\r\n5fErTjaAU7c+ZbWm8axnDSvbj3DEayhY/hKACe8wVYwYKpwoAFcodzoA6cfm\r\n8SBiq58xsUsuQLYU7quRAWIV0SpcakhLsfGUXFstKzcNv621lKDMXNSeON/y\r\n5OLSDXEVLuTvnuRNwLaUJM4hbIN7hz0QE1k6ZnyGnCdSuCnOYZaOguVWVCbd\r\nG6jGdLJCd75TKkrG4pcymhPzxpJIc+sWjfY=\r\n=YXdr\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/shadenfreude_0.0.0-canary-20220710094147_1657446122782_0.8320943209448233"},"_hasShrinkwrap":false},"0.0.0-canary-20220710094530":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710094530","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/github/hmans/shadenfreude-sandbox?file=/src/App.js)**. Fork it and go nuts!\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders.\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Shaders usually start with a master */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader. */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop. */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Variables\n\nEverything in Shadenfreude is expressed as a **Variable**. That may sound a bit boring at first, but Variables are pretty powerful: they can inject their own shader code, declare what other variables they depend on, define and invoke functions, or just plain calculate stuff. Shadenfreude will compile your shader from a tree of these variables.\n\nBut let's start at the beginning. You can construct variables using the `Variable` function:\n\n```ts\nconst f = Variable(\"float\", 1)\n```\n\nThe first argument is a GLSL type, the second the variable's value. Since you will be creating a lot of variables this way, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1)\nconst v3 = Vec3(new Vector3())\nconst b = Bool(true)\n```\n\nVariables can reference other variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n### Pipes\n\nTODO\n\n## Advanced Use\n\n### Value Types\n\nTODO\n\n### Creating your own variable types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\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","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220710094530","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-t/xg081KHMYODB17/nI8inCDg2mERl60acqtgOFpYWLrOHb6KRDGBzlBVgtttYG0aoGWbrr/v9Ufu+t67TpQJQ==","shasum":"5f4c389efb339de4d1d1f7ec7bc1e9f3523a834d","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710094530.tgz","fileCount":31,"unpackedSize":117423,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPouzsOIPQ0dkm9Pgucg+OYf9NqINVyzPBixhQDV8FlwIhAKBabDW+cJkfDM6Ip9caT5uYL7wH4POeLg1/ta119I6J"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyp/NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2sg/7B5T4y2oFQvi0QurpixC76vEpRbnz2A9Hn0prgNuYgAA1xNQU\r\nE2u+qE5R6oWrVNqWmmxuG1M3m/h+PY5c5runAUAexSy82m6cQkKllN35TbL/\r\n2AJjN16Ox0dLjH0awnso9Rb2+rPiiCqhRxkXOG7E1yWgGMwrXep9jv8btLnV\r\njz+Zvk0DCpkSOMQtOHILoZUY/r2xQYsyeR1P7QmK8cTb/fjXnoPoKUY2SdMC\r\nS8+XbDpTlbbcAD34mBatbUhMJIikEF/qrF90TbNFDL1Dt7sFuEM2tJMKn7/F\r\nRvjoB28aoEzqx1g00vzErE6Tn67b6ZY/o+KelXn1K3aOCWh/RRNgAbr5Y2q4\r\ntLL+wZOn7q9dGYEvDqwz3k/WwYxp77uOMh1CzCBEdh5pRkJQkCQ7ctlQW6ae\r\n+mYKWyuLfNaWJyEU0YmGTVzKmoFPZEgVc+TgLhBc/nDJH0fnvhTcHwnIy2pV\r\nqKvVig7c1v2ScwQb02Vk65ttHyxcJbQz6jGGSJLIPnsilbu55YhldAld7qK3\r\nLcNoGQhPoHOmUmtfyfpzrc4d0X49OiJ8aLsUvvKbMqSEOB3/5e0PSAVNgSqu\r\n3veB2sZXbQHLqIcR/6A0Li/Sy13/SDCtg78p6iq1ZjGS0sdw5Kkn/D1A7e60\r\nS87GKGVzsoaYDMFL4yFsuLE/GeOpgVCVZMw=\r\n=5oyU\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/shadenfreude_0.0.0-canary-20220710094530_1657446349340_0.1974663021246692"},"_hasShrinkwrap":false},"0.0.0-canary-20220710095448":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710095448","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/github/hmans/shadenfreude-sandbox?file=/src/App.js)**. Fork it and go nuts!\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders.\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Shaders usually start with a master */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader. */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop. */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Variables\n\nEverything in Shadenfreude is expressed as a **Variable**. That may sound a bit boring at first, but Variables are pretty powerful: they can inject their own shader code, declare what other variables they depend on, define and invoke functions, or just plain calculate stuff. Shadenfreude will compile your shader from a tree of these variables.\n\nBut let's start at the beginning. You can construct variables using the `Variable` function:\n\n```ts\nconst f = Variable(\"float\", 1)\n```\n\nThe first argument is a GLSL type, the second the variable's value. Since you will be creating a lot of variables this way, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1)\nconst v3 = Vec3(new Vector3())\nconst b = Bool(true)\n```\n\nVariables can reference other variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n### Pipes\n\nTODO\n\n## Advanced Use\n\n### Value Types\n\nTODO\n\n### Creating your own variable types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\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","readmeFilename":"README.md","_id":"shadenfreude@0.0.0-canary-20220710095448","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-pm/Zb2AvwAb4DvZwvDI7Fy1cUzB72H6pEu7uS6CWHe6OgnTygUjpwPv/wuzdc52h4k8VlsaP2hNfqLv208SvWA==","shasum":"bdc7a526fbc81219101446f63b7beae43015769e","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710095448.tgz","fileCount":31,"unpackedSize":117397,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdbYSD6IcX/8DaIkuhbQzJHCwgqKNzu9IccJ9WvqpCmAiAPvKUZVkBhtfm3JikGqb4DRK9bpTevCEpCnunmLM3ezQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyqH4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpntg/+K3JFDQePZ14wF9xbaYN8JqmF1d9wj8ZEhWEtxHiabVBb9C0l\r\nyZwrFGhyuRVXCRRGNFk7fR2lecsaMZNTVTfuP0p5qo3PuiH/GiDiRR3kGFNA\r\nEEVyqifxWuUXelGYtHxNuht7NB7JYmPm6U5srYNpb/pqe163t/ezivyoc7Zb\r\nzeh0KSln6/0rpUsApnTJjO/bmgVIX1Zur3DV6k7ptTiSEhRxlg+i3GUvUvx9\r\nDGqJ5F7vIhSAjS71Xl3+TyuQKCN6Q4iWmbSC4kbiK/vw2XnTeK4shLxEH1Nk\r\nWMTPQ9bwjCgELzw3TlT8hxhlFDapOgdRDPXseofS6FxFiMr90IFVADgjZHeK\r\nxIxghtzxXthL2HjOe3o+2ugtI8rM3Pi2iRBpnhHaB848PTrMF7+2QOkj438v\r\ndIMUDUDHTc5/MtjidRHQQscpoSlcAYZk4mOGov8vCAhcaU8K1+V4dQ+sT64J\r\nrHggO8VUPx/GiQUzRdUGb718GMMM3ndaib0Rob6W1Azo+87IGa5GbgXYVWRi\r\n2IHJ9h9S5Tu+c17ES2Z2hJ8ARKUo4Ta3rG/5uIiVWBpWsU6C1GAI5XmvKhGx\r\nzpAgoqRgWhbGcAuQGmtrJkeepn/cvQxtNUPiold5Z/pHvXiY+EZk4NpdZfZJ\r\neow0uSawvOBVh219FZG/1/g2cDN6O3s8mRE=\r\n=EzFI\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/shadenfreude_0.0.0-canary-20220710095448_1657446904599_0.14836302043939775"},"_hasShrinkwrap":false},"0.0.0-canary-20220710104926":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710104926","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\nTODO: a short hello world example\n\nShadenfreude constructs this tree from **Variables**. Every variable can be compiled into a shader program; but you typically start with a **Master**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` variable.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Variables\n\nEverything in Shadenfreude is expressed as a **Variable**. That may sound a bit boring at first, but Variables are pretty powerful: they can inject their own shader code, declare what other variables they depend on, define and invoke functions, or just plain calculate stuff. Shadenfreude will compile your shader from a tree of these variables.\n\nBut let's start at the beginning. You can construct variables using the `Variable` function:\n\n```ts\nconst f = Variable(\"float\", 1)\n```\n\nThe first argument is a GLSL type, the second the variable's value. Since you will be creating a lot of variables this way, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1)\nconst v3 = Vec3(new Vector3())\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on variables:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Code Expressions\n\nTODO\n\n### Math Operators\n\nTODO\n\n### Pipes\n\nTODO\n\n## Advanced Use\n\n### Value Types\n\nTODO\n\n### Creating your own variable types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710104926","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-4bJOaiNtJPWErVpJ9RF77RubJR8gts6/5FRch9i+eKNocZfEU6wqKvwE4cTeD1iJobg/2JVpWy2c7ZbZ/MHztA==","shasum":"41d209d7adfde821c4f98322d42c35a97f9ac3af","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710104926.tgz","fileCount":31,"unpackedSize":117050,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJye5tZwpO5INHqmheuL98awE8T0gNEfM/SdB99QomqQIhAOxZ7cEDUSMgP6hC9zeyKlZL0Gvfmg++bdMilHwIM9Mf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyq7HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKWw//YsqCucAACUNayvwSjOqC7WXOtEK9/sgesccSNye+RGyGS+h8\r\nE00QyNFJ1cj2inuDYIMNyMuHt/8b+LSLQPJDQX9c3P0TqS+sgsdMGdAY0qv+\r\n1pD/LT9s/M/wf5Rep7gMe0K78WHqgrSg3EloGamNORFayndXYjlXbtrsVG14\r\nB0LLKRMimrHUQSBCRYVdnHLGUaLeBOdT4WwsjC31WEonW52LjVxIV08YURx2\r\nI7SDnefePJnXGPiJNaMe3JgJW2WwywZhiXWodmo28LHH5PMKBu7Byv8yAQtI\r\nL0o4dFNwI8BN+gYojQPV9HwEsadkqnLL7B8W9Z1d26w+fiUDqwjT2fPNL/l0\r\nhzaGNBXdue+9jLRoFERGEmmNn+59DXxKYOJ+1eRNq/epPPRSkiqCcqvUy9YD\r\n1lFcsnSeY4AyzM810ouqOlfZTI5BTyQ6OAD8oE6+fO4HUYCDnLHH1puumZlg\r\nW1nmWxr1q8pJQ8FuJyHTAQUpF4504FB/+aLWR0tjTvrQaKuFKNDsKfCGoBZ+\r\nQZkmcjzW53B02vGlBif3rVTNobmYgHgR5FcoHXNd+Rv7CldLCroYtXFYjwv4\r\n++tI3CWrXxXMkEL/rtiBJPx0jrTIU9Z4eOgTlSC/S437SiCS8CxrMHZ3imND\r\nCJfJtXPWAn5tjcDYU9oGCghoDRKSqDu6ekY=\r\n=1CSa\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/shadenfreude_0.0.0-canary-20220710104926_1657450182983_0.09343556258279917"},"_hasShrinkwrap":false},"0.0.0-canary-20220710110359":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710110359","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\nTODO: a short hello world example\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Code Expressions\n\nTODO\n\n### Math Operators\n\nTODO\n\n### Pipes\n\nTODO\n\n## Advanced Use\n\n### Value Types\n\nTODO\n\n### Creating your own variable types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710110359","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-NNuBld/iPmq3qn+2avJzGWW5dq0Pxl/bW3vV6BwzW5SDLcJ1fRfUQ44AhFDVYVxuzOs+s6rr8zUG5iFDXdOO/w==","shasum":"77dde375b2b1de5fbbcb82842aafd26ed77d5f22","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710110359.tgz","fileCount":31,"unpackedSize":117233,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHeER6eoKlONTWhFqXpgUC4sIOryP8kC0wFr5wAbt5UEAiATd6a1TemruYAxWUN4gA8UjvWcHDr/4Opp+6d8vaTqJg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyrIvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsAA/+LTbuhLAiyx1LD+9jr9bPdy2Ee/Gpqih57s3h16Mv30ehXpHJ\r\nJg1L+4A0mvvx/sntymfXE7qr5MBtESFETnvLV484yyy7y24uSqmd2llPEjLL\r\neqm8b7lLwm9ViauZKyT5Uu0BvvBN3m9HKXgTD/edWV0qAiaoxnGKG6nJc37C\r\nVbp2gLFa5NHeZ13BmFe/lCsi/RNaFKeam+ovyFne4XJ9OxbnRpvXa7vprI43\r\nGlq0y7yKWUIznXGqYegRwcxRxwLKnZh2FvgJTm7KbhtlJuXRXunUJVVwAJSX\r\nT2EeDJdnI8j2mgXY9GUACa2Q/NU3IEvZKV7DeDxEry2vyGqC3H/gVZ5PTWna\r\nMDPLeHIVXg2mbMePqXqQ4sOc53Z5MhMUtULJ8BDTOFsWfo7yv1dnn5dpfMLb\r\nSzND/fvuTHS8CXgWEa12WJO/s3gK+wRPfY4wrrL1gvI7afdJMVMteOsFFUHq\r\nSXNvEq5Iz6cf35A7Z/KAnQ0oImYi7JRgxLfCQBZoIEOKACkfklqkygykeOss\r\nCnKpNbGckhNHjbGHcmLl9fCeES9+SP5GovB/YAzuZ5F9lca90oC+3+YqBTZl\r\nqcuGAzq1U6RvJRxUX9sPC/dVeXk2sluRr7yTczkF5Ox+q6+Cb38R+3z7STdW\r\nOaLCEbdHebdqKiULMQrZEFZ+L+yjO/W2874=\r\n=fcBr\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/shadenfreude_0.0.0-canary-20220710110359_1657451055088_0.8911377650326346"},"_hasShrinkwrap":false},"0.0.0-canary-20220710111250":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710111250","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\nTODO: a short hello world example\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n## Advanced Use\n\n### Code Expressions\n\nTODO\n\n### Pipes\n\nTODO\n\n### Value Types\n\nTODO\n\n## Creating your own node types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\n\n### Marking a node as Varying\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710111250","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-k9PpN7uZ9TvRHqI/Z45irDs/bAXoykWG2BMKiorcqdDm9LgJoLcp4KNzrbZ0xrbUfzANnkkI5/H4ahN5FawrIg==","shasum":"3026983c3bfc976f2bebd30887569ea5ee19c8ab","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710111250.tgz","fileCount":31,"unpackedSize":117265,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTP5YN54Ka50J01yKTMSyN97AvEfFILAgMarSEHpVj+wIgdGA/Oe/4nU3Y9VtMVJCt6ncmPVxIm6v5dyyvQK9RnCU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyrRGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqK2hAAnyTTvgSru0CgiFUABCCSlpDKvTYrVrYSCaKgL8SVcKJZoeu+\r\nvQu3qCm7syicr3yMW+dE4puJ5uYwArEM8B0lpGuXO0S+ecybkmGwwJzSa6BS\r\nODtktQMmx0MFmPXxbEByLUNM8yvinUhkX9coJqwTc05P0RfKi2aF2OPq0n+B\r\nOg/nhEdWjNaxEmTYd4vyPQYEd4APihkk4I6R5xMOtBsSMp6krByWbglQZSFn\r\ny3R/xbBV7E44Of47XzVzxnFTp6/H22ok5FfCHwZh9Y9cTPI7VVQPl65Jmw4O\r\nAXQrEg/28ibch8bRA+EPwvFNcxZVZesqQbTgz0rXz0/RYrEZSUWOVcRPiYQs\r\n+wRcR10wz4zhH773za8tV771dk5YHFf/UWagIXR7mlhSHuY+oKNp1XhV9Tqu\r\nn34fmU1Hq3byyUK/jewSIqg2peIrf0DJlKZs2ejSQB4GnfSr3GvnBbx11sRq\r\n6Y8EvO0qDwEeVSgGv3/LedMXLoXYRAhCHFoEkuJuoI3QRrF6qUgzBUJ5tRcT\r\nUthNkRDz1yTjgcLt2+ntjFCq98wxYbs8m/bmuYwLO+fj/z6zQeqvosv7OlCm\r\nKljg3q/BbXd9+HpqM0yUAozdFiudxUKsBnTpHxU8OURJg1xOq+NaZ7/GDDku\r\nizAUcOdOCNs76MJwOgXo/nbCM2R0yjIFgwE=\r\n=5yDL\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/shadenfreude_0.0.0-canary-20220710111250_1657451590280_0.9802111140737024"},"_hasShrinkwrap":false},"0.0.0-canary-20220710112130":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710112130","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\nTODO: a short hello world example\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n## Advanced Use\n\n### Code Expressions\n\nTODO\n\n### Pipes\n\nTODO\n\n### Value Types\n\nTODO\n\n## Creating your own node types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\n\n### Marking a node as Varying\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710112130","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-tNWn/zzi42Bs4wg4yUnfxusUjvEL16Xifl94kSLoCbmeYL6DeTR66gL+976bgpEwzIvCwOZXdtDZDDZb2uYRww==","shasum":"c837b5fc6819214d370571138f2bfd22541adebd","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710112130.tgz","fileCount":31,"unpackedSize":117717,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXs2HbBQ3+iOTBQ8tTGjhkMbMxsw0yspVjzsf4TND21AiEA42yYircSreyi9wLWr9DvUDhA/UsFh+6/SvT5GccLK48="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiyrZKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkbxAAitvhibhCdA4RDHtrlSBXTYU51PmhJdSazCP9EuBT/f4FMu2k\r\n8Lzf5JncJftRgqfqsvHa+r1BDkQpGnfvdMga9cHjOTsArTkbr40ayHNq/m9q\r\ncQrMrG0bmBB+hIJVGsnLE+AhKpzdYybVpw1sVNd+r+gXaJKJdaEdAy6jzlbp\r\ng463und9gB09Xvij3pm2h4L04CK7HYjYoj5aDtFG3twAzkFlga7GkObrt22C\r\nKEwe5jh/9vi0zwnAxF3PNPsBSmcjygqAY/T3wuNCwGrGHpd8q+QM3zvCifqR\r\nC+UvOBbSiy0HGMBbMTNsZ2n+28WLk7EzBRJEffVA0A6hYQXRd9QN/uIyFNGO\r\nW/jEBP0zzFhl66pks2Ai3k6OSy0I7sy5OD2iDCF1fqHRupur8HNRAYWAZMcU\r\nvSCsA6dccZfJxrolyoxyh2Snw9pzac/kKkZkotEBZL9wGW1xAgzsStKuowQo\r\n8wTHI2Y0qSR8UKL+dZGRbnsUkOfb6KL3lOxfx9PwdvShjVMqbYea9O9nDh98\r\ntlZuYAxx+c3m3mNyU1LRTfg3+yj0MaZbdgwxZiD5+fdMJOyQLPWEFSQKbYym\r\ne4GmjV0FtaJUIju1c1F0bM+0HxWeA+XBf2G55mLhJhaoKbk9w1wSUXnbz6ry\r\nK8uT5VMnALXxF2XZhDNGcpa0pPDjWv+oxIE=\r\n=8Rku\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/shadenfreude_0.0.0-canary-20220710112130_1657452106368_0.4499101156503602"},"_hasShrinkwrap":false},"0.0.0-canary-20220710130149":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710130149","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests.\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Chunky Planet Geneerator](https://codesandbox.io/s/shadenfreude-planet-gkulwg?file=/src/App.tsx)\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\nTODO: a short hello world example\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n## Advanced Use\n\n### Code Expressions\n\nTODO\n\n### Pipes\n\nTODO\n\n### Value Types\n\nTODO\n\n## Creating your own node types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\n\n### Marking a node as Varying\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710130149","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-mqIvXRkbMVU8RAG3Br6J7p79Kuc8ZJl/ciH9L1qUQzJukxS8zqU/otqWnFeDu0bSOoyXGZ06FZzA9wReQKZzMg==","shasum":"75ec83e1fbd139c9dd5577332862c2e65fb775aa","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710130149.tgz","fileCount":31,"unpackedSize":117817,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGOeZtvB6CwUYXRmyG0MKI/j8NRt2nIZStFKjrPaRsPtAiEA5ZYIe9xYJAXdwOWuxscu60F20deO8w0auFGgf30Ty4c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiys3QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMHQ//XLookfjLd5x3KcwlYIBoE2/32PMMK0b/LqL4jhR8LtDQjbLA\r\nnqEFbCEjuK0C6uswv9bJT+74n74b1Kpt+aZpTf7NDlGWotNd18fxiSNnblju\r\nFvPExJOSWjnNFipXk7o3sAA8lId3/k5gJN0MS1MbtRRgZkD70JLiNlp3jg4v\r\n7pnDMuyhnZ4nkYvnSX/SB2OqoU5Jw3I93ADEigtTZGJmq6ScZyJk2KRVG7eH\r\nUHtLJuyBpuu3e9xXfoNet3KxEE1jR4S+/29BfRD5LIPGrnNweHqDqAzuIx3r\r\nnaxY1oW9AKj3616R056f2vkxw0X8TsJ2w4aYZnRwZ0yPx9B87S3Y5kKC+yAo\r\n2MSNi/3IKpDHgI1u57HICoDv3J8EeCXYSlbdFYlHWTxgLkdo0IxRQDJkCb/r\r\nhhmKyrLADvvbN8tKGtovd9duZ3jzccjx6E8/LEytoXwsCN1rBb7Nn2YCKM+B\r\nsuc8voh4Yx1r+whLukHjG53cLi4EviUZ/WKQe2oGY+a2DESq3YARgZuRBq2o\r\n+Ee/nZITPnsszLi5e/naY5JYqWtDk3IsY5nbLAxHqoxEinrXiS/NpEfBq6jf\r\nZaWPagXntiLuW/zRPRD378oAFpCjtaJOTfwCBAvQuBrCePESZDL6ryvy0iEG\r\ncCNzkK9yOu2zt4OeUVuLNjmwN/dkhluIg3U=\r\n=sERy\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/shadenfreude_0.0.0-canary-20220710130149_1657458128465_0.8252939644522583"},"_hasShrinkwrap":false},"0.0.0-canary-20220710130959":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.0.0-canary-20220710130959","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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"},"readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests!\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Chunky Planet Geneerator](https://codesandbox.io/s/shadenfreude-planet-gkulwg?file=/src/App.tsx)\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\n```ts\n/* Define our base color */\nconst baseColor = Vec3(new Color(\"hotpink\"))\n\n/* Animate a value back and forth over time */\nconst frequency = 0.3\nconst t = Sin(Multiply(Time, frequency))\n\ncompileShader(\n  ShaderMaterialMaster({\n    /* Animate the fragment color over time */\n    color: Multiply(baseColor, t)\n  })\n)\n```\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n## Advanced Use\n\n### Code Expressions\n\nTODO\n\n### Pipes\n\nTODO\n\n### Value Types\n\nTODO\n\n## Creating your own node types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\n\n### Marking a node as Varying\n\nTODO\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":"shadenfreude@0.0.0-canary-20220710130959","_nodeVersion":"14.19.3","_npmVersion":"6.14.17","dist":{"integrity":"sha512-N7dhm7MrQPVxpKG32W58Q5/BcbBmMxPUmj2rD3AI/Q7REF2GE/3VeCovCcxR8PwDtB84UkJsQNxrhtl+v3G/AQ==","shasum":"8dcb5339b8c42463e04d690d204cce45ca99d3a6","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.0.0-canary-20220710130959.tgz","fileCount":31,"unpackedSize":118106,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ4YU5zaKeb0zmMSoAOZzMzchcVYSzPAZ+cLW2UqD14gIhAM0N0nEi3tHTp8HcIAkNt9GBlcIgrydUDOITiyBnJeqc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiys+7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrxiw//X9iQc7v4+e+p3tKp4mji8/OKs4rZjLy/35XctWuj3Ytco++T\r\nOUHiRNEPgjYNZodbEn80EiKSHPK1fID+gXLElTExjH2gzpmLRiqdGp4Sq1sv\r\nD+EgW9aAzl4TSqsojMV1n4eAq68x0fxvSurZUjqDCdtS7dHOLswm/zg1jmWO\r\nlvLS3xgwzO2u2glJAn5TTwoO32FjMclbqPSqsr8HiNrVBwUL5hrNGYlkA4Cr\r\nUiULB/UzQqmdFJsd9kga5+Oz6tcXtjipq6TPYegY016EEvWVmVmL48tMm9vI\r\nt1YVCRExBKF4I7DdA7rl7Ev/wKRznR7KUobEYuWrKYbN1ix47CpXKVqgrWtu\r\n4NYNAPDbPWTwpiqQhtPrjmp6pQGAqYcEWuErpQGacgekd4RUV8n3G6QTUUql\r\n7DraP8Je7UFb5p8V4n+pELL5QljPTlVM4XabcoUss80fu3DUqkDy/AwYqvwR\r\nb4zJfi//DGNRTqQJs/Skjt9nBwJvbzvLRXiVwD5UymyoNvaT/PIZFc9/Qz08\r\nEZo2pCccW7Y3vvLQCMffHGEwK7JHtLnHJ1gBr0U4LoIrlnuXNAPUpRQ815Ji\r\nMdrXrjFFz0/CywsSDUMwU68+eP7tEe6IfOeHtRO6HduVWXz+rd4QLdVmY8+n\r\nMdH+YWM1af0Gby5Nlr3ywoId2MahxVgyIuQ=\r\n=EN3p\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/shadenfreude_0.0.0-canary-20220710130959_1657458619605_0.15947196418539278"},"_hasShrinkwrap":false},"0.2.2":{"name":"shadenfreude","private":false,"author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"description":"Node-based Shader Composition!","version":"0.2.2","main":"dist/shadenfreude.cjs.js","module":"dist/shadenfreude.esm.js","types":"dist/shadenfreude.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.2","@babel/preset-env":"^7.18.2","@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":"shadenfreude@0.2.2","dist":{"shasum":"491ca28aad698151798553fd79ec2ce4b2a9979b","integrity":"sha512-e6TqrinwoBTrISvmEJadfr0H6yPib23g+p4mfDYZyNUoGVWZ/nrASjwWWmV0PEUI5hBH0PN36rNl60unAMOT3A==","tarball":"https://registry.npmjs.org/shadenfreude/-/shadenfreude-0.2.2.tgz","fileCount":41,"unpackedSize":131029,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAErIWZokp2SDw37iGg9kz5HTYXHw4nyHJru42gmq/4wAiBx1+bDS5h94V9cRFP+V0FrEctOOum7yfSXMhGJ+ru0Dg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizSKcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrsiRAAlonopC7kb3/SO4c54Kd4tnHJOg60MVg0V6a1UXeZYYLtRKqz\r\n5s08rUt08lLgFEDKxjrDJB2yhbUo/JHOz2jJf5hS2ItEDhapFNUvgOcIucvS\r\nNrGYKmzcyQTOKeO9WIC+BX2hS7DQ7FiSuCyATCURCZZI5HPwZmXn7K4/AZ3g\r\n0855bhBRO/g74lwAGAemIXS3pFBTuSZHf0oFJaTstsbcPgrCFSUSHq74FObX\r\nbl4IRa52VOBW2uI73pYpfX7mytWyhr1uN6QhmuqE0mXfTPYzHN+ILhbkVvq5\r\nuKj+YnR+Z7Fu0GO9uObH+G7VnD38HHPMLHv8Me0nE67v7UbVMlvfRkRGtqCG\r\nwvgnDDG9EYMb/1vCv8n78lPVK2EBb5zQizSsVSwdB6lK7zX1ezBAzfNGgd4A\r\nRZfxhC2Q+ti8X2Y6BumU86hLL1PUStG3UpqekidB+Exw09Cjkcww6tk2OUVA\r\naxKizLHNaODEPRE5oD+/PhlD5u3BJNTB4nckyV3ugrKzpc4zsiGseoo8q0lE\r\nUVS4q4Mhr71Z6dpZ+i2iJCoOfjMhSQzHDy+LC+S7eNE/E7XJKSDp4AZE2yfT\r\n6WFK1SC59GWHsqns3Qo28s0Q1YRxm4iztPfz5W4DDW2CzJPoWFQIGc/SDdR2\r\n8G/36DMlhO34NB+cJWQvWjGnv3aTFPC8cE4=\r\n=13Ed\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/shadenfreude_0.2.2_1657610907782_0.9945425423079912"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-25T10:40:09.931Z","0.1.0":"2022-06-25T10:40:10.188Z","modified":"2022-07-12T07:28:28.099Z","0.1.1":"2022-06-25T10:42:40.638Z","0.0.0-canary-20220627114957":"2022-06-27T11:50:10.318Z","0.0.0-canary-20220627144357":"2022-06-27T14:44:11.287Z","0.0.0-canary-20220627144543":"2022-06-27T14:45:59.381Z","0.0.0-canary-20220627145705":"2022-06-27T14:57:18.355Z","0.0.0-canary-20220627161330":"2022-06-27T16:13:44.350Z","0.0.0-canary-20220628084446":"2022-06-28T08:45:00.781Z","0.0.0-canary-20220628101033":"2022-06-28T10:10:59.452Z","0.0.0-canary-20220628112841":"2022-06-28T11:28:58.881Z","0.0.0-canary-20220628150632":"2022-06-28T15:06:45.910Z","0.0.0-canary-20220628162947":"2022-06-28T16:30:18.241Z","0.0.0-canary-20220628175513":"2022-06-28T17:55:30.550Z","0.0.0-canary-20220628195115":"2022-06-28T19:51:29.916Z","0.0.0-canary-20220628195756":"2022-06-28T19:58:10.077Z","0.0.0-canary-20220628202226":"2022-06-28T20:22:39.201Z","0.0.0-canary-20220628210843":"2022-06-28T21:08:57.630Z","0.0.0-canary-20220701134857":"2022-07-01T13:49:12.319Z","0.0.0-canary-20220701135023":"2022-07-01T13:50:37.423Z","0.0.0-canary-20220701220347":"2022-07-01T22:04:01.077Z","0.0.0-canary-20220701221334":"2022-07-01T22:13:46.960Z","0.0.0-canary-20220701224746":"2022-07-01T22:48:02.249Z","0.0.0-canary-20220701225229":"2022-07-01T22:52:42.858Z","0.0.0-canary-20220701232436":"2022-07-01T23:24:52.432Z","0.0.0-canary-20220701235655":"2022-07-01T23:57:09.460Z","0.0.0-canary-20220701235752":"2022-07-01T23:58:08.998Z","0.0.0-canary-20220702000840":"2022-07-02T00:08:53.662Z","0.0.0-canary-20220702001048":"2022-07-02T00:11:02.988Z","0.0.0-canary-20220702100656":"2022-07-02T10:07:10.851Z","0.0.0-canary-20220702123228":"2022-07-02T12:32:42.656Z","0.0.0-canary-20220702141104":"2022-07-02T14:11:18.143Z","0.0.0-canary-20220702143444":"2022-07-02T14:34:59.091Z","0.0.0-canary-20220702164441":"2022-07-02T16:44:57.376Z","0.0.0-canary-20220702164632":"2022-07-02T16:46:49.570Z","0.0.0-canary-20220702171044":"2022-07-02T17:11:00.352Z","0.0.0-canary-20220702193829":"2022-07-02T19:38:44.719Z","0.0.0-canary-20220702203638":"2022-07-02T20:36:53.975Z","0.0.0-canary-20220702203731":"2022-07-02T20:37:46.072Z","0.0.0-canary-20220702203922":"2022-07-02T20:39:38.794Z","0.0.0-canary-20220702205531":"2022-07-02T20:55:46.412Z","0.0.0-canary-20220702210629":"2022-07-02T21:06:45.181Z","0.0.0-canary-20220702210731":"2022-07-02T21:07:47.994Z","0.0.0-canary-20220702211845":"2022-07-02T21:19:00.596Z","0.0.0-canary-20220702212433":"2022-07-02T21:24:48.377Z","0.0.0-canary-20220702215034":"2022-07-02T21:50:52.500Z","0.0.0-canary-20220702215130":"2022-07-02T21:51:45.468Z","0.0.0-canary-20220703053940":"2022-07-03T05:39:55.601Z","0.0.0-canary-20220703085141":"2022-07-03T08:51:56.496Z","0.0.0-canary-20220703102555":"2022-07-03T10:26:11.727Z","0.0.0-canary-20220703124304":"2022-07-03T12:43:20.958Z","0.0.0-canary-20220703124937":"2022-07-03T12:49:58.038Z","0.0.0-canary-20220703131923":"2022-07-03T13:19:41.444Z","0.0.0-canary-20220703134158":"2022-07-03T13:42:12.613Z","0.0.0-canary-20220703162245":"2022-07-03T16:23:04.011Z","0.0.0-canary-20220703170744":"2022-07-03T17:08:03.096Z","0.0.0-canary-20220703172433":"2022-07-03T17:24:51.085Z","0.0.0-canary-20220704195355":"2022-07-04T19:54:11.158Z","0.0.0-canary-20220704195957":"2022-07-04T20:00:15.213Z","0.0.0-canary-20220704200146":"2022-07-04T20:02:06.735Z","0.0.0-canary-20220705102348":"2022-07-05T10:24:03.509Z","0.0.0-canary-20220705111154":"2022-07-05T11:12:14.746Z","0.0.0-canary-20220705111500":"2022-07-05T11:15:20.942Z","0.0.0-canary-20220705121648":"2022-07-05T12:17:03.760Z","0.0.0-canary-20220705122927":"2022-07-05T12:29:42.695Z","0.0.0-canary-20220705131931":"2022-07-05T13:19:51.006Z","0.0.0-canary-20220705132935":"2022-07-05T13:29:49.971Z","0.0.0-canary-20220705133044":"2022-07-05T13:31:03.146Z","0.0.0-canary-20220705134535":"2022-07-05T13:45:52.108Z","0.0.0-canary-20220705194600":"2022-07-05T19:46:16.330Z","0.0.0-canary-20220706085539":"2022-07-06T08:55:58.494Z","0.0.0-canary-20220706110648":"2022-07-06T11:07:12.628Z","0.0.0-canary-20220706110825":"2022-07-06T11:08:44.112Z","0.0.0-canary-20220706111715":"2022-07-06T11:17:31.851Z","0.0.0-canary-20220706193304":"2022-07-06T19:33:19.882Z","0.0.0-canary-20220706193631":"2022-07-06T19:36:53.773Z","0.0.0-canary-20220706195911":"2022-07-06T19:59:26.112Z","0.0.0-canary-20220706200520":"2022-07-06T20:05:35.518Z","0.0.0-canary-20220706201258":"2022-07-06T20:13:13.230Z","0.0.0-canary-20220706210945":"2022-07-06T21:10:00.152Z","0.0.0-canary-20220706211041":"2022-07-06T21:10:56.482Z","0.0.0-canary-20220706215653":"2022-07-06T21:57:07.712Z","0.0.0-canary-20220707074840":"2022-07-07T07:48:55.450Z","0.0.0-canary-20220707080120":"2022-07-07T08:01:40.524Z","0.0.0-canary-20220707081412":"2022-07-07T08:14:28.256Z","0.0.0-canary-20220707082306":"2022-07-07T08:23:27.159Z","0.0.0-canary-20220707083339":"2022-07-07T08:33:56.114Z","0.0.0-canary-20220707085441":"2022-07-07T08:54:57.974Z","0.0.0-canary-20220707085902":"2022-07-07T08:59:19.647Z","0.0.0-canary-20220707093602":"2022-07-07T09:36:20.196Z","0.0.0-canary-20220707103051":"2022-07-07T10:31:06.247Z","0.0.0-canary-20220707104822":"2022-07-07T10:48:41.452Z","0.0.0-canary-20220707111132":"2022-07-07T11:11:49.454Z","0.0.0-canary-20220707111249":"2022-07-07T11:13:10.129Z","0.0.0-canary-20220707115747":"2022-07-07T11:58:06.152Z","0.0.0-canary-20220707120522":"2022-07-07T12:05:40.043Z","0.0.0-canary-20220707121154":"2022-07-07T12:12:14.994Z","0.0.0-canary-20220707133317":"2022-07-07T13:33:35.375Z","0.0.0-canary-20220707133418":"2022-07-07T13:34:37.501Z","0.0.0-canary-20220707141633":"2022-07-07T14:16:49.053Z","0.0.0-canary-20220707141744":"2022-07-07T14:17:59.366Z","0.0.0-canary-20220707143540":"2022-07-07T14:35:55.586Z","0.0.0-canary-20220707150703":"2022-07-07T15:07:19.145Z","0.0.0-canary-20220707172340":"2022-07-07T17:23:55.837Z","0.0.0-canary-20220707172450":"2022-07-07T17:25:07.934Z","0.0.0-canary-20220707173623":"2022-07-07T17:36:43.235Z","0.0.0-canary-20220707180205":"2022-07-07T18:02:26.778Z","0.0.0-canary-20220707182606":"2022-07-07T18:26:23.854Z","0.0.0-canary-20220708072610":"2022-07-08T07:26:26.072Z","0.0.0-canary-20220708100343":"2022-07-08T10:04:03.779Z","0.0.0-canary-20220708100917":"2022-07-08T10:09:41.842Z","0.0.0-canary-20220708101645":"2022-07-08T10:17:00.286Z","0.0.0-canary-20220708102502":"2022-07-08T10:25:24.354Z","0.0.0-canary-20220708142000":"2022-07-08T14:20:16.073Z","0.0.0-canary-20220708143746":"2022-07-08T14:38:01.469Z","0.0.0-canary-20220708144225":"2022-07-08T14:42:41.744Z","0.0.0-canary-20220708145957":"2022-07-08T15:00:15.750Z","0.0.0-canary-20220708153539":"2022-07-08T15:35:57.149Z","0.0.0-canary-20220708163418":"2022-07-08T16:34:38.984Z","0.0.0-canary-20220708165828":"2022-07-08T16:58:44.528Z","0.0.0-canary-20220708174319":"2022-07-08T17:43:38.492Z","0.0.0-canary-20220708181446":"2022-07-08T18:15:07.435Z","0.0.0-canary-20220708182912":"2022-07-08T18:29:30.715Z","0.0.0-canary-20220708183307":"2022-07-08T18:33:23.238Z","0.0.0-canary-20220709041435":"2022-07-09T04:14:51.589Z","0.0.0-canary-20220709043355":"2022-07-09T04:34:18.333Z","0.0.0-canary-20220709045814":"2022-07-09T04:58:33.240Z","0.0.0-canary-20220709072030":"2022-07-09T07:20:46.057Z","0.0.0-canary-20220709113411":"2022-07-09T11:34:29.272Z","0.0.0-canary-20220709142503":"2022-07-09T14:25:19.613Z","0.0.0-canary-20220709150918":"2022-07-09T15:09:34.561Z","0.0.0-canary-20220710094147":"2022-07-10T09:42:02.977Z","0.0.0-canary-20220710094530":"2022-07-10T09:45:49.482Z","0.0.0-canary-20220710095448":"2022-07-10T09:55:04.776Z","0.0.0-canary-20220710104926":"2022-07-10T10:49:43.195Z","0.0.0-canary-20220710110359":"2022-07-10T11:04:15.274Z","0.0.0-canary-20220710111250":"2022-07-10T11:13:10.521Z","0.0.0-canary-20220710112130":"2022-07-10T11:21:46.614Z","0.0.0-canary-20220710130149":"2022-07-10T13:02:08.689Z","0.0.0-canary-20220710130959":"2022-07-10T13:10:19.787Z","0.2.0":"2022-07-10T13:25:02.434Z","0.2.1":"2022-07-10T13:28:09.510Z","0.2.2":"2022-07-12T07:28:28.004Z"},"maintainers":[{"name":"hendrik.mans","email":"hendrik@mans.de"}],"description":"Node-based Shader Composition!","author":{"name":"Hendrik Mans","email":"hendrik@mans.de","url":"https://hendrik.mans.de"},"license":"MIT","readme":"# /Shádenfreude/, German: the joy of writing shaders\n\n## Introduction!\n\nCreating shaders from node graphs is fun -- users of engines like Unity or Unreal Engine do it all the time! Shadenfreude aims at **providing a node-based shader composition experience from a code-first perspective**, designed for use with [Three.js].\n\nIf you've always liked the idea of composing shaders from node graphs, but secretly preferred doing it through code, then I am happy to admit that you are just like me, and that I have created Shadenfreude for people like us. Let's go! 🚀\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## Features\n\n- Rapidly create powerful [Three.js] shaders using a library of ready-to-use nodes, or add your own!\n- Nodes are just plain JavaScript objects, and they can implement anything from tiny pieces of processing, up to big monolithic behemoths of shader code!\n- Use all the language tools you already know to wrap individual branches into reusable, distributable components!\n- Developed in Typescript, with fantastic type support out of the box!\n- Compact library, lots of tests!\n\nShadenfreude also has a couple of non-features:\n\n- It does not provide a full node-based reimplementation of Three.js' built-in materials.\n- It does not provide a graphical shader node editing environment, and does not aim to do this or even support this in the future, even though there are some fun ideas for debugging tools that will provide a similar experience.\n- It currently only supports Three.js' `WebGLRenderer`, but WebGPU support is on the table. Maybe not today's table, but definitely a future table. :)\n\n## Examples & Sandboxes\n\nThis document is going to explain the basics of writing shaders using Shadenfreude and developing your own nodes, but the best way to dive in probably is to check out one of the many great examples[^1].\n\n- **[The official Shadenfreude sandbox](https://codesandbox.io/s/shadenfreude-ts-y3h24k?file=/src/App.tsx)**. Fork it and go nuts!\n- [Chunky Planet Geneerator](https://codesandbox.io/s/shadenfreude-planet-gkulwg?file=/src/App.tsx)\n- [Dissolve Effect](https://codesandbox.io/s/shadenfreude-dissolve-ubzbxq?file=/src/App.tsx)\n\n[^1]: What do you mean, there aren't many examples listed here yet? Come on, cut me some slack, this library didn't even exist two weeks ago!\n\n## Basic Use\n\n> **Warning**\n>\n> This library is pretty young, and so is its documentation. Since the library is still in a lot of flux, the documentation currently focuses on just the basics, and assumes that you already have a certain amount of familiarity with writing shaders. Just like the rest of this library, this documentation will grow over time.\n\n### Overview\n\nA lot of the time when building WebGL applications, you will write _shaders_ -- small (and sometimes big) programs written in [GLSL] that are uploaded to and then executed on your GPU.\n\nShadenfreude allows you to express your shader code as a tree of JavaScript objects, from which it will compile the GLSL for you. For example:\n\n```ts\n/* Define our base color */\nconst baseColor = Vec3(new Color(\"hotpink\"))\n\n/* Animate a value back and forth over time */\nconst frequency = 0.3\nconst t = Sin(Multiply(Time, frequency))\n\ncompileShader(\n  ShaderMaterialMaster({\n    /* Animate the fragment color over time */\n    color: Multiply(baseColor, t)\n  })\n)\n```\n\nThese objects are called **Nodes**, and every single one of them can be compiled into a shader program; but you typically start with a **Master Node**. Which Master you use entirely depends on how you intend to run the shader. Shadenfreude currently provides Masters for use with Three.js' `ShaderMaterial` as well as [three-custom-shader-material]; more Masters may be added in the future.\n\n> **Note**\n>\n> Shadenfreude currently has a dependency to Three.js, but only really uses it for some type glue (eg. so you can pass a `THREE.Vector2` instance to set a `vec2` node.) It is very likely that at some point in the future, Shadenfreude can be used outside of Three.js, too; PRs welcome!\n\n### With THREE.ShaderMaterial\n\n```ts\n/* Create the root node: */\nconst root = ShaderMaterialMaster({\n  color: new Color(\"hotpink\")\n})\n\n/* Compile the shader: */\nconst [shader, update] = compileShader(root)\n\n/* Pass the `shader` object into the ShaderMaterial constructor: */\nconst material = new THREE.ShaderMaterial(shader)\n\n/* And call `update` in your game loop: */\nfunction animate(dt: number) {\n  /* ... */\n  update(dt)\n}\n```\n\n### With CustomShaderMaterial\n\nThe excellent [three-custom-shader-material] allows you to inject shader code into Three.js' built-in shaders to modify their behavior. Use it just like above, but with a `CustomShaderMaterialMaster`:\n\n```ts\n/* Shaders usually start with a master */\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: new Color(\"hotpink\")\n})\n```\n\n### Nodes\n\nEverything in Shadenfreude is expressed as a **Node**. Some basic facts about nodes:\n\n- They always represent a specific value (of a specific GLSL type). For example, a node might represent a `float` value, or a `vec3`, and so on.\n- Their values can be static, or received as inputs from other nodes. For example, the final color node's value might be a mix of two other color nodes.\n- Nodes may perform anything from simple calculations, to more complex operations. They may even inject their own GLSL code, from short snippets to complete function libraries.\n\nBut let's start at the beginning. You can construct nodes using the `Node` function, passing a type and a value:\n\n```ts\nconst f = Node(\"float\", 1)\n```\n\nSince you will be creating _a lot_ of variables, there's also a set of helpers for the individual types:\n\n```ts\nconst f = Float(1) // equivalent to Node(\"float\", 1)\nconst v3 = Vec3(new Vector3()) // etc.\nconst b = Bool(true)\n```\n\nThe value argument is pretty powerful. So far, we've been assigning JavaScript values (`1`, `new Vector 3()`, `true`, etc.), but we can also reference other nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst other = Vec3(color)\n```\n\nYou can perform mathematical operations on nodes:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n```\n\nNow let's use that modified color as the material's main color:\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\nconst modifiedColor = Multiply(color, 2)\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: modifiedColor\n})\n```\n\nHow about animating the color intensity over time?\n\n```ts\nconst color = Vec3(new Color(\"hotpink\"))\n\nconst sinusTime = Sin(Time)\n\nconst animatedColor = Multiply(color, Add(sinusTime, 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: animatedColor\n})\n```\n\nHow about making this time color animation reusable? Just write a function!\n\n```ts\nconst AnimateColor = (color: Vec3) => Multiply(color, Add(Sin(Time), 1))\n\nconst root = CustomShaderMaterialMaster({\n  diffuseColor: AnimateColor(new Color(\"hotpink\"))\n})\n```\n\nThere you go, you've built your first animated shader with Shadenfreude! Now go crazy!\n\n### Math Operators\n\nTODO\n\n## Advanced Use\n\n### Code Expressions\n\nTODO\n\n### Pipes\n\nTODO\n\n### Value Types\n\nTODO\n\n## Creating your own node types\n\nTODO\n\n### Defining shader chunks\n\nTODO\n\n### Defining functions\n\nTODO\n\n### Marking a node as Varying\n\nTODO\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"}