{"_id":"use-animation-frame","_rev":"10-410a1b1beeddfcff6361230c6368c731","name":"use-animation-frame","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"use-animation-frame","version":"0.1.0","keywords":[],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.0","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"1dc235ab7d7d340ec99b1c45f8f2143a5b78331b","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.0.tgz","fileCount":6,"integrity":"sha512-vRdNzrphRaBOeq/pHSFWY3s6aoPELF3Zq92rSbm+Tj5qdKBtemfsQfYCLWAp4dnQ/3crpBD6iEAQ6IG2w8Q8Ww==","signatures":[{"sig":"MEQCICWxBvsoq22ZpSFBNzeKyNGefeQY8Gg72DyvWXU7biIsAiBtHD0mNocfg84zUTsVRQDqcCx/24m+r85Mb10JWgXnnw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx/lBCRA9TVsSAnZWagAA/UgP/Rog8B1W68AgA8l1PG5m\n6oZ/L1yeuKRXZnhLzNtm/CE1Qaro4tXgyj4eDYfAyG+236ZXMELYwcqN1TFg\nEvTL31Zvn2WuLpHR0qIJCnees+ZWEIPBqhM2H27Sgh/g2tPz7vVkkXCVnHzQ\nYAWV2Egu+TMoBMzJb0bm9WC8wJK5Wsa5obYzLMVOhx/QTC5yr0N1X2zOfb+F\n093Q7xFWGsXfAM27HpOaCWFDYjdCJBQaJx4oZ0S1jBzLWpWYk7s/hsoKZPd+\nHQbiBK/5UGplE2vsZU0CU7eFAhOjLbqV6/ZrjQLxKWLFtosllcGnF/ffHdfM\nTZgASgjN132TkiK7s2liuDTX+vlYnhAfmNSbce3tc/J960vmV4vsC5vnfdZh\n4feA/xBqkM4dnSKpgJPUGys5NrpUKRzYYK0c3zu1uZeuy1iO585boskT0mYk\naHSzaD2kSVZyvAM6re/rq4Ee4xvf64zWUgQt+uudlX0v8Yeh1g7nlKfdZkvj\nC0TR3N3H3s/o15KwxMW21OAfOhKNRfV5chahhL6ROwAVrTslUg5h2Y4w5+mL\nUQ/y7co9RCnlD/5fYarLLW5DRmc+baQXooNYwK4CH2s9ezwf5EqvSTROiebd\nf8tFxX+H/6Ub1X3Heqp9BnMxy9FvtRWk33/87xgjn3xKhoAUsS7kLh42+v8n\nWaPd\r\n=H5n7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.min.js","gitHead":"4d45397131a4ceb021a496d4f7cc4a9be5db3987","scripts":{"build":"webpack -c"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"6.9.0","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"12.2.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.8.0","webpack":"^4.25.0","react-dom":"^16.8.0","uglify-es":"^3.1.3","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.6.0","@babel/core":"^7.1.5","webpack-cli":"^3.1.2","babel-loader":"^8.0.4","@babel/preset-env":"^7.1.5","@babel/preset-react":"^7.0.0","regenerator-runtime":"^0.12.1"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.0_1573386560623_0.17909738752469373","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"use-animation-frame","version":"0.1.1","keywords":[],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.1","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"4636c7a4be2d6671de35956ab40affa1afff1269","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.1.tgz","fileCount":6,"integrity":"sha512-JoIOAspA3H33JuKuftxMFs2wGgAY/sTmM9QpsooOTuTlSHiliwN78yVxUZLxY6O7ENQ1J7CcycBLerLsVaj/7Q==","signatures":[{"sig":"MEQCIGNjK3c8642SIfQKr/gdO2DA6zazfklCZea+Z3fP1WltAiAGUAj2eoE/IcCbJsSMg4p10H8ypc5TZyosFU1+mkxprA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFWxWCRA9TVsSAnZWagAAZkEP/17oF3/wR1JFV2EUGPuK\nYHc3QBu22F6+p0BNC6Vz1m/vOLjYBMTXqW8BxZedng8I2c9TbJxCWQHSQLi2\nG7vXJVHZdm7ZWHqHxwPNCwSq8381YPxYOQQP27uqjDwmC/WLfrRlqi16NXvA\n7mSD9Ofnb0yyu9IwhBSmMuGJ6Fc1Q5Q+GVxJM4R7i/mL+LeMok7ucohqpXT7\nf3GoShZHAhavaVI0yoHOa0bOqJpq7RLqwYVOrdql8LQQ9FiFTPcoOEdMF6ws\nl/OuK2GZAY3ZPr45Z+ooBBhYTVnF3L5OkC1ZcCVbjPEmbei2915mauB9crHw\nh1yP3DlHsoFM4eVteJ9rYk4MdCrfqHYIoxufliY0jGAHvXgKbXmtbeTzcj9M\nSUFhmd+3SuL35t1Ru4ZfxSpEGPdwvLJE3iLdn5+ZNj3YKEg6zxg3EjQs1yyi\neocRhikYZBsgxsXIJ9j8GRgBpvxSzX26Sm9ugXVOQI79hjRbJ5BVR2cgLMZe\n4C99CnwZ7prbMokwUN4FgoNFkN4ET2BMVSrL9Fvc6SjvEs99OvHvqlOTyKTU\n7BkxuBoALc9ZuJOO71CXLHWWlLYKidKPcf26ly5wbkKLErFgJuc50GESPQy/\nzOCMpu9mRT4gGe3hwhCvR+uifB0U1oAwhCB2YxW9kh+CDb9tIogXh4iTAIyV\nudNG\r\n=qi7U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.min.js","funding":{"url":"https://www.paypal.me/franciscopresencia/19"},"gitHead":"4e12014d60e24edf1059bd97fb7fa9b6ee90d957","scripts":{"build":"webpack -c"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"7.4.3","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"15.7.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.8.0","webpack":"^4.25.0","react-dom":"^16.8.0","uglify-es":"^3.1.3","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.6.0","@babel/core":"^7.1.5","webpack-cli":"^3.1.2","babel-loader":"^8.0.4","@babel/preset-env":"^7.1.5","@babel/preset-react":"^7.0.0","regenerator-runtime":"^0.12.1"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.1_1628793942833_0.9351621409866122","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"use-animation-frame","version":"0.1.2","keywords":[],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.2","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"f80ac76d208717ec5f05382c74e0d03bcee7241b","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.2.tgz","fileCount":8,"integrity":"sha512-3v+11aQh1iiFOLsiW2LQ5I6T3NAA0MlpqQW1P82gB0vlbn20qiRpgPzEwJzHJdy0Dg1pXPbPckrInrZBn+A1FQ==","signatures":[{"sig":"MEUCIQDQ6np+JUHCaJKC+WQbo3yD+n2tyJQNk2pMGPISlKOS6gIgbsAN4jKAVA7FtCWJhvqgl8KcpKGLmjAWeynu8BaKntw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOl0pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHXBAAkXQPhMW92LEaLNWpd1yfc2kxFTBHNE+QNdzPQF4TVqFVjV0i\r\nPpoD+7GNVpxusogwOZsY/AgyozsOYyn2HB5wWPWfD8Tl8FBLLmOi1wYoYwHU\r\nDZvFJsXlLZSDuJ/jW13lQvaUtAMHMesF5AprTNGsQgaEWBmvb2CI1ENFJShp\r\nfF8dbQCgHV3Ocm3EQMoHwAutl/vuEzrOHQnyoEkcUKxrxJl6X0ltGMMtoNLW\r\nekiVxCZXhNbfBU25DfUMSrYLdnxbgWjwkJ1kkP+krpScgZ38oiccs0aRWN42\r\nv/0as6pbc924qcvrUCGBcU5XVAMwzzet+ZoH9xlfzu/mmpwIwVnn7jN6hHgp\r\nLq8o5bT5c4XoKMIAppuq1uGawvtRPJsGElR4ad7TMO3P/W/LnXp3u9LDJ/Zf\r\nPu/aGVhp+6rBC1+oyU6W51F/umEnSzu//dPMOJW4Dw+R+nlR8CvJSXVrd62T\r\n/MHGClUAzMZCTnfC1+EDC9R/ne1gL4NYTqbXVxOXbCp6lZ+soIkLRHiHAzyA\r\nnxGnuawzIGaU5mxv1ypBUS+BV2T0R+Q6vq1Upe5+dB/kuRerQkZxTWfUeW5Z\r\n/CacO46jOk9aVU74iZU3pxtLNvJMBI1xJi8Pv6cSKWATvGwwkVXB2cMJKIrp\r\n0RKBvpqiz/VpI6P1FFzF1pa3PebgrtOTMBw=\r\n=QRPZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.min.js","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"funding":{"url":"https://www.paypal.me/franciscopresencia/19"},"gitHead":"02b15ceb574427564b63af9626255cd266dd9e62","scripts":{"test":"npx jest --coverage","build":"webpack -c","start":"npx jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"7.4.3","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"15.7.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^16.8.0","webpack":"^4.25.0","react-dom":"^16.8.0","uglify-es":"^3.1.3","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.6.0","react-test":"^0.11.0","@babel/core":"^7.1.5","webpack-cli":"^3.1.2","babel-loader":"^8.0.4","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","regenerator-runtime":"^0.12.1"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.2_1647992105357_0.03601418527878275","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"use-animation-frame","version":"0.1.3","keywords":[],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.3","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"156077f59f63d4583eab48a62c0fb8462635e421","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.3.tgz","fileCount":8,"integrity":"sha512-xO8kpxAR+PF6B10nTM4j2ueA2sJv6HQDzYfHL0QYOubJ5OmdSraZaVlMuTGZb0BWYQHi1YkEUHaYPR+ytnCb8A==","signatures":[{"sig":"MEQCIEY+BFlBkjOLmsoBL2M6HC32DcOmsyjYijmx5wK463YIAiBHzNlj3nfSgePLTIY5ikoQOeiKUgkPUGv7cgq2vWjeTg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOmT9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxJBAApPkiV68UYA2i9zXWwOFMnTOm1FdhuU1R0wdcaAmnNA91p2Vq\r\nHjyK0yH4iM9UlQw4Zkg+fnu07EIAYfX9fseakDY54q1eLibM+aiRmOJ5akrO\r\nrDWqwdPgqrJvWwU90sYSUXG8I4IVkvinEucT91GUQ+YU1DqOqlMfqLjYUpn+\r\n6OGaQlp766iRERLmT8abb8wfVAhhITZoGmIOQSN5wgwyJbG7bq0xGQuLWL3w\r\nmE26Fhb1R6yNlvyQQaip8xwipsj1n3B0HkK5ktlFqEO/oesWHZRve48MfnCC\r\nfWJxGPKPMOTSC6pp5THTFEkW2LRUrhVYvCllb6yJRpSdg75rpJ7Z8QUM8sP1\r\nzx+xN6w5iK3CiMk0GVV2QESLTo7O3LBlHQGYRtFLQAihAobzqsVV3nk2w4K6\r\ngPLEgbUijoT9KZFNmgzwZxl9u2RqdhllSWwZck77CunDTSFECtD7sCQU3pzy\r\nPxtY8LWJVHBp+hwHMQ19E86pKTbALAns0A0zCKDsf2VGhjbVXFjuiYot8Z3/\r\nnLmw5YtrnRzqxJ5O2fSV2SwQ18jKeztFGl749iNRWVYneG6ImeCrvW0gqYBO\r\nJLRh68b8K3/6C/TVAvForz+gq0LEOxGBiMHW2kW12LItaObgNDs5oq8KkFQA\r\nkfokcwnxwdF0dA+0ZGQu2o6YwS5GhVTCndI=\r\n=/6Xg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.min.js","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"funding":{"url":"https://www.paypal.me/franciscopresencia/19"},"gitHead":"7e9246a76e017836352a30b7521e3781d8b19f74","scripts":{"test":"npx jest --coverage","build":"webpack -c","start":"npx jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"7.4.3","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"15.7.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^16.8.0","webpack":"^4.25.0","react-dom":"^16.8.0","uglify-es":"^3.1.3","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.6.0","react-test":"^0.11.0","@babel/core":"^7.1.5","webpack-cli":"^3.1.2","babel-loader":"^8.0.4","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","regenerator-runtime":"^0.12.1"},"peerDependencies":{"react":"^16.8.0","react-dom":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.3_1647994109490_0.7460387242759412","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"use-animation-frame","version":"0.1.4","keywords":[],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.4","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"cd8d41e2218f141c4512d976af61f9b7febef9e0","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.4.tgz","fileCount":8,"integrity":"sha512-wMf5iAA22rL2mPyQSxH6dh8b7rjkLpYkVTZ5LaoGtE5uGjvSLZn1EtqNWIbkTfzMG6gnwGvX+o8zfzxvaPlRGw==","signatures":[{"sig":"MEUCIAF3+G/EstfNJtpp1QBbPSRkVOPYSXqKqPE8BPU9p2vvAiEAjyIOLwVH7oVUyTGyXFvIt9LeOWVzXZ4xcTonfQnfnMo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJidmrcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp15w//WXtUcnmILtZ9qrdHO7GiDh05mkz09Gk3R/EUuHq4tjBwJjZb\r\nQbGIjaiiP9ZhjSxtMG1ThJExalt0hhe/5SvVHBlWfqISPUpweEbIHcYI2bc4\r\nRPIPZ3a4nqFcP18lv6m8ZMGLTXNxaovyYb0iOtJnyiXPGWMYWhPHBBNqBBRm\r\nbj9rMrsnw55OtlorLOi/C+oo+Nh6fCfx0M9CJX+Qh4zKl76qEdLedEq+QbjB\r\nYWX7OVTWowH11OAI0VcBeQCtjrw3zvJHoSXiTgtOWcB6lzjmMf4TMfclJKFh\r\noKG8X3b2p1fr0VUEDJ/JVrWwun+nDL+Odiof7SaNaIiro9LZMtgyjJmk70zi\r\nTphvh4raPaO6ySYrECkRh0KTOlGZ0V6Rme9aFF1f2s/vGqGuXTfjufthcg/3\r\njVnU28SRb5fFLxBdn5/Nj+xc45NnKW7qfQ//Mo2Pz/GrP+jBxnIvLSVk2zjj\r\nWUK6uUKwHYE4ixdCPkyVTGZsnG+rCl1+rSc72VI20KbqemQuyzxAXur0tyMH\r\nzXqv8lbJyB+qyAED9tNsCZg8klQUNX4YuurZVwr8socvvtEiHcQJfSrORBBA\r\nBSH/lakZyVKZTqYBHH6QjVQxHLcAkaB7ajoVxCL+53H5qkOvsMFTrvGzCs4P\r\nWEfUbbtX6Q8K8TkJEbAYVJvIwEgc1AePzU8=\r\n=zruu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.min.js","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"funding":{"url":"https://www.paypal.me/franciscopresencia/19"},"gitHead":"0cf49ddf2d7a42ef1e17ed4c8bda10b0e65f4ec2","scripts":{"test":"npx jest --coverage","build":"webpack -c","start":"npx jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"8.6.0","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"18.0.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":">=16.8.0","webpack":"^5.72.0","react-dom":">=16.8.0","uglify-es":"^3.1.3","babel-core":"^7.0.0-bridge.0","babel-jest":"^23.6.0","react-test":"^0.13.1","@babel/core":"^7.1.5","webpack-cli":"^3.1.2","babel-loader":"^8.0.4","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","regenerator-runtime":"^0.12.1"},"peerDependencies":{"react":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.4_1651927772638_0.8949098684797796","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"use-animation-frame","version":"0.1.5","keywords":["react","use-animation-frame","hooks","animation","interval"],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.1.5","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"29613ba47c20b112367e9a231e264182cbb317dc","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.1.5.tgz","fileCount":4,"integrity":"sha512-oANuaUtRxwA9OKvSY+Sp9aVnLtrZjHknFklPc7jIZw9qWIto9lth1OYl0JqwtBofQXc1b3PNFDfmn/hBj4NzKw==","signatures":[{"sig":"MEQCIHlz1CW6Xt3EOnGsSpNyqhb7XMVwMmvXVNoTte8UZd0tAiAqjMa3ptN+qrSB6YOCqELGQ9ymF+M1+5cz0/6Qwi1qAw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjXh3OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjOA/9GHnx8suCXa1J+hSTjgI0ms2RgUZhoDxKe1jjdLJ8+7UNGKRm\r\nRlrqftxHAvAv1eoI0HWw3IICIiojXt/cDt0KEhKX/9yOzh7Ep9yRkbttV/nK\r\njfTID4M814Bu/Ixi+NrpD6cL4uMHXXRzYPkpw6utVBVbBawCCkqB3BznQhFw\r\n7jaoXZG/gfV0NvVxl3R7ix/zcpXB9bdxYjcp6OUGM0Hbo5Mp/9aj4Br2uUrC\r\nJty10FY6z3+2rJwFgoIN1/eKD+Vn0T8L1ezjkc6n3fg8tLbA93Ll3KeRSWxb\r\nrKxTeE9DzNhBv6OPnWsS6075kxodWMJoVc4gMVhsb7dWsdwiKXvw3k5RqO0t\r\n0I7ANs89Oyn/ISpbuf72ti5OglU0Rt4TMoShqGhVfTEbZL0lGqffR0pHOgj7\r\nFBfm7WqmfWnXaJdflk/uAVf1nvmIEfYtjEnETW0swdW774H1gnOfZlpmW8c0\r\nO8LnmuJRrRnPOXznefSwitv+xg3Puh8GUyjS52JwDEuIAxZ5DPlJkgKDv8Sv\r\nSJ4mMOgEeD/iq9JznbOdAO+8Vf9cfikyxELEU8cGaz/pIGUJcX5//cLueg2q\r\nIQZ3ufauYv4xgCxpDDW58xCOwQKqKqsqnrI+GNFu0fOpxTYqZksCc1UuM2eP\r\nYcZwY+WhBk/x3ixdf/KIX3nUY7s8XBIoP7U=\r\n=cEb0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"jsdom"},"main":"index.min.js","type":"module","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"funding":"https://www.paypal.me/franciscopresencia/19","gitHead":"2bf91781e82653047c119deacd4975f52198b32d","scripts":{"size":"echo $(gzip -c index.min.js | wc -c) bytes","test":"jest --coverage","build":"rollup -c","start":"jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"8.6.0","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"18.0.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.0","react":"^18.2.0","rollup":"^1.32.1","react-test":"^0.19.0","@babel/core":"^7.15.0","babel-loader":"^8.2.2","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.2.0","jest-environment-jsdom":"^28.1.0"},"peerDependencies":{"react":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.1.5_1667112398307_0.3840624149120355","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"use-animation-frame","version":"0.2.0","keywords":["react","use-animation-frame","hooks","animation","interval"],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.2.0","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"12c461561ce10f4ec07da35e583e194e040ef5e2","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.2.0.tgz","fileCount":5,"integrity":"sha512-gi0NzcI1Hx0N0qLJ8LfSFMt8UBNPB8Qr/4GZO7kOlX5poMoAbqkr3cvxl+o97RzJPTh0VLkR+JxbHsgg9zeWEg==","signatures":[{"sig":"MEQCIHbd5ARiDodzA69n+kAg7rxl+zszSBpi2yPG5zsubBcEAiAIUY6e4iEc+NWN1tjmoP/xUEZcGObEFoddLeZJ8vdKnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5302},"jest":{"testEnvironment":"jsdom"},"main":"index.min.js","type":"module","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"types":"src/index.d.ts","funding":"https://www.paypal.me/franciscopresencia/19","gitHead":"e3d5e41d5575732aa1d74fcbf015ed6b6d446cdf","scripts":{"size":"echo $(gzip -c index.min.js | wc -c) bytes","test":"jest --coverage && npx check-dts","build":"rollup -c","start":"jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"10.2.4","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"20.11.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.0","react":"^18.2.0","rollup":"^1.32.1","check-dts":"^0.8.2","react-test":"^0.19.0","@babel/core":"^7.15.0","babel-loader":"^8.2.2","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.2.0","jest-environment-jsdom":"^28.1.0"},"peerDependencies":{"react":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.2.0_1724417527930_0.20196057261283085","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"use-animation-frame","version":"0.2.1","keywords":["react","use-animation-frame","hooks","animation","interval"],"author":{"url":"https://francisco.io/","name":"Francisco Presencia","email":"public@francisco.io"},"license":"MIT","_id":"use-animation-frame@0.2.1","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"homepage":"https://github.com/franciscop/use-animation-frame#readme","bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"dist":{"shasum":"032353fa62b54b5646e9e80d48ab182d42cfc4ec","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-0.2.1.tgz","fileCount":5,"integrity":"sha512-jxNPYVWqAXspUWYi9HGmsJSk2t53PvfJcozWK3SWCTKgoK96UB3sl7OHhX1AaDsWsxX3HJzDyCa6LWX/eh4NQQ==","signatures":[{"sig":"MEUCIC7QvrbApbTxZdr9ErMBZCAjTj4bZgv1PTEMEqfB2V2FAiEAh1TDbwt4hiv80agaOZRFdAJjhwNvqXuTmitj7lR4vPc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5280},"jest":{"testEnvironment":"jsdom"},"main":"index.min.js","type":"module","babel":{"presets":["@babel/preset-env","@babel/preset-react"]},"types":"src/index.d.ts","funding":"https://www.paypal.me/franciscopresencia/19","gitHead":"d310f02fe39bed89b99e58b19701586ff6f49116","scripts":{"size":"echo $(gzip -c index.min.js | wc -c) bytes","test":"jest --coverage && npx check-dts","build":"rollup -c","start":"jest --watch"},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"repository":{"url":"git+https://github.com/franciscop/use-animation-frame.git","type":"git"},"_npmVersion":"10.2.4","description":"A React hook to run requestAnimationFrame seamlessly","directories":{},"_nodeVersion":"20.11.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.0","react":"^18.3.0","rollup":"^1.32.1","check-dts":"^0.8.2","react-test":"^0.21.2","@babel/core":"^7.15.0","babel-loader":"^8.2.2","babel-polyfill":"^6.26.0","@babel/preset-env":"^7.15.0","@babel/preset-react":"^7.14.5","rollup-plugin-babel":"^4.4.0","rollup-plugin-terser":"^5.2.0","jest-environment-jsdom":"^28.1.0"},"peerDependencies":{"react":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/use-animation-frame_0.2.1_1724422321349_0.37970101471445106","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"use-animation-frame","version":"1.0.0","description":"A React hook to run requestAnimationFrame seamlessly","homepage":"https://github.com/franciscop/use-animation-frame#readme","repository":{"type":"git","url":"git+https://github.com/franciscop/use-animation-frame.git"},"bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"funding":"https://www.paypal.me/franciscopresencia/19","author":{"name":"Francisco Presencia","email":"public@francisco.io","url":"https://francisco.io/"},"license":"MIT","keywords":["react","use-animation-frame","hooks","animation","interval"],"scripts":{"build":"npm run build:library && npm run build:types && npm run build:prettier","build:library":"vite build && mv dist/index.min.js . && rm -rf dist","build:types":"dts-bundle-generator --out-file index.d.ts src/index.ts","build:prettier":"prettier src *.ts *.json --write","lint":"tsc","size":"echo $(gzip -c index.min.js | wc -c) bytes","start":"vitest","test":"vitest run --coverage"},"main":"index.min.js","type":"module","types":"index.d.ts","devDependencies":{"@types/node":"^25.5.2","@types/react":"^18.3.4","@vitejs/plugin-react":"^6.0.1","@vitest/coverage-v8":"^4.1.2","dts-bundle-generator":"^9.5.1","esbuild":"^0.27.7","jsdom":"^29.0.1","prettier":"^3.8.1","react":"^18.3.1","react-dom":"^18.3.1","react-test":"^0.24.7","terser":"^5.46.1","typescript":"^6.0.2","vite":"^8.0.3","vitest":"^4.1.2"},"peerDependencies":{"react":">=16.8.0"},"gitHead":"cdec0acc57e19fd68ccb46ae7bfda55ce3d8be03","_id":"use-animation-frame@1.0.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Nxvmx8a1omfLbYtSSEMDHy70zDUsuKSei08VMGb4viD9DAYVF9n+YElJVfi2OA4ERhByPBRQ4gY4QOoLNxH+wQ==","shasum":"92659160d5710fed6dba8e14de33e40df3a45721","tarball":"https://registry.npmjs.org/use-animation-frame/-/use-animation-frame-1.0.0.tgz","fileCount":5,"unpackedSize":6156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBzGukPMXvIZnRkxMguI+0nenWW/311mJjWBH6SLsbKZAiAoriM4G4yOhtMIXoiRK82dWAzwDHcdUVNPe+22/YWmmw=="}]},"_npmUser":{"name":"franciscop","email":"public@francisco.io"},"directories":{},"maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/use-animation-frame_1.0.0_1778064633634_0.22073260564868402"},"_hasShrinkwrap":false}},"time":{"created":"2019-11-10T11:49:20.622Z","modified":"2026-05-06T10:50:33.896Z","0.1.0":"2019-11-10T11:49:20.733Z","0.1.1":"2021-08-12T18:45:42.965Z","0.1.2":"2022-03-22T23:35:05.571Z","0.1.3":"2022-03-23T00:08:29.632Z","0.1.4":"2022-05-07T12:49:32.762Z","0.1.5":"2022-10-30T06:46:38.457Z","0.2.0":"2024-08-23T12:52:08.067Z","0.2.1":"2024-08-23T14:12:01.522Z","1.0.0":"2026-05-06T10:50:33.790Z"},"bugs":{"url":"https://github.com/franciscop/use-animation-frame/issues"},"author":{"name":"Francisco Presencia","email":"public@francisco.io","url":"https://francisco.io/"},"license":"MIT","homepage":"https://github.com/franciscop/use-animation-frame#readme","keywords":["react","use-animation-frame","hooks","animation","interval"],"repository":{"type":"git","url":"git+https://github.com/franciscop/use-animation-frame.git"},"description":"A React hook to run requestAnimationFrame seamlessly","maintainers":[{"name":"franciscop","email":"public@francisco.io"}],"readme":"# use-animation-frame\n\nA hook to effortlessly run [`requestAnimationFrame()`](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) in React ([**demo**](https://codesandbox.io/s/fps-counter-8jfdg)):\n\n```tsx\nimport useAnimationFrame from 'use-animation-frame';\n\nconst Counter = () => {\n  const [time, setTime] = useState(0);\n  useAnimationFrame(e => setTime(e.time));\n  return <div>Running for:<br/>{time.toFixed(1)}s</div>;\n};\n```\n\nInspired by [CSS-Tricks' Using requestAnimationFrame with React Hooks](https://css-tricks.com/using-requestanimationframe-with-react-hooks/) and my [twitter reply](https://mobile.twitter.com/FPresencia/status/1164193851931631616).\n\n## API\n\n```tsx\nuseAnimationFrame(callback);\n```\n\nCalls `callback` on every animation frame. The callback receives an object with two properties (based on [the `performance.now()` API](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)):\n\n- `time`: seconds elapsed _since the hook was first mounted_. Useful for driving animations tied to a wall clock.\n- `delta`: seconds elapsed _since the last frame_. Useful for frame-rate-independent movement; e.g. `1 / e.delta` gives the current FPS.\n\nAll times are in **seconds** (including decimals).\n\nThe callback is stored in a ref, so it always reflects the latest closure — state and props are always up to date without restarting the animation loop. No dependency array needed.\n\n```tsx\n// TypeScript: the callback type is inferred automatically\nuseAnimationFrame(({ time, delta }: { time: number; delta: number }) => {\n  // ...\n});\n```\n\n## Example: moving a value\n\nUse `delta` to advance a value independent of frame rate:\n\n```tsx\nimport { useState } from 'react';\nimport useAnimationFrame from 'use-animation-frame';\n\nconst Progress = () => {\n  const [x, setX] = useState(0);\n  useAnimationFrame(({ delta }) => setX(prev => (prev + delta * 100) % 100));\n  return <div style={{ marginLeft: `${x}%` }}>→</div>;\n};\n```\n\n## Example: FPS counter\n\nWith my other library [use-interpolation](https://www.npmjs.com/package/use-interpolation) it's easy to smooth the FPS reading ([see in CodeSandbox](https://codesandbox.io/s/angry-voice-8jfdg)):\n\n```tsx\nimport { useState } from \"react\";\nimport useInterpolation from 'use-interpolation';\nimport useAnimationFrame from 'use-animation-frame';\n\nconst Counter = () => {\n  const [time, setTime] = useState(0);\n  const [fps, setFps] = useInterpolation(1000); // 1s smoothing window\n  useAnimationFrame(({ time, delta }) => {\n    setFps(1 / delta);\n    setTime(time);\n  });\n  return (\n    <div>\n      {time.toFixed(1)}s\n      <br />\n      {fps && Math.floor(fps.value)} FPS\n    </div>\n  );\n};\n```\n","readmeFilename":"readme.md"}