{"_id":"canvas-record","_rev":"33-e2acdbb88d30a7bea485f25205a5b4d9","name":"canvas-record","dist-tags":{"alpha":"4.0.0-alpha.7","beta":"5.0.0-beta.0","latest":"6.0.0"},"versions":{"1.0.0":{"name":"canvas-record","version":"1.0.0","keywords":["canvas","video","record","recorder","capture","capturer","download","downloader","media-recorder"],"author":{"url":"https://dmnsgn.me","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@1.0.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"72787d6c2d279d9e20b9ff8b91ce131521420a5e","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-1.0.0.tgz","fileCount":5,"integrity":"sha512-EsFHlpqTJOK7EPgFZAuraZzx8i5cTP9wONBwYp5z1BEKAfoH0HBM2eCk6E4vVhz50CrydcLbuU3C09oAsj9ZUw==","signatures":[{"sig":"MEQCIBUgrfghpx+gWM4AVdAawHsA96wPqXM0WfDSV7WL2866AiBipGfhxPGlzoC1FMDBm5jF1dhbOIyzKd8mrg5nSgC0TQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCL/tCRA9TVsSAnZWagAA5/EP/2PFhfN1V1LWkiBNQt73\n3ArfLQPZuxa/hwuzdPR65jQZPkqFDmTyAKs4JOPVJccez5W+vxeYzbrbWJuM\nVrHFfUneo7RZa8VDbWn9HjwsyZXSpNeFe2JP0LENHjbK7dmqxRHf1Mum3J8W\n5LDiitiFN/HrbEmMh0BBFUGbx3k6qM27rVHAwGtqZlkSwrsJ+4N2XpONZ0G2\n1e9nHXgWSWwHL1Tu1S6+MqsJRssgmYrNoIyQFDk8rPXZqdQgj6uQKHZFiy1q\n7THjUwAQ7dG9lU+h+TIzVwWit8FJtNXYhYK1QfZABruJHtvA+veMTwSjbEdx\njIPdRrPXYIDIuBWyHOMzNtjAYhXLfTu89HbAVVD+pbIDwajwJrTaxUJpgutP\n+FZSLo6MnkBGufQMA9yRScVxo4GOeLcoIlwJyqpFvaen4ypx4oTSwLF9iQNX\nlJs6L0k8YYZB4mQhKcypQXq+Nds8DKzlorAKJJ0xkttNBIFczNOFyMjECEOK\nXPMZ8Eu4R8QufoIu1W99QGOIlSe2b9I0ybMyGXBOEV8uTXQ25kplg07u0+yT\nUFX6IgsTKCzO2EPn+GT8nKmn9PKrVmS9U9SVESzDuHJq1WBjgqvHBiSlo27U\nqVyt3SbSbfzcjiczkts21t+Os3b5CFy/vuqC9nfJyExHOA/Ty1OHZnU7d8hO\nFNz2\r\n=cXQo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"fb53e0ecce67c3b6292a03a894901c029988ba06","scripts":{"start":"budo demo.js --open --live"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"6.9.0","description":"A one trick pony package to record and download a video from a canvas animation.","directories":{},"_nodeVersion":"11.12.0","dependencies":{"file-extension":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"budo":"^11.6.2","canvas-context":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_1.0.0_1560854509177_0.853005898035686","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"canvas-record","version":"2.0.0","keywords":["canvas","video","record","recorder","capture","capturer","download","downloader","media-recorder"],"author":{"url":"https://dmnsgn.me","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@2.0.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"9b3eb54f01d7480b59c7b8663b9a80f98a969936","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-2.0.0.tgz","fileCount":4,"integrity":"sha512-pRxdvDKlYMcpCBIhz/dV5xPtsUFy0YJ4ea1avmU5neWy+a88diEhIAf5X4zaCvgQREuYSl9keqc4cLVjenMqLw==","signatures":[{"sig":"MEYCIQCFl1pu94CF2tuQCYqGm2KfhHEa8mYysGTkD1626Y6ojgIhALZe6I6cumMNwLsfCHBbTexZHBUkg07v1dXen85l4Fhn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYqnfCRA9TVsSAnZWagAAGZMQAI1tXvdxBHjWvuwaqbXT\nUEm5psYhbFvizx6RjHVQT5akTtOldow6W+Og/9FvqXiJ/HSqb/VOV+gzUju4\nunLdkOIWcAAfQQRcVwf+NLVx4Z1qUP5SP1vfg/2IPYwRQkWjyLu53W8rcCT2\n8Z4fLNOQFWpcuXZJUjLAHxOt22UFiORLvbgnjANPXOtCFYYYtaxleqD7Pp7s\ny/xgyHTrhS/lmtaUEzcJ7PaLCJogpeDvrmz5f/GwqW8rv0DaKpIpDP3aATob\nj1iv/IInDH8yUCvddsROYxdmQO+hdpVLPeDNcBJf+Sg+rnf6kQQfuqKIzPL2\nGDcjWpMwyMESXcpjabktU14wp1ZuT/WL9jpLtW0OR+ZYOXmFD1TCc9u6aCs2\ncab/SdlfOEzlslq/+bUUhqwV4p5hXPBU0zv64THriZZRrUEOFW68A9O/1YXi\nnl/aj5PD1ZARKQprelw9mFCjr0RYtXSrR8Z0RLjUeq6ol9mvjOdk1LtXE190\nmPm2VveFL3QyPI5taGohM8vpY83y84npb7AFLn6TmRwicebCf7C7CuNvj0hO\n2oKnR0QYm1HoNwJJOWplsEVe9U9BUlEGLl2BJ3NWxk8KNybsL4B3DveA07fB\n+2vlT8aZ+5qitimzED3jpAxUfQg23r2RJmVwTEeMgstNcToU0Gnh58eXpErX\nwKu7\r\n=3xxW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"4c7b60bc8ab3e4ec10a8b11e0b98fa0c88bd693a","scripts":{"start":"budo demo.js --open --live"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"6.13.7","description":"A one trick pony package to record and download a video from a canvas animation.","directories":{},"_nodeVersion":"13.7.0","dependencies":{"file-extension":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"budo":"^11.6.3","canvas-context":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_2.0.0_1583524319191_0.5416209159261602","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"canvas-record","version":"2.1.0","keywords":["canvas","video","record","recorder","capture","capturer","download","downloader","media-recorder"],"author":{"url":"https://dmnsgn.me","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@2.1.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"d43959eae03b1aa8a6ff9996f4284827e0ee7d2e","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-2.1.0.tgz","fileCount":4,"integrity":"sha512-Kz8Bl2IVFTYfQ3KCLUctzZj5XTv99qIZ8s9sn82Fz3Yhs/D9f/KOEgMIED02xsy0RnP36v9iZj0XFDyqCIw0rQ==","signatures":[{"sig":"MEYCIQCaRUuwdJmA4zicNUavlMsAjScI+VGKagfpnUPYIqdQEwIhAOs1j6mjWIA1thZ9DXb3uxMtPMS1yTXc+BJ26SIvaipI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebUdZCRA9TVsSAnZWagAApZwP/3pNhx1O0vyYX6ztNOXG\n1OXdqcb98NWebEZ2ghQIBBUd9LJIAKoGUs7gVdB0Jkv2vllXBQ5EV5IgfJTg\nfjKHSzvu/z/2ghvitk1uDAILKc47zow1vuj9RFUx9kUhdxpwelZWtbQVkfdH\neKDGZb4qeBegqs01u0Q0qcHWqOhbIJSOlaq1SZj1KlVjMhLYFUrmaF6plVmy\nUj3bjkavlvNvaZzSb98Ie+j6b/gAHeUOue8GUkHzwIabmE58LQUVEP6mTvXI\nFsnOr1+w7BIzv4mRtVq7Gf/Hx/rIa8ndZ/O6DCi5ULtPhE6r0hoU8Pudsc5m\nD6xwZXcicGIEZ1lXx6xWV+Y+q6pjs2Sl9aiy6FF52AE0kTRQeby5g4U3VAbN\ninfqQLi6d8k1m90YB9sY9Di37E2cTtntWDWkS2D0CJVBkMKCko/kVF1Clvr/\nQg5wctuwM7rU0uU79bwC5enxU83Slpjs10Zza3T8ZPay8qFvPUFDecRO2tWA\nKWdF4ildiKg34GcPUmFvI20DXdLEaZnezbpziVuFjqC1bvSTUyRtOrROD/dH\n3a38n0KApV2whiaOotw8VpU4SKl4AwV7aTvxPVu/kAZxGiXM/ojN5Lh7b8D4\njwvwK8rYQ5EDbfZRz+ZNxW9RRV+3KJfmmrCrwYOulOUuJuOlNb8gslDP38Cp\ndfJ/\r\n=m1kp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"25bf44aca2fd392f66d612a52752b8ad4aaff3c0","scripts":{"start":"budo demo.js --open --live"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"6.13.7","description":"A one trick pony package to record and download a video from a canvas animation.","directories":{},"_nodeVersion":"13.11.0","dependencies":{"file-extension":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"budo":"^11.6.3","canvas-context":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_2.1.0_1584219993163_0.8387436437038427","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"canvas-record","version":"3.0.0","keywords":["canvas","video","record","recorder","capture","capturer","download","downloader","media-recorder"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@3.0.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"15001ef3785ec90681b221368764a832c6cdf628","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-3.0.0.tgz","fileCount":8,"integrity":"sha512-sKZVpzVy6GYGR5IfqMXLnxA8NVAjsrmImqUGQ+FH3YIu06V1sQPS0MSSQotynDfeLRtaExDNuT7rZ3amnfy3fw==","signatures":[{"sig":"MEUCIQCF2grkxE8+5aX0+mgDfu7bRLoX4HEbVr3mzZFIkjYoAgIgT0aDgZDoZqpU2ZhFHhfikVmfizYJgFLWgNvd1/VrkWA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeY4UCRA9TVsSAnZWagAA8dwP/jHkerXJCRAL1h0ql8x6\nj3QBGfztZp3LbQgcdjpNNuHhEX8MLVSZenU25PlVfrRWRXQa3OsYcoi/esfn\nzNXtoz0pmdSV/clnI/pQ5L3zACrAr07udKK9Xv2VomfpG3mDRzTU7GxVYJTL\nILn1pugoGXhNOWk7BqqVRgRyF8t8ztd1WwALEI3XJk3+kf0v6g1mspvFX1c5\nduFl2XaXRwOofoObaP/MKEf+jAPbO8npRkOTFHuHW/1W+Nn80Bm0seMl6ct0\nHyRTGBQ5afrtVy5PgpC/maxp0ZRBWY1a9CPChFMRFQCRFYiv+BRfJvIihdLi\nduZHEfGsjI9t/sTpE37TFjJfu/Gt82eRyU5Vy4bz+O6FeqyzNvW9QvllIhdl\nS7cSz8+qS93eN5yLAR5/6gAzS/hUflD91tNzZRV62I/tqLdWXu7qLwUSoUa6\nswt7qz/lFZo6qsgYb8hgy7L6eJCDCJfqEPAHMATtyn0sK4nWCARuWUAysKF3\nTKvuqAaQ8DcIc5KR/4Wb6YzqmJJ87rer0n5ZsjU/4wbGHDp/oOqkpsZ2jRQl\n5voz4Tng7kyItqLxyOzyAvA3mp2Hc6P8bmtaCzpxwM1RqNQdg4EpLG1e3ZgF\nkOgU2OdIV6dLlBc2PvD3csxA4bZL/VmkJ9515R7NKi7oQZubRICeaijCcz4k\nSQoW\r\n=8ZLt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=7.0.0","node":">=15.0.0"},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"cabc7ed3a5aa7fb3f1238a3dbea5c58e1dae0805","_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"7.7.6","description":"A one trick pony package to record and download a video from a canvas animation.","directories":{},"_nodeVersion":"15.13.0","dependencies":{"file-extension":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"canvas-context":"^3.0.2","es-module-shims":"^0.10.4"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_3.0.0_1618578964219_0.3476422480306487","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"canvas-record","version":"3.1.0","keywords":["canvas","video","record","recorder","capture","capturer","download","downloader","media-recorder"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@3.1.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"bb2543ddc7acd22e36a67813e13403dc39582d28","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-3.1.0.tgz","fileCount":8,"integrity":"sha512-BVLL6YldJAZGIQRURkTYbUvtbTJWYVOdeQ/KH5JJrtJjjj6eAc+JE6wEGZzgXuP35RINYxRpG6CZChYCybfXmQ==","signatures":[{"sig":"MEUCIQCiNPmNiqIk/+1daARe7Dxzo1J2kastmkI2sLEjMNyLLQIgaJ8ACWlta8ZKCbLuFGHxd2WqCGHtIfLiHPTNR1tuCYM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2ld3CRA9TVsSAnZWagAAJI4P/1oX8Gw0x0GvPY9v+qKi\n/JGPyHrifSI8psRK8nurTE3CMBvoDt2PyDaQwUR8RKd1sHSN3p61P6C89qFU\nV7PPfpuPwcF9dDJFVt1qwTqtCtrB/i9qtqhOZp53rgAr89/8ZwJLdu8d2Rzk\nzpNFMtwsjk2+WfoqCkcYkIRj6/YFtMUJEoV77Txxg1/SPie2sLfGl7lsmmrr\ndabgif0vFBQol4/fz0tnjV5gKrPGxClpT5S3GuyxTgSuSpqHBXmXEevMdqeM\n6czNkuB3Saa/hrAnUFZDvO2EyZIa5WnsI90irOTjjM106FxTE3MVwW2TnA7u\nrDAxr0gZG5IJqBC3FcKnh7tlblmGzHmWKOolPe1tO7C4NCW3Pzv016q/vXkw\ntHbSoNlIRO5YM1d/PhKE/BgkGVgGuGk0vSVfqDARs3RFnmqdKcSdjFOGCTLI\nOfrK+EmzwFZmtUGOuB3OmxRvgxkfFtCvpCmPO6RCioIu/60+3M2t7MV1indq\nMxincGZkETIWbRtuXXnMqBt05K8mA/z/HM989QBvCsBBUVelA9m6JM5YNxWz\nF2Ufz0NRctCGhAerXuS0ig6HmbetGgdPDKm83nQ3NnkCo6Q66Jni3GIOPTz5\n33PW180Qx6YACtOQh97eYgiIUJ9+Cpukz28OxjSy+1zjHCP67NdvKuyyhlGs\nBrwx\r\n=wjH8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=7.0.0","node":">=15.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"145f5091240137320b70464fa4200ca56fa7bddd","_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"7.0.14","description":"A one trick pony package to record and download a video from a canvas animation.","directories":{},"sideEffects":false,"_nodeVersion":"15.3.0","dependencies":{"file-extension":"^4.0.5"},"_hasShrinkwrap":false,"devDependencies":{"canvas-context":"^3.0.2","es-module-shims":"^0.10.4"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_3.1.0_1633170850509_0.5976948395564163","host":"s3://npm-registry-packages"}},"4.0.0-alpha.1":{"name":"canvas-record","version":"4.0.0-alpha.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"ce1e61fde436aa8d3a9ea17cbf6c0884fb044444","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.1.tgz","fileCount":28,"integrity":"sha512-9qAHvRimt0Sz1YTGSrKhDe8detpJ7uVfCMUJQFj/3OvZZEGuOmidGNxlEHfjI3QmQ1xAAy7TqDzHPH3H5IBhlw==","signatures":[{"sig":"MEQCIBkApK4uUvhKGX/yaGgW2fAtGF6bMo+TQIIwq9ksgdL+AiAhlrdSusbI+/iSa/RShzNqlaAlGW5JQ1DMm6Rdvoyc5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyn/sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoFw/8D991rY3NQsk7dzzESLpb9+RBErVA00kIy/tNuc2JTEmxH9+J\r\nq2k2Xx2Z5+DaqLqMKXCsB68icdMUHk+YypQJ5Kg2nR81+MNOdjI3Hu0YhEJL\r\nFBKLdMuO4aFLa3r/uU4G7MFvyxdVc3iejVazBo7VSCa34k06wGElgXSU3JOp\r\n2EGcuii7dHmVopBSHybj0Sm6UJapUABSdZpFRvBMnusyK5P11zStiz0mtC90\r\ndthrsHzpO85N2PiZtUArOzxSbCRX+rc/VSbB+j41rBVPnGfXzdKGAT516LBi\r\n25DDas8XWFFMSXFgd71zJCwRht1yG3U36kQ2pIjsGOGxEy8GZjjkgb6Y/OAE\r\nKVlobYXPAN2Vv0R29pqCBYgCumRqwgUgdl2HSupvPl2OKARamfyvErkdzVPo\r\nn+V2G0W8HBvR8uUChluhoZy7JpewU+qWszt06kdnrQQDhR8WsqjGp2CepsOe\r\ncLPkC2FTeUoWSjjIWOhkcoP7B8tgIaE7V55BxV7xJXJgv/z+x2FTVTTFpqj3\r\nRh3sy/cMNxGugWtZbx0B+ItjxKz2F14vWoArOq8DCePlXJ2WimgyqF6H6/w5\r\nm0EiQoO4ynSpxz/biQVp7H1jczzjes89hOap8bEp3MSDgJXWXhphVASnLAy/\r\nsPyGfyszuzlE8eEfDM43W5jympdged2Cma8=\r\n=Lg9F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"012009a106293729f3a4e4c2bbc70b66124d626c","_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.2.0","description":"A one trick pony package to record and download a video from a canvas (2D/WebGL/WebGPU) animation as MP4, WebM, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.4.0","dependencies":{"gifenc":"^1.0.3","webm-muxer":"^1.1.5","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.2","canvas-context":"^3.2.0","es-module-shims":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.1_1674215404389_0.30784934235993866","host":"s3://npm-registry-packages"}},"4.0.0-alpha.2":{"name":"canvas-record","version":"4.0.0-alpha.2","keywords":["canvas","record","video","recorder","capture","mp4","webm","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.2","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"e5dc46977ad127a971075f18a6c60e51c2e0c01a","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.2.tgz","fileCount":28,"integrity":"sha512-jl82KVl9MFjtf16y1SZRteUX7sDkYjnZ/LdAeQKOLcJbeZzoIb2IDKbFjKt8CGyI2Zt0netg/bGq4QYtMTYi8A==","signatures":[{"sig":"MEUCIBXloeSajyZYvDHeHTrwxGtLVpbrlp7OHJvl3gDm51OGAiEAtvcP/DFSURp1mh5Y4CaLywKpAFH6P5Bc0NxOygImAvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj64rsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoUjhAApJd3FftKpfz1xWZEllfQGQwANX9wWnhI2CTs7CY90RBpDDpK\r\nQ7OtsHLy+v380Hfe6TMe7okOQjHL1W9vMDWdDNu+POp/HciLtFKPrEAPHJKR\r\ny8V+AQ1aqa8n+rEbk9cNbHe+lWMLkm2LhKqn6u8FCmNJtmbUYIpOjeCEVohp\r\nqmkfaGUEQkHBU6SwM+xE+d09l+yCLAIk61ttYfuI4VWmFYmVZz0Tt26DwCEj\r\nwDm16NB3XlFuAZn7B+L0Rv+seWWswNEYQZ2M4d9k6LldSdgKo9CKDn2xW7S0\r\nhuTPqYqqIUZecg4LYsnhgb7VXWCGFryLHa2R5Z/rYIGveWs9TtdUvMov8z6x\r\n43Y3kyGw8C17TGgESPEtTcsdrdo+ZjaKqydM9MmtU1ED3a/4tMWcWf6e700v\r\nb1CRt6iwF9r5WFm8EuWqM0+o7elEzm0/ScJz66n9uoN2xOLkyqZTD3bPl5sq\r\nGdY0LYaHUeymUkH+Nj5A7/4zoARjuWrdfb7urQZNFUtEYr5y1cXTU2eKEO7G\r\nIOq7dH//mOVwz5YF1htK6+oI+6zKKz1vcQClYMImJ9UiLmgb3EwNDwO9UJVK\r\ngO+FOPCe2BKvpEYqbJCLCf6vXIJk1i6z3ZLxfZw3NluqZ4jhsiQTyrtJtt+O\r\n3hBNVnEJ6wEaEje30IThXUU9Yeg9j2fZd5E=\r\n=Ojha\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"799da751ee1e33b4a49e50913aecbe368ad87b98","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.4.0","description":"A one trick pony package to record and download a video from a canvas (2D/WebGL/WebGPU) animation as MP4, WebM, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.6.0","dependencies":{"gifenc":"^1.0.3","webm-muxer":"^1.2.1","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.4","canvas-context":"^3.2.0","es-module-shims":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.2_1676380908098_0.9775099516834593","host":"s3://npm-registry-packages"}},"4.0.0-alpha.3":{"name":"canvas-record","version":"4.0.0-alpha.3","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.3","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"7a4056ecb221a82827171a3e487daa2f5f24d6ed","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.3.tgz","fileCount":28,"integrity":"sha512-TSflbBQBmXgJRCNNOI9fwePDFS5KhB67USxP/xy6zw7azCWslmvw9rkQuDRh7S7CI2puI+rpGvxuuiewOpoG+Q==","signatures":[{"sig":"MEUCIB3LAdTXNuvi+OXiyuXN1eMOreNfuTVvhbBPVWFYs+DbAiEAppJuSGmZ9PxWrTf21WqVKcAwdZ7+UxYgz73AyyEsABM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7KVBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVzQ//dDCB5TBk7RUcAf15g8tixK0yemCfTb9rJb+aU5gmm7QYeBw+\r\nLkGrx+5er0vxXsmZ+I73y1NaIcMhzPybqxynf3WVKDPZ5dO5oe9ZeuguH+qM\r\nFNhelKrdCV5oBZ+1otejHDfF7EanHi7szhVv9BMdP64vpBZ3+5SvfxxCL3VT\r\nl7aTk+MC5F3S1NH50FYQva+uPm38DO83Marfthr1ZIOLzaVgSc6AuKra2m9r\r\nhkZumUf4HbSwWJGxxTPm2bbMxtPvv71u8O6gb6fO72iVRJopKT1yfIve+fdf\r\nyaGnpPqSdG1/dCeLsG+vRxdvPjbHJH815kgCTQLXbbhEIGfW4Mgzpe84a4yA\r\n4yzDJd5mYl9SEmf5JqwDh9KkKWz3fjeXDEIYsCmjpyL2OQFRlGAIpVBM1rEO\r\nxh1/5gloQdMzoOL5jhPEkTUt9du5aOzw+nZpbE8XYUj6YTKL+Uye8Oe/56BT\r\ngO4B1tn2UftOZR0toYsJK9fWR5kM30BSLv/Xb9kKJrBspbmfAiVTh3q2Ugp5\r\nmstZ3IiHkBIsExWYUoRfwcjTGfkaO5C1n64QnFBSFWayxO4KIkM/HKUZ3ukZ\r\ncnuEa3Du0b0wRklSh5Ocsjt2r2+fH39HwX2ltuMEf0f6YpJUezzPVcfPHmWW\r\nLw2wzctyD1by1iV9AqH03xvjRgukBGXzsVw=\r\n=dkZp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"27063733839e5b01e3cc45cb3cba0d5ceac22542","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.4.0","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.6.0","dependencies":{"gifenc":"^1.0.3","webm-muxer":"^1.2.1","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.4","canvas-context":"^3.2.0","es-module-shims":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.3_1676453184826_0.3749646352343381","host":"s3://npm-registry-packages"}},"4.0.0-alpha.4":{"name":"canvas-record","version":"4.0.0-alpha.4","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.4","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"2cc96e27c99fadfd1b19ff3d2703fa206bf180ef","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.4.tgz","fileCount":28,"integrity":"sha512-U2cbKVZWK2GGakeaLj6gKyBtoim5uRKF+klHJ38RwTX2ZJBapku9hOwrmSuwmonDLpzaZFoeC9iM8rYh5BO7YA==","signatures":[{"sig":"MEQCIQCE1JcGZpRoNyOACFtubFPQ5AuuA4RlwPUtXxjBIqHHvwIfcvmDCTI8EjyIj3LqgVDCT6EP9nxYAunmtQvw0L2XXg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":147104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+L01ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpq5A//d+Tf2M9d7erhmTIjS3TH12/tWXcVzoC5b3I+FwvNWaNJ6PqQ\r\no47+ThO69MFk1xVXw5CiSZ9uctW5LA/UqEJ2n4SW1cRqiayO+0zFMn2KHw/u\r\nMdJNTOsVU5V/vJ80HS9cpjeb4PsdopJ4wNedfLnIUDKot7Z5cJAFe32DiqhW\r\n502XmLdqNsaLJdzbhDJjbOd86WZMI5Y8RFTMLiQzx5u9ABMtwVnpAS27xdPW\r\n8S6UraSVyv+yM+68qVO7FCW3gjFZaAaAS9/rD1eXAvQHMD9MR5KlxVVIuSUo\r\nub0TIVs5Iogs/Vfgs8VSZxaoJ8h2/R1eJ4ufPd6Si31sgTHtRLyVVnQZZvx6\r\nKCAlLUOXQifZVXrLkLLA374Z/ap17mzfJlKprx1MaiCpPkJuP9nhdbfLi2iz\r\n/rLh5sSnN2VUMz9pP637IW9rUIokzn4dQT3SnJtVvtsF5qM4ygFQAKUUHQ5b\r\nrvsd6nEL4mIUJSzTkKeJUTG9bipUZoZ1qQNC/kJiwMTFIVAIh19GRo35Q7ai\r\nlFQjuFrsI12x2SByc6NtNOBBUisnWSIr5r8dKlnLMC/9CgnSmvKvkHAkz4rv\r\nBorOWZtp4dUMmdAPz4hK8srqzaXemow5miGdGYkzTJ87MFUATMFhniD4CYD1\r\n4PQLR0d9CPLCRqbESniQucFnhrEn/tV6b/w=\r\n=4mt1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"5a75719c6ec8ec0d9093aef310777b9a56893256","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.4.0","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.6.1","dependencies":{"gifenc":"^1.0.3","webm-muxer":"^1.2.1","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.4","canvas-context":"^3.2.0","es-module-shims":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.4_1677245749286_0.510008697315897","host":"s3://npm-registry-packages"}},"4.0.0-alpha.5":{"name":"canvas-record","version":"4.0.0-alpha.5","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.5","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"a3c846e3b3f2d8b9114cfae532bf7073edad0a63","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.5.tgz","fileCount":28,"integrity":"sha512-o4L0wfFEzMdBsaAdP/FCYG/2IXbpOwD3VX/EKO1Z34RDpUxr6eE0VrMUH5FtTPLlRJ4CtkJ2kU5MlDuS92lidg==","signatures":[{"sig":"MEUCIQDeuinVYUX2PoIWPtGU0VCQFuRvTwV7AD02Z10W4AR+bgIgaNc4rxnUJB25rUGmn05oMOFoYgDA4ux34fE0mtiotaI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":147297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAHXoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpthBAAizjWEvKWWq6qptOpt7Exe28Y77UU/ZLQGL5MXe9Dq8/9Ug/E\r\nTOQSjppE7KrURn24aL5uBEgRJkncQX5ZSgcVv0tDhV5psSKXwRAiXocWMPvw\r\nJ29F1wZs1ew4u5eVQH7XY1p+USgT0ovE3n5XsgGNT+l1fBP1zQ5GjQAgH/WO\r\npx538Nm3oCXHqt5D8hglwkhV3AGhCvCeHHqEO1QowLKsmpVexuCD0Zx3UT9e\r\nvYmOuAIWsA+TpwvGYwcAR5D2GB9aTlVijGavm+UTltZEEumJ9l/c4EvCp5To\r\ncxldOvYAWJCVpDMoU3HtdXP3z9u7OyVMvZNxEeoAQwcPQyA05Jrnjp8lpTpB\r\nPC3xyUxgt/HAkXjFO2iaujziyEbrI2dgylAcchgptKrDEricSCufz4CGgFtH\r\ndJsTAZsYZrFQ3uOkqZQdBDjEGbP2bPHtmzDtMae7mHRgHtRmDjVFAdN66Esa\r\nbx+LVwrjEvrR1z393axF8gJLcQXsEHmsUSxdXrUNYGo5ueNEhCSh5B3GBJRL\r\n1Uy6g+z594X9OT3rEjnq0eYj/e7M9kbNOYLXHCjNqLfK+tDoS8MUHw+gzvIb\r\nlxpJ264cAQ0ohTt8ZEslYboukmeKoFPpo4nL/IasWjh5fjEftzOFtum7UkwM\r\n7PLFx0DR5iGExeges2QyZdLYQzTh3CbdM1A=\r\n=Kdl8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"8b96074d73b23f49f86e3a67391ad6e4377e17dc","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.4.0","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.6.1","dependencies":{"gifenc":"^1.0.3","webm-muxer":"^1.2.1","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.4","canvas-context":"^3.2.0","es-module-shims":"^1.6.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.5_1677751784676_0.4779962993516511","host":"s3://npm-registry-packages"}},"4.0.0-alpha.6":{"name":"canvas-record","version":"4.0.0-alpha.6","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.6","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"5497252f57ce45d1187631a25f61843e7b24a88d","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.6.tgz","fileCount":30,"integrity":"sha512-+k0VtLrlwHss+P8gvy8FTI2TQgyMDAKLsWib+DSPLRFK8l036bwsBje8bILuglxDm/d82lxl5g+lhqUfsV0l2g==","signatures":[{"sig":"MEYCIQC/u2wn1nfbmWp/smMaGl3Rcfrc93tb/+YvBOA7jBUaCAIhAP8Z0QTSGXJcYrogl3Zj7yExpksmi0DEs1QJTKMbboBP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPGmzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsYRAAkebMQGgBIcfSj2kfAAc09qLJ+HVmwPvtTt3+WjTX0L1gFNNa\r\ncw5ZIs3JedlHHot38w3nwlSjj9BmORIOmHdIiGp5FomVX7O+zrURfjW69AMT\r\nfSNpJO2y3r9Y7B4xq9ykdN7zsMWCO9FaEzyDKWCV+RqTEvojAea4hwZqm66x\r\njnJGQBNNtBPqFjFMIF9dB/WVZdDSO1tCqa0rfuV76doB/H6IShtqN3+kF0/o\r\nFOwTDpgqX4ynntTryzXK7OlHVbyMC+yu8P4YFDtx74xOH0wPhFLMR0KnyodO\r\nlyX8qvDNdEj2nK2m5wI14voigmUJG3M/8XOmEFqDUSk7vclAnRkrVJX5kQkD\r\nhRJt7ehsIOr75P/HscSA8akOgjK9JbqL/UWkJnaSD8OLRFb+zu5qx8jGrE17\r\n4j+JP570qyed7qPRUipbowtfCMqMXu8CVE7D8waADigrZp0ZIqOOCVqugZfB\r\nonH4x17f/nM5wELfol8MXKDoUzKs6dOYSCMgKVie+zw+njg93yUJppZ3H6Vc\r\nxQjt565YsjgjI1MlFM2p7L0cSMC5c4FazSa12TyUb50nQh/3w8k6uzYp24E9\r\nSlMcxXMsrkR6h9cxeSm90iuOFfxqylyAIht+J8SFPvsWKDQYzMHnHSIakXoJ\r\nE9oltxwbUmWqhwoDe9/Cjsp9gb7SxxbxYJg=\r\n=o0yw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"1feceb3ec471e69f4487593cf5df3f8b8cf24362","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.3","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"19.9.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^1.0.5","webm-muxer":"^3.0.1","media-codecs":"^1.0.1","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.7","canvas-context":"^3.2.0","es-module-shims":"^1.7.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.6_1681680819019_0.30777943658697526","host":"s3://npm-registry-packages"}},"4.0.0-alpha.7":{"name":"canvas-record","version":"4.0.0-alpha.7","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-alpha.7","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"fa34f274b2cd7cc92f24687d85326b9a9b481273","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-alpha.7.tgz","fileCount":30,"integrity":"sha512-p+XIDVK2tyfEFZNlh56hKj4m9g6wk6TnE8pA9FVElIusoDRZ0DjdCEJ4HJr+CZg4LoY5j/N/AQ9s6yzgIOjxeg==","signatures":[{"sig":"MEQCIGTs09+q0alX+atv7OmcPBQdfv9P7Vq8sZ/9IzPDSzb+AiAUeB0A0XL6PxeZkT9ZeRcoALbCzVL5cV6Aarq2VlUOTQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":151168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQFdkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNYA/9HGv1ReDiG4KO240cdfprRDPlZnaCzdfSnpOlZB+SBoKXhrYb\r\n0IX+rBsRG6o97VTXYQZ2LhZSnxdHyHRiO1FHKynefUG174eJuqo5ESV22Dy5\r\njZ3V5rvOi5651vY7hOtp1RovGVdRgR+pCDHyaKWsvPB1Wv/DQJrfB+K8C4L9\r\nPiHmU1SKbRxPoZU4c5XjMI6ZyBiJCyinHBsizsBQwNzzu7rl+/oR7lL8SMhs\r\nMMBQKVA3mAOz7/vnIT3eteMQZjbbGFMO0pejTdeECssz/h3OE2NTbH4KbcF0\r\n/m6fnHar2/OuVQ6NpM9v5rudnpyaB5ttPxaZFSg0gAHcmJOWF53rZy7Pda1M\r\nd9nbn/XqYPnUtNz7GlEJcsPTeWDJyfiJ6OSEZ62Bb07wW9xGD8lZ5W/9SzQO\r\n8ucR200URbvObj+QTMrZgHwNNH5/zNHR5nIPakA06DCCEY6CBilhl1bzNk7w\r\nZg9cqHXn6/0W0mLMCYy1YM4U5B6e3kooNKLY2HUeWzLquQuUgQtt9wjMMrYk\r\nAfX2100chdSAivdsz1Hj08gkyrQqPQE59JhheGfDGZ5kv3rbKKGZhkLcefQm\r\n4xYB5ihhoUn2Cpx67FeUNbjOzcmSCG6kc+C+ehg2CMb70MKRonduvQ21Nl6B\r\n1j48BSCfBM/PTJMrYLb50sJA0lD2efQsUi0=\r\n=58tH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"f977d2b98c30ac3c6d2e8e0841d29e063fa6f18a","snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"20.0.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^1.0.5","webm-muxer":"^3.0.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.7","canvas-context":"^3.2.0","es-module-shims":"^1.7.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-alpha.7_1681938276278_0.14989854935433988","host":"s3://npm-registry-packages"}},"4.0.0-beta.0":{"name":"canvas-record","version":"4.0.0-beta.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0-beta.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"f033a2b58e7a897a592dfb3116d9c2eb54605961","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0-beta.0.tgz","fileCount":30,"integrity":"sha512-D14KfAxjjjErsN5a6Dc3eVGoNp3z9LIF8SfUv8oktjY2tRZ9pHxAvJpcU2hcykGgPTqcHlCZPSTx4eLgusBtSg==","signatures":[{"sig":"MEUCIDaxlVjdA1NW7ppUZ/7XVurzY6JK03WTAXhCzzbGFIg6AiEAoB7M/d5PSeFbKfX/vkVrC6Ag9Z8BFcocQ7t8nyjJYfI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQPuEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofTA//R4g3tzNY62jVe4lcisfr2wZ+mGUxHO5abyjIShZldFZeNMEg\r\nQgrFSF3sVawvmUiSUqLrKlwDExdOiJuslqC/fruCG4QgPNHXg/4xCs6ij2Sr\r\nLoBws1W0sAz80nM3tKuG9f6KG8kOCAwuUOc9Uv8MuSsaBVr0ZVTPo4YBKkNs\r\nCIlSHUNt/m/P+FnvOIobip00OF8K6FKdO/7LQhhLi/zUqEH3ayHd2AShJndp\r\nlfVPaS2OjXSGAqRw0u06WM7IsotzfYSjdZLR0MNQB8U1LLKJY04726anEqQP\r\njR0awYRqq3JnaFlRWliSZK8QKkemn7ZLPiI2IncVkwmpVhPBnpXjjj08e+wT\r\nA3SHC3yRf/uU9EDgezW+LBcWT/gnrwlvU+A4d6rFW9gnV/GnpAmGw1E4lCkZ\r\niqp55JsxLOjaES6x0hU4BmhxxJy9Ks65DOl9D6Qev+V9xu7Em1gtCpCDgIu9\r\nMlnbjVOSFbUcF3XSj8wVs1nm5oK125FtVGx3ePfaRupfG1E5eewtsE7MX5y4\r\n3iGaqncVJzBDLqNaBg+4zp7dT5g1Oi54lR6O3hLV52fuCFqPKSpbV8Z3j0l8\r\nWr4pEpCwq5yoBjvw5aMuOJ2agCD3Y3xMhOf87da5WqluBwyWljuXL/Wh8LFG\r\n7HQ2xpbwLLioS9sQEkvn8pPcr0zwO1bOnmo=\r\n=P8/M\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"cd94d076874bffe1c2fabf5e09ff0138765dde7a","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"20.0.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^1.0.5","webm-muxer":"^3.0.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.7","canvas-context":"^3.2.0","es-module-shims":"^1.7.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0-beta.0_1681980292679_0.7789153531585344","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"canvas-record","version":"4.0.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.0.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"8468e6054b9372af2885db7e5b1656ab623ec0e3","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.0.0.tgz","fileCount":30,"integrity":"sha512-yef5ZLQtW1eGz97jrTJ06pfbWGNF/2y2uFkGipoRWjS6gYQAmznqpPVTJvqjv4RHS87eRMgWRNmLftk2UyUC5A==","signatures":[{"sig":"MEUCIQCUbADJ8Ad4URGqCCKYFqzjzmtUvIvVZ/DiogKJwa1degIgBzIaz7g3+ll86V5q0oqdThwftfUH4y4FZgd34kADELo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":152985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkS8AkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqeThAAh2IXlxCu+p8zrtsIvX4RHg0nCtQ/FOwMYzNrex9V8U/+83o0\r\nzrfJH5/VVaddSqKMsaj/etYllqpEmf7nwzFs7TNFBP1PG1MNDJFKq8yR7Zj2\r\nB5TLDH8uOxO/T3MIiTtxgoQNWzPBQXRoJIKeGslTCfPU0a1H1V59K4vwmcQV\r\npG4z2CqBL1g5kdC75uxKQr0clQGafgLCSJWjCqhaN/SP8djHS7HWI6FFGCAq\r\nBAHXavkrC2TZtoptBbb77hD7yddHxq1FP30uRi1Zvs96Zni2YIewEq0jq0Fk\r\n35r3bbnFWLmVEupslauZIWeO5qEnsn69SwUqCKD3CKn8YXPIbMfbp8ptfXCV\r\n23ivuog4+QgkKrjjrHD+xLjTJL+lzy+9LWMITMrL4SVFakEwfHcAsV6d+5Zg\r\nmPgXck/eN0A7/Xu7qV7xHODgsjSPRTkML4UP1ZYT+3kjzHZPVVOt/i24OMNM\r\n5WZAFZqte6qQyrjPVzMYRIo5eRv28sOfmCUfrUZ47K8jyb1Is/VINZxiINhH\r\n7zQpSVW0QImJlhmhvlxpyUx8Dd18xk0vvxWILoL4Tafozmiuo0jp5D91Lq2N\r\nrRV0d0AfXhEGegKq4zBJWRD+0YfQVykpWH5oSp9AXMzikfiIIiv+6l01mZgO\r\n8xdV8BKN2Y5kv8nl7uTr2/hkzYptL3RsynI=\r\n=C5rZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"dd3f4a7a4f92a2a53a287964388dbfb79ba33b51","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"20.0.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^1.0.5","webm-muxer":"^3.0.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.7","canvas-context":"^3.2.0","es-module-shims":"^1.7.1"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.0.0_1682685988672_0.2756300474108839","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"canvas-record","version":"4.1.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.1.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"89193f007c5f9e5002299fe8a3d2655e42f50723","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.1.0.tgz","fileCount":30,"integrity":"sha512-3WBBMgwgXuBMmPNHPluk9fWxleRsUzHntyHuRoRqUkVQxZowFUPblbg74LTodOBY+vVuFBoFrvhniFANsv/hTQ==","signatures":[{"sig":"MEQCIFHhvCvYeuuUkp7tzROYHsi1Jlqrc4nChjAFYHB8Eby8AiB206F2EElTt+DrTWeQ+3rx7lH1AE5mwsTZqA2o3ALKgQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTm40ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmroyg/+JnSSxgh81vVPhv/krZ+LTAwLEQHvi4nIdWH61lTQjGV2LPYv\r\nsVTKGVRD8zDWaxI50lX3AJ7xfYLSkv1Xb4gWxYIYBxustyNNSz1H1euSoptd\r\nCEZ0wvWKDtMpbkQiietLGrIhVMbIbYVjz1fOdiBGXXYS4JteioA7OoikRX/i\r\nv+9FxH436BjoGg5i39FQwDuGxucuaMzJ6BVi0rbT5Mb3jZjN3XAfFEA95gu8\r\nCHxf7xWtvZ1onQqwqG3FE83hkqf03YP84012LYA4hT3ilZNy/DhOTgi90pb3\r\nYHQdQG7jZueXwUj3UQedHYG80VvplwZt5Jo4ydPXM3+GyQOra2yFFX8lUmZn\r\nh4uJ0TQLIwGuzPoqDXYc/47ImjhEqdGbCJkRqWeRwWlmmtVC0vfu3yN9QH+Z\r\nVdHMB6NATgnCfDwfqBJ8OmO4euPAqO3oKxxVEPftiyVQQdci6f0tKlTZNCRN\r\nVeG5S2PnMQdyQF1vuRvBefcfvg8fF1XiFsY/9oPcpcFf8ThYdSmOB4HQN6+K\r\n93k/Q6GTn2OmaKDKM+0h0q0TQOH53sC4CV7qNc8KZrwTwaysQ47uvRRGOKsk\r\nuwgtWNWK7H4RCjk4LgStjni9R9Bg9AxXwEd0THH3THcrFpmhleYjaM5UFQqI\r\nBlHahQvNXFETvegu0CM3lJS8X0z0uHljaAc=\r\n=gTB/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"c721fdd4eba726cc987f52ac3d3c1c091983e635","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"20.0.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^2.0.0","webm-muxer":"^3.0.3","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.9","canvas-context":"^3.2.0","es-module-shims":"^1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.1.0_1682861620435_0.7118767424320309","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"canvas-record","version":"4.2.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@4.2.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"52cf6e6804acbd7614a6493631f71f7a055fe1b0","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-4.2.0.tgz","fileCount":31,"integrity":"sha512-Rr4eUBVrbuvmn6ZaBMfsAopKoUowrl58TJud/0h4R2qHBEhAmYoC7/mvbppLWJHtkWFwAFW5x+L96RGvOvHqXQ==","signatures":[{"sig":"MEUCIQCzG1VLifaKXwoDtfy+4Pv2THbhM7jHsDF/qXQ1oHm9LwIgcx/vlMd2iPu+qVxpaxlbAQT/OjrquyVMQU8vlrzA+ko=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153750},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"3eff6d99d007c5838848bc0d0f39de6e8ca87c37","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"snowdev":{"crossOriginIsolation":true},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"9.6.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"20.1.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^2.1.1","webm-muxer":"^3.1.0","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.11.6","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"mp4-wasm":"^1.0.6","tweakpane":"^3.1.9","canvas-context":"^3.2.0","es-module-shims":"^1.7.2"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_4.2.0_1684589850329_0.9531692117044781","host":"s3://npm-registry-packages"}},"5.0.0-beta.0":{"name":"canvas-record","version":"5.0.0-beta.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.0.0-beta.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"a5a327324efd631d8e20c71781c46eea414c2311","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.0.0-beta.0.tgz","fileCount":33,"integrity":"sha512-vr9E/a2Xlpshb8eLx5f2Aa3uaVSvzNBKV6p6E7dhVfoZf0ZRGDBlMkaIODSkJ+rBW1JjMrW7oTNQsP6tIi0gbw==","signatures":[{"sig":"MEQCIA2kRHQuDAoDb1Jml6oYELrYKFdcFkWBnIiGCIhR9UjoAiBpSD6aJGBKyOQ/qhQQp+d1PYA8Lr3CKBKEOQv00BFmSA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189140},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"ae483c1a5e291fa100219a3c8c742c5777d24c11","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.2.0","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"21.1.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^3.0.0","webm-muxer":"^3.1.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^4.1.5","mp4-wasm":"^1.0.6","tweakpane":"^4.0.1","canvas-context":"^3.2.0","es-module-shims":"^1.8.1","@web/rollup-plugin-import-meta-assets":"^2.1.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.0.0-beta.0_1699119788127_0.6863885475270781","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"canvas-record","version":"5.0.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.0.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"8601d39bbb307493a53215ab35ddfe533f5aefa3","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.0.0.tgz","fileCount":33,"integrity":"sha512-n6wqNOYV3PzFNAvu4O7q2nCzagYsVkWw3UM4+hpLVD0TX/emPmaVcXb+k0LVwAjXlqVcvLQokqJ8NVWP98/2sg==","signatures":[{"sig":"MEQCIBi6XBdQaJYmaZlQLTGw7RrK1Jhvl8cMEyXM9/DmuwLhAiAnO80YeCLzZ2BEFgdnfVaOeZJdxpoNqxGRyxO2VMaVAA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189247},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"a6c3e440b7cdd17d4f2fe1ed7130a9d633d56404","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.2.4","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"21.5.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^3.0.0","webm-muxer":"^3.1.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.1.5","mp4-wasm":"^1.0.6","tweakpane":"^4.0.1","canvas-context":"^3.2.0","es-module-shims":"^1.8.1","@web/rollup-plugin-import-meta-assets":"^2.1.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.0.0_1704708492417_0.8272444014855398","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"canvas-record","version":"5.0.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.0.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"8f31d062f423cef23e3c29bd997925571996fc3b","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.0.1.tgz","fileCount":33,"integrity":"sha512-82K46eWi2HnF2DMOCs78+6d8Fpps5bs9t15yz46t5cj3enmJLStAbVzbFb+Ei/j65hiRBQs1ehpabm26weuqBg==","signatures":[{"sig":"MEUCIFfy+RPqQrWCuQLWNxiGMS3ppU6U2Z27r+Og/cOzkc+rAiEA2zYBT/M6PDhgiY2/AJ8T3nhF2SRAgML6zHj2AQZDd7I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189528},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.0.0"},"exports":"./index.js","funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"347bdff4c49bd5941d2f483198c45321aeff82af","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.7.0","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"22.2.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^3.0.0","webm-muxer":"^3.1.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.0","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.1.5","mp4-wasm":"^1.0.6","tweakpane":"^4.0.1","canvas-context":"^3.2.0","es-module-shims":"^1.8.1","@web/rollup-plugin-import-meta-assets":"^2.1.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.0.1_1718029483054_0.8821356781478171","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"canvas-record","version":"5.1.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.1.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"29e6460286fe64bb4c40634a5c850ae87db7e58e","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.1.0.tgz","fileCount":32,"integrity":"sha512-9X4KOICWMnQktrjD5aBCZf8EMakDG7mbUKDIbBtDnTvJuQmJq6VEejImJi7+WSYRE+MNyoWnYhBMPUPVoMvzww==","signatures":[{"sig":"MEQCIAhTAwHSTRbnCS03r16VQx1/00w78yOb4tduX3g/oQ6YAiAUyHicKHhIPteHge/Ki9Yn95thSei0OiFHZaCA3qm6/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189783},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.2.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"55535c8e0bd1820d66b556d5ac6fafbbebff314a","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.8.1","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"22.3.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^4.3.3","webm-muxer":"^4.0.1","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.18.0","mp4-wasm":"^1.0.6","tweakpane":"^4.0.4","canvas-context":"^3.3.0","es-module-shims":"^1.10.0","@web/rollup-plugin-import-meta-assets":"^2.2.1"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.1.0_1720360094593_0.2189274305526967","host":"s3://npm-registry-packages"}},"5.1.1":{"name":"canvas-record","version":"5.1.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.1.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"9c5774b4c68d6fbeec423816f7e45676a90eb7d2","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.1.1.tgz","fileCount":32,"integrity":"sha512-GpeGoOQ03fi/cOioRJvlCPqO1dUa1ihHYGsGpDxd4feBCXpjNO0n7BzcMYYqN8TrE8VM78RfvA6pmIMW+sVdpA==","signatures":[{"sig":"MEYCIQDC0bYK56angQse30B6F95wjWRZZkB/9QpzWEAUe4nBOAIhALbqwwPwngcRVrhEBxTiliJy6w9r/KF9guSJQQKbNgZu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189950},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.3.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"fbaedc01c214ebc0b6ebdf0142612cca2e08d4cd","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^5.2.0","webm-muxer":"^5.0.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.34.8","mp4-wasm":"^1.0.6","tweakpane":"^4.0.5","canvas-context":"^3.3.0","es-module-shims":"^2.0.10","@web/rollup-plugin-import-meta-assets":"^2.2.1"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.1.1_1740331618421_0.7622643943941332","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"canvas-record","version":"5.2.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.2.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"2978ae9fe4953edf078d44acad0c2a234cbe8ae7","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.2.0.tgz","fileCount":32,"integrity":"sha512-kyAkwfIKQNco5MATswz4uCAQm/ynXGmcdEllgxxLIgEkdVC+lwJbQycwFiC59KVyGoJDNZTKG9QCxxHIv0stwQ==","signatures":[{"sig":"MEYCIQCfeJj/4XOoCOPpThLyGlQHAXBWVftWN2NjDWi33hFoIgIhALkoeDOS98MyaBGjmVXQPffg4YiTkc8vCMbxrD7tHvO7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191097},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.3.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"b7109e03f23748ad067774e074a92a0d3bfb2f3b","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.1","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^5.2.1","webm-muxer":"^5.1.1","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.39.0","mp4-wasm":"^1.0.6","tweakpane":"^4.0.5","canvas-context":"^3.3.0","es-module-shims":"^2.0.10","@web/rollup-plugin-import-meta-assets":"^2.2.1"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.2.0_1744319244487_0.09197488553513278","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"canvas-record","version":"5.2.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.2.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"a36647e938766e97c36ae77d2a4e2c78ccfb00dd","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.2.1.tgz","fileCount":32,"integrity":"sha512-atfpjf0qS4mKjN8BUSAAg+3hA3Bd70gKt+5iUISHVLzkOuwryq8ngMXyirAjVQviHrYwzkzxjzeEHHmwvhu2Ug==","signatures":[{"sig":"MEUCIBWys1Fb9mrKxQpUjlB/Q7KWARLwhv6A48Ggbb++y64MAiEAkcQLDCCB8dm0OT52dYl8o8xvj0nlhgEntPDCbcuvcDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191540},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.3.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"103578ae1a24b9e66c5d5f686c4650c7352d321f","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"23.11.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^5.2.1","webm-muxer":"^5.1.1","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.39.0","mp4-wasm":"^1.0.6","tweakpane":"^4.0.5","canvas-context":"^3.3.0","es-module-shims":"^2.0.10","@web/rollup-plugin-import-meta-assets":"^2.2.1"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.2.1_1746368352207_0.8659025634779574","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"canvas-record","version":"5.3.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.3.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"9e6a6ea1faa79d9d7d487d07d58bd257207cb330","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.3.0.tgz","fileCount":32,"integrity":"sha512-uPiO6oJis1/TKaJ/OOgfqurWqfFq6Qbq1yJ/cwZuHvkTry0KWCVGdyKPK7gIVVSUB2TgotK/l1HMGcYExkBs0g==","signatures":[{"sig":"MEUCIH0Bz5lxRkI0gxRBQ+0zlYRru3ozEGQ8BMO33sBU6O16AiEAiFwmaZ3oi+Sg1YlqbAydPExfad6fc95SI/Grs2I7tbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195703},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.3.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"f32a86dc61f75a63cacf1bb4d960dec36bae206d","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"23.11.0","dependencies":{"gifenc":"^1.0.3","mp4-muxer":"^5.2.1","webm-muxer":"^5.1.1","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.0","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.39.0","mp4-wasm":"^1.0.6","pex-color":"^2.2.0","tweakpane":"^4.0.5","pex-context":"^3.2.0","es-module-shims":"^2.0.10","@web/rollup-plugin-import-meta-assets":"^2.2.1"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.3.0_1746995937127_0.5102565499238074","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"canvas-record","version":"5.4.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.4.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"83b4e74f575d3f5ad9e9430076698612fc84f488","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.4.0.tgz","fileCount":32,"integrity":"sha512-s31aNp6XAo+WxSD7mD+bt8g0Ft3e2XrGfRNBZ7OknCnQ4VTWDQq4ge530yJ7XdX5N2G0F3f4A/uWmFUi/eg+yw==","signatures":[{"sig":"MEUCIQDU4vaI/T8T+SpvSnIqjg/z9vxhaJGrnfFDEj16KdCmuwIgAQkiKxlLOj2r/5edA3+kOLe8QZMMVYjAnGdJq8Rd028=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196110},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.5.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"2b3536a706b403dded8b3dcdde8d2a9f4463f296","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.4.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.0","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","mp4-wasm":"^1.0.6","pex-color":"^2.2.0","tweakpane":"^4.0.5","pex-context":"^3.2.0","es-module-shims":"^2.6.1","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.4.0_1754083304540_0.3151625076964719","host":"s3://npm-registry-packages-npm-production"}},"5.4.1":{"name":"canvas-record","version":"5.4.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.4.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"4b27e67d09254339b2919d8de418f4d2645c09d2","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.4.1.tgz","fileCount":32,"integrity":"sha512-n8JQ2NmyaRbpyuGBSIXjO29F/amLZM3urYq4Cj2zE9pzo2jr3PeGb0viZuNtdPRniuNVX4awajeKLesagYu9vw==","signatures":[{"sig":"MEUCIQCHfmBZX2LulMyhAutMgJ6hrYuJ79vt45ZeIj4qNX4pfgIgMzT9vcff/WUdHQ5odnxgAbVR6BYBKicIQZw5h1/uJ6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196212},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.5.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"b9377a0904905bffaff93963f8df7471af7a117b","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"10.9.2","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.4.3","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.0","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.46.2","mp4-wasm":"^1.0.6","pex-color":"^2.2.0","tweakpane":"^4.0.5","pex-context":"^3.2.0","es-module-shims":"^2.6.1","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.4.1_1754083869834_0.8839418682724016","host":"s3://npm-registry-packages-npm-production"}},"5.4.2":{"name":"canvas-record","version":"5.4.2","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.4.2","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"df4996ae1bc06de4a8eedd5d50e65329a88832d3","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.4.2.tgz","fileCount":32,"integrity":"sha512-7gwO2hsfCaYmvz/c20NXdspjXy/tqELOlsc5GaNkWv16P6BPADxfIV9AlxAl8tKxYjdgIpdDC/MWWrgwNXBy1w==","signatures":[{"sig":"MEUCIQC6n5oLfKQ+1fkYsLhopOr2llKwjbNoWDAIZbnnCaAXkQIgcupLTz+evOD8RHBn/WIx0G0ower4DFsXu3pFZRgziAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196605},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.6.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"908cd9f8bd58610335a89b1e7397582b1e1b1c71","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"11.6.0","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.23.0","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.1","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.52.4","mp4-wasm":"^1.0.6","pex-color":"^2.3.0","tweakpane":"^4.0.5","pex-context":"^4.0.0","es-module-shims":"^2.6.2","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.4.2_1759590731718_0.6515383286020566","host":"s3://npm-registry-packages-npm-production"}},"5.4.3":{"name":"canvas-record","version":"5.4.3","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.4.3","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"1d209fdd71daa7acaf8d555fa57831abdd763055","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.4.3.tgz","fileCount":32,"integrity":"sha512-mqBDtmmHgR4bTl8BC0U8EiIQcZ/MPZm4Cfmlj+ACD6gH4lrTW/X9kbAEUSJIquOObeucaq/e1xK+Fgw6P37GOg==","signatures":[{"sig":"MEYCIQCAldBwlpi2CONDOFW3iUOpf8mtdM/6JmCwdIRaQci4CAIhAKIz6to5oGjyw6iE0+5cUWzSS/2cwnqcrWcp6hOZYuOw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196853},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.6.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"392916bcebb8f48c3c7ae8b6a59ffc1c84dfb18a","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"11.6.0","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.23.0","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.1","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.52.4","mp4-wasm":"^1.0.6","pex-color":"^2.3.0","tweakpane":"^4.0.5","pex-context":"^4.0.0","es-module-shims":"^2.6.2","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.4.3_1761643073858_0.09191192272946691","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"canvas-record","version":"5.5.0","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.5.0","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"aeb7bdeb6ef8514a3642c435a887a813aa3a1329","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.5.0.tgz","fileCount":32,"integrity":"sha512-7Qgd+U3K0xDx3nNGGL+Rrb3s7N0Nzn3SYI8RtA4eywY1BZy9ptv6Ue5F5mnYDVYB1K95VbaSIdi6P+LVmJGQOg==","signatures":[{"sig":"MEQCIFyQtrKt60qdz6JO0lgntD0eGdvHh+0uBiCVRkvjQMmRAiBVIwJHMGL8AeYH4LaIB56kkmCvyzdRB69xTeVF+IcqGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197288},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.6.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"c7fb22d5213d396c8240a3e70f63d91fc4f6f13d","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"11.6.0","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.24.2","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.1","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.52.5","mp4-wasm":"^1.0.6","pex-color":"^2.3.0","tweakpane":"^4.0.5","pex-context":"^4.0.0","es-module-shims":"^2.6.2","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.5.0_1761643831698_0.13812785733157207","host":"s3://npm-registry-packages-npm-production"}},"5.5.1":{"name":"canvas-record","version":"5.5.1","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","_id":"canvas-record@5.5.1","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"homepage":"https://github.com/dmnsgn/canvas-record","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"2573a96329e1f0979363f2dba39d77d8d62066b3","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-5.5.1.tgz","fileCount":32,"integrity":"sha512-ti5bsgMugNo/GYTVmYYhRC0bQbmayodOmLwS1pUM2N3h/2mGqCCrDJtNR42t9+qvV+CPX9pRUFQcTkoSpuy0OA==","signatures":[{"sig":"MEUCIQC3B+3ghVsxvGBZb/DTQtoFkRoseeOgP0bWmDouN8K4LwIgcWHm3r0zacWN/dge6IQfSnYt+YZjIvQ0yqoI3cd44Mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197610},"main":"index.js","type":"module","types":"types/index.d.ts","engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=2.6.x"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"9f88939cd69d87f712ef0f9f113b6671fcfe62bf","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"11.9.0","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence using WebCodecs and wasm when available.","directories":{},"sideEffects":false,"_nodeVersion":"25.6.1","dependencies":{"gifenc":"^1.0.3","mediabunny":"^1.24.2","@ffmpeg/util":"^0.12.1","media-codecs":"^2.0.2","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.1","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.52.5","mp4-wasm":"^1.0.6","pex-color":"^2.3.0","tweakpane":"^4.0.5","pex-context":"^4.0.0","es-module-shims":"^2.6.2","@web/rollup-plugin-import-meta-assets":"^2.3.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"tmp":"tmp/canvas-record_5.5.1_1772795804090_0.7021069365518144","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"_id":"canvas-record@6.0.0","bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"dist":{"shasum":"c28a9116b5529053f603f1eb4df784e382d0150f","tarball":"https://registry.npmjs.org/canvas-record/-/canvas-record-6.0.0.tgz","fileCount":32,"integrity":"sha512-pQwizIC5/C/CG+DKDS3/6kYr0PlSFf/PSQM7dEuTfek0MbLaklENJ08ZN4V8I+eoqfd3S0t+hjneJYjULxShaA==","signatures":[{"sig":"MEYCIQDHDpJdC3RbD2+aCIXzo6n+UYGIBtd8LwPxENhVSaVQXgIhANuFxHanNxkIrFhIny4xwFxMm6vNMT+PqFPtcwpJ9WNr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHZzG6Sp+2QIaGtBf8s8TT85HNixItB1pysR5L+LSAvEAiEAnwXmbZoVm3F0YvW9CZShWhe9QUsjtYxiNPFKXjsg0Qc="}],"unpackedSize":216286},"main":"./index.js","name":"canvas-record","type":"module","types":"./types/index.d.ts","author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"engines":{"npm":">=10.5.1","node":">=22.0.0","snowdev":">=3.0.0-alpha.1"},"exports":{".":{"types":"./types/index.d.ts","default":"./index.js"}},"funding":[{"url":"https://paypal.me/dmnsgn","type":"individual"},{"url":"https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3","type":"individual"}],"gitHead":"878ac27a399ad235028b1df31a0ca7ef384dc0c3","license":"MIT","scripts":{"dev":"npx snowdev dev","deps":"npx snowdev install","build":"npx snowdev build"},"version":"6.0.0","_npmUser":{"name":"dmnsgn","email":"dmnsgn@gmail.com"},"homepage":"https://github.com/dmnsgn/canvas-record","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"_npmVersion":"11.19.0","description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence (zipped or not) using WebCodecs and Wasm when available.","directories":{},"maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.7.0","dependencies":{"fflate":"^0.8.3","gifenc":"^1.0.3","mediabunny":"^1.58.0","@ffmpeg/util":"^0.12.1","media-codecs":"^3.0.0","@ffmpeg/ffmpeg":"^0.12.7","canvas-context":"^3.3.1","h264-mp4-encoder":"^1.0.12","canvas-screenshot":"^4.2.2"},"_hasShrinkwrap":false,"packageManager":"npm@10.5.1","devDependencies":{"rollup":"^4.63.3","pex-gpu":"^0.0.3","mp4-wasm":"^1.0.6","pex-color":"^2.3.0","tweakpane":"^4.0.5","pex-context":"^4.1.0","es-module-shims":"^2.8.4","@web/rollup-plugin-import-meta-assets":"^3.0.0"},"optionalDependencies":{"@ffmpeg/core":"^0.12.3","@ffmpeg/core-mt":"^0.12.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/canvas-record_6.0.0_1789677821682_0.7170567975894517"}}},"time":{"created":"2019-06-18T10:41:49.177Z","modified":"2026-09-17T20:43:42.038Z","1.0.0":"2019-06-18T10:41:49.257Z","2.0.0":"2020-03-06T19:51:59.353Z","2.1.0":"2020-03-14T21:06:33.292Z","3.0.0":"2021-04-16T13:16:04.367Z","3.1.0":"2021-10-02T10:34:10.656Z","4.0.0-alpha.1":"2023-01-20T11:50:04.578Z","4.0.0-alpha.2":"2023-02-14T13:21:48.307Z","4.0.0-alpha.3":"2023-02-15T09:26:25.003Z","4.0.0-alpha.4":"2023-02-24T13:35:49.477Z","4.0.0-alpha.5":"2023-03-02T10:09:44.843Z","4.0.0-alpha.6":"2023-04-16T21:33:39.250Z","4.0.0-alpha.7":"2023-04-19T21:04:36.497Z","4.0.0-beta.0":"2023-04-20T08:44:52.854Z","4.0.0":"2023-04-28T12:46:28.850Z","4.1.0":"2023-04-30T13:33:40.679Z","4.2.0":"2023-05-20T13:37:30.503Z","5.0.0-beta.0":"2023-11-04T17:43:08.346Z","5.0.0":"2024-01-08T10:08:12.595Z","5.0.1":"2024-06-10T14:24:43.242Z","5.1.0":"2024-07-07T13:48:14.805Z","5.1.1":"2025-02-23T17:26:58.619Z","5.2.0":"2025-04-10T21:07:24.724Z","5.2.1":"2025-05-04T14:19:12.508Z","5.3.0":"2025-05-11T20:38:57.336Z","5.4.0":"2025-08-01T21:21:44.804Z","5.4.1":"2025-08-01T21:31:10.013Z","5.4.2":"2025-10-04T15:12:11.925Z","5.4.3":"2025-10-28T09:17:54.090Z","5.5.0":"2025-10-28T09:30:31.890Z","5.5.1":"2026-03-06T11:16:44.288Z","6.0.0":"2026-09-17T20:43:41.779Z"},"bugs":{"url":"https://github.com/dmnsgn/canvas-record/issues"},"author":{"url":"https://github.com/dmnsgn","name":"Damien Seguin"},"license":"MIT","homepage":"https://github.com/dmnsgn/canvas-record","keywords":["canvas","record","video","recorder","capture","mp4","webm","mkv","gif","sequence","framesequence","media-recorder","ffmpeg","h264"],"repository":{"url":"git+https://github.com/dmnsgn/canvas-record.git","type":"git"},"description":"Record a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence (zipped or not) using WebCodecs and Wasm when available.","maintainers":[{"name":"dmnsgn","email":"dmnsgn@gmail.com"}],"readme":"# canvas-record\n\n[![npm version](https://img.shields.io/npm/v/canvas-record)](https://www.npmjs.com/package/canvas-record)\n[![stability-stable](https://img.shields.io/badge/stability-stable-green.svg)](https://www.npmjs.com/package/canvas-record)\n[![npm minzipped size](https://img.shields.io/bundlephobia/minzip/canvas-record)](https://bundlephobia.com/package/canvas-record)\n[![dependencies](https://img.shields.io/librariesio/release/npm/canvas-record)](https://github.com/dmnsgn/canvas-record/blob/main/package.json)\n[![types](https://img.shields.io/npm/types/canvas-record)](https://github.com/microsoft/TypeScript)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-fa6673.svg)](https://conventionalcommits.org)\n[![styled with prettier](https://img.shields.io/badge/styled_with-Prettier-f8bc45.svg?logo=prettier)](https://github.com/prettier/prettier)\n[![linted with eslint](https://img.shields.io/badge/linted_with-ES_Lint-4B32C3.svg?logo=eslint)](https://github.com/eslint/eslint)\n[![license](https://img.shields.io/github/license/dmnsgn/canvas-record)](https://github.com/dmnsgn/canvas-record/blob/main/LICENSE.md)\n\nRecord a video in the browser or directly on the File System from a canvas region (2D/WebGL/WebGPU) as MP4, WebM, MKV, MOV, GIF, PNG/JPG Sequence (zipped or not) using WebCodecs and Wasm when available.\n\n[![paypal](https://img.shields.io/badge/donate-paypal-informational?logo=paypal)](https://paypal.me/dmnsgn)\n[![coinbase](https://img.shields.io/badge/donate-coinbase-informational?logo=coinbase)](https://commerce.coinbase.com/checkout/56cbdf28-e323-48d8-9c98-7019e72c97f3)\n[![twitter](https://img.shields.io/twitter/follow/dmnsgn?style=social)](https://twitter.com/dmnsgn)\n[![bluesky](https://img.shields.io/badge/-blue?logo=bluesky&label=Follow%20%40dmnsgn.me&style=social)](https://bsky.app/profile/dmnsgn.me)\n\n[![canvas-record screenshot](https://raw.githubusercontent.com/dmnsgn/canvas-record/main/screenshot.gif)](https://dmnsgn.github.io/canvas-record/)\n\n## Installation\n\n```bash\nnpm install canvas-record\n```\n\n## Usage\n\nSee the [demo](https://dmnsgn.github.io/canvas-record/) and its [source](https://github.com/dmnsgn/canvas-record/blob/main/example/index.js).\n\n```js\nimport { Recorder, RecorderStatus, Encoders } from \"canvas-record\";\nimport createCanvasContext from \"canvas-context\";\nimport { AVC } from \"media-codecs\";\n\n// Setup\nconst pixelRatio = devicePixelRatio;\nconst width = 512;\nconst height = 512;\nconst { context, canvas } = createCanvasContext(\"2d\", {\n  width: width * pixelRatio,\n  height: height * pixelRatio,\n  contextAttributes: { willReadFrequently: true },\n});\nObject.assign(canvas.style, { width: `${width}px`, height: `${height}px` });\n\nconst mainElement = document.querySelector(\"main\");\nmainElement.appendChild(canvas);\n\n// Animation\nlet canvasRecorder;\n\nfunction render() {\n  const width = canvas.width;\n  const height = canvas.height;\n\n  const t = canvasRecorder.frame / canvasRecorder.frameTotal || Number.EPSILON;\n\n  context.clearRect(0, 0, width, height);\n  context.fillStyle = \"red\";\n  context.fillRect(0, 0, t * width, height);\n}\n\nconst tick = async () => {\n  render();\n\n  if (canvasRecorder.status !== RecorderStatus.Recording) return;\n  await canvasRecorder.step();\n\n  if (canvasRecorder.status !== RecorderStatus.Stopped) {\n    requestAnimationFrame(() => tick());\n  }\n};\n\ncanvasRecorder = new Recorder(context, {\n  name: \"canvas-record-example\",\n  encoderOptions: {\n    codec: AVC.getCodec({ profile: \"Main\", level: \"5.2\" }),\n  },\n});\n\n// Start and encode frame 0\nawait canvasRecorder.start();\n\n// Animate to encode the rest\ntick(canvasRecorder);\n```\n\n## API\n\nEncoder comparison:\n\n| Encoder        | Extension                      | Used Web API                    | WASM                  | Speed    |\n| -------------- | ------------------------------ | ------------------------------- | --------------------- | -------- |\n| `WebCodecs`    | `mp4` / `webm` / `mkv` / `mov` | WebCodecs, [File System Access] | ❌                    | Fast     |\n| `MP4Wasm`      | `mp4`                          | WebCodecs                       | ✅ (embed)            | Fast     |\n| `H264MP4`      | `mp4`                          |                                 | ✅ (embed)            | Medium   |\n| `FFmpeg`       | `mp4` / `webm`                 | SharedArrayBuffer               | ✅ (need binary path) | Slow     |\n| `GIF`          | `gif`                          | WebWorkers (wip)                | ❌                    | Fast     |\n| `Frame`        | `png` / `jpg` / `zip`          | [File System Access]            | ❌                    | Fast     |\n| `MediaCapture` | `mkv` / `webm`                 | MediaStream                     | ❌                    | Realtime |\n\nNote:\n\n- `WebCodecs` encoderOptions allow different codecs to be used: VP8/VP9/AV1/HEVC. See [media-codecs](https://github.com/dmnsgn/media-codecs) to get a codec string from human readable options and check which ones are supported in your browser with [github.io/media-codecs](https://dmnsgn.github.io/media-codecs/).\n- `WebCodecs` 5-10x faster than H264MP4Encoder and 20x faster than `FFmpeg` (it needs to mux files after writing png to virtual FS)\n- `FFmpeg` (mp4 and webm) and `WebCodecs` (mp4) have a AVC maximum frame size of 9437184 pixels. That's fine until a bit more than 4K 16:9 @ 30fps. So if you need 4K Square or 8K exports, be patient with `H264MP4Encoder` (which probably also has the 4GB memory limit) or use Frame encoder and mux them manually with `FFmpeg` CLI (`ffmpeg -framerate 30 -i \"%05d.jpg\" -b:v 60M -r 30 -profile:v baseline -pix_fmt yuv420p -movflags +faststart output.mp4`)\n- `MP4Wasm` is embedded from [mp4-wasm](https://github.com/mattdesl/mp4-wasm/) for ease of use (`FFmpeg` will require `encoderOptions.corePath`)\n\nRoadmap:\n\n- [ ] use WebWorkers for gifenc\n\n<!-- api-start -->\n\n## Modules\n\n<dl>\n<dt><a href=\"#module_canvas-record\">canvas-record</a></dt>\n<dd><p>Re-export Recorder, RecorderStatus, all Encoders and utils.</p>\n</dd>\n</dl>\n\n## Classes\n\n<dl>\n<dt><a href=\"#Recorder\">Recorder</a></dt>\n<dd></dd>\n<dt><a href=\"#Encoder\">Encoder</a></dt>\n<dd></dd>\n<dt><a href=\"#FFmpegEncoder\">FFmpegEncoder</a></dt>\n<dd></dd>\n<dt><a href=\"#FrameEncoder\">FrameEncoder</a></dt>\n<dd></dd>\n<dt><a href=\"#GIFEncoder\">GIFEncoder</a></dt>\n<dd></dd>\n<dt><a href=\"#H264MP4Encoder\">H264MP4Encoder</a></dt>\n<dd></dd>\n<dt><a href=\"#MediaCaptureEncoder\">MediaCaptureEncoder</a></dt>\n<dd></dd>\n<dt><a href=\"#MP4WasmEncoder\">MP4WasmEncoder</a></dt>\n<dd></dd>\n<dt><a href=\"#WebCodecsEncoder\">WebCodecsEncoder</a></dt>\n<dd></dd>\n</dl>\n\n## Constants\n\n<dl>\n<dt><a href=\"#isWebCodecsSupported\">isWebCodecsSupported</a> : <code>boolean</code></dt>\n<dd><p>Check for WebCodecs support on the current platform.</p>\n</dd>\n</dl>\n\n## Functions\n\n<dl>\n<dt><a href=\"#estimateBitRate\">estimateBitRate(width, height, frameRate, motionRank, bitrateMode)</a> ⇒ <code>number</code></dt>\n<dd><p>Estimate the bit rate of a video rounded to nearest megabit. Based on &quot;H.264\nfor the rest of us&quot; by Kush Amerasinghe.</p>\n</dd>\n</dl>\n\n## Typedefs\n\n<dl>\n<dt><a href=\"#onStatusChangeCb\">onStatusChangeCb</a> : <code>function</code></dt>\n<dd><p>A callback to notify on the status change. To compare with RecorderStatus\nenum values.</p>\n</dd>\n<dt><a href=\"#onErrorCb\">onErrorCb</a> : <code>function</code></dt>\n<dd><p>A callback to notify on a non-fatal error (eg. a single frame failing to\nwrite or a temporary file failing to clean up). Fatal setup errors reject\n<code>start()</code> instead.</p>\n</dd>\n<dt><a href=\"#RecorderOptions\">RecorderOptions</a> : <code>object</code></dt>\n<dd><p>Options for recording. All optional.</p>\n</dd>\n<dt><a href=\"#RecorderStartOptions\">RecorderStartOptions</a> : <code>object</code></dt>\n<dd><p>Options for recording initialisation.\n  All optional.</p>\n</dd>\n<dt><a href=\"#EncoderExtensions\">EncoderExtensions</a> : <code>&quot;mp4&quot;</code> | <code>&quot;webm&quot;</code> | <code>&quot;png&quot;</code> | <code>&quot;jpg&quot;</code> | <code>&quot;gif&quot;</code> | <code>&quot;mkv&quot;</code> | <code>&quot;mov&quot;</code></dt>\n<dd></dd>\n<dt><a href=\"#EncoderTarget\">EncoderTarget</a> : <code>&quot;in-browser&quot;</code> | <code>&quot;file-system&quot;</code></dt>\n<dd></dd>\n<dt><a href=\"#FFmpegEncoderOptions\">FFmpegEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#FFmpegEncoderEncoderOptions\">FFmpegEncoderEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#GIFEncoderOptions\">GIFEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#GIFEncoderQuantizeOptions\">GIFEncoderQuantizeOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#GIFEncoderEncoderOptions\">GIFEncoderEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#H264MP4EncoderOptions\">H264MP4EncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#H264MP4EncoderEncoderOptions\">H264MP4EncoderEncoderOptions</a> : <code>module:h264-mp4-encoder~H264MP4Encoder</code></dt>\n<dd></dd>\n<dt><a href=\"#MediaCaptureEncoderOptions\">MediaCaptureEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#MediaCaptureEncoderEncoderOptions\">MediaCaptureEncoderEncoderOptions</a> : <code>MediaRecorderOptions</code></dt>\n<dd></dd>\n<dt><a href=\"#MP4WasmEncoderOptions\">MP4WasmEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#MP4WasmEncoderEncoderOptions\">MP4WasmEncoderEncoderOptions</a> : <code>VideoEncoderConfig</code></dt>\n<dd></dd>\n<dt><a href=\"#WebCodecsEncoderOptions\">WebCodecsEncoderOptions</a> : <code>object</code></dt>\n<dd></dd>\n<dt><a href=\"#WebCodecsEncoderEncoderOptions\">WebCodecsEncoderEncoderOptions</a> : <code>VideoEncoderConfig</code></dt>\n<dd></dd>\n<dt><a href=\"#WebCodecsMuxerOptions\">WebCodecsMuxerOptions</a> : <code>module:mediabunny~OutputOptions</code></dt>\n<dd></dd>\n</dl>\n\n<a name=\"module_canvas-record\"></a>\n\n## canvas-record\n\nRe-export Recorder, RecorderStatus, all Encoders and utils.\n\n<a name=\"Recorder\"></a>\n\n## Recorder\n\n**Kind**: global class\n\n- [Recorder](#Recorder)\n  - [new Recorder(context, [options])](#new_Recorder_new)\n  - [.defaultOptions](#Recorder+defaultOptions) : [<code>RecorderOptions</code>](#RecorderOptions)\n  - [.mimeTypes](#Recorder+mimeTypes) : <code>object</code>\n  - [.start([startOptions])](#Recorder+start)\n  - [.step()](#Recorder+step)\n  - [.stop()](#Recorder+stop) ⇒ <code>ArrayBuffer</code> \\| <code>Uint8Array</code> \\| <code>Array.&lt;Blob&gt;</code> \\| <code>undefined</code>\n  - [.dispose()](#Recorder+dispose)\n\n<a name=\"new_Recorder_new\"></a>\n\n### new Recorder(context, [options])\n\nCreate a Recorder instance\n\n| Param     | Type                                             | Default         |\n| --------- | ------------------------------------------------ | --------------- |\n| context   | <code>RenderingContext</code>                    |                 |\n| [options] | [<code>RecorderOptions</code>](#RecorderOptions) | <code>{}</code> |\n\n<a name=\"Recorder+defaultOptions\"></a>\n\n### recorder.defaultOptions : [<code>RecorderOptions</code>](#RecorderOptions)\n\nSensible defaults for recording so that the recorder \"just works\".\n\n**Kind**: instance property of [<code>Recorder</code>](#Recorder)\n<a name=\"Recorder+mimeTypes\"></a>\n\n### recorder.mimeTypes : <code>object</code>\n\nA mapping of extension to their mime types\n\n**Kind**: instance property of [<code>Recorder</code>](#Recorder)\n<a name=\"Recorder+start\"></a>\n\n### recorder.start([startOptions])\n\nStart the recording by initializing and optionally calling the initial\nstep.\n\n**Kind**: instance method of [<code>Recorder</code>](#Recorder)\n\n| Param          | Type                                                       | Default         |\n| -------------- | ---------------------------------------------------------- | --------------- |\n| [startOptions] | [<code>RecorderStartOptions</code>](#RecorderStartOptions) | <code>{}</code> |\n\n<a name=\"Recorder+step\"></a>\n\n### recorder.step()\n\nEncode a frame and increment the time and the playhead. Calls `await\ncanvasRecorder.stop()` when duration is reached.\n\n**Kind**: instance method of [<code>Recorder</code>](#Recorder)\n<a name=\"Recorder+stop\"></a>\n\n### recorder.stop() ⇒ <code>ArrayBuffer</code> \\| <code>Uint8Array</code> \\| <code>Array.&lt;Blob&gt;</code> \\| <code>undefined</code>\n\nStop the recording and return the recorded buffer. If options.download is\nset, automatically start downloading the resulting file. Is called when\nduration is reached or manually.\n\n**Kind**: instance method of [<code>Recorder</code>](#Recorder)\n<a name=\"Recorder+dispose\"></a>\n\n### recorder.dispose()\n\nClean up the recorder and encoder\n\n**Kind**: instance method of [<code>Recorder</code>](#Recorder)\n<a name=\"Encoder\"></a>\n\n## Encoder\n\n**Kind**: global class\n**Properties**\n\n| Name             | Type                                                 |\n| ---------------- | ---------------------------------------------------- |\n| target           | [<code>EncoderTarget</code>](#EncoderTarget)         |\n| extension        | [<code>EncoderExtensions</code>](#EncoderExtensions) |\n| [encoderOptions] | <code>object</code>                                  |\n| [muxerOptions]   | <code>object</code>                                  |\n\n- [Encoder](#Encoder)\n  - [new Encoder(options)](#new_Encoder_new)\n  - [.supportedExtensions](#Encoder+supportedExtensions) : [<code>Array.&lt;EncoderExtensions&gt;</code>](#EncoderExtensions)\n  - [.supportedTargets](#Encoder+supportedTargets) : [<code>Array.&lt;EncoderTarget&gt;</code>](#EncoderTarget)\n  - [.onError](#Encoder+onError) : [<code>onErrorCb</code>](#onErrorCb)\n  - [.alpha](#Encoder+alpha) : <code>&quot;keep&quot;</code> \\| <code>&quot;discard&quot;</code>\n  - [.init(options)](#Encoder+init)\n  - [.encode(frame, [frameNumber])](#Encoder+encode)\n  - [.stop()](#Encoder+stop) ⇒ <code>ArrayBuffer</code> \\| <code>Uint8Array</code> \\| <code>Array.&lt;Blob&gt;</code> \\| <code>undefined</code>\n  - [.dispose()](#Encoder+dispose)\n\n<a name=\"new_Encoder_new\"></a>\n\n### new Encoder(options)\n\nBase Encoder class. All Encoders extend it and its methods are called by\nthe Recorder.\n\n| Param   | Type                |\n| ------- | ------------------- |\n| options | <code>object</code> |\n\n<a name=\"Encoder+supportedExtensions\"></a>\n\n### encoder.supportedExtensions : [<code>Array.&lt;EncoderExtensions&gt;</code>](#EncoderExtensions)\n\nThe extension the encoder supports\n\n**Kind**: instance property of [<code>Encoder</code>](#Encoder)\n<a name=\"Encoder+supportedTargets\"></a>\n\n### encoder.supportedTargets : [<code>Array.&lt;EncoderTarget&gt;</code>](#EncoderTarget)\n\nThe target to download the file to.\n\n**Kind**: instance property of [<code>Encoder</code>](#Encoder)\n<a name=\"Encoder+onError\"></a>\n\n### encoder.onError : [<code>onErrorCb</code>](#onErrorCb)\n\nA callback invoked with non-fatal errors (eg. a frame failing to write or a\ntemporary file failing to clean up). Defaults to `console.error` and is\noverridden by the matching Recorder option.\n\n**Kind**: instance property of [<code>Encoder</code>](#Encoder)\n<a name=\"Encoder+alpha\"></a>\n\n### encoder.alpha : <code>&quot;keep&quot;</code> \\| <code>&quot;discard&quot;</code>\n\nAlpha for Encoders that support transparency.\n\n**Kind**: instance property of [<code>Encoder</code>](#Encoder)\n<a name=\"Encoder+init\"></a>\n\n### encoder.init(options)\n\nSetup the encoder: load binary, instantiate muxers, setup file system\ntarget...\n\n**Kind**: instance method of [<code>Encoder</code>](#Encoder)\n\n| Param   | Type                |\n| ------- | ------------------- |\n| options | <code>object</code> |\n\n<a name=\"Encoder+encode\"></a>\n\n### encoder.encode(frame, [frameNumber])\n\nEncode a single frame. The frameNumber is usually used for GOP (Group Of\nPictures).\n\n**Kind**: instance method of [<code>Encoder</code>](#Encoder)\n\n| Param         | Type                |\n| ------------- | ------------------- |\n| frame         | <code>number</code> |\n| [frameNumber] | <code>number</code> |\n\n<a name=\"Encoder+stop\"></a>\n\n### encoder.stop() ⇒ <code>ArrayBuffer</code> \\| <code>Uint8Array</code> \\| <code>Array.&lt;Blob&gt;</code> \\| <code>undefined</code>\n\nStop the encoding process and cleanup the temporary data.\n\n**Kind**: instance method of [<code>Encoder</code>](#Encoder)\n<a name=\"Encoder+dispose\"></a>\n\n### encoder.dispose()\n\nClean up the encoder\n\n**Kind**: instance method of [<code>Encoder</code>](#Encoder)\n<a name=\"FFmpegEncoder\"></a>\n\n## FFmpegEncoder\n\n**Kind**: global class\n\n- [FFmpegEncoder](#FFmpegEncoder)\n  - [new FFmpegEncoder([options])](#new_FFmpegEncoder_new)\n  - [.stop()](#FFmpegEncoder+stop) ⇒ <code>Uint8Array</code> \\| <code>string</code>\n\n<a name=\"new_FFmpegEncoder_new\"></a>\n\n### new FFmpegEncoder([options])\n\n| Param     | Type                                                       |\n| --------- | ---------------------------------------------------------- |\n| [options] | [<code>FFmpegEncoderOptions</code>](#FFmpegEncoderOptions) |\n\n<a name=\"FFmpegEncoder+stop\"></a>\n\n### fFmpegEncoder.stop() ⇒ <code>Uint8Array</code> \\| <code>string</code>\n\n**Kind**: instance method of [<code>FFmpegEncoder</code>](#FFmpegEncoder)\n<a name=\"FrameEncoder\"></a>\n\n## FrameEncoder\n\n**Kind**: global class\n<a name=\"GIFEncoder\"></a>\n\n## GIFEncoder\n\n**Kind**: global class\n<a name=\"new_GIFEncoder_new\"></a>\n\n### new GIFEncoder([options])\n\n| Param     | Type                                                 |\n| --------- | ---------------------------------------------------- |\n| [options] | [<code>GIFEncoderOptions</code>](#GIFEncoderOptions) |\n\n<a name=\"H264MP4Encoder\"></a>\n\n## H264MP4Encoder\n\n**Kind**: global class\n<a name=\"new_H264MP4Encoder_new\"></a>\n\n### new H264MP4Encoder([options])\n\n| Param     | Type                                                         |\n| --------- | ------------------------------------------------------------ |\n| [options] | [<code>H264MP4EncoderOptions</code>](#H264MP4EncoderOptions) |\n\n<a name=\"MediaCaptureEncoder\"></a>\n\n## MediaCaptureEncoder\n\n**Kind**: global class\n<a name=\"new_MediaCaptureEncoder_new\"></a>\n\n### new MediaCaptureEncoder([options])\n\n| Param     | Type                                                                   |\n| --------- | ---------------------------------------------------------------------- |\n| [options] | [<code>MediaCaptureEncoderOptions</code>](#MediaCaptureEncoderOptions) |\n\n<a name=\"MP4WasmEncoder\"></a>\n\n## MP4WasmEncoder\n\n**Kind**: global class\n<a name=\"new_MP4WasmEncoder_new\"></a>\n\n### new MP4WasmEncoder([options])\n\n| Param     | Type                                                         |\n| --------- | ------------------------------------------------------------ |\n| [options] | [<code>MP4WasmEncoderOptions</code>](#MP4WasmEncoderOptions) |\n\n<a name=\"WebCodecsEncoder\"></a>\n\n## WebCodecsEncoder\n\n**Kind**: global class\n<a name=\"new_WebCodecsEncoder_new\"></a>\n\n### new WebCodecsEncoder([options])\n\n| Param     | Type                                                             |\n| --------- | ---------------------------------------------------------------- |\n| [options] | [<code>WebCodecsEncoderOptions</code>](#WebCodecsEncoderOptions) |\n\n<a name=\"RecorderStatus\"></a>\n\n## RecorderStatus : <code>enum</code>\n\nEnum for recorder status\n\n**Kind**: global enum\n**Read only**: true\n**Example**\n\n```js\n// Check recorder status before continuing\nif (canvasRecorder.status !== RecorderStatus.Stopped) {\n  rAFId = requestAnimationFrame(() => tick());\n}\n```\n\n<a name=\"isWebCodecsSupported\"></a>\n\n## isWebCodecsSupported : <code>boolean</code>\n\nCheck for WebCodecs support on the current platform.\n\n**Kind**: global constant\n<a name=\"estimateBitRate\"></a>\n\n## estimateBitRate(width, height, frameRate, motionRank, bitrateMode) ⇒ <code>number</code>\n\nEstimate the bit rate of a video rounded to nearest megabit. Based on \"H.264\nfor the rest of us\" by Kush Amerasinghe.\n\n**Kind**: global function\n**Returns**: <code>number</code> - A bitrate value in bits per second\n\n| Param       | Type                                                                   | Default               | Description           |\n| ----------- | ---------------------------------------------------------------------- | --------------------- | --------------------- |\n| width       | <code>number</code>                                                    |                       |                       |\n| height      | <code>number</code>                                                    |                       |                       |\n| frameRate   | <code>number</code>                                                    | <code>30</code>       |                       |\n| motionRank  | <code>number</code>                                                    | <code>4</code>        | A factor of 1, 2 or 4 |\n| bitrateMode | <code>&quot;variable&quot;</code> \\| <code>&quot;constant&quot;</code> | <code>variable</code> |                       |\n\n**Example**\n\n```js\n// Full HD (1080p)\nconst bitRate = estimateBitRate(1920, 1080, 30, 4, \"variable\");\nconst bitRateMbps = bitRate / 1_000_000; // => 13 Mbps\n```\n\n<a name=\"onStatusChangeCb\"></a>\n\n## onStatusChangeCb : <code>function</code>\n\nA callback to notify on the status change. To compare with RecorderStatus\nenum values.\n\n**Kind**: global typedef\n\n| Param          | Type                | Description |\n| -------------- | ------------------- | ----------- |\n| RecorderStatus | <code>number</code> | The status  |\n\n<a name=\"onErrorCb\"></a>\n\n## onErrorCb : <code>function</code>\n\nA callback to notify on a non-fatal error (eg. a single frame failing to\nwrite or a temporary file failing to clean up). Fatal setup errors reject\n`start()` instead.\n\n**Kind**: global typedef\n\n| Param | Type               |\n| ----- | ------------------ |\n| error | <code>Error</code> |\n\n<a name=\"RecorderOptions\"></a>\n\n## RecorderOptions : <code>object</code>\n\nOptions for recording. All optional.\n\n**Kind**: global typedef\n**Properties**\n\n| Name             | Type                                               | Default                                           | Description                                                                                                                                                           |\n| ---------------- | -------------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [name]           | <code>string</code>                                | <code>&quot;\\&quot;\\&quot;&quot;</code>           | A name for the recorder, used as prefix for the default file name.                                                                                                    |\n| [duration]       | <code>number</code>                                | <code>10</code>                                   | The recording duration in seconds. If set to Infinity, `await canvasRecorder.stop()` needs to be called manually.                                                     |\n| [frameRate]      | <code>number</code>                                | <code>30</code>                                   | The frame rate in frame per seconds. Use `await canvasRecorder.step();` to go to the next frame.                                                                      |\n| [rect]           | <code>Array</code>                                 | <code>[]</code>                                   | Sub-region [x, y, width, height] of the canvas to encode from bottom left. Default to 0, 0 and context.drawingBufferWidth/drawingBufferHeight or canvas.width/height. |\n| [download]       | <code>boolean</code>                               | <code>true</code>                                 | Automatically download the recording when duration is reached or when `await canvasRecorder.stop()` is manually called.                                               |\n| [extension]      | <code>string</code>                                | <code>&quot;\\&quot;mp4\\&quot;&quot;</code>        | Default file extension: infers which Encoder is selected.                                                                                                             |\n| [target]         | <code>string</code>                                | <code>&quot;\\&quot;in-browser\\&quot;&quot;</code> | Default writing target: in-browser or file-system when available.                                                                                                     |\n| [encoder]        | <code>object</code>                                |                                                   | A specific encoder. Default encoder based on options.extension: GIF > WebCodecs > H264MP4.                                                                            |\n| [encoderOptions] | <code>object</code>                                |                                                   | See `src/encoders` or individual packages for a list of options.                                                                                                      |\n| [muxerOptions]   | <code>object</code>                                |                                                   | See \"mediabunny\" for a list of options.                                                                                                                               |\n| [frameOptions]   | <code>object</code>                                |                                                   | Options for createImageBitmap(), VideoFrame, getImageData() or canvas-screenshot.                                                                                     |\n| [onStatusChange] | [<code>onStatusChangeCb</code>](#onStatusChangeCb) |                                                   |                                                                                                                                                                       |\n| [onError]        | [<code>onErrorCb</code>](#onErrorCb)               | <code>console.error</code>                        | Called with non-fatal errors that don't abort the recording. Fatal setup errors reject `start()` instead.                                                             |\n\n<a name=\"RecorderStartOptions\"></a>\n\n## RecorderStartOptions : <code>object</code>\n\nOptions for recording initialisation.\nAll optional.\n\n**Kind**: global typedef\n**Properties**\n\n| Name       | Type                 | Description                                                                   |\n| ---------- | -------------------- | ----------------------------------------------------------------------------- |\n| [filename] | <code>string</code>  | Overwrite the file name completely.                                           |\n| [initOnly] | <code>boolean</code> | Only initialised the recorder and don't call the first await recorder.step(). |\n\n<a name=\"EncoderExtensions\"></a>\n\n## EncoderExtensions : <code>&quot;mp4&quot;</code> \\| <code>&quot;webm&quot;</code> \\| <code>&quot;png&quot;</code> \\| <code>&quot;jpg&quot;</code> \\| <code>&quot;gif&quot;</code> \\| <code>&quot;mkv&quot;</code> \\| <code>&quot;mov&quot;</code>\n\n**Kind**: global typedef\n<a name=\"EncoderTarget\"></a>\n\n## EncoderTarget : <code>&quot;in-browser&quot;</code> \\| <code>&quot;file-system&quot;</code>\n\n**Kind**: global typedef\n<a name=\"FFmpegEncoderOptions\"></a>\n\n## FFmpegEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name             | Type                                                                     | Default         |\n| ---------------- | ------------------------------------------------------------------------ | --------------- |\n| [encoderOptions] | [<code>FFmpegEncoderEncoderOptions</code>](#FFmpegEncoderEncoderOptions) | <code>{}</code> |\n\n<a name=\"FFmpegEncoderEncoderOptions\"></a>\n\n## FFmpegEncoderEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**See**: [FFmpeg#load](https://ffmpegwasm.netlify.app/docs/api/ffmpeg/classes/FFmpeg#load)\n**Properties**\n\n| Name        | Type                                                              | Description                                                                          |\n| ----------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------ |\n| [coreURL]   | <code>string</code>                                               | `ffmpeg-core.js` URL.                                                                |\n| [wasmURL]   | <code>string</code>                                               | `ffmpeg-core.wasm` URL.                                                              |\n| [workerURL] | <code>string</code>                                               | `ffmpeg-core.worker.js` URL.                                                         |\n| [alpha]     | <code>&quot;keep&quot;</code> \\| <code>&quot;discard&quot;</code> | `alpha: \"keep\"` only compatible with a `webm` extension (encoded as VP8 `yuva420p`). |\n\n<a name=\"GIFEncoderOptions\"></a>\n\n## GIFEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name              | Type                                                                 | Default          |\n| ----------------- | -------------------------------------------------------------------- | ---------------- |\n| [maxColors]       | <code>number</code>                                                  | <code>256</code> |\n| [quantizeOptions] | [<code>GIFEncoderQuantizeOptions</code>](#GIFEncoderQuantizeOptions) |                  |\n| [encoderOptions]  | [<code>GIFEncoderEncoderOptions</code>](#GIFEncoderEncoderOptions)   | <code>{}</code>  |\n\n<a name=\"GIFEncoderQuantizeOptions\"></a>\n\n## GIFEncoderQuantizeOptions : <code>object</code>\n\n**Kind**: global typedef\n**See**: [QuantizeOptions](https://github.com/mattdesl/gifenc#palette--quantizergba-maxcolors-options--)\n**Properties**\n\n| Name                  | Type                                                                                                    | Default                         |\n| --------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------- |\n| [format]              | <code>&quot;rgb565&quot;</code> \\| <code>&quot;rgb444&quot;</code> \\| <code>&quot;rgba4444&quot;</code> | <code>&quot;rgb565&quot;</code> |\n| [oneBitAlpha]         | <code>boolean</code> \\| <code>number</code>                                                             | <code>false</code>              |\n| [clearAlpha]          | <code>boolean</code>                                                                                    | <code>true</code>               |\n| [clearAlphaThreshold] | <code>number</code>                                                                                     | <code>0</code>                  |\n| [clearAlphaColor]     | <code>number</code>                                                                                     | <code>0x00</code>               |\n\n<a name=\"GIFEncoderEncoderOptions\"></a>\n\n## GIFEncoderEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**See**: [WriteFrameOpts](https://github.com/mattdesl/gifenc#gifwriteframeindex-width-height-opts--)\n**Properties**\n\n| Name               | Type                                                              | Default            | Description                                                                                                      |\n| ------------------ | ----------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------- |\n| [palette]          | <code>Array.&lt;Array.&lt;number&gt;&gt;</code>                   |                    |                                                                                                                  |\n| [first]            | <code>boolean</code>                                              | <code>false</code> |                                                                                                                  |\n| [transparent]      | <code>boolean</code>                                              | <code>0</code>     |                                                                                                                  |\n| [transparentIndex] | <code>number</code>                                               | <code>0</code>     |                                                                                                                  |\n| [delay]            | <code>number</code>                                               | <code>0</code>     |                                                                                                                  |\n| [repeat]           | <code>number</code>                                               | <code>0</code>     |                                                                                                                  |\n| [dispose]          | <code>number</code>                                               | <code>-1</code>    |                                                                                                                  |\n| [alpha]            | <code>&quot;keep&quot;</code> \\| <code>&quot;discard&quot;</code> |                    | `alpha: \"keep\"` enables GIF's 1-bit transparency (auto-configures quantization and per-frame transparent index). |\n\n<a name=\"H264MP4EncoderOptions\"></a>\n\n## H264MP4EncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name             | Type                                                                       | Default         |\n| ---------------- | -------------------------------------------------------------------------- | --------------- |\n| [debug]          | <code>boolean</code>                                                       |                 |\n| [encoderOptions] | [<code>H264MP4EncoderEncoderOptions</code>](#H264MP4EncoderEncoderOptions) | <code>{}</code> |\n\n<a name=\"H264MP4EncoderEncoderOptions\"></a>\n\n## H264MP4EncoderEncoderOptions : <code>module:h264-mp4-encoder~H264MP4Encoder</code>\n\n**Kind**: global typedef\n**See**: [h264-mp4-encoder#api](https://github.com/TrevorSundberg/h264-mp4-encoder#api)\n<a name=\"MediaCaptureEncoderOptions\"></a>\n\n## MediaCaptureEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name             | Type                                                                                 | Default         |\n| ---------------- | ------------------------------------------------------------------------------------ | --------------- |\n| [flushFrequency] | <code>number</code>                                                                  | <code>10</code> |\n| [encoderOptions] | [<code>MediaCaptureEncoderEncoderOptions</code>](#MediaCaptureEncoderEncoderOptions) | <code>{}</code> |\n\n<a name=\"MediaCaptureEncoderEncoderOptions\"></a>\n\n## MediaCaptureEncoderEncoderOptions : <code>MediaRecorderOptions</code>\n\n**Kind**: global typedef\n**See**: [MediaRecorder#options](https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder#options)\n<a name=\"MP4WasmEncoderOptions\"></a>\n\n## MP4WasmEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name              | Type                                                                       | Default         |\n| ----------------- | -------------------------------------------------------------------------- | --------------- |\n| [groupOfPictures] | <code>number</code>                                                        | <code>20</code> |\n| [flushFrequency]  | <code>number</code>                                                        | <code>10</code> |\n| [encoderOptions]  | [<code>MP4WasmEncoderEncoderOptions</code>](#MP4WasmEncoderEncoderOptions) | <code>{}</code> |\n\n<a name=\"MP4WasmEncoderEncoderOptions\"></a>\n\n## MP4WasmEncoderEncoderOptions : <code>VideoEncoderConfig</code>\n\n**Kind**: global typedef\n**See**: [VideoEncoder.configure](https://developer.mozilla.org/en-US/docs/Web/API/VideoEncoder/configure#config)\n<a name=\"WebCodecsEncoderOptions\"></a>\n\n## WebCodecsEncoderOptions : <code>object</code>\n\n**Kind**: global typedef\n**Properties**\n\n| Name              | Type                                                                           | Default         | Description                                                  |\n| ----------------- | ------------------------------------------------------------------------------ | --------------- | ------------------------------------------------------------ |\n| [groupOfPictures] | <code>number</code>                                                            | <code>20</code> | Used to derive mediabunny's `keyFrameInterval` (in seconds). |\n| [encoderOptions]  | [<code>WebCodecsEncoderEncoderOptions</code>](#WebCodecsEncoderEncoderOptions) | <code>{}</code> |                                                              |\n\n<a name=\"WebCodecsEncoderEncoderOptions\"></a>\n\n## WebCodecsEncoderEncoderOptions : <code>VideoEncoderConfig</code>\n\n**Kind**: global typedef\n**See**: [VideoEncoder.configure](https://developer.mozilla.org/en-US/docs/Web/API/VideoEncoder/configure#config)\n`alpha: \"keep\"` only compatible with a `webm`/`mkv` extension\n<a name=\"WebCodecsMuxerOptions\"></a>\n\n## WebCodecsMuxerOptions : <code>module:mediabunny~OutputOptions</code>\n\n**Kind**: global typedef\n**See**: [mediabunny#output-formats](https://mediabunny.dev/guide/output-formats)\n\n<!-- api-end -->\n\n## License\n\nAll MIT:\n\n- [mp4-wasm](https://github.com/mattdesl/mp4-wasm/blob/master/LICENSE.md)\n- [h264-mp4-encoder](https://github.com/TrevorSundberg/h264-mp4-encoder/blob/master/LICENSE.md)\n- [@ffmpeg/ffmpeg](https://github.com/ffmpegwasm/ffmpeg.wasm/blob/master/LICENSE)\n- [gifenc](https://github.com/mattdesl/gifenc/blob/master/LICENSE.md)\n- [mediabunny](https://github.com/Vanilagy/mediabunny/blob/main/LICENSE)\n\nMIT. See [license file](https://github.com/dmnsgn/canvas-record/blob/main/LICENSE.md).\n","readmeFilename":"README.md"}