{"_id":"@andrevenancio/fragments","_rev":"4-a378b7b87bcf1e78e13a835dac430afb","name":"@andrevenancio/fragments","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@andrevenancio/fragments","version":"0.0.1","license":"MIT","repository":{"type":"git","url":"git+https://github.com/andrevenancio/fragments.git"},"source":"src/index.ts","main":"dist/fragments.js","exports":"./dist/fragments.modern.js","module":"dist/fragments.module.js","unpkg":"dist/fragments.umd.js","scripts":{"build":"microbundle","dev":"microbundle watch","serve":"http-server -o ./dev","start":"npm run dev & npm run serve"},"dependencies":{"http-server":"^0.12.3","microbundle":"^0.13.0"},"gitHead":"dd6d53c58c5e55540a5a3a117e641195890c57dc","description":"Fragments allows to composing multiple fragment shaders together.","bugs":{"url":"https://github.com/andrevenancio/fragments/issues"},"homepage":"https://github.com/andrevenancio/fragments#readme","_id":"@andrevenancio/fragments@0.0.1","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-wULJFUrDjjBeJUbWst9U9HyGNo92kIsz9Z1Q1G2uHu631k7np0xnCF9Sr1HaayIf2CskiemEO/amwXvvSASnww==","shasum":"ae1cb420eefc16ec18473e5a514c260fa8870a78","tarball":"https://registry.npmjs.org/@andrevenancio/fragments/-/fragments-0.0.1.tgz","fileCount":25,"unpackedSize":66656,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaLcKCRA9TVsSAnZWagAAjnUQAJVMDqWx39/jvJ6jycsl\nW21hSzkD8yQ5LKWm/DWq54aTzTGPiP6aiZSJXJDwe4f8qd7F9RxEigZ8oiWz\nsY3+tf9JPHVwJmZlR14m6WV0OKnt+ScLKynfz1VjfL08PUjc/ZPPfySjpGJY\n2iXHBVV9ScrIx6ZwyWxIOJrha/aG20/gb3vDf4HGW9TL7BB5ARKOhCkcLt6m\nXn7aJ0Zh6euYEXJZ4/PBFxdzG652d8mstklvlHQlfQ2SuwpOVKY81p2HlThC\nF3j5Qa9N4VczVKNjwihZLp47NlClnBDpOUCvJdB9ch91/yWyxOhawzg/hOuX\nEIAgTiWovKcQcnjlntPINFWcGN7fp73RUMdKDOyK/TjQPLw3J+wgMj7ev04p\nGDe2Ay47OTyCmv6DH3cXLUOAnpEgVHf7Se8eyzvgGnxNDGGWPtgUszpPaz7L\nTkKkD0ZZpncVIIg994BBGpa1mu8jhdQEhI0b5s9Dy7f7LXW/kRGOP/Hh35DE\nZPlzyMhO3i0AKs6VShIV2I7I+t+3BplQGGQ0bgTdLfsRE0TVBtkGtpWs+3YD\noVqcJW5lzGK/LnjoV767uebXFieIDPe0etTrOiOdHqctVavsxX9STDK17JXu\nwni/z/Tl1o+xI1/Oi9St5hesJaObqFDGSQdRI5ePsQJDexCojgUznm9rIAOr\nTS8Y\r\n=w1uB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAKekDx+ONBDWPIyzYuHe0z43Dyr3TuuuJT/cbqBbVJCAiEA5QDxDMDhEADdaaeCQ60to8oUjttGw7Pr79k+kKpUdN4="}]},"_npmUser":{"name":"andrevenancio","email":"info@andrevenancio.com"},"directories":{},"maintainers":[{"name":"andrevenancio","email":"info@andrevenancio.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fragments_0.0.1_1617475337653_0.2239921189913623"},"_hasShrinkwrap":false},"0.0.2":{"name":"@andrevenancio/fragments","version":"0.0.2","author":{"name":"André Venâncio"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/andrevenancio/fragments.git"},"main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/mylib.esm.js","engines":{"node":">=10"},"scripts":{"start":"npm run dev & npm run serve","dev":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","serve":"http-server","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.10.2","husky":"^6.0.0","size-limit":"^4.10.2","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^3.9.9"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/mylib.cjs.production.min.js","limit":"10 KB"},{"path":"dist/mylib.esm.js","limit":"10 KB"}],"gitHead":"562d1eb8f1d318a676f4f7e6757e7916909a7755","description":"This library allows for composing shaders by chaining multiple \"fragments\" together where the input of the current fragment if the output of the previous fragment.","bugs":{"url":"https://github.com/andrevenancio/fragments/issues"},"homepage":"https://github.com/andrevenancio/fragments#readme","_id":"@andrevenancio/fragments@0.0.2","_nodeVersion":"12.22.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-INtKURWOKBaZAfRDgVLaCiPKEUpOQSA4EJimduEIFueHF4U1eOj8Ty1dTcvm608a1HsekgD0wYde7aR2rxboag==","shasum":"f3f27da3afa3009e383f54b1951c25460a698063","tarball":"https://registry.npmjs.org/@andrevenancio/fragments/-/fragments-0.0.2.tgz","fileCount":22,"unpackedSize":105269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbjHxCRA9TVsSAnZWagAAv1IP/j04UJ3uXmSsWKgRfxYg\nroeM21Ztjk7xTztpbdmeB7jVIfGQbjZzLzjDvMvfAUAXxaXduZpv9WcIy/+4\nGU9MIpN0o1khhnAF/G763pWI3iocy4Nc36/m3bIe/p8hou1BRiZCetqABV4I\nxESKrtxsqblOWLlZuAvS3r8GoJ5uopu358VoCG2+nmcGg+Y1qGp9AoDA/Ycl\njeO8/yyWgLOidj9Zy1FZJKvqUnej+vIQHiJbFHaygdVROKyfRGJPrRjyoiGR\n7gA5bn10jit51O71OjiITDSEqVE9vdcOAOT3yVk77qpusbemOWeeTOedG9p6\nkKj/PR66AVFbCb7rYkgQ5opkaqgMT85kFp7kifKs/Ck7f3bKAZLEfKPx8oj2\n+NB/c70Ke3EGu4M4f/StoRJG6Tqhe7ZzBmu4ibkE1Ladaf1/uqaHmaU0cWKm\nf8ZRczYDj1SevIkQkcZPRkT+ZkghktZ6O6BhgQGtxySjgjH6WPhUmgTdZpMJ\nJoFM1OpOQHYKI0U20FZrddOgz+E8QWdCtEME0qzG16vLJ5q5bMyXmyqw/+7w\n4XHHdLWeHzmvtE1jhxe1Lpsaf+Eq3USzY61jaXIu726EB8P3R5ORd+4oirwz\neNCQzQCWbf7hTqXmSiXX11AYNlZSzK7qTj+fOnm3Jb+A5sTRXU09O1CLJfbU\n36Rv\r\n=bJ2t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVzQT2SZ0c9pJ6HdB5M/aYNiOMOV2rwuqgpj85ZKNJ0AiEA1MmqeS+ZRh550ovkvM97St5l0G/2ae5vjcVjJXqm5IM="}]},"_npmUser":{"name":"andrevenancio","email":"info@andrevenancio.com"},"directories":{},"maintainers":[{"name":"andrevenancio","email":"info@andrevenancio.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fragments_0.0.2_1617834481195_0.78858259085823"},"_hasShrinkwrap":false},"0.0.3":{"name":"@andrevenancio/fragments","version":"0.0.3","author":{"name":"André Venâncio"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/andrevenancio/fragments.git"},"main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/mylib.esm.js","engines":{"node":">=10"},"scripts":{"start":"npm run dev & npm run serve","dev":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","serve":"http-server","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.10.2","husky":"^6.0.0","size-limit":"^4.10.2","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^3.9.9"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/mylib.cjs.production.min.js","limit":"10 KB"},{"path":"dist/mylib.esm.js","limit":"10 KB"}],"gitHead":"809a47a36d83bc98d952021763edca424fcef77c","description":"This library allows for composing shaders by chaining multiple \"fragments\" together where the input of the current fragment if the output of the previous fragment.","bugs":{"url":"https://github.com/andrevenancio/fragments/issues"},"homepage":"https://github.com/andrevenancio/fragments#readme","_id":"@andrevenancio/fragments@0.0.3","_nodeVersion":"12.22.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-7K6obAyOUtxuCDVOAvIrG/4q9Dh7knz9A/DnlmONoMBrc2z+caHreiC2nuPK5c9gvNjeYDetSQcw7cN3vgrDcQ==","shasum":"2df0babe6fc7df8d2a38f63f92d0a9e5e5df9681","tarball":"https://registry.npmjs.org/@andrevenancio/fragments/-/fragments-0.0.3.tgz","fileCount":22,"unpackedSize":105506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbkdoCRA9TVsSAnZWagAAqxIP/AurSN0Xw0RzSAWoCbl3\nz9ZOtJooCkXzZOzeBvCxDnN/i4tENZK7I9KAT0WSBBAzszniHoJtNI/7KqHK\n8SBTQiHRDsMh8D8epdAdS46ctYY06jDUl8t+v1qT1g4pastT72hvNEYXr+6V\n5aHYmg+fEo4w1pWRYNNtLCxv4Ze3p1bWJOeYB0QNVkEgwkx2wgX55oNpopF/\nv324sXSqwMZpGM+xGINJCmPVK/l2W9NJWgyJr5gLlB8M2j4sr0UDpaK4BOo4\n0OKcwm87t9t0wG6dOXgj08IpZU8X6q5sxqAMCI8PCiUJdi+Ef9YP0XMytCIJ\nAWo4INTEaoTVOD/AmTRP2tGxwMelXzo8dgMEsVqwBDqm9j33VU1cVICu/ftR\n/OExbrOmLJ/IVxpd7WkSMjqOnA9Xz9AxQNNRyEhUod7mmrQNsizLUHOlXM3r\nBvdHrdtRxiPn84KjZUNCp37xp+sO+2L5R9tg3l4dx2eIQD8aBQz9GwVjz8ea\nOAU87zaOuEeu7Hk7t6HFG8+KJq7JTod8alpdrQa75F1PL2WvuKRZ5C5zbZwI\nKXa07iCY+4i8gQusl9uRlhQutxh4On1bJmDeZTlOgWOucFbgYMkuXDI6Y9pJ\nBODL7g67KoULZ+6Qz1E49/U7QKH+tvkG9hEMVh4ab8bxDdfjatUzKyYU2KWX\n7g6Q\r\n=89dJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDI3tfCrCoMEg4cbPM7DTxCV6QoJZnDqJqsINP8UJsk6gIhAKbjQHvhMtARV/ZHmGh/LZUTuE42bL69UrJWQ9cculD8"}]},"_npmUser":{"name":"andrevenancio","email":"info@andrevenancio.com"},"directories":{},"maintainers":[{"name":"andrevenancio","email":"info@andrevenancio.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fragments_0.0.3_1617839976075_0.7711773437502012"},"_hasShrinkwrap":false},"0.0.4":{"name":"@andrevenancio/fragments","version":"0.0.4","author":{"name":"André Venâncio"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/andrevenancio/fragments.git"},"main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/mylib.esm.js","engines":{"node":">=10"},"scripts":{"start":"npm run dev & npm run serve","dev":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","serve":"http-server","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.10.2","husky":"^6.0.0","size-limit":"^4.10.2","tsdx":"^0.14.1","tslib":"^2.2.0","typescript":"^3.9.9"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/mylib.cjs.production.min.js","limit":"10 KB"},{"path":"dist/mylib.esm.js","limit":"10 KB"}],"gitHead":"3a7bb26990ed90c1ee5d567e70b731a4f1bff68e","description":"This library allows for composing shaders by chaining multiple \"fragments\" together where the input of the current fragment if the output of the previous fragment.","bugs":{"url":"https://github.com/andrevenancio/fragments/issues"},"homepage":"https://github.com/andrevenancio/fragments#readme","_id":"@andrevenancio/fragments@0.0.4","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-vxvIC7bK/CExl2YKRCDfVq3TE5tRiJ9BSv54p/AZ8AS+S9q6cWR5rZrccnyT7/DACHvE/ad5es07zH8xnT0RAQ==","shasum":"b520849775ae779636cb60adf4730c0a3b79b60e","tarball":"https://registry.npmjs.org/@andrevenancio/fragments/-/fragments-0.0.4.tgz","fileCount":22,"unpackedSize":106709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjLVxCRA9TVsSAnZWagAAXQ0P/RhD2rvrzfmdqH06ap4Z\n1hRERbzcmy9FmlAT3BXeswU0FPF/CnmdE7S9jFTCrywkIuSE1XrsH1b0lAeo\nePvx1TFkKPEysfZ48ymau9U6D6H4fRY+2DcW2kjLOijV/3KVMPQH+YZmXKGp\nZVU9NgR5FgHTJY3Ijjiwr08BSwmWEMre2A9tP7Sz1QBjphMmg8hmLbvXbBtc\n3RJBiTUluGNmbhcy072btnr+fc6xis++zF/na6LhvJPsxy6wUFxSF27Exnvq\nx5H3Jv1dZyUAwnCMuYj3mxZWUBvNEN70GQiE36z9Zgx2OrkpJuzEUmrA4rdP\n7/1XnY7+k1pySvnPsPLseQmGF55LuTGU9789TeXadHS7DlrPRSE9d+6LR/x0\njOl4enHlQZdx0afDHZ72B0EXywmvtLySQQ4s9yYHrviIjm1MrBliR/BgUhJL\nRzl1xqNdahmoUU0+R/1iUss8nIAcC84nuEKvODWLtbYixn0AaMC/RYC5sH9r\n6Cvfj0pf25YXEgZtuoHW1ma41YoCe/KnBYCa05L3Y2q0ZE8E3ll9ranmcCJL\nwKv9+ipLY/Y+U88xhJit5mYMTvqEhwCPnd92p0vLbLljAnxeK3jpjLJcB5iW\nE+MJG62RR4dZ/6du13/SkVuhH2QorvwP3T3UjcfcLPgM9mn1OxJOt/DtPhTn\nIONg\r\n=lEkb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0PhVJyvHVa3ruGKCpXFlGYQNT+J/jEoBIoqQoW4ivLAIhAOmHCZOfmUbOUBzqC5/Qw3fWbbHxbjxD+vKiImhltsYT"}]},"_npmUser":{"name":"andrevenancio","email":"info@andrevenancio.com"},"directories":{},"maintainers":[{"name":"andrevenancio","email":"info@andrevenancio.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fragments_0.0.4_1619834225422_0.9054332408106682"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-03T18:42:17.606Z","0.0.1":"2021-04-03T18:42:17.794Z","modified":"2022-04-04T14:00:59.462Z","0.0.2":"2021-04-07T22:28:01.356Z","0.0.3":"2021-04-07T23:59:36.244Z","0.0.4":"2021-05-01T01:57:05.560Z"},"maintainers":[{"name":"andrevenancio","email":"info@andrevenancio.com"}],"description":"This library allows for composing shaders by chaining multiple \"fragments\" together where the input of the current fragment if the output of the previous fragment.","homepage":"https://github.com/andrevenancio/fragments#readme","repository":{"type":"git","url":"git+https://github.com/andrevenancio/fragments.git"},"bugs":{"url":"https://github.com/andrevenancio/fragments/issues"},"license":"MIT","readme":"# @andrevenancio/fragments\n\nThis library allows for composing shaders by chaining multiple \"fragments\" together where the input of the current fragment if the output of the previous fragment.\n\n## Fragment\n\nA fragment is simply a snippet of code in GLSL that receives an input and performs some manipulation to it.\n\n```glsl\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    fragColor = vec4(1.0);\n}\n```\n\n## Usage\n\n```javascript\nimport { Renderer } from '@andrevenancio/fragments';\n\nlet renderer;\n\nconst fragment = `\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    vec2 uv = gl_FragCoord.xy / iResolution.xy;\n    fragColor = vec4(uv, 0.5 + 0.5 * cos(iTime), 1.0);\n}`;\n\nconst setup = () => {\n  renderer = new Renderer();\n  renderer.raw(fragment);\n  renderer.setSize(window.innerWidth, window.innerHeight);\n  window.addEventListener('resize', resize);\n};\n\nconst resize = () => {\n  renderer.setSize(window.innerWidth, window.innerHeight);\n};\n\nconst update = () => {\n  renderer.render();\n  requestAnimationFrame(update);\n};\n\nsetup();\nupdate();\n```\n\n## Chaining\n\nA simple example using a 2 external `.frag` file\n\n```javascript\nimport { Renderer } from '@andrevenancio/fragments';\n\nlet renderer;\n\nconst setup = () => {\n  renderer = new Renderer();\n  renderer.loadFragment('pass1.frag');\n  renderer.loadFragment('pass2.frag');\n  renderer.setSize(window.innerWidth, window.innerHeight);\n  window.addEventListener('resize', resize);\n};\n\nconst resize = () => {\n  renderer.setSize(window.innerWidth, window.innerHeight);\n};\n\nconst update = () => {\n  renderer.render();\n  requestAnimationFrame(update);\n};\n\nsetup();\nupdate();\n```\n\npass1.frag\n\n```glsl\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    vec2 uv = gl_FragCoord.xy / iResolution.xy;\n    fragColor = vec4(uv, 0.5 + 0.5 * cos(iTime), 1.0);\n}\n```\n\npass2.frag\n\n```glsl\nfloat grain (vec2 st, float t) {\n    return fract(sin(dot(st.xy, vec2(17.0,180.))) * 2500. + t);\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n    vec2 uv = gl_FragCoord.xy / iResolution.xy;\n    fragColor = mix(texture2D(iInput, uv), vec4(vec3(grain(uv, iTime * 0.5)), 1.0), 0.04);\n}\n```\n","readmeFilename":"README.md","author":{"name":"André Venâncio"}}